00001 #ifndef Physics_Analysis_Pi0EtaToGGRec_Alg_H 00002 #define Physics_Analysis_Pi0EtaToGGRec_Alg_H 00003 00004 #include "CLHEP/Vector/LorentzVector.h" 00005 #include "GaudiKernel/Algorithm.h" 00006 #include "GaudiKernel/SmartDataPtr.h" 00007 00008 #include "EventModel/EventHeader.h" 00009 #include "EvtRecEvent/EvtRecEvent.h" 00010 #include "EvtRecEvent/EvtRecTrack.h" 00011 00012 // predeclaration 00013 class RecEmcShower; 00014 class EvtRecTrack; 00015 00016 class Pi0EtaToGGRecAlg : public Algorithm { 00017 00018 public: 00019 00020 Pi0EtaToGGRecAlg(const std::string& name, ISvcLocator* pSvcLocator); 00021 00022 StatusCode initialize(); 00023 StatusCode execute(); 00024 StatusCode finalize(); 00025 00026 private: 00027 00028 00030 HepLorentzVector getP4(RecEmcShower* gTrk); 00031 00032 bool validPhoton(EvtRecTrack* recTrk, 00033 SmartDataPtr<EvtRecEvent> recEvt, 00034 SmartDataPtr<EvtRecTrackCol> recTrkCol); 00035 00036 bool bothInEndcap(HepLorentzVector g1_P4, HepLorentzVector g2_P4); 00037 00038 00041 00043 bool m_rejectEndEnd; 00044 00046 double m_pi0minmass_cut; 00047 double m_pi0maxmass_cut; 00048 double m_pi0chisq_cut; 00049 00051 double m_etaminmass_cut; 00052 double m_etamaxmass_cut; 00053 double m_etachisq_cut; 00054 00056 double m_minEnergy; 00057 00058 bool m_useBarrelEndcap; 00059 double m_maxCosThetaBarrel; 00060 double m_minCosThetaEndcap; 00061 double m_maxCosThetaEndcap; 00062 double m_minEndcapEnergy; 00063 00064 bool m_applyTimeCut; 00065 double m_minTime; 00066 double m_maxTime; 00067 double m_deltaTime; 00068 00069 bool m_applyDangCut; 00070 double m_minDang; 00071 00072 int m_maxNGoodPhoton; 00073 int m_maxNPi0; 00074 //int m_maxNEta; 00075 00076 bool m_doClear; 00077 }; 00078 #endif