Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

KKMC Class Reference

#include <KKMC.h>

List of all members.

Public Member Functions

StatusCode execute ()
StatusCode execute ()
StatusCode finalize ()
StatusCode finalize ()
StatusCode initialize ()
StatusCode initialize ()
 KKMC (const std::string &name, ISvcLocator *pSvcLocator)
 KKMC (const std::string &name, ISvcLocator *pSvcLocator)

Private Attributes

double m_cmsEnergy
double m_cmsEnergySpread
double m_DdbarCutPsi3770
bool m_evtGenDecay
bool m_fsrtag
bool m_generateBottomQuark
bool m_generateCharmQuark
bool m_generateContinuum
bool m_generateDownQuark
bool m_generateJPsi
bool m_generateMuonPair
bool m_generateOmega
bool m_generatePhi
bool m_generatePsi3770
bool m_generatePsi4030
bool m_generatePsi4160
bool m_generatePsi4260
bool m_generatePsi4415
bool m_generatePsiPrime
bool m_generateResonance
bool m_generateRho
bool m_generateStrangeQuark
bool m_generateTauPair
bool m_generateUpQuark
bool m_isrtag
std::vector< int > m_kkseed
std::vector< int > m_kkseed
int m_numberEvent
int m_numberEventPrint
std::vector< double > m_paramOm2
std::vector< double > m_paramOm2
std::vector< double > m_paramOm3
std::vector< double > m_paramOm3
std::vector< double > m_paramOme
std::vector< double > m_paramOme
std::vector< double > m_paramPh2
std::vector< double > m_paramPh2
std::vector< double > m_paramPhi
std::vector< double > m_paramPhi
std::vector< double > m_paramPs2
std::vector< double > m_paramPs2
std::vector< double > m_paramPs3
std::vector< double > m_paramPs3
std::vector< double > m_paramPs4
std::vector< double > m_paramPs4
std::vector< double > m_paramPs5
std::vector< double > m_paramPs5
std::vector< double > m_paramPs6
std::vector< double > m_paramPs6
std::vector< double > m_paramPs7
std::vector< double > m_paramPs7
std::vector< double > m_paramPs8
std::vector< double > m_paramPs8
std::vector< double > m_paramPsi
std::vector< double > m_paramPsi
std::vector< double > m_paramRh2
std::vector< double > m_paramRh2
std::vector< double > m_paramRh3
std::vector< double > m_paramRh3
std::vector< double > m_paramRho
std::vector< double > m_paramRho
std::vector< double > m_paramUp2
std::vector< double > m_paramUp2
std::vector< double > m_paramUp3
std::vector< double > m_paramUp3
std::vector< double > m_paramUp4
std::vector< double > m_paramUp4
std::vector< double > m_paramUp5
std::vector< double > m_paramUp5
std::vector< double > m_paramUp6
std::vector< double > m_paramUp6
std::vector< double > m_paramUps
std::vector< double > m_paramUps
std::vector< double > m_paramW
std::vector< double > m_paramW
std::vector< double > m_paramZeta
std::vector< double > m_paramZeta
double m_ps3D0toDp
double m_ps3toNonDDb
double m_ps4toD0D0b
double m_ps4toD0D0Star
double m_ps4toD0StarD0Star
double m_ps4toDpDm
double m_ps4toDpDmStar
double m_ps4toDpStarDmStar
double m_ps4toDsDs
double m_ps5toD0D0b
double m_ps5toD0D0Star
double m_ps5toD0StarD0Star
double m_ps5toDpDm
double m_ps5toDpDmStar
double m_ps5toDpStarDmStar
double m_ps5toDsDs
double m_ps5toDsDsStar
bool m_radiationCorrection
IBesRndmGenSvcp_BesRndmGenSvc
IBesRndmGenSvcp_BesRndmGenSvc


Constructor & Destructor Documentation

KKMC::KKMC const std::string &  name,
ISvcLocator *  pSvcLocator
 

