00001 #ifndef MDCBBEMCEFF_H 00002 #define MDCBBEMCEFF_H 00003 #include "GaudiKernel/Algorithm.h" 00004 #include "GaudiKernel/NTuple.h" 00005 #include "MdcRecEvent/RecMdcTrack.h" 00006 00007 class MdcBbEmcEff:public Algorithm { 00008 public: 00009 MdcBbEmcEff (const std::string& name, ISvcLocator* pSvcLocator); 00010 StatusCode initialize(); 00011 StatusCode execute(); 00012 StatusCode finalize(); 00013 00014 private: 00015 int bookNTuple(); 00016 int getEventInfo(); 00017 int selectBbByEmcShower(); 00018 int bbEmcMdcTrackingEff(); 00019 00020 int m_evtIndex; 00021 bool m_hist; 00022 int m_debug; 00023 00024 //Emc shower Cut 00025 double m_emcDangCutLow; 00026 double m_emcDangCutHigh; 00027 double m_emcEneCutLow; 00028 double m_emcEneCutHigh; 00029 double m_emcEneCutTot; 00030 00031 //Mdc track Cut 00032 double m_dPhiCut; 00033 double m_dCosThetaCut; 00034 double m_d0Cut; 00035 double m_z0Cut; 00036 double m_momCutLow; 00037 double m_momCutHigh; 00038 double m_dPhiMdcEmcCut; 00039 00040 //Barrel or endcap cut 00041 double m_barrelCut; 00042 double m_endcapCutLow; 00043 double m_endcapCutHigh; 00044 enum TrackPosition{OUT=-1, BARREL=0, ENDCAP=1, GAP=2}; 00045 TrackPosition m_posFlag; 00046 00047 00048 long t_evtNo; 00049 long t_runNo; 00050 double t_t0; 00051 int t_t0Stat; 00052 int t_nTk; 00053 double t_emcPhi[2]; 00054 00055 int m_effAllN1; 00056 int m_effAllN2; 00057 int m_effN1[3]; 00058 int m_effN2[3]; 00059 00060 NTuple::Tuple* m_tuple1; 00061 NTuple::Item<long> m_runNo; 00062 NTuple::Item<long> m_evtNo; 00063 NTuple::Item<double> m_t0; 00064 NTuple::Item<long> m_t0Stat; 00065 00066 NTuple::Item<long> m_index; 00067 NTuple::Array<double> m_emcEne; 00068 NTuple::Array<double> m_emcTheta; 00069 NTuple::Array<double> m_emcPhi; 00070 NTuple::Item<double> m_emcDang; 00071 00072 NTuple::Item<float> m_dCosTheta; 00073 NTuple::Item<float> m_dPhi; 00074 NTuple::Item<long> m_nTk; 00075 NTuple::Array<double> m_d0; 00076 NTuple::Array<double> m_z0; 00077 NTuple::Array<double> m_cosTheta; 00078 NTuple::Array<double> m_phi; 00079 NTuple::Array<double> m_p; 00080 NTuple::Array<double> m_pt; 00081 00082 }; 00083 #endif