00001 #ifndef DigammaPreSelect_H 00002 #define DigammaPreSelect_H 00003 #include <cstring> 00004 00005 #include "GaudiKernel/AlgFactory.h" 00006 #include "GaudiKernel/Algorithm.h" 00007 #include "GaudiKernel/NTuple.h" 00008 #include "EvtRecEvent/EvtRecTrack.h" 00009 00010 00011 class DigammaPreSelect : public Algorithm { 00012 00013 public: 00014 DigammaPreSelect(const std::string& name, ISvcLocator* pSvcLocator); 00015 StatusCode initialize(); 00016 StatusCode execute(); 00017 StatusCode finalize(); 00018 00019 int selectedType() const 00020 { 00021 return m_selectedType; 00022 } 00023 int selectedTrkID1() const 00024 { 00025 return m_selectedTrkID1; 00026 } 00027 int selectedTrkID2() const 00028 { 00029 return m_selectedTrkID2; 00030 } 00031 00032 private: 00033 00034 RecEmcShower* matched( int TrkID ) const ; 00035 double Angle2ClosestShower( int ShowerID ); 00036 // Declare r0, z0 cut for charged tracks 00037 double m_vr0cut; 00038 double m_vz0cut; 00039 00040 double m_lowEnergyShowerCut; 00041 double m_highEnergyShowerCut; 00042 double m_matchThetaCut ; 00043 double m_matchPhiCut ; 00044 00045 double m_highMomentumCut; 00046 double m_EoPMaxCut; 00047 double m_EoPMinCut; 00048 double m_minAngShEnergyCut; 00049 double m_minAngCut; 00050 double m_acolliCut; 00051 double m_eNormCut; 00052 double m_pNormCut; 00053 int m_BarrelOrEndcap; 00054 bool m_output; 00055 00056 double m_oneProngMomentumCut; 00057 00059 int m_selectedType; 00060 int m_selectedTrkID1; 00061 int m_selectedTrkID2; 00063 long int m_events; 00064 00066 long int m_rejected; 00067 00068 int m_oneProngsSelected; 00069 int m_twoProngsMatchedSelected; 00070 int m_twoProngsOneMatchedSelected; 00071 00072 00073 // define Ntuples here 00074 00075 NTuple::Tuple* m_tuple1; //Trk2Sh2 00076 NTuple::Item<double> m_trk1_p; 00077 NTuple::Item<double> m_trk1_theta; 00078 NTuple::Item<double> m_trk1_phi; 00079 NTuple::Item<double> m_sh1_ene; 00080 NTuple::Item<double> m_sh1_theta; 00081 NTuple::Item<double> m_sh1_phi; 00082 00083 NTuple::Item<double> m_trk2_p; 00084 NTuple::Item<double> m_trk2_theta; 00085 NTuple::Item<double> m_trk2_phi; 00086 NTuple::Item<double> m_sh2_ene; 00087 NTuple::Item<double> m_sh2_theta; 00088 NTuple::Item<double> m_sh2_phi; 00089 NTuple::Item<double> m_di_the; 00090 NTuple::Item<double> m_di_phi; 00091 00092 NTuple::Item<double> m_etot; 00093 NTuple::Item<double> m_pNorm; 00094 NTuple::Item<double> m_eNorm; 00095 NTuple::Item<double> m_acolli; 00096 NTuple::Item<double> m_mdc_hit; 00097 NTuple::Tuple* m_tuple2; 00098 NTuple::Item<double> m_sh_ene; 00099 NTuple::Item<double> m_sh_theta; 00100 NTuple::Item<double> m_sh_phi; 00101 }; 00102 00103 #endif