00092                                                           : Algorithm(name, pSvcLocator)
00093 {
00094   m_numberEvent = 0;
00095 
00096   m_kkseed.clear();
00097   m_kkseed.push_back(123456);
00098   m_kkseed.push_back(1);
00099   m_kkseed.push_back(0);
00100 
00101 
00102   declareProperty("NumberOfEventPrinted", m_numberEventPrint=100);
00103   declareProperty("InitializedSeed", m_kkseed);
00104   declareProperty("CMSEnergy", m_cmsEnergy = 3.773);
00105   declareProperty("BeamEnergySpread", m_cmsEnergySpread = 0.0013); //it should be beam energy spread,pingrg-2009-09-24
00106   declareProperty("GenerateResonance", m_generateResonance = true);
00107   declareProperty("GenerateContinuum", m_generateContinuum = true);
00108   declareProperty("GenerateDownQuark", m_generateDownQuark = true);
00109   declareProperty("GenerateUpQuark", m_generateUpQuark = true);
00110   declareProperty("GenerateStrangeQuark", m_generateStrangeQuark = true);
00111   declareProperty("GenerateCharmQuark", m_generateCharmQuark = true);
00112   declareProperty("GenerateBottomQuark", m_generateBottomQuark = false);
00113   declareProperty("GenerateMuonPair", m_generateMuonPair = true);
00114   declareProperty("GenerateTauPair", m_generateTauPair = true);
00115   declareProperty("GenerateRho", m_generateRho = true);
00116   declareProperty("GenerateOmega", m_generateOmega = true);
00117   declareProperty("GeneratePhi", m_generatePhi = true);
00118   declareProperty("GenerateJPsi", m_generateJPsi = true);
00119   declareProperty("GeneratePsiPrime", m_generatePsiPrime = true);
00120   declareProperty("GeneratePsi3770", m_generatePsi3770 = true);
00121   declareProperty("GeneratePsi4030", m_generatePsi4030 = true);
00122   declareProperty("GeneratePsi4160", m_generatePsi4160 = true);
00123   declareProperty("GeneratePsi4415", m_generatePsi4415 = true);
00124   declareProperty("GeneratePsi4260", m_generatePsi4260 = true);
00125   declareProperty("ThresholdCut", m_DdbarCutPsi3770 = -3.0); //generate DDbar decay, pingrg-2009-10-14
00126   declareProperty("TagISR", m_isrtag = false);               //Tag ISR photon, false: ID=22, true: ID=-22, pingrg-2010-6-30
00127   declareProperty("TagFSR", m_fsrtag = false);               //Tag FSR photon, false: ID=22, true: ID=-22, pingrg-2010-6-30
00128 
00129 
00130   m_paramRho.clear(); m_paramRho.push_back(0.77457e0); m_paramRho.push_back(147.65e-3); m_paramRho.push_back(6.89e-6);
00131   m_paramRh2.clear(); m_paramRh2.push_back(1.465e0); m_paramRh2.push_back(310e-3); m_paramRh2.push_back(0.0e-6);
00132   m_paramRh3.clear(); m_paramRh3.push_back(1.700e0); m_paramRh3.push_back(240e-3); m_paramRh3.push_back(0.0e-6);
00133   m_paramOme.clear(); m_paramOme.push_back(0.78194e0);m_paramOme.push_back(8.41e-3);m_paramOme.push_back(0.60e-6);
00134   m_paramOm2.clear(); m_paramOm2.push_back(1.419e0);m_paramOm2.push_back(174e-3);m_paramOm2.push_back(0.00e-6);
00135   m_paramOm3.clear(); m_paramOm3.push_back(1.649e0);m_paramOm3.push_back(220e-3);m_paramOm3.push_back(0.00e-6);
00136   m_paramPhi.clear(); m_paramPhi.push_back(1.01942e0);m_paramPhi.push_back(4.46e-3);m_paramPhi.push_back(1.33e-6);
00137   m_paramPh2.clear(); m_paramPh2.push_back(1.680e0);m_paramPh2.push_back(150e-3);m_paramPh2.push_back(0.00e-6);
00138   m_paramPsi.clear(); m_paramPsi.push_back(3.096916e0);m_paramPsi.push_back(0.091e-3);m_paramPsi.push_back(5.40e-6);
00139   m_paramPs2.clear(); m_paramPs2.push_back(3.686093e0);m_paramPs2.push_back(0.281e-3);m_paramPs2.push_back(2.12e-6);
00140   m_paramPs3.clear(); m_paramPs3.push_back(3.770e0);m_paramPs3.push_back(23.6e-3);m_paramPs3.push_back(0.26e-6);
00141   m_paramPs4.clear(); m_paramPs4.push_back(4.040e0);m_paramPs4.push_back(52e-3);m_paramPs4.push_back(0.75e-6);
00142   m_paramPs5.clear(); m_paramPs5.push_back(4.159e0);m_paramPs5.push_back(78e-3);m_paramPs5.push_back(0.77e-6);
00143   m_paramPs6.clear(); m_paramPs6.push_back(4.415e0);m_paramPs6.push_back(43e-3);m_paramPs6.push_back(0.47e-6);
00144   m_paramPs7.clear(); m_paramPs7.push_back(4.259e0);m_paramPs7.push_back(88e-3);m_paramPs7.push_back(0.00e-6);
00145   m_paramPs8.clear(); m_paramPs8.push_back(3.872e0);m_paramPs8.push_back(100e-3);m_paramPs8.push_back(0.00e-6);
00146   m_paramUps.clear(); m_paramUps.push_back(9.46030e0); m_paramUps.push_back(0.0525e-3); m_paramUps.push_back(1.32e-6);
00147   m_paramUp2.clear(); m_paramUp2.push_back(10.02326e0); m_paramUp2.push_back(0.044e-3); m_paramUp2.push_back(0.52e-6);
00148   m_paramUp3.clear(); m_paramUp3.push_back(10.3552e0); m_paramUp3.push_back(0.026e-3); m_paramUp3.push_back(0.00e-6);
00149   m_paramUp4.clear(); m_paramUp4.push_back(10.580e0); m_paramUp4.push_back(14e-3); m_paramUp4.push_back(0.248e-6);
00150   m_paramUp5.clear(); m_paramUp5.push_back(10.865e0); m_paramUp5.push_back(110e-3); m_paramUp5.push_back(0.31e-6);
00151   m_paramUp6.clear(); m_paramUp6.push_back(11.019); m_paramUp6.push_back(79e-3); m_paramUp6.push_back(0.13e-6);
00152   m_paramZeta.clear(); m_paramZeta.push_back(91.1876e0); m_paramZeta.push_back(2.4952e0); m_paramZeta.push_back(0.08391e0);
00153   m_paramW.clear(); m_paramW.push_back(80.43); m_paramW.push_back(2.11e0);
00154 
00155   declareProperty("ResParameterRho", m_paramRho);
00156   declareProperty("ResParameterRh2", m_paramRh2);
00157   declareProperty("ResParameterRh3", m_paramRh3);
00158   declareProperty("ResParameterOme", m_paramOme);
00159   declareProperty("ResParameterOm2", m_paramOm2);
00160   declareProperty("ResParameterOm3", m_paramOm3);
00161   declareProperty("ResParameterPhi", m_paramPhi);
00162   declareProperty("ResParameterPh2", m_paramPh2);
00163   declareProperty("ResParameterPsi", m_paramPsi);
00164   declareProperty("ResParameterPs2", m_paramPs2);
00165   declareProperty("ResParameterPs3", m_paramPs3);
00166   declareProperty("ResParameterPs4", m_paramPs4);
00167   declareProperty("ResParameterPs5", m_paramPs5);
00168   declareProperty("ResParameterPs6", m_paramPs6);
00169   declareProperty("ResParameterPs7", m_paramPs7);
00170   declareProperty("ResParameterPs8", m_paramPs8);
00171   declareProperty("ResParameterUps", m_paramUps);
00172   declareProperty("ResParameterUp2", m_paramUp2);
00173   declareProperty("ResParameterUp3", m_paramUp3);
00174   declareProperty("ResParameterUp4", m_paramUp4);
00175   declareProperty("ResParameterUp5", m_paramUp5);
00176   declareProperty("ResParameterUp6", m_paramUp6);
00177   declareProperty("ResParameterZeta", m_paramZeta);
00178   declareProperty("ResParameterW", m_paramW);
00179 
00180   // psi(3770) decay
00181   declareProperty("Psi3770toNonDDb", m_ps3toNonDDb = 0.0);
00182   declareProperty("Psi3770RatioOfD0toDp", m_ps3D0toDp = 0.563);
00183   // psi(4030) decay
00184   declareProperty("Psi4030toD0D0b", m_ps4toD0D0b = 0.0227);
00185   declareProperty("Psi4030toDpDm", m_ps4toDpDm = 0.0167);
00186   declareProperty("Psi4030toDsDs", m_ps4toDsDs = 0.0383);
00187   declareProperty("Psi4030toD0D0Star", m_ps4toD0D0Star = 0.2952);
00188   declareProperty("Psi4030toDpDmStar", m_ps4toDpDmStar = 0.2764);
00189   declareProperty("Psi4030toD0StarD0Star", m_ps4toD0StarD0Star=0.2476);
00190   declareProperty("Psi4030toDpStarDmStar", m_ps4toDpStarDmStar=0.1041);
00191   // psi(4160) decay
00192   declareProperty("Psi4160toD0D0b", m_ps5toD0D0b = 0.0190);
00193   declareProperty("Psi4160toDpDm", m_ps5toDpDm = 0.0180);
00194   declareProperty("Psi4160toDsDs", m_ps5toDsDs = 0.0488);
00195   declareProperty("Psi4160toD0D0Star", m_ps5toD0D0Star = 0.1248);
00196   declareProperty("Psi4160toDpDmStar", m_ps5toDpDmStar = 0.1240);
00197   declareProperty("Psi4160toDsDsStar", m_ps5toDsDsStar = 0.0820);
00198   declareProperty("Psi4160toD0StarD0Star", m_ps5toD0StarD0Star=0.3036);
00199   declareProperty("Psi4160toDpStarDmStar", m_ps5toDpStarDmStar=0.2838);
00200   // interface to EvtGen
00201   declareProperty("ParticleDecayThroughEvtGen", m_evtGenDecay = true);
00202   declareProperty("RadiationCorrection", m_radiationCorrection = true);
00203 
00204 }

