00001 #ifndef EVENT_TRIG_EACC_H 00002 #define EVENT_TRIG_EACC_H 00003 00004 #include <stdint.h> 00005 #include <string> 00006 #include <vector> 00007 #include <map> 00008 00009 class TrigEACC { 00010 public: 00011 TrigEACC(const char* name); 00012 virtual ~TrigEACC(); 00013 00014 void setEACCTrigData(uint32_t boardId, uint32_t window, uint32_t datasize, const uint32_t* data); 00015 00016 void initialize(); 00017 00018 inline const std::string& getName() const { return m_name; } 00019 inline unsigned int getTimeWindow() const { return m_window; } 00020 00021 inline unsigned int getBBLKCharge(int id) const { return E_blk[id]; } 00022 inline unsigned int getBBLKTime(int id) const { return T_blk[id]; } 00023 inline unsigned int getEBLKCharge(int id) const { return E_blkE[id]; } 00024 inline unsigned int getEBLKTime(int id) const { return T_blkE[id]; } 00025 inline unsigned int getWBLKCharge(int id) const { return E_blkW[id]; } 00026 inline unsigned int getWBLKTime(int id) const { return T_blkW[id]; } 00027 inline unsigned int getBarrelCharge() const { return E_B_Etot; } 00028 inline unsigned int getBarrelTime() const { return T_B_Etot; } 00029 inline unsigned int getEndCapsCharge() const { return E_E_Etot; } 00030 inline unsigned int getEndCapsTime() const { return T_E_Etot; } 00031 inline unsigned int getEMCTotalCharge() const { return E_blkAll; } 00032 inline unsigned int getEMCTotalTime() const { return T_blkAll; } 00033 inline unsigned int getEastHalfCharge() const { return E_eastHalf; } 00034 inline unsigned int getEastHalfTime() const { return T_eastHalf; } 00035 inline unsigned int getWestHalfCharge() const { return E_westHalf; } 00036 inline unsigned int getWestHalfTime() const { return T_westHalf; } 00037 inline unsigned int getEastEndHalfCharge() const { return E_eastEndHalf; } 00038 inline unsigned int getEastEndHalfTime() const { return T_eastEndHalf; } 00039 inline unsigned int getWestEndHalfCharge() const { return E_westEndHalf; } 00040 inline unsigned int getWestEndHalfTime() const { return T_westEndHalf; } 00041 00042 inline unsigned int getBTC(int theta, int phi, int winId) const { return TC[theta][phi][winId]; } 00043 inline unsigned int getETC(int phi, int winId) const { return TC_E[phi][winId]; } 00044 inline unsigned int getWTC(int phi, int winId) const { return TC_W[phi][winId]; } 00045 00046 inline unsigned int getMidCondi(int bit) const { return midCondi[bit]; } 00047 inline unsigned int getTrigCondi(int bit, int winId) const { return emcTrigCondi[bit][winId]; } 00048 00049 void print(); 00050 00051 private: 00052 std::string m_name; 00053 00054 unsigned int m_window; 00055 00056 unsigned int E_blk[12]; //charge of each barrel block Id 00057 unsigned int T_blk[12]; //time of each barrel block Id 00058 unsigned int E_blkE[2]; //charge of east block 00059 unsigned int T_blkE[2]; //time of east block 00060 unsigned int E_blkW[2]; //charge of west block 00061 unsigned int T_blkW[2]; //time of west block 00062 unsigned int E_B_Etot; //barrel charge 00063 unsigned int T_B_Etot; //barrel time 00064 unsigned int E_E_Etot; //endcaps charge 00065 unsigned int T_E_Etot; //endcaps time 00066 unsigned int E_blkAll; //total emc charge 00067 unsigned int T_blkAll; //total emc time 00068 unsigned int E_eastHalf; //charge of east half 00069 unsigned int T_eastHalf; //time of east half 00070 unsigned int E_westHalf; //charge of west half 00071 unsigned int T_westHalf; //time of west half 00072 unsigned int E_eastEndHalf; //charge of east end cap 00073 unsigned int T_eastEndHalf; //time of east end cap 00074 unsigned int E_westEndHalf; //charge of west end cap 00075 unsigned int T_westEndHalf; //time of west end cap 00076 00077 unsigned int TC[11][30][32]; //theta, phi, windowId 00078 unsigned int TC_E[32][32]; //phi, windowId 00079 unsigned int TC_W[32][32]; //phi, windowId 00080 00081 unsigned int midCondi[16]; //conditionId 00082 unsigned int emcTrigCondi[16][32]; //conditionId, windowId 00083 00084 }; 00085 00086 #endif // EVENT_TRIG_EACC_H