/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Analysis/Physics/PsiPrime/PipiJpsiAlg/PipiJpsiAlg-00-00-03/PipiJpsiAlg/PipiJpsi.h

Go to the documentation of this file.
00001 //psi'--> J/psi pion pion, J/psi --> di-leptons
00002 //Kai Zhu (zhuk@ihep.ac.cn)
00003 #ifndef Physics_Analysis_PipiJpsi_H
00004 #define Physics_Analysis_PipiJpsi_H 
00005 
00006 #include "GaudiKernel/AlgFactory.h"
00007 #include "GaudiKernel/Algorithm.h"
00008 #include "GaudiKernel/NTuple.h"
00009 #include "trkInfo.h"
00010 
00011 class PipiJpsi : public Algorithm {
00012 
00013 public:
00014   PipiJpsi(const std::string& name, ISvcLocator* pSvcLocator);
00015   StatusCode initialize();
00016   StatusCode execute();
00017   StatusCode finalize();  
00018 
00019 private:
00020 
00021   // Declare r0, z0 cut for charged tracks
00022   double m_vr0cut;
00023   double m_vz0cut;
00024 
00025   // 
00026   bool m_checkDedx;
00027   bool m_checkTof;
00028   bool m_eventrate;
00029   int m_chan_det;
00030   // declare the track angle cut and track's transverse momentum
00031   double m_cosThetaCut;  
00032 
00033   // declare the cut angle between two pions to drop gamma conversion
00034   double m_pipi_dang_cut;
00035 
00036   // declare whether pick up sub-sample
00037   bool m_subsample_flag, m_trigger_flag;
00038 
00039   // declare energy/moentum to distinguish e and muon
00040   double m_distin_emuon;
00041 
00042   // define Ntuples here
00043   NTuple::Tuple*  m_tuple1;      // charged track vertex
00044   NTuple::Item<double>  m_vx0;
00045   NTuple::Item<double>  m_vy0;
00046   NTuple::Item<double>  m_vz0;
00047   NTuple::Item<double>  m_vr0;
00048 
00049   NTuple::Tuple*  m_tuple2;      // fake photon
00050   NTuple::Item<double>  m_dthe;
00051   NTuple::Item<double>  m_dphi;
00052   NTuple::Item<double>  m_dang;
00053   NTuple::Item<double>  m_eraw;
00054   NTuple::Item<long>  m_nGam;
00055 
00056   NTuple::Tuple* m_tuple3;    // dE/dx
00057   NTuple::Item<double> m_ptrk;
00058   NTuple::Item<double> m_chie;
00059   NTuple::Item<double> m_chimu;
00060   NTuple::Item<double> m_chipi;
00061   NTuple::Item<double> m_chik;
00062   NTuple::Item<double> m_chip;
00063   NTuple::Item<double> m_probPH;
00064   NTuple::Item<double> m_normPH;
00065   NTuple::Item<double> m_ghit;
00066   NTuple::Item<double> m_thit;
00067 
00068   NTuple::Tuple* m_tuple4;   // endcap tof
00069   NTuple::Item<double> m_ptot_etof;
00070   NTuple::Item<double> m_cntr_etof;
00071   NTuple::Item<double> m_path_etof;
00072   NTuple::Item<double> m_tof_etof;
00073   NTuple::Item<double> m_te_etof;
00074   NTuple::Item<double> m_tmu_etof;
00075   NTuple::Item<double> m_tpi_etof;
00076   NTuple::Item<double> m_tk_etof;
00077   NTuple::Item<double> m_tp_etof;
00078   NTuple::Item<double> m_ph_etof;
00079   NTuple::Item<double> m_rhit_etof;
00080   NTuple::Item<double> m_qual_etof;
00081 
00082   NTuple::Tuple* m_tuple5;  // barrel inner tof
00083   NTuple::Item<double> m_ptot_btof1;
00084   NTuple::Item<double> m_cntr_btof1;
00085   NTuple::Item<double> m_path_btof1;
00086   NTuple::Item<double> m_tof_btof1;
00087   NTuple::Item<double> m_te_btof1;
00088   NTuple::Item<double> m_tmu_btof1;
00089   NTuple::Item<double> m_tpi_btof1;
00090   NTuple::Item<double> m_tk_btof1;
00091   NTuple::Item<double> m_tp_btof1;
00092   NTuple::Item<double> m_ph_btof1;
00093   NTuple::Item<double> m_zhit_btof1;
00094   NTuple::Item<double> m_qual_btof1;
00095 
00096   NTuple::Tuple* m_tuple6;  // barrel outer tof
00097   NTuple::Item<double> m_ptot_btof2;
00098   NTuple::Item<double> m_cntr_btof2;
00099   NTuple::Item<double> m_path_btof2;
00100   NTuple::Item<double> m_tof_btof2;
00101   NTuple::Item<double> m_te_btof2;
00102   NTuple::Item<double> m_tmu_btof2;
00103   NTuple::Item<double> m_tpi_btof2;
00104   NTuple::Item<double> m_tk_btof2;
00105   NTuple::Item<double> m_tp_btof2;
00106   NTuple::Item<double> m_ph_btof2;
00107   NTuple::Item<double> m_zhit_btof2;
00108   NTuple::Item<double> m_qual_btof2;
00109   
00110   // with the method of momentum selection
00111   NTuple::Tuple* m_tuple8; 
00112   NTuple::Item<double> m_mom_lepm;                  
00113   NTuple::Item<double> m_mom_lepp;          
00114   NTuple::Item<double> m_mom_pionp;                 
00115   NTuple::Item<double> m_mom_pionm;                 
00116   NTuple::Item<double> m_pipi_dang;                 
00117   NTuple::Item<double> m_cms_lepp;                  
00118   NTuple::Item<double> m_cms_lepm;
00119   NTuple::Item<double> m_mass_twopi;       
00120   NTuple::Item<double> m_mass_jpsi;   
00121   NTuple::Item<double> m_mass_recoil;   
00122   NTuple::Item<double> m_inv_mass;   
00123   NTuple::Item<double> m_tot_e;   
00124   NTuple::Item<double> m_tot_px;   
00125   NTuple::Item<double> m_tot_py;   
00126   NTuple::Item<double> m_tot_pz;   
00127   NTuple::Item<double> m_ep_ratio;
00128   NTuple::Item<long>   m_event_flag; // 3 or 4 tracks, 4=>4 tracks, 0=> miss pi+, 1=> miss pi-, 2=> miss lepton+, 3=> miss lepton-
00129   NTuple::Item<double> m_trans_ratio_lepm;                  
00130   NTuple::Item<double> m_trans_ratio_lepp;          
00131   NTuple::Item<double> m_trans_ratio_pionp;                 
00132   NTuple::Item<double> m_trans_ratio_pionm;         
00133   NTuple::Item<long> m_run;
00134   NTuple::Item<long> m_event;
00135   NTuple::Item<long> m_index;
00136   NTuple::Array<double> m_cos_theta;
00137   NTuple::Array<double> m_phi;
00138   NTuple::Matrix<double> m_four_mom;
00139   // we don't need smear, actually, assume one track of pi pi is missing, the recoil mass is actually the invariant of pair-lepton
00140   NTuple::Item<long> m_pion_matched;
00141   NTuple::Item<long> m_lep_matched;
00142   // book MCtruth
00143   NTuple::Item<long>   m_idxmc;
00144   NTuple::Array<long>  m_pdgid;
00145   NTuple::Array<long>  m_motheridx;
00146   NTuple::Item<double> m_true_pionp; // pions' momentum from MC truth   
00147   NTuple::Item<double> m_true_pionm;   
00148 
00149 };
00150 
00151 
00152 #endif 

Generated on Tue Nov 29 22:57:37 2016 for BOSS_7.0.2 by  doxygen 1.4.7