KKMC::KKMC const std::string &  name,
ISvcLocator *  pSvcLocator
 


Member Function Documentation

StatusCode KKMC::execute  ) 
 

StatusCode KKMC::execute  ) 
 

00402                          {
00403 
00404   MsgStream log(msgSvc(), name());
00405   
00406   log << MSG::INFO << "KKMC in execute()" << endreq;
00407 
00408 
00409   HepMC::IO_HEPEVT HepEvtIO;
00410 
00411  
00412   int KeySkip,iflag;
00413   do {
00414     HEPEVT_CLEAN();
00415     KK2F_MAKE();
00416     KK2F_GETKEYSKIP(KeySkip);
00417     PSIPP_DDBARCUT(iflag);
00418   } while (KeySkip != 0 || iflag ==0);
00419 
00420   int KeyInter;
00421   KK2F_GETEVTGENINTERFACE(KeyInter);
00422 
00423   //  PSIPP_DDBARCUT(iflag);
00424   //  if(iflag == 0)  {return StatusCode::SUCCESS;}
00425 
00426   if(KeyInter == 0) {  // make photos correction
00427     int Pos1, Pos2, KFfin, Nhep;
00428     HEPEVT_NUMHEP(Nhep);
00429     HEPEVT_GETF(Pos1);
00430     HEPEVT_GETFBAR(Pos2);
00431     HEPEVT_GETKFFIN(KFfin);
00432     int Posn = Pos1;
00433     if(Pos2 > Posn) Posn = Pos2;
00434     Posn = Posn + 1;
00435     if(KFfin < 10) Posn = Posn + 1;
00436     for(int ip = Posn; ip <= Nhep; ip++) HEPEVT_SETPHOTOSFLAGTRUE(ip);
00437     for(int ip = Posn; ip <= Nhep; ip++) PHOTOS(ip);
00438     PYHEPC(2);
00439   }
00440  
00441   //sleep(5);
00442 
00443   m_numberEvent += 1;
00444 
00445   if(m_numberEvent <= m_numberEventPrint) PYLIST(1);
00446   log << MSG::INFO <<"  " <<m_numberEvent<<"th event was generated !!" <<endreq;
00447   
00448   PYHEPC(1);
00449 
00450   HepMC::GenEvent* evt = HepEvtIO.read_next_event();
00451   evt->set_event_number(m_numberEvent);
00452   evt->set_signal_process_id(1);
00453   //  evt->print();
00454 
00455   // Check if the McCollection already exists
00456   SmartDataPtr<McGenEventCol> anMcCol(eventSvc(), "/Event/Gen");
00457   if (anMcCol!=0) {
00458     // Add event to existing collection
00459     MsgStream log(messageService(), name());
00460     log << MSG::INFO << "Add McGenEvent to existing collection" << endreq;
00461     McGenEvent* mcEvent = new McGenEvent(evt);
00462     anMcCol->push_back(mcEvent);
00463   }  else {
00464     // Create Collection and add  to the transient store
00465     McGenEventCol *mcColl = new McGenEventCol;
00466     McGenEvent* mcEvent = new McGenEvent(evt);
00467     mcColl->push_back(mcEvent);
00468     StatusCode sc = eventSvc()->registerObject("/Event/Gen",mcColl);
00469     if (sc != StatusCode::SUCCESS) {
00470       log << MSG::ERROR << "Could not register McGenEvent" << endreq;
00471       delete mcColl;
00472       delete evt;
00473       delete mcEvent;
00474       return StatusCode::FAILURE;
00475     }  else {
00476       //      log << MSG::INFO << "McGenEventCol created and " << npart <<" particles stored in McGenEvent" << endreq;
00477     }
00478   }
00479   
00480 
00481 
00482 
00483  return StatusCode::SUCCESS;
00484 
00485 }

