00001 #ifndef Physics_analysis_DimuPreSelect_H 00002 #define Physics_Analysis_DimuPreSelect_H 00003 00004 //#include "GaudiKnernel/AlgFactory.h" 00005 #include "GaudiKernel/Algorithm.h" 00006 #include "GaudiKernel/NTuple.h" 00007 class DimuPreSelect : public Algorithm 00008 { 00009 public: 00010 DimuPreSelect(const std::string& name, ISvcLocator* pSvcLocator); 00011 StatusCode initialize(); 00012 StatusCode execute(); 00013 StatusCode finalize(); 00014 private: 00015 // event selection 00016 bool m_selectFlag; // Flag of use DimuPreSelect or not 00017 bool m_output; 00018 bool m_mdcPass, m_tofPass, m_emcPass, m_mucPass; // for subdetector flag 00019 bool m_useFlag[4]; //MDC, TOF, EMC, MUC, for configuration 00020 bool m_passFlag[4]; //MDC, TOF, EMC, MUC, for filtering output 00021 00022 long m_totevent; 00023 long m_currun; 00024 long m_curevent; 00025 double m_ecms; 00026 double m_vr0cut; 00027 double m_vz0cut; 00028 double m_pcut_up; 00029 double m_pcut_down; 00030 double m_psymcut; 00031 double m_tcut; 00032 double m_ecut_up; 00033 double m_ecut_down; 00034 double m_dthetacut; 00035 double m_dphicut; 00036 double m_partselect; //0: all, 1 : barrel only, 2 : endcap only 00037 double m_mudigicut; 00038 double m_mutrkcut; 00039 00040 double m_cutpass[20]; 00041 double m_subpass[4]; 00042 double m_totalpass; 00043 00044 // Event selection 00045 NTuple::Tuple* m_passtuple; 00046 NTuple::Item<double> m_run; 00047 NTuple::Item<double> m_event; 00048 NTuple::Item<double> m_part; // 1: barrel, 0: endcap 00049 NTuple::Item<double> m_c1; 00050 NTuple::Item<double> m_c2; 00051 NTuple::Item<double> m_r1; 00052 NTuple::Item<double> m_r2; 00053 NTuple::Item<double> m_z1; 00054 NTuple::Item<double> m_z2; 00055 NTuple::Item<double> m_p1; 00056 NTuple::Item<double> m_p2; 00057 NTuple::Item<double> m_t1; 00058 NTuple::Item<double> m_t2; 00059 NTuple::Item<double> m_e1; 00060 NTuple::Item<double> m_e2; 00061 NTuple::Item<double> m_theta1; 00062 NTuple::Item<double> m_theta2; 00063 NTuple::Item<double> m_phi1; 00064 NTuple::Item<double> m_phi2; 00065 NTuple::Item<double> m_mudigi; 00066 NTuple::Item<double> m_mutrk; 00067 NTuple::Item<double> m_zeroCFlag; 00068 NTuple::Item<double> m_vtRZFlag; 00069 NTuple::Item<double> m_pLimFlag; 00070 NTuple::Item<double> m_pSymFlag; 00071 NTuple::Item<double> m_tLimFlag; 00072 NTuple::Item<double> m_eLimFlag; 00073 NTuple::Item<double> m_eBBFlag; 00074 NTuple::Item<double> m_partFlag; 00075 NTuple::Item<double> m_mudigiFlag; 00076 NTuple::Item<double> m_mutrkFlag; 00077 NTuple::Item<double> m_mdcFlag; 00078 NTuple::Item<double> m_tofFlag; 00079 NTuple::Item<double> m_emcFlag; 00080 NTuple::Item<double> m_mucFlag; 00081 00082 }; 00083 #endif