00001 //************************************************************ 00002 // 00003 // KKMC generator to BES3 00004 // 00005 // Author: K.L. He 00006 // Date: 2006/04/21, created 00007 // 00008 //*********************************************************** 00009 00010 #ifndef Generator_KKMC_H 00011 #define Generator_KKMC_H 00012 00013 #include "GaudiKernel/Algorithm.h" 00014 #include "GaudiKernel/ISvcLocator.h" 00015 #include "MeasuredEcmsSvc/IMeasuredEcmsSvc.h"//Wu Lianjin 00016 #include <vector> 00017 00018 class IBesRndmGenSvc; 00019 class KKMC: public Algorithm 00020 { 00021 public: 00022 00023 KKMC(const std::string& name, ISvcLocator* pSvcLocator); 00024 StatusCode initialize(); 00025 StatusCode execute(); 00026 StatusCode finalize(); 00027 00028 private: 00029 IBesRndmGenSvc* p_BesRndmGenSvc; 00030 IMeasuredEcmsSvc* ecmsSvc;//Wu Lianjin 00031 int m_numberEvent; 00032 int m_numberEventPrint; 00033 int m_ihvp; 00034 00035 std::vector<int> m_kkseed; 00036 double m_cmsEnergy; 00037 double m_cmsEnergySpread; 00038 bool m_generateResonance; 00039 bool m_generateContinuum; 00040 bool m_generateDownQuark; 00041 bool m_generateUpQuark; 00042 bool m_generateStrangeQuark; 00043 bool m_generateCharmQuark; 00044 bool m_generateBottomQuark; 00045 bool m_generateMuonPair; 00046 bool m_generateTauPair; 00047 bool m_generateRho; 00048 bool m_generateOmega; 00049 bool m_generatePhi; 00050 bool m_generateJPsi; 00051 bool m_generatePsiPrime; 00052 bool m_generatePsi3770; 00053 double m_DdbarCutPsi3770; 00054 bool m_generatePsi4030; 00055 bool m_generatePsi4160; 00056 bool m_generatePsi4415; 00057 bool m_generatePsi4260; 00058 bool m_isrtag; 00059 bool m_fsrtag; 00060 // bool m_ReadEcmsFromDB; 00061 bool m_RdMeasuredEcms; 00062 int m_ich; 00063 00064 std::vector<double> m_paramRho; 00065 std::vector<double> m_paramRh2; 00066 std::vector<double> m_paramRh3; 00067 std::vector<double> m_paramOme; 00068 std::vector<double> m_paramOm2; 00069 std::vector<double> m_paramOm3; 00070 std::vector<double> m_paramPhi; 00071 std::vector<double> m_paramPh2; 00072 std::vector<double> m_paramPsi; 00073 std::vector<double> m_paramPs2; 00074 std::vector<double> m_paramPs3; 00075 std::vector<double> m_paramPs4; 00076 std::vector<double> m_paramPs5; 00077 std::vector<double> m_paramPs6; 00078 std::vector<double> m_paramPs7; 00079 std::vector<double> m_paramPs8; 00080 std::vector<double> m_paramUps; 00081 std::vector<double> m_paramUp2; 00082 std::vector<double> m_paramUp3; 00083 std::vector<double> m_paramUp4; 00084 std::vector<double> m_paramUp5; 00085 std::vector<double> m_paramUp6; 00086 std::vector<double> m_paramZeta; 00087 std::vector<double> m_paramW; 00088 std::vector<std::string> m_pypars; 00089 00090 double m_ps3toNonDDb; 00091 double m_ps3D0toDp; 00092 00093 double m_ps4toD0D0b; 00094 double m_ps4toDpDm; 00095 double m_ps4toDsDs; 00096 double m_ps4toD0D0Star; 00097 double m_ps4toDpDmStar; 00098 double m_ps4toD0StarD0Star; 00099 double m_ps4toDpStarDmStar; 00100 00101 double m_ps5toD0D0b; 00102 double m_ps5toDpDm; 00103 double m_ps5toDsDs; 00104 double m_ps5toD0D0Star; 00105 double m_ps5toDpDmStar; 00106 double m_ps5toDsDsStar; 00107 double m_ps5toD0StarD0Star; 00108 double m_ps5toDpStarDmStar; 00109 00110 bool m_evtGenDecay; 00111 bool m_radiationCorrection; 00112 00113 static int m_runNo; 00114 double xwpar[10000]; 00115 00116 }; 00117 00118 00119 #endif