herwig is hosted by Hepforge, IPPP Durham
Herwig++  2.7.0
DtoKPiPiMarkIII.h
00001 // -*- C++ -*-
00002 //
00003 // DtoKPiPiMarkIII.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_DtoKPiPiMarkIII_H
00010 #define HERWIG_DtoKPiPiMarkIII_H
00011 //
00012 // This is the declaration of the DtoKPiPiMarkIII 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 
00028 class DtoKPiPiMarkIII: public DecayIntegrator {
00029 
00030 public:
00031 
00035   DtoKPiPiMarkIII();
00036   
00043   virtual int modeNumber(bool & cc, tcPDPtr parent, 
00044                          const tPDVector & children) const;
00045 
00054   double me2( const int ichan,const Particle & part,
00055              const ParticleVector & decay, MEOption meopt) const;
00056 
00062   virtual void dataBaseOutput(ofstream & os,bool header) const;
00063 
00064 public:
00065 
00072   void persistentOutput(PersistentOStream & os) const;
00073 
00079   void persistentInput(PersistentIStream & is, int version);
00081 
00088   static void Init();
00089 
00090 protected:
00091 
00105   Complex amplitude(bool rho, Energy mD, 
00106                            Energy mA , Energy mB , Energy mC ,
00107                            Energy mAB, Energy mAC, Energy mBC,
00108                            Energy mres, Energy wres) const;
00109 
00110 protected:
00111 
00118   virtual IBPtr clone() const {return new_ptr(*this);}
00119 
00124   virtual IBPtr fullclone() const {return new_ptr(*this);}
00126 
00127 protected:
00128 
00136   virtual void doinit();
00137 
00142   virtual void doinitrun();
00144 
00145 private:
00146 
00151   static ClassDescription<DtoKPiPiMarkIII> initDtoKPiPiMarkIII;
00152 
00157   DtoKPiPiMarkIII & operator=(const DtoKPiPiMarkIII &);
00158 
00159 private:
00160 
00168   double _a1rho;
00169 
00173   double _phi1rho;
00174 
00178   double _a1Kstarm;
00179 
00183   double _phi1Kstarm;
00184 
00188   double _a1Kstar0;
00189 
00193   double _phi1Kstar0;
00194 
00198   double _a1NR;
00199 
00203   double _phi1NR;
00204 
00208   Complex _c1rho;
00209 
00213   Complex _c1Kstarm;
00214 
00218   Complex _c1Kstar0;
00219 
00223   Complex _c1NR;
00225 
00233   double _a2rho;
00234 
00238   double _phi2rho;
00239 
00243   double _a2Kstar;
00244 
00248   double _phi2Kstar;
00249 
00253   double _a2NR;
00254 
00258   double _phi2NR;
00259 
00263   Complex _c2rho;
00264 
00268   Complex _c2Kstar;
00269 
00273   Complex _c2NR;
00275 
00283   double _a3rho;
00284 
00288   double _phi3rho;
00289 
00293   double _a3Kstar;
00294 
00298   double _phi3Kstar;
00299 
00303   double _a3NR;
00304 
00308   double _phi3NR;
00309 
00313   Complex _c3rho;
00314 
00318   Complex _c3Kstar;
00319 
00323   Complex _c3NR;
00325 
00333   double _a4Kstar;
00334 
00338   double _phi4Kstar;
00339 
00343   double _a4NR;
00344 
00348   double _phi4NR;
00349 
00353   Complex _c4Kstar;
00354 
00358   Complex _c4NR;
00360 
00368   bool _localparameters;
00369 
00373   Energy _mrhop;
00374 
00378   Energy _wrhop;
00379 
00383   Energy _mrho0;
00384 
00388   Energy _wrho0;
00389 
00393   Energy _mKstarm;
00394 
00398   Energy _wKstarm;
00399 
00403   Energy _mKstar0;
00404 
00408   Energy _wKstar0;
00410 
00418   InvEnergy _rrho;
00419 
00423   InvEnergy _rKstar;
00425 
00433   vector<double> _maxwgt;
00434 
00438   vector<double> _weights;
00440 
00444   mutable RhoDMatrix _rho;
00445 };
00446 
00447 }
00448 
00449 #include "ThePEG/Utilities/ClassTraits.h"
00450 
00451 namespace ThePEG {
00452 
00457 template <>
00458 struct BaseClassTrait<Herwig::DtoKPiPiMarkIII,1> {
00460   typedef Herwig::DecayIntegrator NthBase;
00461 };
00462 
00465 template <>
00466 struct ClassTraits<Herwig::DtoKPiPiMarkIII>
00467   : public ClassTraitsBase<Herwig::DtoKPiPiMarkIII> {
00469   static string className() { return "Herwig::DtoKPiPiMarkIII"; }
00477   static string library() { return "HwSMDecay.so"; }
00478 };
00479 
00482 }
00483 
00484 #endif /* HERWIG_DtoKPiPiMarkIII_H */