/search.css" rel="stylesheet" type="text/css"/> /search.js">
00001 /* 00002 * \author bseilhan@iit.edu 00003 * \date 2009-07-01 00004 * 00005 * This algorithm is in charge of telling the SimSequencerAlgorigm whether or 00006 * not to execute its sub alg. This way SimSequencerAlg does not need to know 00007 * anything about the readout buffer. This decision on whether to run or not 00008 * can be made in any way desired. 00009 * 00010 */ 00011 00012 #ifndef SIMREADOUTCONTROLLER 00013 #define SIMREADOUTCONTROLLER 1 00014 00015 #include "SimSequencer.h" 00016 #include "GaudiAlg/GaudiAlgorithm.h" 00017 #include "ReadoutBufferSvc/IReadoutBufferSvc.h" 00018 00019 #include <utility> // for std::pair 00020 #include <vector> 00021 00022 00023 class SimReadoutController : public GaudiAlgorithm 00024 { 00025 public: 00026 SimReadoutController(const std::string& name,ISvcLocator* pSvcLocator); 00027 virtual ~SimReadoutController(); 00028 00029 virtual StatusCode initialize(); 00030 virtual StatusCode execute(); 00031 virtual StatusCode finalize(); 00032 00033 private: 00034 StatusCode decodeName( ); // stolen & modified from GaudiSequencer 00035 void membershipHandler( Property& theProp ); 00036 00037 StringProperty m_algSeqName; 00038 SimSequencer* m_algSeq; 00039 IReadoutBufferSvc* m_bufferSvc; 00040 }; 00041 00042 #endif