herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
Models
General
NBodyDecayConstructorBase.h
1
// -*- C++ -*-
2
//
3
// NBodyDecayConstructorBase.h is a part of Herwig - A multi-purpose Monte Carlo event generator
4
// Copyright (C) 2002-2019 The Herwig Collaboration
5
//
6
// Herwig is licenced under version 3 of the GPL, see COPYING for details.
7
// Please respect the MCnet academic guidelines, see GUIDELINES for details.
8
//
9
#ifndef HERWIG_NBodyDecayConstructorBase_H
10
#define HERWIG_NBodyDecayConstructorBase_H
11
//
12
// This is the declaration of the NBodyDecayConstructorBase class.
13
//
14
15
#include "ThePEG/Interface/Interfaced.h"
16
#include "ThePEG/Utilities/Exception.h"
17
#include "ThePEG/PDT/ParticleData.h"
18
#include "NBodyDecayConstructorBase.fh"
19
#include "PrototypeVertex.h"
20
#include "DecayConstructor.fh"
21
22
namespace
Herwig
{
23
24
using namespace
ThePEG
;
25
34
class
NBodyDecayConstructorBase
:
public
Interfaced
{
35
36
public
:
37
38
struct
MassOrdering
{
39
bool
operator()(
PDPtr
p1,
PDPtr
p2)
const
{
40
return
p1->mass() < p2->mass() || (p1->mass()==p2->mass() && p1->id()>p2->id());
41
}
42
};
43
44
public
:
45
49
NBodyDecayConstructorBase
() :
50
init_
(true),
iteration_
(1),
points_
(1000),
info_
(false),
51
createModes_
(true),
removeOnShell_
(1),
excludeEffective_
(true),
52
minReleaseFraction_
(1e-3),
maxBoson_
(1),
maxList_
(1),
53
includeTopOnShell_
(false ),
removeFlavourChangingVertices_
(false),
54
removeSmallVertices_
(false),
minVertexNorm_
(1e-8)
55
{}
56
63
virtual
void
DecayList
(
const
set<PDPtr,MassOrdering> & particles);
64
68
virtual
unsigned
int
numBodies
()
const
= 0;
69
73
void
decayConstructor
(tDecayConstructorPtr d) {
74
decayConstructor_
= d;
75
}
76
80
bool
removeFlavourChangingVertices
()
const
{
81
return
removeFlavourChangingVertices_
;
82
}
83
87
bool
removeSmallVertices
()
const
{
88
return
removeSmallVertices_
;
89
}
90
94
double
minVertexNorm
()
const
{
95
return
minVertexNorm_
;
96
}
97
98
protected
:
99
103
virtual
void
createDecayMode
(vector<NBDiagram> & mode,
104
bool
possibleOnShell,
105
double
symfac);
106
107
115
void
setBranchingRatio
(
tDMPtr
dm, Energy pwidth);
116
122
void
setDecayerInterfaces
(
string
name
)
const
;
123
127
bool
initialize
()
const
{
return
init_
; }
128
132
int
iteration
()
const
{
return
iteration_
; }
133
137
int
points
()
const
{
return
points_
; }
138
142
bool
info
()
const
{
return
info_
; }
143
147
bool
createDecayModes
()
const
{
return
createModes_
; }
148
152
unsigned
int
maximumGaugeBosons
()
const
{
return
maxBoson_
;}
153
157
unsigned
int
maximumList
()
const
{
return
maxList_
;}
158
162
double
minimumReleaseFraction
()
const
{
return
minReleaseFraction_
;}
163
167
tDecayConstructorPtr
decayConstructor
()
const
{
168
return
decayConstructor_
;
169
}
170
174
unsigned
int
removeOnShell
()
const
{
return
removeOnShell_
; }
175
179
bool
excluded
(VertexBasePtr vertex)
const
{
180
// skip an effective vertex
181
if
(
excludeEffective_
&&
182
vertex->orderInAllCouplings() !=
int
(vertex->getNpoint())-2)
183
return
true
;
184
// check if explicitly forbidden
185
return
excludedVerticesSet_
.find(vertex)!=
excludedVerticesSet_
.end();
186
}
187
188
public
:
189
196
void
persistentOutput
(
PersistentOStream
& os)
const
;
197
203
void
persistentInput
(
PersistentIStream
& is,
int
version);
205
212
static
void
Init
();
213
214
protected
:
215
223
virtual
void
doinit
();
225
226
private
:
227
232
NBodyDecayConstructorBase
&
operator=
(
const
NBodyDecayConstructorBase
&) =
delete
;
233
234
private
:
235
239
bool
init_
;
240
244
int
iteration_
;
245
249
int
points_
;
250
254
bool
info_
;
255
259
bool
createModes_
;
260
264
unsigned
int
removeOnShell_
;
265
269
vector<VertexBasePtr>
excludedVerticesVector_
;
270
274
set<VertexBasePtr>
excludedVerticesSet_
;
275
279
vector<PDPtr>
excludedParticlesVector_
;
280
284
set<PDPtr>
excludedParticlesSet_
;
285
289
bool
excludeEffective_
;
290
294
tDecayConstructorPtr
decayConstructor_
;
295
300
double
minReleaseFraction_
;
301
305
unsigned
int
maxBoson_
;
306
310
unsigned
int
maxList_
;
311
315
bool
includeTopOnShell_
;
316
320
bool
removeFlavourChangingVertices_
;
321
325
bool
removeSmallVertices_
;
326
330
double
minVertexNorm_
;
331
};
332
335
class
NBodyDecayConstructorError
:
public
Exception
{
336
337
public
:
338
339
NBodyDecayConstructorError
() :
Exception
() {}
340
341
NBodyDecayConstructorError
(
const
string
& str,
342
Severity
sev) :
Exception
(str,sev)
343
{}
344
};
345
346
}
347
348
#endif
/* HERWIG_NBodyDecayConstructorBase_H */
Herwig::NBodyDecayConstructorBase
This is the base class for NBodyDecayConstructors.
Definition:
NBodyDecayConstructorBase.h:34
Herwig::NBodyDecayConstructorBase::minVertexNorm_
double minVertexNorm_
Minimum norm for vertex removal.
Definition:
NBodyDecayConstructorBase.h:330
Herwig::NBodyDecayConstructorBase::removeOnShell
unsigned int removeOnShell() const
Option for on-shell particles.
Definition:
NBodyDecayConstructorBase.h:174
Herwig::NBodyDecayConstructorBase::initialize
bool initialize() const
Whether to initialize decayers or not.
Definition:
NBodyDecayConstructorBase.h:127
Herwig::NBodyDecayConstructorBase::info
bool info() const
Whether to output information on the decayers.
Definition:
NBodyDecayConstructorBase.h:142
Herwig::NBodyDecayConstructorBase::NBodyDecayConstructorBase
NBodyDecayConstructorBase()
The default constructor.
Definition:
NBodyDecayConstructorBase.h:49
Herwig::NBodyDecayConstructorBase::setBranchingRatio
void setBranchingRatio(tDMPtr dm, Energy pwidth)
Set the branching ratio of this mode.
Herwig::NBodyDecayConstructorBase::numBodies
virtual unsigned int numBodies() const =0
Number of outgoing lines.
Herwig::NBodyDecayConstructorBase::excludedParticlesSet_
set< PDPtr > excludedParticlesSet_
Excluded Particles.
Definition:
NBodyDecayConstructorBase.h:284
Herwig::NBodyDecayConstructorBase::excludeEffective_
bool excludeEffective_
Whether or not to exclude effective vertices.
Definition:
NBodyDecayConstructorBase.h:289
Herwig::NBodyDecayConstructorBase::maximumList
unsigned int maximumList() const
Maximum number of particles from the list whose decays we are calculating.
Definition:
NBodyDecayConstructorBase.h:157
Herwig::NBodyDecayConstructorBase::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::NBodyDecayConstructorBase::decayConstructor
tDecayConstructorPtr decayConstructor() const
Get the pointer to the DecayConstructor object.
Definition:
NBodyDecayConstructorBase.h:167
Herwig::NBodyDecayConstructorBase::excludedVerticesVector_
vector< VertexBasePtr > excludedVerticesVector_
Excluded Vertices.
Definition:
NBodyDecayConstructorBase.h:269
Herwig::NBodyDecayConstructorBase::maximumGaugeBosons
unsigned int maximumGaugeBosons() const
Maximum number of electroweak gauge bosons.
Definition:
NBodyDecayConstructorBase.h:152
Herwig::NBodyDecayConstructorBase::points
int points() const
Number of points to do in initialization.
Definition:
NBodyDecayConstructorBase.h:137
Herwig::NBodyDecayConstructorBase::Init
static void Init()
The standard Init function used to initialize the interfaces.
Herwig::NBodyDecayConstructorBase::operator=
NBodyDecayConstructorBase & operator=(const NBodyDecayConstructorBase &)=delete
The assignment operator is private and must never be called.
Herwig::NBodyDecayConstructorBase::createDecayMode
virtual void createDecayMode(vector< NBDiagram > &mode, bool possibleOnShell, double symfac)
Method to set up the decay mode, should be overidden in inheriting class.
Herwig::NBodyDecayConstructorBase::removeSmallVertices_
bool removeSmallVertices_
Remove small vertices ?
Definition:
NBodyDecayConstructorBase.h:325
Herwig::NBodyDecayConstructorBase::doinit
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
Herwig::NBodyDecayConstructorBase::includeTopOnShell_
bool includeTopOnShell_
Include on-shell for .
Definition:
NBodyDecayConstructorBase.h:315
Herwig::NBodyDecayConstructorBase::init_
bool init_
Whether to initialize decayers or not.
Definition:
NBodyDecayConstructorBase.h:239
Herwig::NBodyDecayConstructorBase::iteration_
int iteration_
Number of iterations if initializing (default 1)
Definition:
NBodyDecayConstructorBase.h:244
Herwig::NBodyDecayConstructorBase::minReleaseFraction_
double minReleaseFraction_
The minimum energy release for a three-body decay as a fraction of the parent mass.
Definition:
NBodyDecayConstructorBase.h:300
Herwig::NBodyDecayConstructorBase::maxList_
unsigned int maxList_
Maximum number of particles from the decaying particle list.
Definition:
NBodyDecayConstructorBase.h:310
Herwig::NBodyDecayConstructorBase::removeSmallVertices
bool removeSmallVertices() const
Remove small vertices ?
Definition:
NBodyDecayConstructorBase.h:87
Herwig::NBodyDecayConstructorBase::excludedParticlesVector_
vector< PDPtr > excludedParticlesVector_
Excluded Particles.
Definition:
NBodyDecayConstructorBase.h:279
Herwig::NBodyDecayConstructorBase::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::NBodyDecayConstructorBase::decayConstructor_
tDecayConstructorPtr decayConstructor_
A pointer to the DecayConstructor object.
Definition:
NBodyDecayConstructorBase.h:294
Herwig::NBodyDecayConstructorBase::minVertexNorm
double minVertexNorm() const
Minimum norm for vertex removal.
Definition:
NBodyDecayConstructorBase.h:94
Herwig::NBodyDecayConstructorBase::createDecayModes
bool createDecayModes() const
Whether to create the DecayModes as well as the Decayer objects.
Definition:
NBodyDecayConstructorBase.h:147
Herwig::NBodyDecayConstructorBase::points_
int points_
Number of points to do in initialization.
Definition:
NBodyDecayConstructorBase.h:249
Herwig::NBodyDecayConstructorBase::setDecayerInterfaces
void setDecayerInterfaces(string name) const
Set the interfaces of the decayers depending on the flags stored.
Herwig::NBodyDecayConstructorBase::maxBoson_
unsigned int maxBoson_
Maximum number of EW gauge bosons.
Definition:
NBodyDecayConstructorBase.h:305
Herwig::NBodyDecayConstructorBase::removeFlavourChangingVertices
bool removeFlavourChangingVertices() const
Remove flavour changing vertices ?
Definition:
NBodyDecayConstructorBase.h:80
Herwig::NBodyDecayConstructorBase::minimumReleaseFraction
double minimumReleaseFraction() const
Minimum energy release fraction.
Definition:
NBodyDecayConstructorBase.h:162
Herwig::NBodyDecayConstructorBase::removeFlavourChangingVertices_
bool removeFlavourChangingVertices_
Remove flavour changing vertices ?
Definition:
NBodyDecayConstructorBase.h:320
Herwig::NBodyDecayConstructorBase::excluded
bool excluded(VertexBasePtr vertex) const
Check if a vertex is excluded.
Definition:
NBodyDecayConstructorBase.h:179
Herwig::NBodyDecayConstructorBase::info_
bool info_
Whether to output information on the decayers.
Definition:
NBodyDecayConstructorBase.h:254
Herwig::NBodyDecayConstructorBase::iteration
int iteration() const
Number of iterations if initializing (default 1)
Definition:
NBodyDecayConstructorBase.h:132
Herwig::NBodyDecayConstructorBase::DecayList
virtual void DecayList(const set< PDPtr, MassOrdering > &particles)
Function used to determine allowed decaymodes, to be implemented in derived class.
Herwig::NBodyDecayConstructorBase::excludedVerticesSet_
set< VertexBasePtr > excludedVerticesSet_
Excluded Vertices.
Definition:
NBodyDecayConstructorBase.h:274
Herwig::NBodyDecayConstructorBase::createModes_
bool createModes_
Whether to create the DecayModes as well as the Decayer objects.
Definition:
NBodyDecayConstructorBase.h:259
Herwig::NBodyDecayConstructorBase::decayConstructor
void decayConstructor(tDecayConstructorPtr d)
Set the pointer to the DecayConstrcutor.
Definition:
NBodyDecayConstructorBase.h:73
Herwig::NBodyDecayConstructorBase::removeOnShell_
unsigned int removeOnShell_
Whether or not to remove on-shell diagrams.
Definition:
NBodyDecayConstructorBase.h:264
Herwig::NBodyDecayConstructorError
An Exception class that can be used by all inheriting classes to indicate a setup problem.
Definition:
NBodyDecayConstructorBase.h:335
ThePEG::Exception
ThePEG::Exception::Exception
Exception()
ThePEG::Exception::Severity
Severity
ThePEG::InterfacedBase::name
string name() const
ThePEG::Interfaced
ThePEG::PersistentIStream
ThePEG::PersistentOStream
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG
ThePEG::tDMPtr
ThePEG::Ptr< DecayMode >::transient_pointer tDMPtr
ThePEG::PDPtr
ThePEG::Ptr< ParticleData >::pointer PDPtr
Herwig::NBodyDecayConstructorBase::MassOrdering
Definition:
NBodyDecayConstructorBase.h:38
Generated on Thu Jun 20 2024 17:50:53 for Herwig by
1.9.6