herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
ThreeBodyDecayConstructor.h
1 // -*- C++ -*-
2 #ifndef HERWIG_ThreeBodyDecayConstructor_H
3 #define HERWIG_ThreeBodyDecayConstructor_H
4 //
5 // This is the declaration of the ThreeBodyDecayConstructor class.
6 //
7 
8 #include "NBodyDecayConstructorBase.h"
9 #include "ThePEG/Helicity/Vertex/VertexBase.h"
10 #include "TBDiagram.h"
11 #include "PrototypeVertex.h"
12 #include "Herwig/Decay/General/GeneralThreeBodyDecayer.fh"
13 
14 namespace Herwig {
15 using namespace ThePEG;
16 
17 using Helicity::VertexBasePtr;
18 
30 
31 public:
32 
37  includeIntermediatePhotons_(false),
38  interOpt_(0), widthOpt_(1), weakMassCut_(-GeV),
39  intOpt_(1), relErr_(1e-2) {}
40 
46  virtual void DecayList(const set<PDPtr> & part);
47 
51  virtual unsigned int numBodies() const { return 3; }
52 
53 protected:
54 
60  GeneralThreeBodyDecayerPtr createDecayer(vector<TBDiagram> & diagrams,
61  bool inter,double symfac) const;
62 
69  string DecayerClassName(tcPDPtr incoming, const OrderedParticles & outgoing,
70  string & objname) const;
71 
77  virtual void createDecayMode(vector<NBDiagram> & mode,
78  bool possibleOnShell,
79  double symfac);
80 
81 public:
82 
89  void persistentOutput(PersistentOStream & os) const;
90 
96  void persistentInput(PersistentIStream & is, int version);
98 
105  static void Init();
106 
107 protected:
108 
115  virtual IBPtr clone() const;
116 
121  virtual IBPtr fullclone() const;
123 
124 private:
125 
130  ThreeBodyDecayConstructor & operator=(const ThreeBodyDecayConstructor &) = delete;
131 
132 private:
133 
138 
142  unsigned int interOpt_;
143 
147  unsigned int widthOpt_;
148 
152  Energy weakMassCut_;
153 
157  unsigned int intOpt_;
158 
162  double relErr_;
163 };
164 
165 }
166 
167 #endif /* HERWIG_ThreeBodyDecayConstructor_H */
The ThreeBodyDecayConstructor class inherits from the dummy base class NBodyDecayConstructorBase and ...
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
bool includeIntermediatePhotons_
Option for intermediate photons.
multiset< PDPtr, ParticleOrdering > OrderedParticles
A set of ParticleData objects ordered as for the DecayMode&#39;s.
unsigned int widthOpt_
How to treat the widths of the intermediate particles.
This is the base class for NBodyDecayConstructors.
virtual unsigned int numBodies() const
Number of outgoing lines.
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
Energy weakMassCut_
Cut off or decays via the weak current.
unsigned int interOpt_
Option for the inclusion of intermediates.
ThreeBodyDecayConstructor()
The default constructor.
unsigned int intOpt_
Option for the integration to get the partial width.
-*- C++ -*-
double relErr_
Relative error for partial width integration.