00001 //************************************************************ 00002 // 00003 // Ekhara generator for BES3 00004 // 00005 // Author: Wang Boqun 00006 // Date: 2011/04/06, created 00007 // 00008 //*********************************************************** 00009 00010 #ifndef Generator_Ekhara_H 00011 #define Generator_Ekhara_H 00012 00013 #include "GaudiKernel/Algorithm.h" 00014 #include "GaudiKernel/ISvcLocator.h" 00015 #include "Ekhara/EkharaRandom.h" 00016 #include "AIDA/IHistogram1D.h" 00017 00018 class IBesRndmGenSvc; 00019 class Ekhara: public Algorithm 00020 { 00021 public: 00022 Ekhara(const std::string& name, ISvcLocator* pSvcLocator); 00023 StatusCode initialize(); 00024 StatusCode execute(); 00025 StatusCode finalize(); 00026 00027 private: 00028 IBesRndmGenSvc* p_BesRndmGenSvc; 00029 int m_ngUpperBound; // # of events to determine the maximum 00030 int m_initSeed; 00031 int m_channel_id; // pi+pi-(1),pi0(2), eta(3), eta' (4) 00032 int m_sw_2pi; // s (1); t (2); s+t (3); s = signal 00033 int m_sw_1pi; // s (1); t (2); s+t (3); s = signal 00034 int m_sw_silent; //output file set up to silent 00035 int m_sw; 00036 int m_piggFFsw; // WZWconst(1), rho pole (2); LMD (3); LMD+V (4); LMD+Vnew (5); 00037 double m_E, m_Es; // CMS-energy 00038 double cut_th1min; //positron min angle cut 00039 double cut_th1max; //positron max angle cut 00040 double cut_E1min; //positron min energy cut 00041 double cut_E1max; //positron max energy cut 00042 double cut_th2min; //electron min angle cut 00043 double cut_th2max; //electron max angle cut 00044 double cut_E2min; //electron min energy cut 00045 double cut_E2max; //electron max energy cut 00046 double cut_Epionmin; //pion (eta) min energy cut 00047 double cut_Epionmax; //pion (eta) max energy cut 00048 double cut_thpionmin; //pion (eta) min angle cut 00049 double cut_thpionmax; //pion (eta) max angle cut 00050 00051 00052 IHistogram1D *hMCPosiMom; 00053 IHistogram1D *hMCPosiThe; 00054 IHistogram1D *hMCPosiPhi; 00055 IHistogram1D *hMCElecMom; 00056 IHistogram1D *hMCElecThe; 00057 IHistogram1D *hMCElecPhi; 00058 IHistogram1D *hMCEtaPMom; 00059 IHistogram1D *hMCEtaPThe; 00060 IHistogram1D *hMCEtaPPhi; 00061 00062 }; 00063 00064 #endif