00001 #ifndef DimuPreSelect_H 00002 #define DimuPreSelect_H 00003 00004 #include "GaudiKernel/NTuple.h" 00005 #include "GaudiKernel/PropertyMgr.h" 00006 00007 class DimuPreSelect { 00008 00009 public: 00010 DimuPreSelect(); 00011 ~DimuPreSelect() {;} 00012 void BookNtuple(NTuple::Tuple*& tuple); 00013 int IsDimu(); //1, barrel; 2, endcap; 0, not dimu. 00014 void Print(); 00015 00016 private: 00017 // event selection 00018 PropertyMgr m_propMgr; 00019 00020 bool m_output; 00021 bool m_mdcPass; 00022 bool m_tofPass; 00023 bool m_emcPass; 00024 bool m_mucPass; 00025 00026 long m_totevent; 00027 long m_currun; 00028 long m_curevent; 00029 double m_ecms; 00030 double m_vr0cut; 00031 double m_vz0cut; 00032 double m_pcut_up; 00033 double m_pcut_down; 00034 double m_psymcut; 00035 double m_tcut; 00036 double m_ecut_up; 00037 double m_ecut_down; 00038 double m_dthetacut; 00039 double m_dphicut; 00040 double m_partselect; //0: all, 1 : barrel only, 2 : endcap only 00041 double m_mudigicut; 00042 double m_mutrkcut; 00043 00044 double m_cutpass[20]; 00045 double m_subpass[4]; 00046 double m_totalpass; 00047 00048 private: 00049 NTuple::Tuple* m_passtuple; 00050 NTuple::Item<double> m_run; 00051 NTuple::Item<double> m_event; 00052 NTuple::Item<double> m_part; // 1: barrel, 0: endcap 00053 NTuple::Item<double> m_c1; 00054 NTuple::Item<double> m_c2; 00055 NTuple::Item<double> m_r1; 00056 NTuple::Item<double> m_r2; 00057 NTuple::Item<double> m_z1; 00058 NTuple::Item<double> m_z2; 00059 NTuple::Item<double> m_p1; 00060 NTuple::Item<double> m_p2; 00061 NTuple::Item<double> m_t1; 00062 NTuple::Item<double> m_t2; 00063 NTuple::Item<double> m_e1; 00064 NTuple::Item<double> m_e2; 00065 NTuple::Item<double> m_theta1; 00066 NTuple::Item<double> m_theta2; 00067 NTuple::Item<double> m_phi1; 00068 NTuple::Item<double> m_phi2; 00069 NTuple::Item<double> m_mudigi; 00070 NTuple::Item<double> m_mutrk; 00071 NTuple::Item<double> m_zeroCFlag; 00072 NTuple::Item<double> m_vtRZFlag; 00073 NTuple::Item<double> m_pLimFlag; 00074 NTuple::Item<double> m_pSymFlag; 00075 NTuple::Item<double> m_tLimFlag; 00076 NTuple::Item<double> m_eLimFlag; 00077 NTuple::Item<double> m_eBBFlag; 00078 NTuple::Item<double> m_partFlag; 00079 NTuple::Item<double> m_mudigiFlag; 00080 NTuple::Item<double> m_mutrkFlag; 00081 NTuple::Item<double> m_mdcFlag; 00082 NTuple::Item<double> m_tofFlag; 00083 NTuple::Item<double> m_emcFlag; 00084 NTuple::Item<double> m_mucFlag; 00085 00086 }; 00087 00088 #endif