00001 #ifndef Physics_ControlSample_DQASelHadron_H 00002 #define Physics_ControlSample_DQASelHadron_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 DQASelHadron : public Algorithm { 00025 00026 public: 00027 00028 DQASelHadron(const std::string& name, ISvcLocator* pSvcLocator); 00029 StatusCode initialize(); 00030 StatusCode execute(); 00031 StatusCode finalize(); 00032 00033 private: 00034 ITHistSvc *m_thistsvc; 00035 00036 TH1F* m_ha_costheta; 00037 TH1F* m_ha_phi; 00038 TH1F *m_ha_pmax; 00039 TH1F *m_ha_emax; 00040 TH1F *m_ha_etot; 00041 TH1I *m_ha_nneu; 00042 TH1I *m_ha_nchg; 00043 TH1F *m_ha_br; 00044 TH1F *m_ha_bz; 00045 TH1F *m_ha_vx; 00046 TH1F *m_ha_vy; 00047 TH1F *m_ha_vz; 00048 00049 00050 bool m_writentuple; 00051 // Declare r0, z0 cut for charged tracks 00052 double m_ecms; 00053 double m_beamangle; 00054 double m_vr0cut; 00055 double m_vz0cut; 00056 double m_coscut; 00057 00058 00059 bool m_tagHadron; 00060 00061 bool m_useTOF; 00062 bool m_usePID; 00063 bool m_useEMC; 00064 bool m_useMUC; 00065 bool m_useMDC; 00066 bool m_useDEDX; 00067 bool m_useEMConly; 00068 00069 //Declare energy, dphi, dthe cuts for fake gamma's 00070 double m_energyThreshold; 00071 double m_gammaPhiCut; 00072 double m_gammaThetaCut; 00073 double m_gammaTrkCut; 00074 double m_gammathCut; 00075 double m_gammatlCut; 00076 00077 00078 00079 double m_acoll_h_cut; 00080 double m_poeb_h_cut; 00081 double m_dtof_h_cut; 00082 double m_eop_h_cut; 00083 double m_etotal_h_cut; 00084 int m_ngam_h_cut; 00085 double m_br_h_cut; 00086 double m_bz_h_cut; 00087 double m_thr_h_cut; 00088 00089 00090 00091 // define Ntuples here 00092 00093 NTuple::Tuple* m_tuple1; 00094 NTuple::Item<long> m_run ; 00095 NTuple::Item<long> m_rec; 00096 NTuple::Item<long> m_ncharg; 00097 NTuple::Item<long> m_nneu ; 00098 NTuple::Item<long> m_ngch ; 00099 NTuple::Item<long> m_nGam ; 00100 NTuple::Item<long> m_hadrontag ; 00101 00102 NTuple::Item<double> m_evis; 00103 NTuple::Item<double> m_thr; 00104 NTuple::Item<double> m_br; 00105 NTuple::Item<double> m_bz; 00106 00107 NTuple::Item<double> m_acoll; 00108 NTuple::Item<double> m_acopl; 00109 NTuple::Item<double> m_deltatof; 00110 NTuple::Item<double> m_eop1; 00111 NTuple::Item<double> m_eop2; 00112 NTuple::Item<double> m_eoeb1; 00113 NTuple::Item<double> m_eoeb2; 00114 NTuple::Item<double> m_poeb1; 00115 NTuple::Item<double> m_poeb2; 00116 NTuple::Item<double> m_etoeb1; 00117 NTuple::Item<double> m_etoeb2; 00118 NTuple::Item<long> m_mucinfo1; 00119 NTuple::Item<long> m_mucinfo2; 00120 00121 00122 NTuple::Array<double> m_delang ; 00123 NTuple::Array<double> m_delphi ; 00124 NTuple::Array<double> m_delthe ; 00125 NTuple::Array<long> m_nSeed; 00126 NTuple::Array<long> m_npart; 00127 NTuple::Array<long> m_module; 00128 NTuple::Array<long> m_nemchits; 00129 NTuple::Array<double> m_x; 00130 NTuple::Array<double> m_y; 00131 NTuple::Array<double> m_z; 00132 NTuple::Array<double> m_dx; 00133 NTuple::Array<double> m_dy; 00134 NTuple::Array<double> m_dz; 00135 NTuple::Array<double> m_dtheta; 00136 NTuple::Array<double> m_dphi; 00137 NTuple::Array<double> m_theta; 00138 NTuple::Array<double> m_phi; 00139 NTuple::Array<double> m_energy; 00140 NTuple::Array<double> m_dE; 00141 NTuple::Array<double> m_eSeed; 00142 NTuple::Array<double> m_e3x3; 00143 NTuple::Array<double> m_e5x5; 00144 NTuple::Array<double> m_secondMoment; 00145 NTuple::Array<double> m_latMoment; 00146 NTuple::Array<double> m_a20Moment; 00147 NTuple::Array<double> m_a42Moment; 00148 NTuple::Array<double> m_getTime; 00149 NTuple::Array<double> m_getEAll; 00150 00151 00152 00153 00154 NTuple::Array<long> m_charge ; 00155 NTuple::Array<double> m_vx0 ; 00156 NTuple::Array<double> m_vy0 ; 00157 NTuple::Array<double> m_vz0 ; 00158 00159 00160 NTuple::Array<double> m_px ; 00161 NTuple::Array<double> m_py ; 00162 NTuple::Array<double> m_pz ; 00163 NTuple::Array<double> m_p ; 00164 00165 00166 NTuple::Array<double> m_kal_vx0 ; 00167 NTuple::Array<double> m_kal_vy0 ; 00168 NTuple::Array<double> m_kal_vz0 ; 00169 00170 00171 NTuple::Array<double> m_kal_px ; 00172 NTuple::Array<double> m_kal_py ; 00173 NTuple::Array<double> m_kal_pz ; 00174 NTuple::Array<double> m_kal_p ; 00175 00176 00177 00178 00179 NTuple::Array<float> m_probPH; 00180 NTuple::Array<float> m_normPH; 00181 NTuple::Array<float> m_chie ; 00182 NTuple::Array<float> m_chimu ; 00183 NTuple::Array<float> m_chipi ; 00184 NTuple::Array<float> m_chik ; 00185 NTuple::Array<float> m_chip ; 00186 NTuple::Array<float> m_ghit ; 00187 NTuple::Array<float> m_thit ; 00188 00189 NTuple::Array<float> m_e_emc ; 00190 NTuple::Array<float> m_theta_emc ; 00191 NTuple::Array<float> m_phi_emc ; 00192 00193 NTuple::Array<float> m_nhit_muc ; 00194 NTuple::Array<float> m_nlay_muc; 00195 00196 NTuple::Array<double> m_qual_etof ; 00197 NTuple::Array<double> m_tof_etof ; 00198 NTuple::Array<double> m_te_etof ; 00199 NTuple::Array<double> m_tmu_etof ; 00200 NTuple::Array<double> m_tpi_etof ; 00201 NTuple::Array<double> m_tk_etof ; 00202 NTuple::Array<double> m_tp_etof ; 00203 00204 NTuple::Array<double> m_qual_btof1 ; 00205 NTuple::Array<double> m_tof_btof1 ; 00206 NTuple::Array<double> m_te_btof1 ; 00207 NTuple::Array<double> m_tmu_btof1 ; 00208 NTuple::Array<double> m_tpi_btof1 ; 00209 NTuple::Array<double> m_tk_btof1 ; 00210 NTuple::Array<double> m_tp_btof1 ; 00211 NTuple::Array<double> m_t_btof ; 00212 NTuple::Array<double> m_t_etof ; 00213 NTuple::Array<double> m_qual_btof2 ; 00214 NTuple::Array<double> m_tof_btof2 ; 00215 NTuple::Array<double> m_te_btof2 ; 00216 NTuple::Array<double> m_tmu_btof2 ; 00217 NTuple::Array<double> m_tpi_btof2 ; 00218 NTuple::Array<double> m_tk_btof2 ; 00219 NTuple::Array<double> m_tp_btof2 ; 00220 NTuple::Array<long> m_pidcode; 00221 NTuple::Array<double> m_pidprob; 00222 NTuple::Array<double> m_pidchiDedx; 00223 NTuple::Array<double> m_pidchiTof1; 00224 NTuple::Array<double> m_pidchiTof2; 00225 00226 NTuple::Item<double> m_px_cms_ep ; 00227 NTuple::Item<double> m_py_cms_ep ; 00228 NTuple::Item<double> m_pz_cms_ep ; 00229 NTuple::Item<double> m_e_cms_ep ; 00230 NTuple::Item<double> m_cos_ep ; 00231 NTuple::Item<double> m_px_cms_em ; 00232 NTuple::Item<double> m_py_cms_em ; 00233 NTuple::Item<double> m_pz_cms_em ; 00234 NTuple::Item<double> m_e_cms_em ; 00235 NTuple::Item<double> m_cos_em ; 00236 NTuple::Item<double> m_mass_ee ; 00237 NTuple::Item<double> m_emax ; 00238 NTuple::Item<double> m_esum ; 00239 NTuple::Item<long> m_npip ; 00240 NTuple::Item<long> m_npim ; 00241 NTuple::Item<long> m_nkp ; 00242 NTuple::Item<long> m_nkm ; 00243 NTuple::Item<long> m_np ; 00244 NTuple::Item<long> m_npb ; 00245 NTuple::Item<long> m_nep ; 00246 NTuple::Item<long> m_nem ; 00247 NTuple::Item<long> m_nmup ; 00248 NTuple::Item<long> m_nmum ; 00249 00250 00251 00252 00253 00254 }; 00255 00256 00257 #endif