StatusCode KKMC::finalize  ) 
 

StatusCode KKMC::finalize  ) 
 

00487                           {
00488 
00489   MsgStream log(msgSvc(), name());
00490   
00491   log << MSG::INFO << "KKMC in finalize()" << endreq;
00492 
00493   KK2F_FINALIZE();
00494   double xSecPb, xErrPb;
00495   KK2F_GETXSECMC(xSecPb, xErrPb);
00496 
00497   log << MSG::INFO << "Total MC Xsec = " << xSecPb << " +/- " << xErrPb << endreq;
00498   return StatusCode::SUCCESS;
00499 }

StatusCode KKMC::initialize  ) 
 

StatusCode KKMC::initialize  ) 
 

00206                             {
00207 
00208   double xwpar[10000];
00209   MsgStream log(msgSvc(), name());
00210   
00211   log << MSG::INFO << "KKMC in initialize()" << endreq;
00212 
00213   //set Bes unified random engine
00214   static const bool CREATEIFNOTTHERE(true);
00215   StatusCode RndmStatus = service("BesRndmGenSvc", p_BesRndmGenSvc, CREATEIFNOTTHERE);
00216   if (!RndmStatus.isSuccess() || 0 == p_BesRndmGenSvc)
00217   {
00218     log << MSG::ERROR << " Could not initialize Random Number Service" << endreq;
00219     return RndmStatus;
00220   }
00221   HepRandomEngine* engine  = p_BesRndmGenSvc->GetEngine("KKMC");
00222   KKMCRandom::setRandomEngine(engine);
00223 
00224 
00225   WHYM_SETDEF(xwpar);
00226   xwpar[0] = m_cmsEnergy;        // c.m.s energy
00227   xwpar[1] = m_cmsEnergySpread;  // energy spread of c.m.s.
00228   xwpar[3] = 6.0;                // fortran output unit
00229 
00230   if(m_generateResonance)   // flag indicate to generate Resonance data
00231     xwpar[12] = 1.0;
00232   else
00233     xwpar[12] = 0.0;
00234 
00235   if(m_generateContinuum )   // generate continuum
00236     xwpar[3000] = 1.0;
00237   else
00238     xwpar[3000] = 0.0;
00239   
00240   if(m_generateDownQuark)         // d quark production
00241     xwpar[400] = 1.0;
00242   else
00243     xwpar[400] = 0.0;
00244 
00245   if(m_generateUpQuark)         // u quark production
00246     xwpar[401] = 1.0;
00247   else
00248     xwpar[401] = 0.0;
00249 
00250   if(m_generateStrangeQuark)         // s quark production
00251     xwpar[402] = 1.0;
00252   else
00253     xwpar[402] = 0.0;
00254 
00255   if(m_generateCharmQuark)         // c quark production
00256     xwpar[403] = 1.0;
00257   else
00258     xwpar[403] = 0.0;
00259 
00260   if(m_generateBottomQuark)         // b quark production
00261     xwpar[404] = 1.0;
00262   else
00263     xwpar[404] = 0.0;
00264  
00265 
00266   if(m_generateMuonPair)     // e+ e- --> mu+ mu- 
00267     xwpar[412] = 1.0;
00268   else
00269     xwpar[412] = 0.0; 
00270 
00271   if(m_generateTauPair)      // e+ e- --> tau+ tau-
00272     xwpar[414] = 1.0;
00273   else
00274     xwpar[414] = 0.0;
00275   int keyuds = 0;
00276   if(m_generateRho)     keyuds |= 1;
00277   if(m_generateOmega)   keyuds |= 2;
00278   if(m_generatePhi)     keyuds |= 4;
00279   
00280   int keycharm = 0;
00281   if(m_generateJPsi)     keycharm |=  1;
00282   if(m_generatePsiPrime) keycharm |=  2;
00283   if(m_generatePsi3770)  keycharm |=  4;
00284   if(m_generatePsi4030)  keycharm |=  8;
00285   if(m_generatePsi4160)  keycharm |= 16;
00286   if(m_generatePsi4415)  keycharm |= 32;
00287   if(m_generatePsi4260)  keycharm |= 64;
00288 
00289   // resonant parameters 
00290   int offset = 3100;
00291   for(int i = 0; i < 3; i++) xwpar[offset+i] = m_paramRho[i];
00292   offset = offset + 3;
00293   for(int i = 0; i < 3; i++) xwpar[offset+i] = m_paramRh2[i];
00294   offset = offset + 3;
00295   for(int i = 0; i < 3; i++) xwpar[offset+i] = m_paramRh3[i];
00296   offset = offset + 3;
00297   for(int i = 0; i < 3; i++) xwpar[offset+i] = m_paramOme[i];
00298   offset = offset + 3;
00299   for(int i = 0; i < 3; i++) xwpar[offset+i] = m_paramOm2[i];
00300   offset = offset + 3;
00301   for(int i = 0; i < 3; i++) xwpar[offset+i] = m_paramOm3[i];
00302   offset = offset + 3;
00303   for(int i = 0; i < 3; i++) xwpar[offset+i] = m_paramPhi[i];
00304   offset = offset + 3;
00305  for(int i = 0; i < 3; i++) xwpar[offset+i] = m_paramPh2[i];
00306  offset = offset + 3;
00307  for(int i = 0; i < 3; i++) xwpar[offset+i] = m_paramPsi[i];
00308  offset = offset + 3;
00309  for(int i = 0; i < 3; i++) xwpar[offset+i] = m_paramPs2[i];
00310  offset = offset + 3;
00311  for(int i = 0; i < 3; i++) xwpar[offset+i] = m_paramPs3[i];
00312  offset = offset + 3;
00313  for(int i = 0; i < 3; i++) xwpar[offset+i] = m_paramPs4[i];
00314  offset = offset + 3;
00315  for(int i = 0; i < 3; i++) xwpar[offset+i] = m_paramPs5[i];
00316  offset = offset + 3;
00317  for(int i = 0; i < 3; i++) xwpar[offset+i] = m_paramPs6[i];
00318  offset = offset + 3;
00319  for(int i = 0; i < 3; i++) xwpar[offset+i] = m_paramPs7[i];
00320  offset = offset + 3;
00321  for(int i = 0; i < 3; i++) xwpar[offset+i] = m_paramPs8[i];
00322  offset = offset + 3;
00323  for(int i = 0; i < 3; i++) xwpar[offset+i] = m_paramUps[i];
00324  offset = offset + 3;
00325  for(int i = 0; i < 3; i++) xwpar[offset+i] = m_paramUp2[i];
00326  offset = offset + 3;
00327  for(int i = 0; i < 3; i++) xwpar[offset+i] = m_paramUp3[i];
00328  offset = offset + 3;
00329  for(int i = 0; i < 3; i++) xwpar[offset+i] = m_paramUp4[i];
00330  offset = offset + 3;
00331  for(int i = 0; i < 3; i++) xwpar[offset+i] = m_paramUp5[i];
00332  offset = offset + 3;
00333  for(int i = 0; i < 3; i++) xwpar[offset+i] = m_paramUp6[i];
00334  offset = offset + 3;
00335  for(int i = 0; i < 3; i++) xwpar[offset+i] = m_paramZeta[i];
00336  offset = offset + 3;
00337  for(int i = 0; i < 2; i++) xwpar[offset+i] = m_paramW[i];
00338  // offset = offset + 2;
00339 
00340   xwpar[3001] = keyuds + 0.0;
00341   xwpar[3002] = keycharm + 0.0;
00342   
00343   // psi(3770) decay
00344   offset = 3200;
00345   xwpar[offset + 0] = m_ps3toNonDDb;
00346   xwpar[offset + 1] = m_ps3D0toDp;
00347   DDBARMASS.ddbarmassCUT= m_DdbarCutPsi3770;
00348   //tag ISR or FSR photon
00349   if(m_isrtag){PHOTONTAG.isrtag=1;} else {PHOTONTAG.isrtag=0;}
00350   if(m_fsrtag){PHOTONTAG.fsrtag=1;} else {PHOTONTAG.fsrtag=0;}
00351 
00352   // psi(4030) decay
00353   offset = 3210;
00354   xwpar[offset + 0] = m_ps4toD0D0b;
00355   xwpar[offset + 1] = m_ps4toDpDm;
00356   xwpar[offset + 2] = m_ps4toDsDs;
00357   xwpar[offset + 3] = m_ps4toD0D0Star;
00358   xwpar[offset + 4] = m_ps4toDpDmStar;
00359   xwpar[offset + 5] = m_ps4toD0StarD0Star;
00360   xwpar[offset + 6] = m_ps4toDpStarDmStar;
00361   // psi(4160) decay
00362   offset = 3220;
00363   xwpar[offset + 0] = m_ps5toD0D0b;
00364   xwpar[offset + 1] = m_ps5toDpDm;
00365   xwpar[offset + 2] = m_ps5toDsDs;
00366   xwpar[offset + 3] = m_ps5toD0D0Star;
00367   xwpar[offset + 4] = m_ps5toDpDmStar;
00368   xwpar[offset + 5] = m_ps5toDsDsStar;
00369   xwpar[offset + 6] = m_ps5toD0StarD0Star;
00370   xwpar[offset + 7] = m_ps5toDpStarDmStar;
00371 
00372   if(!m_radiationCorrection) {
00373     xwpar[19] = 0;
00374     xwpar[20] = 0;
00375     xwpar[26] = 0;
00376   }
00377 
00378 
00379   KK2F_INITIALIZE(xwpar);
00380   MY_PYUPD();
00381 
00382   PYUPDA(1, 22);
00383   if(m_evtGenDecay) {
00384     KK2F_SETEVTGENINTERFACE(1);
00385     TURNOFFTAUDECAY();
00386   } else {
00387     KK2F_SETEVTGENINTERFACE(0);
00388     PHOINI();
00389   }
00390 
00391   HepMC::HEPEVT_Wrapper::set_sizeof_real(8);
00392   HepMC::HEPEVT_Wrapper::set_sizeof_int(4);
00393   HepMC::HEPEVT_Wrapper::set_max_number_entries(4000);
00394   //  std::cout << "max entries = " << HepMC::HEPEVT_Wrapper::max_number_entries() <<std::endl;
00395   //  std::cout << "size of real = " << HepMC::HEPEVT_Wrapper::sizeof_real() <<std::endl;
00396                       
00397 
00398   log <<MSG::INFO<< "Finish KKMC initialize()" <<endreq;
00399   return StatusCode::SUCCESS;
00400 }


