/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/EvtPreSelect/EventPreSelect/EventPreSelect-00-00-21/EventPreSelect/EventPreSelect.h

Go to the documentation of this file.
00001 #ifndef EventPreSelect_H
00002 #define EventPreSelect_H 
00003 #include <cstring>
00004 
00005 #include "GaudiKernel/AlgFactory.h"
00006 #include "GaudiKernel/Algorithm.h"
00007 #include "GaudiKernel/NTuple.h"
00008 #include "EvtRecEvent/EvtRecTrack.h"
00009 #include "EventPreSelect/DimuPreSelect.h"
00010 
00011 class EventPreSelect : public Algorithm {
00012 
00013 public:
00014   EventPreSelect(const std::string& name, ISvcLocator* pSvcLocator);
00015   StatusCode initialize();
00016   StatusCode execute();
00017   StatusCode finalize(); 
00018 
00019   bool WhetherSector(double ph,double ph1,double ph2);
00020 
00021 private:
00022 
00023   int m_BarrelOrEndcap;
00024   bool m_output;
00025   double m_ecm;
00026   static int idmax[43];
00027 
00028   // Tag this event
00029   bool m_isBarrelBhabha;
00030   bool m_isEndcapBhabha;
00031   bool m_isBarrelDimu;
00032   bool m_isEndcapDimu;
00033   bool m_isHadron;
00034   bool m_isBarrelDiphoton;
00035   bool m_isEndcapDiphoton;
00036 
00037   // Whether select event
00038   bool m_selectBhabha;
00039   bool m_selectDimu;
00040   bool m_selectHadron;
00041   bool m_selectDiphoton;
00042   bool m_writeDst;
00043   bool m_writeRec;
00044 
00045   // Sub-Algorithm for each event
00046   DimuPreSelect *m_dimuAlg;
00047 
00048   // Declare r0, z0 cut for charged tracks
00049   double m_vr0cut;
00050   double m_vz0cut;
00051   double m_pt0HighCut;
00052   double m_pt0LowCut;
00053 
00054   // Declare energy, dphi, dthe cuts for fake gamma's
00055   double m_energyThreshold;
00056   double m_gammaPhiCut;
00057   double m_gammaThetaCut;
00058 
00059   // Select creteria for each event
00060   double m_bhabhaEmcECut;
00061   double m_bhabhaMaxECut;
00062   double m_bhabhaSecECut;
00063   double m_bhabhaDTheCut;
00064   double m_bhabhaDPhiCut1;
00065   double m_bhabhaDPhiCut2;
00066   double m_bhabhaDPhiCut3;
00067   double m_bhabhaDPhiCut4;
00068   int    m_bhabhaMdcHitCutB;
00069   int    m_bhabhaMdcHitCutE;
00070   
00071   double m_dimuEHighCut;
00072   double m_dimuELowCut;
00073   double m_dimuDTheCut;
00074   double m_dimuDPhiCut;
00075   
00076   double m_hadronChaECut;
00077   double m_hadronNeuECut;
00078   
00079   double m_diphotonEmcECut; 
00080   double m_diphotonSecECut;
00081   double m_diphotonDTheCut;
00082   double m_diphotonDPhiCut1;
00083   double m_diphotonDPhiCut2;
00084 
00086   long int m_events;
00087 
00089   long int m_barrelBhabhaNumber;  
00090   long int m_endcapBhabhaNumber;  
00091   long int m_barrelDimuNumber; 
00092   long int m_endcapDimuNumber; 
00093   long int m_hadronNumber;  
00094   long int m_barrelDiphotonNumber;
00095   long int m_endcapDiphotonNumber;
00096 
00097   
00098   Algorithm* m_subalg1; //select barrel bhabha
00099   Algorithm* m_subalg2; //select endcap bhabha
00100   Algorithm* m_subalg3; //select barrel dimu
00101   Algorithm* m_subalg4; //select endcap dimu
00102   Algorithm* m_subalg5; //select hadron
00103   Algorithm* m_subalg6; //select barrel diphoton
00104   Algorithm* m_subalg7; //select endcap diphoton
00105   Algorithm* m_subalg8; //write dst
00106   Algorithm* m_subalg9; //write rec 
00107     
00108   // define Ntuples here
00109 
00110   NTuple::Tuple*  m_tuple0;      //Trk2Sh2
00111   NTuple::Item<double>  m_esum;
00112   NTuple::Item<double>  m_eemc;
00113   NTuple::Item<double>  m_etot;
00114   NTuple::Item<double>  m_nGood;
00115   NTuple::Item<double>  m_nCharge;
00116   NTuple::Item<double>  m_nGam;
00117   NTuple::Item<double>  m_ptot;
00118   NTuple::Item<double>  m_pp;
00119   NTuple::Item<double>  m_pm;
00120   NTuple::Item<long>    m_runnb;
00121   NTuple::Item<long>    m_evtnb;
00122   NTuple::Item<double>  m_maxE;
00123   NTuple::Item<double>  m_secE;
00124   NTuple::Item<double>  m_dThe;
00125   NTuple::Item<double>  m_dPhi;
00126   NTuple::Item<long>    m_mdcHit1; 
00127   NTuple::Item<long>    m_mdcHit2;
00128 
00129   NTuple::Tuple*  m_tuple1;      // charged track vertex
00130   NTuple::Item<double>  m_vx0;
00131   NTuple::Item<double>  m_vy0;
00132   NTuple::Item<double>  m_vz0;
00133   NTuple::Item<double>  m_vr0;
00134   NTuple::Item<double>  m_theta0;
00135   NTuple::Item<double>  m_p0;
00136   NTuple::Item<double>  m_pt0;
00137 
00138   NTuple::Tuple*  m_tuple2;      // photon
00139   NTuple::Item<double>  m_dthe;
00140   NTuple::Item<double>  m_dphi;
00141   NTuple::Item<double>  m_dang;
00142   NTuple::Item<double>  m_eraw;
00143 
00144   NTuple::Tuple*  m_tuple3;      // for dimu selection
00145 };
00146 
00147 #endif 

Generated on Tue Nov 29 23:12:09 2016 for BOSS_7.0.2 by  doxygen 1.4.7