00001 #ifndef EVENT_TRIG_DATA_H 00002 #define EVENT_TRIG_DATA_H 00003 00004 #include <stdint.h> //uint32_t 00005 #include <string> 00006 00007 #include "GaudiKernel/DataObject.h" 00008 00009 extern const CLID& CLID_TrigData; 00010 00011 //Trigger data struction for physics analysis 00012 class TrigData : public DataObject { 00013 public: 00014 //constructor 1 00015 TrigData() {} 00016 //constructor 2 00017 TrigData(int window, int timing, const int* trigCond, const int* trigChan, bool preScale); 00018 //destructor 00019 virtual ~TrigData() {} 00020 00021 virtual const CLID& clID() const { return TrigData::classID(); } 00022 static const CLID& classID() { return CLID_TrigData; } 00023 00024 void setTrigCondition(int i, int j) { m_trigcond[i] = j; } 00025 void setTrigCondition(const int* cond) { for(int i = 0; i < 48; i++) m_trigcond[i] = cond[i]; } 00026 void setTrigChannel( int i, int j) { m_trigChan[i] = j; } 00027 void setTrigChannel(const int* chan) { for(int i = 0; i < 16; i++) m_trigChan[i] = chan[i]; } 00028 void setTimeWindow( int i ) { m_timeWindow = i; } 00029 void setTimingType( int i ) { m_Timing = i; } 00030 void setPreScale( bool i ) { m_preScale = i; } 00031 00032 const std::string getTrigCondName(int i) const { return s_CONDITIONS[i]; } 00033 const int getTrigCondition(int i) const { return m_trigcond[i]; } 00034 const int* getTrigCondition() const { return m_trigcond; } 00035 const int getTrigChannel(int i) const { return m_trigChan[i]; } 00036 const int* getTrigChannel() const { return m_trigChan; } 00037 const int getTimeWindow() const { return m_timeWindow; } 00038 const int getTimingType() const { return m_Timing; } 00039 const bool getPreScale() const { return m_preScale; } 00040 00041 void print() const; 00042 00043 private: 00044 int m_trigcond[48]; //Trigger conditions from 0 to 47 00045 int m_trigChan[16]; //Trigger channel from 0 to 15 00046 int m_timeWindow; //The time window of trigger system 00047 int m_Timing; //Time type, 0: No timing 1: TOF 2: MDC 3: EMC 00048 bool m_preScale; //PreScale for bhabha events 00049 00050 static const std::string s_CONDITIONS[48]; //The name of each trigger condition 00051 }; 00052 00053 #endif // EVENT_TRIG_DATA_H