Member Data Documentation

double KKMC::m_cmsEnergy [private]
 

double KKMC::m_cmsEnergySpread [private]
 

double KKMC::m_DdbarCutPsi3770 [private]
 

bool KKMC::m_evtGenDecay [private]
 

bool KKMC::m_fsrtag [private]
 

bool KKMC::m_generateBottomQuark [private]
 

bool KKMC::m_generateCharmQuark [private]
 

bool KKMC::m_generateContinuum [private]
 

bool KKMC::m_generateDownQuark [private]
 

bool KKMC::m_generateJPsi [private]
 

bool KKMC::m_generateMuonPair [private]
 

bool KKMC::m_generateOmega [private]
 

bool KKMC::m_generatePhi [private]
 

bool KKMC::m_generatePsi3770 [private]
 

bool KKMC::m_generatePsi4030 [private]
 

bool KKMC::m_generatePsi4160 [private]
 

bool KKMC::m_generatePsi4260 [private]
 

bool KKMC::m_generatePsi4415 [private]
 

bool KKMC::m_generatePsiPrime [private]
 

bool KKMC::m_generateResonance [private]
 

bool KKMC::m_generateRho [private]
 

bool KKMC::m_generateStrangeQuark [private]
 

bool KKMC::m_generateTauPair [private]
 

