Diana Software
Public Types | Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | Friends | List of all members
QSequence Class Reference

Diana Reconstruction program. More...

Inheritance diagram for QSequence:
QNamed

Public Types

enum  SequenceStatus { kSequenceConfig , kSequenceInit , kSequenceDo , kSequenceDone }
 

Public Member Functions

 QSequence (const std::string &)
 Ctor that takes the name of the sequence as argument. More...
 
virtual ~QSequence ()
 Default dtor. More...
 
bool Run ()
 The core of the sequence. Loops over Init's, Do's and Done's. More...
 
void Dump (std::ostream &) const
 Dump the content of the sequence. More...
 
const QGlobalDataManagerGlobalData () const
 Access to the global data manager for the sequence. More...
 
QGlobalDataManagerGlobalData ()
 Access to the global data manager for the sequence. More...
 
void SetRunAgain (bool b)
 Run the sequence again. More...
 
bool GetRunAgain () const
 Check if this sequence is going to be rerun. More...
 
unsigned int GetIteration () const
 
size_t GetNumber () const
 Get the number of this sequence. More...
 
SequenceStatus GetSequenceStatus () const
 Get the sequence status (Config/Init/Do/Done) More...
 
const QErrorJumpToEvent (Long64_t event, QBaseModule *caller)
 Jump to an event in a particular in a module. More...
 
void PrintEvents (const QEvent &ev, const QEventList &evList) const
 Print the event list. More...
 
void PrintGlobal () const
 Print the global data. More...
 
void CheckModuleWithNeighbours ()
 Check if any of the modules have neighbours. More...
 
std::string GetReaderName () const
 Get the name of the reader. More...
 
std::string GetWriterName () const
 Get the name of the writer. More...
 
std::string GetDriverName () const
 Get the name of the driver. More...
 
- Public Member Functions inherited from QNamed
 QNamed ()
 
 QNamed (const std::string &Name)
 
virtual ~QNamed ()
 
const std::string & GetName () const
 
void SetName (const std::string &name)
 

Private Member Functions

void SaveConfig ()
 Save the config data to file. More...
 

Private Attributes

QReaderp_Reader
 Pointer to the reader. More...
 
QWriterp_Writer
 Pointer to the writer. More...
 
QDriverp_Driver
 Pointer to a driver. More...
 
std::vector< QBaseModule * > modules
 The list of the modules. More...
 
QGlobalDataManager fGlobalData
 Global variables that a module can save. More...
 
unsigned int fIteration
 Iterations counter. More...
 
bool fRunAgain
 Run again. More...
 
QRWCommon fRWCommon
 The Reader/Writer data shared between the reader and writer. More...
 
SequenceStatus fSequenceStatus
 Status of the current sequence. More...
 
QSequenceConfig fConfig
 Sequence config data. More...
 

Static Private Attributes

static size_t fCounter = 0
 Static sequence counter. More...
 

Friends

class QModuleFactory
 

Detailed Description

Diana Reconstruction program.

Author
Marco Pallavicini, Marco Vignati
Date
2006-12-06

This is the class that handles a diana sequence. It collects all the modules in a particular sequence, runs the init methods, do methods and done methods.

Definition at line 40 of file QSequence.hh.

Member Enumeration Documentation

◆ SequenceStatus

Enumerator
kSequenceConfig 
kSequenceInit 
kSequenceDo 
kSequenceDone 

Definition at line 43 of file QSequence.hh.

Constructor & Destructor Documentation

◆ QSequence()

QSequence::QSequence ( const std::string &  n)

Ctor that takes the name of the sequence as argument.

Definition at line 22 of file QSequence.cc.

References QSequenceConfig::Clear(), QGlobalDataManager::Clear(), fConfig, fCounter, fGlobalData, fIteration, QSequenceConfig::fName, and modules.

◆ ~QSequence()

QSequence::~QSequence ( )
virtual

Member Function Documentation

◆ CheckModuleWithNeighbours()

void QSequence::CheckModuleWithNeighbours ( )

◆ Dump()

void QSequence::Dump ( std::ostream &  o) const

Dump the content of the sequence.

Definition at line 70 of file QSequence.cc.

References QNamed::GetName(), QBaseModule::GetName(), QBaseModule::isEnabled(), modules, p_Driver, p_Reader, p_Writer, and QBaseModule::UpdateEnableFlag().

◆ GetDriverName()

std::string QSequence::GetDriverName ( ) const

Get the name of the driver.

Definition at line 397 of file QSequence.cc.

References QBaseModule::GetName(), and p_Driver.

◆ GetIteration()

unsigned int QSequence::GetIteration ( ) const
inline

\breif Get the current iteration of the sequence

Definition at line 83 of file QSequence.hh.

References fIteration.

Referenced by QBaseModule::GetIteration(), PrintEvents(), Run(), and SaveConfig().

◆ GetNumber()

size_t QSequence::GetNumber ( ) const
inline

Get the number of this sequence.

Definition at line 85 of file QSequence.hh.

References fCounter.

◆ GetReaderName()

std::string QSequence::GetReaderName ( ) const

Get the name of the reader.

Definition at line 387 of file QSequence.cc.

References QBaseModule::GetName(), and p_Reader.

◆ GetRunAgain()

bool QSequence::GetRunAgain ( ) const
inline

Check if this sequence is going to be rerun.

Definition at line 81 of file QSequence.hh.

References fRunAgain.

Referenced by QBaseModule::GetRunAgain().

◆ GetSequenceStatus()

SequenceStatus QSequence::GetSequenceStatus ( ) const
inline

Get the sequence status (Config/Init/Do/Done)

Definition at line 87 of file QSequence.hh.

References fSequenceStatus.

Referenced by PrintEvents().

◆ GetWriterName()

std::string QSequence::GetWriterName ( ) const

Get the name of the writer.

Definition at line 392 of file QSequence.cc.

References QBaseModule::GetName(), and p_Writer.

◆ GlobalData() [1/2]

QGlobalDataManager& QSequence::GlobalData ( )
inline

Access to the global data manager for the sequence.

Each sequence has variables that can be stored by modules. This function provides access to the data manager.

Definition at line 72 of file QSequence.hh.

References fGlobalData.

◆ GlobalData() [2/2]

const QGlobalDataManager& QSequence::GlobalData ( ) const
inline

Access to the global data manager for the sequence.

Each sequence has variables that can be stored by modules. This function provides access to the data manager.

Definition at line 65 of file QSequence.hh.

References fGlobalData.

Referenced by QBaseModule::BeginBase(), QBaseModule::EndBase(), QBaseModule::GlobalData(), QBaseModule::ProcessBase(), and Run().

◆ JumpToEvent()

const QError & QSequence::JumpToEvent ( Long64_t  event,
QBaseModule caller 
)

Jump to an event in a particular in a module.

Definition at line 325 of file QSequence.cc.

References QReader::BaseJumpToEvent(), err, QBaseModule::GetName(), p_Reader, and QERR_UNKNOWN_ERR.

Referenced by QDriver::JumpToEvent().

◆ PrintEvents()

void QSequence::PrintEvents ( const QEvent ev,
const QEventList evList 
) const

◆ PrintGlobal()

void QSequence::PrintGlobal ( ) const

Print the global data.

Definition at line 376 of file QSequence.cc.

References QGlobalDataManager::Dump(), ErrorMsg, fGlobalData, QMessageHandler::Get(), QNamed::GetName(), InfoMsg, and QMessageHandler::Send().

Referenced by Run().

◆ Run()

bool QSequence::Run ( )

◆ SaveConfig()

void QSequence::SaveConfig ( )
private

◆ SetRunAgain()

void QSequence::SetRunAgain ( bool  b)
inline

Run the sequence again.

Modules can force the framework to rerun the sequence they belong to.

Definition at line 79 of file QSequence.hh.

References b, and fRunAgain.

Referenced by QBaseModule::SetRunAgain().

Friends And Related Function Documentation

◆ QModuleFactory

friend class QModuleFactory
friend

Definition at line 138 of file QSequence.hh.

Member Data Documentation

◆ fConfig

QSequenceConfig QSequence::fConfig
private

Sequence config data.

Definition at line 133 of file QSequence.hh.

Referenced by QModuleFactory::Init(), QSequence(), Run(), and SaveConfig().

◆ fCounter

Q_BEGIN_NAMESPACE size_t QSequence::fCounter = 0
staticprivate

Static sequence counter.

Definition at line 124 of file QSequence.hh.

Referenced by GetNumber(), and QSequence().

◆ fGlobalData

QGlobalDataManager QSequence::fGlobalData
private

Global variables that a module can save.

Definition at line 115 of file QSequence.hh.

Referenced by GlobalData(), PrintGlobal(), QSequence(), Run(), SaveConfig(), and ~QSequence().

◆ fIteration

unsigned int QSequence::fIteration
private

Iterations counter.

Definition at line 118 of file QSequence.hh.

Referenced by GetIteration(), QSequence(), and Run().

◆ fRunAgain

bool QSequence::fRunAgain
private

Run again.

Definition at line 121 of file QSequence.hh.

Referenced by GetRunAgain(), Run(), and SetRunAgain().

◆ fRWCommon

QRWCommon QSequence::fRWCommon
private

The Reader/Writer data shared between the reader and writer.

Definition at line 127 of file QSequence.hh.

Referenced by Run(), and SaveConfig().

◆ fSequenceStatus

SequenceStatus QSequence::fSequenceStatus
private

Status of the current sequence.

Definition at line 130 of file QSequence.hh.

Referenced by GetSequenceStatus(), and Run().

◆ modules

std::vector< QBaseModule* > QSequence::modules
private

The list of the modules.

Definition at line 112 of file QSequence.hh.

Referenced by CheckModuleWithNeighbours(), Dump(), QModuleFactory::Init(), QSequence(), Run(), and ~QSequence().

◆ p_Driver

QDriver* QSequence::p_Driver
private

Pointer to a driver.

Definition at line 110 of file QSequence.hh.

Referenced by CheckModuleWithNeighbours(), Dump(), GetDriverName(), QModuleFactory::Init(), Run(), and ~QSequence().

◆ p_Reader

QReader* QSequence::p_Reader
private

Pointer to the reader.

Definition at line 106 of file QSequence.hh.

Referenced by CheckModuleWithNeighbours(), Dump(), GetReaderName(), QModuleFactory::Init(), JumpToEvent(), Run(), and ~QSequence().

◆ p_Writer

QWriter* QSequence::p_Writer
private

Pointer to the writer.

Definition at line 108 of file QSequence.hh.

Referenced by CheckModuleWithNeighbours(), Dump(), GetWriterName(), QModuleFactory::Init(), Run(), and ~QSequence().


The documentation for this class was generated from the following files: