00001 #ifndef TrigConf_HLTSignature
00002 #define TrigConf_HLTSignature
00003
00004 #include <iosfwd>
00005 #include <fstream>
00006 #include <string>
00007 #include <vector>
00008
00009 namespace TrigConf {
00010
00011 class HLTSignature;
00012 class HLTTriggerElement;
00013
00014 std::ostream & operator<<(std::ostream &, const HLTSignature &);
00015
00025 class HLTSignature {
00026
00027 public:
00028
00030 HLTSignature( void );
00031
00040 HLTSignature( unsigned int signature_counter, int logic,
00041 const std::vector<HLTTriggerElement*>& outputTEs = std::vector<HLTTriggerElement*>() );
00042
00047 HLTSignature( const HLTSignature& o);
00048
00050 ~HLTSignature( void );
00051
00052
00053 unsigned int signature_counter() const { return m_signature_counter; }
00054 unsigned int step() const { return m_signature_counter; }
00055 int logic() const { return m_logic; }
00056 std::vector<HLTTriggerElement*>& outputTEs() { return m_outputTEs; }
00057 const std::vector<HLTTriggerElement*>& outputTEs() const { return m_outputTEs; }
00058 const std::string& label() const { return m_label; }
00059
00060 void set_signature_counter( unsigned int sc ) { m_signature_counter = sc; }
00061 void set_logic( int logic ) { m_logic = logic; }
00062 void set_outputTEs( const std::vector<HLTTriggerElement*>& outputTEs ) { m_outputTEs = outputTEs; }
00063 void set_label( const std::string& label ) { m_label = label; }
00064
00066 void print(const std::string& indent="", unsigned int detail=1) const;
00067 void writeXML(std::ofstream & xmlfile);
00068
00069 private:
00070
00071 unsigned int m_signature_counter;
00072 int m_logic;
00073 std::vector<HLTTriggerElement*> m_outputTEs;
00074 std::string m_label;
00075
00076
00077 friend std::ostream & operator<<(std::ostream &, const HLTSignature &);
00078 };
00079
00080 }
00081
00082 #endif