bool KKMC::m_generateUpQuark [private]
 

bool KKMC::m_isrtag [private]
 

std::vector<int> KKMC::m_kkseed [private]
 

std::vector<int> KKMC::m_kkseed [private]
 

int KKMC::m_numberEvent [private]
 

int KKMC::m_numberEventPrint [private]
 

std::vector<double> KKMC::m_paramOm2 [private]
 

std::vector<double> KKMC::m_paramOm2 [private]
 

std::vector<double> KKMC::m_paramOm3 [private]
 

std::vector<double> KKMC::m_paramOm3 [private]
 

std::vector<double> KKMC::m_paramOme [private]
 

std::vector<double> KKMC::m_paramOme [private]
 

std::vector<double> KKMC::m_paramPh2 [private]
 

std::vector<double> KKMC::m_paramPh2 [private]
 

std::vector<double> KKMC::m_paramPhi [private]
 

std::vector<double> KKMC::m_paramPhi [private]
 

std::vector<double> KKMC::m_paramPs2 [private]
 

std::vector<double> KKMC::m_paramPs2 [private]
 

std::vector<double> KKMC::m_paramPs3 [private]
 

std::vector<double> KKMC::m_paramPs3 [private]
 

std::vector<double> KKMC::m_paramPs4 [private]
 

