00001 #ifndef Physics_ControlSample_DQASelBhbha_H 00002 #define Physics_ControlSample_DQASelBhabha_H 00003 00004 #include "GaudiKernel/AlgFactory.h" 00005 #include "GaudiKernel/Algorithm.h" 00006 #include "GaudiKernel/NTuple.h" 00007 00008 #include "GaudiKernel/ITHistSvc.h" 00009 #include "TH1.h" 00010 00011 /**********************************************************************/ 00024 class DQASelBhabha : public Algorithm { 00025 00026 public: 00027 00028 DQASelBhabha(const std::string& name, ISvcLocator* pSvcLocator); 00029 StatusCode initialize(); 00030 StatusCode execute(); 00031 StatusCode finalize(); 00032 00033 private: 00034 ITHistSvc *m_thistsvc; 00035 TH1F *m_ee_mass; 00036 TH1F *m_ee_acoll; 00037 TH1F *m_ee_eop_ep; 00038 TH1F *m_ee_eop_em; 00039 TH1F *m_ee_costheta_ep; 00040 TH1F *m_ee_costheta_em; 00041 TH1F *m_ee_phi_ep; 00042 TH1F *m_ee_phi_em; 00043 TH1I *m_ee_nneu; 00044 00045 00046 TH1F *m_ee_etot; 00047 TH1F *m_ee_e_ep; 00048 TH1F *m_ee_e_em; 00049 TH1F *m_ee_p_ep; 00050 TH1F *m_ee_p_em; 00051 00052 TH1F *m_ee_e_mass; 00053 TH1F *m_ee_e_costheta_ep; 00054 TH1F *m_ee_e_costheta_em; 00055 TH1F *m_ee_e_phi_ep; 00056 TH1F *m_ee_e_phi_em; 00057 TH1F *m_ee_e_etot; 00058 TH1F *m_ee_e_e_ep; 00059 TH1F *m_ee_e_e_em; 00060 TH1F *m_ee_e_p_ep; 00061 TH1F *m_ee_e_p_em; 00062 00063 TH1F *m_ee_b_mass; 00064 TH1F *m_ee_b_costheta_ep; 00065 TH1F *m_ee_b_costheta_em; 00066 TH1F *m_ee_b_phi_ep; 00067 TH1F *m_ee_b_phi_em; 00068 TH1F *m_ee_b_etot; 00069 TH1F *m_ee_b_e_ep; 00070 TH1F *m_ee_b_e_em; 00071 TH1F *m_ee_b_p_ep; 00072 TH1F *m_ee_b_p_em; 00073 00074 00075 TH1F *m_ee_eemc_ep; 00076 TH1F *m_ee_eemc_em; 00077 TH1F * m_ee_x_ep; 00078 TH1F * m_ee_y_ep; 00079 TH1F * m_ee_z_ep; 00080 TH1F * m_ee_x_em; 00081 TH1F * m_ee_y_em; 00082 TH1F * m_ee_z_em; 00083 TH1F * m_ee_px_ep; 00084 TH1F * m_ee_py_ep; 00085 TH1F * m_ee_pz_ep; 00086 TH1F * m_ee_px_em; 00087 TH1F * m_ee_py_em; 00088 TH1F * m_ee_pz_em; 00089 TH1F * m_ee_deltatof; 00090 TH1F * m_ee_pidchidedx_ep; 00091 TH1F * m_ee_pidchidedx_em; 00092 TH1F * m_ee_pidchitof1_ep; 00093 TH1F * m_ee_pidchitof1_em; 00094 TH1F * m_ee_pidchitof2_ep; 00095 TH1F * m_ee_pidchitof2_em; 00096 00097 00098 00099 00100 bool m_writentuple; 00101 // Declare r0, z0 cut for charged tracks 00102 double m_ecms; 00103 double m_beamangle; 00104 double m_vr0cut; 00105 double m_vz0cut; 00106 double m_coscut; 00107 00108 bool m_useTOF; 00109 bool m_usePID; 00110 bool m_useEMC; 00111 bool m_useMUC; 00112 bool m_useMDC; 00113 bool m_useDEDX; 00114 bool m_useEMConly; 00115 //Declare energy, dphi, dthe cuts for fake gamma's 00116 double m_energyThreshold; 00117 double m_gammaPhiCut; 00118 double m_gammaThetaCut; 00119 double m_gammaTrkCut; 00120 double m_gammathCut; 00121 double m_gammatlCut; 00122 double m_acoll_e_cut; 00123 double m_acopl_e_cut; 00124 double m_poeb_e_cut; 00125 double m_dtof_e_cut; 00126 double m_eoeb_e_cut; 00127 double m_etotal_e_cut; 00128 00129 double m_tpoeb_e_cut; 00130 double m_tptotal_e_cut; 00131 double m_tetotal_e_cut; 00132 00133 // define Ntuples here 00134 00135 NTuple::Tuple* m_tuple1; 00136 NTuple::Item<long> m_run ; 00137 NTuple::Item<long> m_rec; 00138 NTuple::Item<long> m_ncharg; 00139 NTuple::Item<long> m_nneu ; 00140 NTuple::Item<long> m_ngch ; 00141 NTuple::Item<long> m_nGam ; 00142 NTuple::Item<long> m_bhabhatag ; 00143 00144 NTuple::Item<double> m_acoll; 00145 NTuple::Item<double> m_acopl; 00146 NTuple::Item<double> m_deltatof; 00147 NTuple::Item<double> m_eop1; 00148 NTuple::Item<double> m_eop2; 00149 NTuple::Item<double> m_eoeb1; 00150 NTuple::Item<double> m_eoeb2; 00151 NTuple::Item<double> m_poeb1; 00152 NTuple::Item<double> m_poeb2; 00153 NTuple::Item<double> m_etoeb1; 00154 NTuple::Item<double> m_etoeb2; 00155 NTuple::Item<long> m_mucinfo1; 00156 NTuple::Item<long> m_mucinfo2; 00157 00158 00159 NTuple::Array<double> m_delang ; 00160 NTuple::Array<double> m_delphi ; 00161 NTuple::Array<double> m_delthe ; 00162 NTuple::Array<long> m_nSeed; 00163 NTuple::Array<long> m_npart; 00164 NTuple::Array<long> m_module; 00165 NTuple::Array<long> m_nemchits; 00166 NTuple::Array<double> m_x; 00167 NTuple::Array<double> m_y; 00168 NTuple::Array<double> m_z; 00169 NTuple::Array<double> m_dx; 00170 NTuple::Array<double> m_dy; 00171 NTuple::Array<double> m_dz; 00172 NTuple::Array<double> m_dtheta; 00173 NTuple::Array<double> m_dphi; 00174 NTuple::Array<double> m_theta; 00175 NTuple::Array<double> m_phi; 00176 NTuple::Array<double> m_energy; 00177 NTuple::Array<double> m_dE; 00178 NTuple::Array<double> m_eSeed; 00179 NTuple::Array<double> m_e3x3; 00180 NTuple::Array<double> m_e5x5; 00181 NTuple::Array<double> m_secondMoment; 00182 NTuple::Array<double> m_latMoment; 00183 NTuple::Array<double> m_a20Moment; 00184 NTuple::Array<double> m_a42Moment; 00185 NTuple::Array<double> m_getTime; 00186 NTuple::Array<double> m_getEAll; 00187 00188 00189 00190 00191 NTuple::Array<long> m_charge ; 00192 NTuple::Array<double> m_vx0 ; 00193 NTuple::Array<double> m_vy0 ; 00194 NTuple::Array<double> m_vz0 ; 00195 00196 00197 NTuple::Array<double> m_px ; 00198 NTuple::Array<double> m_py ; 00199 NTuple::Array<double> m_pz ; 00200 NTuple::Array<double> m_p ; 00201 00202 00203 NTuple::Array<double> m_kal_vx0 ; 00204 NTuple::Array<double> m_kal_vy0 ; 00205 NTuple::Array<double> m_kal_vz0 ; 00206 00207 00208 NTuple::Array<double> m_kal_px ; 00209 NTuple::Array<double> m_kal_py ; 00210 NTuple::Array<double> m_kal_pz ; 00211 NTuple::Array<double> m_kal_p ; 00212 00213 00214 00215 00216 NTuple::Array<float> m_probPH; 00217 NTuple::Array<float> m_normPH; 00218 NTuple::Array<float> m_chie ; 00219 NTuple::Array<float> m_chimu ; 00220 NTuple::Array<float> m_chipi ; 00221 NTuple::Array<float> m_chik ; 00222 NTuple::Array<float> m_chip ; 00223 NTuple::Array<float> m_ghit ; 00224 NTuple::Array<float> m_thit ; 00225 00226 NTuple::Array<float> m_e_emc ; 00227 NTuple::Array<float> m_theta_emc ; 00228 NTuple::Array<float> m_phi_emc ; 00229 00230 NTuple::Array<float> m_nhit_muc ; 00231 NTuple::Array<float> m_nlay_muc; 00232 00233 NTuple::Array<double> m_qual_etof ; 00234 NTuple::Array<double> m_tof_etof ; 00235 NTuple::Array<double> m_te_etof ; 00236 NTuple::Array<double> m_tmu_etof ; 00237 NTuple::Array<double> m_tpi_etof ; 00238 NTuple::Array<double> m_tk_etof ; 00239 NTuple::Array<double> m_tp_etof ; 00240 00241 NTuple::Array<double> m_qual_btof1 ; 00242 NTuple::Array<double> m_tof_btof1 ; 00243 NTuple::Array<double> m_te_btof1 ; 00244 NTuple::Array<double> m_tmu_btof1 ; 00245 NTuple::Array<double> m_tpi_btof1 ; 00246 NTuple::Array<double> m_tk_btof1 ; 00247 NTuple::Array<double> m_tp_btof1 ; 00248 NTuple::Array<double> m_t_btof ; 00249 NTuple::Array<double> m_t_etof ; 00250 NTuple::Array<double> m_qual_btof2 ; 00251 NTuple::Array<double> m_tof_btof2 ; 00252 NTuple::Array<double> m_te_btof2 ; 00253 NTuple::Array<double> m_tmu_btof2 ; 00254 NTuple::Array<double> m_tpi_btof2 ; 00255 NTuple::Array<double> m_tk_btof2 ; 00256 NTuple::Array<double> m_tp_btof2 ; 00257 NTuple::Array<long> m_pidcode; 00258 NTuple::Array<double> m_pidprob; 00259 NTuple::Array<double> m_pidchiDedx; 00260 NTuple::Array<double> m_pidchiTof1; 00261 NTuple::Array<double> m_pidchiTof2; 00262 00263 NTuple::Item<double> m_px_cms_ep ; 00264 NTuple::Item<double> m_py_cms_ep ; 00265 NTuple::Item<double> m_pz_cms_ep ; 00266 NTuple::Item<double> m_e_cms_ep ; 00267 NTuple::Item<double> m_cos_ep ; 00268 NTuple::Item<double> m_px_cms_em ; 00269 NTuple::Item<double> m_py_cms_em ; 00270 NTuple::Item<double> m_pz_cms_em ; 00271 NTuple::Item<double> m_e_cms_em ; 00272 NTuple::Item<double> m_cos_em ; 00273 NTuple::Item<double> m_mass_ee ; 00274 NTuple::Item<double> m_emax ; 00275 NTuple::Item<double> m_esum ; 00276 NTuple::Item<long> m_npip ; 00277 NTuple::Item<long> m_npim ; 00278 NTuple::Item<long> m_nkp ; 00279 NTuple::Item<long> m_nkm ; 00280 NTuple::Item<long> m_np ; 00281 NTuple::Item<long> m_npb ; 00282 NTuple::Item<long> m_nep ; 00283 NTuple::Item<long> m_nem ; 00284 NTuple::Item<long> m_nmup ; 00285 NTuple::Item<long> m_nmum ; 00286 00287 00288 00289 00290 00291 }; 00292 00293 00294 #endif