00001 #ifndef EmcTCFinder_h
00002 #define EmcTCFinder_h 1
00003
00004 #include "EmcRawEvent/EmcDigi.h"
00005 #include "Trigger/TrigPara.h"
00006 #include "RealizationSvc/RealizationSvc.h"
00007 #include "RealizationSvc/IRealizationSvc.h"
00008 #include "EmcCalibConstSvc/IEmcCalibConstSvc.h"
00009 using namespace TrigConf;
00010
00011 class EmcTCFinder{
00012 public:
00013 EmcTCFinder();
00014 ~EmcTCFinder();
00015
00016 void setEmcDigi(EmcDigiCol* emcDigiCol);
00017 void setEmcTC(std::vector<uint32_t> vTC);
00018 void setEmcBE(std::vector<double> vBE);
00019
00020 int getTCPhiId(int partId,int ThetaNb,int PhiNb);
00021 int getTCThetaId(int partId,int ThetaNb,int PhiNb);
00022 int getBLKId(int TCTheta,int TCPhi) const;
00023 inline double& getBTCEnergy(int i,int j) { return BTCEnergy[i][j];}
00024 inline double& getEETCEnergy(int i,int j) { return EETCEnergy[i][j];}
00025 inline double& getWETCEnergy(int i,int j) { return WETCEnergy[i][j];}
00026
00027 inline int& getBTC(int i,int j) { return BTC[i][j];}
00028 inline int& getEETC(int i,int j) { return EETC[i][j];}
00029 inline int& getWETC(int i,int j) { return WETC[i][j];}
00030
00031 inline double& getBTC_ADC(int i,int j) { return BTCEnergy_adc[i][j];}
00032 inline double& getEETC_ADC(int i,int j) { return EETCEnergy_adc[i][j];}
00033 inline double& getWETC_ADC(int i,int j) { return WETCEnergy_adc[i][j];}
00034
00035 inline double getBLKE(int i) { return BlkE[i]; }
00036
00037 static EmcTCFinder* get_Emc(void);
00038
00039 private:
00040 int TCThetaNb;
00041 int TCPhiNb;
00042 double BTCEnergy[TrigConf::TCTHETANO_B][TrigConf::TCPHINO_B];
00043 double EETCEnergy[TrigConf::TCTHETANO_E][TrigConf::TCPHINO_E];
00044 double WETCEnergy[TrigConf::TCTHETANO_E][TrigConf::TCPHINO_E];
00045
00046 int WETC[TrigConf::TCTHETANO_E][TrigConf::TCPHINO_E];
00047 int EETC[TrigConf::TCTHETANO_E][TrigConf::TCPHINO_E];
00048 int BTC[TrigConf::TCTHETANO_B][TrigConf::TCPHINO_B];
00049
00050 double BTCEnergy_adc[TrigConf::TCTHETANO_B][TrigConf::TCPHINO_B];
00051 double EETCEnergy_adc[TrigConf::TCTHETANO_E][TrigConf::TCPHINO_E];
00052 double WETCEnergy_adc[TrigConf::TCTHETANO_E][TrigConf::TCPHINO_E];
00053
00054 double BlkE[16];
00055
00056 static EmcTCFinder* emc_Pointer;
00057
00058 RealizationSvc* m_RealizationSvc;
00059 IEmcCalibConstSvc *emcCalibConstSvc;
00060 };
00061 #endif