00001 #ifndef GIGAMALG_H 00002 #define GIGAMALG_H 00003 #include "GaudiKernel/Algorithm.h" 00004 #include "GaudiKernel/INTupleSvc.h" 00005 #include "GaudiKernel/NTuple.h" 00006 #include "GaudiKernel/IHistogramSvc.h" 00007 #include "CLHEP/Vector/ThreeVector.h" 00008 #include "CLHEP/Vector/LorentzVector.h" 00009 #include "CLHEP/Vector/TwoVector.h" 00010 #include "BeamEnergySvc/BeamEnergySvc.h" 00011 using CLHEP::Hep3Vector; 00012 using CLHEP::Hep2Vector; 00013 using CLHEP::HepLorentzVector; 00014 #include "TH1F.h" 00015 class ITHistSvc; 00016 class IBeamEnergySvc; 00017 class DiGam:public Algorithm { 00018 public: 00019 DiGam(const std::string& name, ISvcLocator* pSvcLocator); 00020 StatusCode initialize(); 00021 StatusCode execute(); 00022 StatusCode finalize(); 00023 00024 private: 00025 double CrossSection; 00026 double MCEff; 00027 double MCEffBoost; 00028 00029 double jpsiCrossSection; 00030 double jpsiMCEff; 00031 double jpsiMCEffBoost; 00032 double psi2sCrossSection; 00033 double psi2sMCEff; 00034 double psi2sMCEffBoost; 00035 double psi3770CrossSection; 00036 double psi3770MCEff; 00037 double psi3770MCEffBoost; 00038 00039 int RunModel; 00040 ITHistSvc* m_thsvc; 00041 TH1F* h_lum; 00042 IBeamEnergySvc *m_BeamEnergySvc; 00043 00044 int tot; 00045 int signal; 00046 int runNo; 00047 int boost_signal; 00048 int boost_tot; 00049 00050 //cut: 00051 double boostPhimin; 00052 double boostPhimax; 00053 double boostMinEmin; 00054 double boostMinEmax; 00055 double dPhiMin; 00056 double dPhiMax; 00057 double dPhiMinSig; 00058 double dPhiMaxSig; 00059 00060 bool flag; 00061 double E_cms; 00062 00063 NTuple::Tuple* m_tuple2; 00064 NTuple::Item<double> m_tot; 00065 NTuple::Item<double> m_maxE; 00066 NTuple::Item<double> m_minE; 00067 NTuple::Item<double> m_maxTheta; 00068 NTuple::Item<double> m_minTheta; 00069 NTuple::Item<double> m_maxPhi; 00070 NTuple::Item<double> m_minPhi; 00071 NTuple::Item<double> m_delPhi; 00072 NTuple::Item<double> m_delTheta; 00073 NTuple::Item<double> m_angle; 00074 NTuple::Item<double> m_boostAngle; 00075 NTuple::Item<double> m_boostMaxE; 00076 NTuple::Item<double> m_boostMinE; 00077 NTuple::Item<double> m_boostDelPhi; 00078 NTuple::Item<double> m_boostDelTheta; 00079 NTuple::Item<double> m_boostM; 00080 NTuple::Item<double> m_boostIM; 00081 NTuple::Item<double> m_m; 00082 NTuple::Item<double> m_IM; 00083 00084 NTuple::Item<long> m_run; 00085 NTuple::Item<long> m_rec; 00086 NTuple::Item<long> m_idxmc; 00087 NTuple::Array<long> m_pdgid; 00088 NTuple::Array<long> m_motheridx; 00089 }; 00090 #endif