00001 #ifndef STEPSEQUENCER_H 00002 #define STEPSEQUENCER_H 00003 00004 #include <string> 00005 #include <math.h> 00006 #include <vector> 00007 #include <map> 00008 00009 #include "GaudiKernel/Algorithm.h" 00010 #include "HltSteerData/Sequence.h" 00011 00012 class HltProcessor::Sequence; 00013 00014 class StepSequencer : public Algorithm 00015 { 00016 public: 00017 00018 StepSequencer(const std::string& name, ISvcLocator* pSvcLocator); 00019 ~StepSequencer(); 00020 00021 virtual bool isEnabled( ) const{return m_isEnabled;}; 00022 StatusCode initialize() { return StatusCode::SUCCESS; } 00023 StatusCode execute() { return StatusCode::SUCCESS; } 00024 StatusCode finalize() { return StatusCode::SUCCESS; } 00025 00026 // start of StepSequencer specific interface 00027 void reset(); 00028 00029 StatusCode initSequencer(HltProcessor::Sequence* ); 00030 bool execSequencer(const std::string& seqID); 00031 std::vector<Algorithm*> searchAlgForEachTE_o(HltProcessor::Sequence* ); 00032 bool doesExistAlready(std::string ); 00033 Algorithm* existingAlg (std::string ); 00034 //DummyAlg* m_DummyAlg; 00035 00036 private: 00037 Algorithm* matchAlg; 00038 std::vector<Algorithm* > vMatchAlg; 00039 //std::string instance; 00040 std::map<std::string, std::vector<Algorithm* > > m_AlgMap; 00041 00042 bool m_isEnabled; 00043 }; 00044 00045 #endif