Herwig++
2.7.0
|
00001 // -*- C++ -*- 00002 // 00003 // DtoKPiPiCLEO.h is a part of Herwig++ - A multi-purpose Monte Carlo event generator 00004 // Copyright (C) 2002-2011 The Herwig Collaboration 00005 // 00006 // Herwig++ is licenced under version 2 of the GPL, see COPYING for details. 00007 // Please respect the MCnet academic guidelines, see GUIDELINES for details. 00008 // 00009 #ifndef HERWIG_DtoKPiPiCLEO_H 00010 #define HERWIG_DtoKPiPiCLEO_H 00011 // 00012 // This is the declaration of the DtoKPiPiCLEO class. 00013 // 00014 00015 #include "Herwig++/Decay/DecayIntegrator.h" 00016 #include "Herwig++/Decay/DecayPhaseSpaceMode.h" 00017 00018 namespace Herwig { 00019 00020 using namespace ThePEG; 00021 00031 class DtoKPiPiCLEO: public DecayIntegrator { 00032 00033 public: 00034 00038 DtoKPiPiCLEO(); 00039 00046 virtual int modeNumber(bool & cc, tcPDPtr parent, 00047 const tPDVector & children) const; 00048 00057 double me2( const int ichan,const Particle & part, 00058 const ParticleVector & decay, MEOption meopt) const; 00059 00065 virtual void dataBaseOutput(ofstream & os,bool header) const; 00066 00067 public: 00068 00075 void persistentOutput(PersistentOStream & os) const; 00076 00082 void persistentInput(PersistentIStream & is, int version); 00084 00091 static void Init(); 00092 00093 protected: 00094 00109 Complex amplitude(int ispin, bool f0, Energy mD, 00110 Energy mA , Energy mB , Energy mC , 00111 Energy mAB, Energy mAC, Energy mBC, 00112 Energy mres, Energy wres) const; 00113 00114 protected: 00115 00122 virtual IBPtr clone() const {return new_ptr(*this);} 00123 00128 virtual IBPtr fullclone() const {return new_ptr(*this);} 00130 00131 protected: 00132 00140 virtual void doinit(); 00141 00146 virtual void doinitrun(); 00148 00149 private: 00150 00155 static ClassDescription<DtoKPiPiCLEO> initDtoKPiPiCLEO; 00156 00161 DtoKPiPiCLEO & operator=(const DtoKPiPiCLEO &); 00162 00163 private: 00164 00173 bool _localparameters; 00174 00178 Energy _momega; 00179 00183 Energy _womega; 00184 00188 Energy _mf980; 00189 00193 Energy _wf980; 00194 00198 double _gpi; 00199 00203 double _gK; 00204 00208 bool _f0opt; 00209 00213 Energy _mf2; 00214 00218 Energy _wf2; 00219 00223 Energy _mf1370; 00224 00228 Energy _wf1370; 00229 00233 Energy _mK14300; 00234 00238 Energy _wK14300; 00239 00243 Energy _mK14302; 00244 00248 Energy _wK14302; 00249 00253 Energy _mK1680; 00254 00258 Energy _wK1680; 00259 00263 Energy _mrho1700; 00264 00268 Energy _wrho1700; 00269 00273 Energy _mK8920; 00274 00278 Energy _wK8920; 00279 00283 Energy _mK892A; 00284 00288 Energy _wK892A; 00289 00293 Energy _mK892B; 00294 00298 Energy _wK892B; 00299 00303 Energy _mrhoA; 00304 00308 Energy _wrhoA; 00309 00313 Energy _mrhoB; 00314 00318 Energy _wrhoB; 00320 00328 double _a1NR; 00329 00333 double _phi1NR; 00334 00338 double _a1rho; 00339 00343 double _phi1rho; 00344 00348 double _a1Kstarm; 00349 00353 double _phi1Kstarm; 00354 00358 double _a1Kstar0; 00359 00363 double _phi1Kstar0; 00364 00368 Energy2 _a1K1430m; 00369 00373 double _phi1K1430m; 00374 00378 Energy2 _a1K14300; 00379 00383 double _phi1K14300; 00384 00388 double _a1rho1700; 00389 00393 double _phi1rho1700; 00394 00398 double _a1K1680; 00399 00403 double _phi1K1680; 00404 00408 Complex _c1NR; 00409 00413 Complex _c1rho; 00414 00418 Complex _c1Kstarm; 00419 00423 Complex _c1Kstar0; 00424 00428 complex<Energy2> _c1K1430m; 00429 00433 complex<Energy2> _c1K14300; 00434 00438 Complex _c1rho1700; 00439 00443 Complex _c1K1680; 00445 00453 double _a2Kstarp; 00454 00458 double _phi2Kstarp; 00459 00463 double _a2rho; 00464 00468 double _phi2rho; 00469 00473 double _a2omega; 00474 00478 double _phi2omega; 00479 00483 double _a2Kstarm; 00484 00488 double _phi2Kstarm; 00489 00493 Energy2 _a2f980; 00494 00498 double _phi2f980; 00499 00503 InvEnergy2 _a2f2; 00504 00508 double _phi2f2; 00509 00513 Energy2 _a2f1370; 00514 00518 double _phi2f1370; 00519 00523 Energy2 _a2K14300; 00524 00528 double _phi2K14300; 00529 00533 InvEnergy2 _a2K14302; 00534 00538 double _phi2K14302; 00539 00543 double _a2K1680; 00544 00548 double _phi2K1680; 00549 00553 double _a2NR; 00554 00558 double _phi2NR; 00559 00563 Complex _c2Kstarp; 00564 00568 Complex _c2rho; 00569 00573 Complex _c2omega; 00574 00578 Complex _c2Kstarm; 00579 00583 complex<Energy2> _c2f980; 00584 00588 complex<InvEnergy2> _c2f2; 00589 00593 complex<Energy2> _c2f1370; 00594 00598 complex<Energy2> _c2K14300; 00599 00603 complex<InvEnergy2> _c2K14302; 00604 00608 Complex _c2K1680; 00609 00613 Complex _c2NR; 00615 00623 InvEnergy _rD0; 00624 00628 InvEnergy _rres; 00630 00638 vector<double> _maxwgt; 00639 00643 vector<double> _weights; 00645 00653 Energy _mpi; 00654 00658 Energy _mkp; 00659 00663 Energy _mk0; 00665 00669 mutable RhoDMatrix _rho; 00670 }; 00671 00672 } 00673 00674 #include "ThePEG/Utilities/ClassTraits.h" 00675 00676 namespace ThePEG { 00677 00682 template <> 00683 struct BaseClassTrait<Herwig::DtoKPiPiCLEO,1> { 00685 typedef Herwig::DecayIntegrator NthBase; 00686 }; 00687 00690 template <> 00691 struct ClassTraits<Herwig::DtoKPiPiCLEO> 00692 : public ClassTraitsBase<Herwig::DtoKPiPiCLEO> { 00694 static string className() { return "Herwig::DtoKPiPiCLEO"; } 00702 static string library() { return "HwSMDecay.so"; } 00703 }; 00704 00707 } 00708 00709 #endif /* HERWIG_DtoKPiPiCLEO_H */