herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
Models
General
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
29
class
ThreeBodyDecayConstructor
:
public
NBodyDecayConstructorBase
{
30
31
public
:
32
36
ThreeBodyDecayConstructor
() :
37
includeIntermediatePhotons_
(false),
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
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
137
bool
includeIntermediatePhotons_
;
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 */
Herwig::NBodyDecayConstructorBase
This is the base class for NBodyDecayConstructors.
Definition:
NBodyDecayConstructorBase.h:34
Herwig::ThreeBodyDecayConstructor
The ThreeBodyDecayConstructor class inherits from the dummy base class NBodyDecayConstructorBase and ...
Definition:
ThreeBodyDecayConstructor.h:29
Herwig::ThreeBodyDecayConstructor::operator=
ThreeBodyDecayConstructor & operator=(const ThreeBodyDecayConstructor &)=delete
The assignment operator is private and must never be called.
Herwig::ThreeBodyDecayConstructor::ThreeBodyDecayConstructor
ThreeBodyDecayConstructor()
The default constructor.
Definition:
ThreeBodyDecayConstructor.h:36
Herwig::ThreeBodyDecayConstructor::DecayList
virtual void DecayList(const set< PDPtr, MassOrdering > &part)
Function used to determine allowed decaymodes, to be implemented in derived class.
Herwig::ThreeBodyDecayConstructor::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::ThreeBodyDecayConstructor::DecayerClassName
string DecayerClassName(tcPDPtr incoming, const OrderedParticles &outgoing, string &objname) const
Contruct the classname and object name for the Decayer.
Herwig::ThreeBodyDecayConstructor::includeIntermediatePhotons_
bool includeIntermediatePhotons_
Option for intermediate photons.
Definition:
ThreeBodyDecayConstructor.h:137
Herwig::ThreeBodyDecayConstructor::createDecayMode
virtual void createDecayMode(vector< NBDiagram > &mode, bool possibleOnShell, double symfac)
Create the DecayMode from the diagrams.
Herwig::ThreeBodyDecayConstructor::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Herwig::ThreeBodyDecayConstructor::Init
static void Init()
The standard Init function used to initialize the interfaces.
Herwig::ThreeBodyDecayConstructor::widthOpt_
unsigned int widthOpt_
How to treat the widths of the intermediate particles.
Definition:
ThreeBodyDecayConstructor.h:147
Herwig::ThreeBodyDecayConstructor::relErr_
double relErr_
Relative error for partial width integration.
Definition:
ThreeBodyDecayConstructor.h:162
Herwig::ThreeBodyDecayConstructor::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Herwig::ThreeBodyDecayConstructor::createDecayer
GeneralThreeBodyDecayerPtr createDecayer(vector< TBDiagram > &diagrams, bool inter, double symfac) const
Create the decayer.
Herwig::ThreeBodyDecayConstructor::numBodies
virtual unsigned int numBodies() const
Number of outgoing lines.
Definition:
ThreeBodyDecayConstructor.h:51
Herwig::ThreeBodyDecayConstructor::intOpt_
unsigned int intOpt_
Option for the integration to get the partial width.
Definition:
ThreeBodyDecayConstructor.h:157
Herwig::ThreeBodyDecayConstructor::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::ThreeBodyDecayConstructor::interOpt_
unsigned int interOpt_
Option for the inclusion of intermediates.
Definition:
ThreeBodyDecayConstructor.h:142
Herwig::ThreeBodyDecayConstructor::weakMassCut_
Energy weakMassCut_
Cut off or decays via the weak current.
Definition:
ThreeBodyDecayConstructor.h:152
ThePEG::PersistentIStream
ThePEG::PersistentOStream
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
Herwig::OrderedParticles
multiset< PDPtr, ParticleOrdering > OrderedParticles
A set of ParticleData objects ordered as for the DecayMode's.
Definition:
PrototypeVertex.h:70
ThePEG::Helicity::outgoing
outgoing
ThePEG::Helicity::incoming
incoming
ThePEG
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::tcPDPtr
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
Generated on Thu Jun 20 2024 17:50:53 for Herwig by
1.9.6