std::vector<double> KKMC::m_paramPs4 [private]
 

std::vector<double> KKMC::m_paramPs5 [private]
 

std::vector<double> KKMC::m_paramPs5 [private]
 

std::vector<double> KKMC::m_paramPs6 [private]
 

std::vector<double> KKMC::m_paramPs6 [private]
 

std::vector<double> KKMC::m_paramPs7 [private]
 

std::vector<double> KKMC::m_paramPs7 [private]
 

std::vector<double> KKMC::m_paramPs8 [private]
 

std::vector<double> KKMC::m_paramPs8 [private]
 

std::vector<double> KKMC::m_paramPsi [private]
 

std::vector<double> KKMC::m_paramPsi [private]
 

std::vector<double> KKMC::m_paramRh2 [private]
 

std::vector<double> KKMC::m_paramRh2 [private]
 

std::vector<double> KKMC::m_paramRh3 [private]
 

std::vector<double> KKMC::m_paramRh3 [private]
 

std::vector<double> KKMC::m_paramRho [private]
 

std::vector<double> KKMC::m_paramRho [private]
 

std::vector<double> KKMC::m_paramUp2 [private]
 

std::vector<double> KKMC::m_paramUp2 [private]
 

std::vector<double> KKMC::m_paramUp3 [private]
 

