herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
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
14namespace Herwig {
15using namespace ThePEG;
16
17using Helicity::VertexBasePtr;
18
30
31public:
32
38 interOpt_(0), widthOpt_(1), weakMassCut_(-GeV),
39 intOpt_(1), relErr_(1e-2) {}
40
46 virtual void DecayList(const set<PDPtr,MassOrdering> & part);
47
51 virtual unsigned int numBodies() const { return 3; }
52
53protected:
54
60 GeneralThreeBodyDecayerPtr createDecayer(vector<TBDiagram> & diagrams,
61 bool inter,double symfac) const;
62
70 string & objname) const;
71
77 virtual void createDecayMode(vector<NBDiagram> & mode,
78 bool possibleOnShell,
79 double symfac);
80
81public:
82
90
96 void persistentInput(PersistentIStream & is, int version);
98
105 static void Init();
106
107protected:
108
115 virtual IBPtr clone() const;
116
121 virtual IBPtr fullclone() const;
123
124private:
125
131
132private:
133
138
142 unsigned int interOpt_;
143
147 unsigned int widthOpt_;
148
153
157 unsigned int intOpt_;
158
162 double relErr_;
163};
164
165}
166
167#endif /* HERWIG_ThreeBodyDecayConstructor_H */
This is the base class for NBodyDecayConstructors.
The ThreeBodyDecayConstructor class inherits from the dummy base class NBodyDecayConstructorBase and ...
ThreeBodyDecayConstructor & operator=(const ThreeBodyDecayConstructor &)=delete
The assignment operator is private and must never be called.
ThreeBodyDecayConstructor()
The default constructor.
virtual void DecayList(const set< PDPtr, MassOrdering > &part)
Function used to determine allowed decaymodes, to be implemented in derived class.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
string DecayerClassName(tcPDPtr incoming, const OrderedParticles &outgoing, string &objname) const
Contruct the classname and object name for the Decayer.
bool includeIntermediatePhotons_
Option for intermediate photons.
virtual void createDecayMode(vector< NBDiagram > &mode, bool possibleOnShell, double symfac)
Create the DecayMode from the diagrams.
virtual IBPtr clone() const
Make a simple clone of this object.
static void Init()
The standard Init function used to initialize the interfaces.
unsigned int widthOpt_
How to treat the widths of the intermediate particles.
double relErr_
Relative error for partial width integration.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
GeneralThreeBodyDecayerPtr createDecayer(vector< TBDiagram > &diagrams, bool inter, double symfac) const
Create the decayer.
virtual unsigned int numBodies() const
Number of outgoing lines.
unsigned int intOpt_
Option for the integration to get the partial width.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
unsigned int interOpt_
Option for the inclusion of intermediates.
Energy weakMassCut_
Cut off or decays via the weak current.
-*- C++ -*-
multiset< PDPtr, ParticleOrdering > OrderedParticles
A set of ParticleData objects ordered as for the DecayMode's.
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr