herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
Models
General
ModelGenerator.h
1
// -*- C++ -*-
2
//
3
// ModelGenerator.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_ModelGenerator_H
10
#define HERWIG_ModelGenerator_H
11
//
12
// This is the declaration of the ModelGenerator class.
13
//
14
15
#include "ThePEG/Interface/Interfaced.h"
16
#include "DecayConstructor.h"
17
#include "HardProcessConstructor.h"
18
#include "ModelGenerator.fh"
19
20
namespace
Herwig
{
21
using namespace
ThePEG
;
22
31
class
ModelGenerator
:
public
Interfaced
{
32
33
public
:
34
38
ModelGenerator
() :
particles_
(0),
offshell_
(0),
39
Offsel_
(0),
BRnorm_
(true),
40
Npoints_
(10),
Iorder_
(1),
41
BWshape_
(0),
brMin_
(1e-6),
twoBodyOnly_
(false),
42
decayOutput_
(1),
minWidth_
(1e-6),
43
howOffShell_
(5.) {}
44
45
public
:
46
53
void
persistentOutput
(
PersistentOStream
& os)
const
;
54
60
void
persistentInput
(
PersistentIStream
& is,
int
version);
62
69
static
void
Init
();
70
74
virtual
bool
preInitialize
()
const
{
75
return
true
;
76
}
77
78
protected
:
79
87
virtual
void
doinit
();
89
90
protected
:
91
98
virtual
IBPtr
clone
()
const
;
99
104
virtual
IBPtr
fullclone
()
const
;
106
107
private
:
108
113
ModelGenerator
&
operator=
(
const
ModelGenerator
&) =
delete
;
114
115
private
:
116
123
void
checkDecays
(
PDPtr
parent);
124
128
void
writeDecayModes
(ostream & ofs,
tcPDPtr
parent)
const
;
129
135
void
createWidthGenerator
(
tPDPtr
p);
136
137
private
:
138
142
vector<HPConstructorPtr>
hardProcessConstructors_
;
143
147
DecayConstructorPtr
_theDecayConstructor
;
148
152
PDVector
particles_
;
153
159
PDVector
offshell_
;
160
166
int
Offsel_
;
167
172
bool
BRnorm_
;
173
177
int
Npoints_
;
178
182
unsigned
int
Iorder_
;
183
187
int
BWshape_
;
188
192
double
brMin_
;
193
197
bool
twoBodyOnly_
;
199
203
unsigned
int
decayOutput_
;
204
209
double
minWidth_
;
210
214
double
howOffShell_
;
215
};
216
217
}
218
219
#endif
/* HERWIG_ModelGenerator_H */
Herwig::ModelGenerator
This class is designed to store the particles in some model and then call the appropriate function to...
Definition:
ModelGenerator.h:31
Herwig::ModelGenerator::Offsel_
int Offsel_
Which particles to treat as off-shell.
Definition:
ModelGenerator.h:166
Herwig::ModelGenerator::minWidth_
double minWidth_
Minimum fraction of particle's mass width can be for off-shell treatment.
Definition:
ModelGenerator.h:209
Herwig::ModelGenerator::hardProcessConstructors_
vector< HPConstructorPtr > hardProcessConstructors_
Pointer to the TwoToTwoProcessConstructor.
Definition:
ModelGenerator.h:142
Herwig::ModelGenerator::BRnorm_
bool BRnorm_
Whether to normalise the partial widths to BR*Total width for an on-shell particle.
Definition:
ModelGenerator.h:172
Herwig::ModelGenerator::particles_
PDVector particles_
Vector of ParticleData pointer.
Definition:
ModelGenerator.h:152
Herwig::ModelGenerator::checkDecays
void checkDecays(PDPtr parent)
Check the decay modes a given particle type.
Herwig::ModelGenerator::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Herwig::ModelGenerator::createWidthGenerator
void createWidthGenerator(tPDPtr p)
Create mass and width generators to simulate off-shell effects.
Herwig::ModelGenerator::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::ModelGenerator::doinit
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
Herwig::ModelGenerator::Iorder_
unsigned int Iorder_
The order for the interpolation.
Definition:
ModelGenerator.h:182
Herwig::ModelGenerator::offshell_
PDVector offshell_
The particles to create MassGenerator and WidthGenerators
Definition:
ModelGenerator.h:159
Herwig::ModelGenerator::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::ModelGenerator::howOffShell_
double howOffShell_
How much a particle is allowed to be offshell.
Definition:
ModelGenerator.h:214
Herwig::ModelGenerator::Init
static void Init()
The standard Init function used to initialize the interfaces.
Herwig::ModelGenerator::brMin_
double brMin_
The minimum branching ratio to use.
Definition:
ModelGenerator.h:192
Herwig::ModelGenerator::BWshape_
int BWshape_
The shape of the Breit-Wigner used in the mass generation.
Definition:
ModelGenerator.h:187
Herwig::ModelGenerator::twoBodyOnly_
bool twoBodyOnly_
Whether to use only two-body or all modes for running width.
Definition:
ModelGenerator.h:197
Herwig::ModelGenerator::Npoints_
int Npoints_
The number of points to include in the interpolation table.
Definition:
ModelGenerator.h:177
Herwig::ModelGenerator::_theDecayConstructor
DecayConstructorPtr _theDecayConstructor
Pointer to DecayConstructor.
Definition:
ModelGenerator.h:147
Herwig::ModelGenerator::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Herwig::ModelGenerator::writeDecayModes
void writeDecayModes(ostream &ofs, tcPDPtr parent) const
Write out the spectrum of masses and decay modes.
Herwig::ModelGenerator::decayOutput_
unsigned int decayOutput_
Option for the outputs of the decays to a file.
Definition:
ModelGenerator.h:203
Herwig::ModelGenerator::ModelGenerator
ModelGenerator()
The default constructor.
Definition:
ModelGenerator.h:38
Herwig::ModelGenerator::preInitialize
virtual bool preInitialize() const
Overloaded function from Interfaced.
Definition:
ModelGenerator.h:74
Herwig::ModelGenerator::operator=
ModelGenerator & operator=(const ModelGenerator &)=delete
The assignment operator is private and must never be called.
ThePEG::Interfaced
ThePEG::PersistentIStream
ThePEG::PersistentOStream
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG
ThePEG::tPDPtr
ThePEG::Ptr< ParticleData >::transient_pointer tPDPtr
ThePEG::PDVector
vector< PDPtr > PDVector
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::tcPDPtr
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
ThePEG::PDPtr
ThePEG::Ptr< ParticleData >::pointer PDPtr
Generated on Thu Jun 20 2024 17:50:53 for Herwig by
1.9.6