std::vector<double> KKMC::m_paramUp3 [private]
 

std::vector<double> KKMC::m_paramUp4 [private]
 

std::vector<double> KKMC::m_paramUp4 [private]
 

std::vector<double> KKMC::m_paramUp5 [private]
 

std::vector<double> KKMC::m_paramUp5 [private]
 

std::vector<double> KKMC::m_paramUp6 [private]
 

std::vector<double> KKMC::m_paramUp6 [private]
 

std::vector<double> KKMC::m_paramUps [private]
 

std::vector<double> KKMC::m_paramUps [private]
 

std::vector<double> KKMC::m_paramW [private]
 

std::vector<double> KKMC::m_paramW [private]
 

std::vector<double> KKMC::m_paramZeta [private]
 

std::vector<double> KKMC::m_paramZeta [private]
 

double KKMC::m_ps3D0toDp [private]
 

double KKMC::m_ps3toNonDDb [private]
 

double KKMC::m_ps4toD0D0b [private]
 

double KKMC::m_ps4toD0D0Star [private]
 

double KKMC::m_ps4toD0StarD0Star [private]
 

double KKMC::m_ps4toDpDm [private]
 

double KKMC::m_ps4toDpDmStar [private]
 

double KKMC::m_ps4toDpStarDmStar [private]
 

double KKMC::m_ps4toDsDs [private]
 

double KKMC::m_ps5toD0D0b [private]
 

double KKMC::m_ps5toD0D0Star [private]
 

double KKMC::m_ps5toD0StarD0Star [private]
 

double KKMC::m_ps5toDpDm [private]
 

double KKMC::m_ps5toDpDmStar [private]
 

double KKMC::m_ps5toDpStarDmStar [private]
 

double KKMC::m_ps5toDsDs [private]
 

double KKMC::m_ps5toDsDsStar [private]
 

bool KKMC::m_radiationCorrection [private]
 

IBesRndmGenSvc* KKMC::p_BesRndmGenSvc [private]
 

IBesRndmGenSvc* KKMC::p_BesRndmGenSvc [private]
 


The documentation for this class was generated from the following files:
Generated on Wed Feb 2 16:21:10 2011 for BOSS6.5.5 by  doxygen 1.3.9.1