herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
Models
StandardModel
StandardModel.h
1
// -*- C++ -*-
2
//
3
// StandardModel.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_StandardModel_H
10
#define HERWIG_StandardModel_H
11
//
12
// This is the declaration of the StandardModel class.
13
14
#include "ThePEG/StandardModel/StandardModelBase.h"
15
#include "Herwig/Models/StandardModel/RunningMassBase.h"
16
#include "ThePEG/Helicity/Vertex/AbstractFFVVertex.h"
17
#include "ThePEG/Helicity/Vertex/AbstractVVVVertex.h"
18
#include "ThePEG/Helicity/Vertex/AbstractFFSVertex.h"
19
#include "ThePEG/Helicity/Vertex/AbstractVVSVertex.h"
20
#include "ThePEG/Helicity/Vertex/AbstractVVVVVertex.h"
21
#include "ThePEG/Helicity/Vertex/AbstractSSSVertex.h"
22
#include "ThePEG/Helicity/Vertex/AbstractVVSSVertex.h"
23
#include "ThePEG/Helicity/Vertex/AbstractSSSSVertex.h"
24
#include "Herwig/Models/General/ModelGenerator.fh"
25
#include "StandardModel.fh"
26
27
namespace
Herwig
{
28
using namespace
ThePEG
;
29
using namespace
ThePEG::Helicity
;
30
39
class
StandardModel
:
public
StandardModelBase
{
40
45
49
typedef
Ptr<Herwig::RunningMassBase>::pointer
runPtr
;
50
54
typedef
Ptr<Herwig::RunningMassBase>::transient_pointer
trunPtr
;
56
57
public
:
58
64
StandardModel
();
65
69
StandardModel
(
const
StandardModel
&);
70
74
virtual
~StandardModel
();
76
77
public
:
78
85
void
persistentOutput
(
PersistentOStream
& os)
const
;
86
92
void
persistentInput
(
PersistentIStream
& is,
int
version);
94
98
static
void
Init
();
99
100
protected
:
104
virtual
bool
registerDefaultVertices
()
const
{
return
true
; }
105
106
public
:
107
115
double
lnu
()
const
{
116
return
0.25/
sqrt
(
sin2ThetaW
()*(1.-
sin2ThetaW
()))*(
vnu
()+
anu
());
117
}
118
122
double
le
()
const
{
123
return
0.25/
sqrt
(
sin2ThetaW
()*(1.-
sin2ThetaW
()))*(
ve
()+
ae
());
124
}
125
129
double
lu
()
const
{
130
return
0.25/
sqrt
(
sin2ThetaW
()*(1.-
sin2ThetaW
()))*(
vu
()+
au
());
131
}
132
136
double
ld
()
const
{
137
return
0.25/
sqrt
(
sin2ThetaW
()*(1.-
sin2ThetaW
()))*(
vd
()+
ad
());
138
}
139
143
double
rnu
()
const
{
144
return
0.25/
sqrt
(
sin2ThetaW
()*(1.-
sin2ThetaW
()))*(
vnu
()-
anu
());
145
}
146
150
double
re
()
const
{
151
return
0.25/
sqrt
(
sin2ThetaW
()*(1.-
sin2ThetaW
()))*(
ve
()-
ae
());
152
}
153
157
double
ru
()
const
{
158
return
0.25/
sqrt
(
sin2ThetaW
()*(1.-
sin2ThetaW
()))*(
vu
()-
au
());
159
}
160
164
double
rd
()
const
{
165
return
0.25/
sqrt
(
sin2ThetaW
()*(1.-
sin2ThetaW
()))*(
vd
()-
ad
());
166
}
168
176
virtual
tAbstractFFVVertexPtr
vertexFFZ
()
const
{
177
return
FFZVertex_
;
178
}
179
183
virtual
tAbstractFFVVertexPtr
vertexFFP
()
const
{
184
return
FFPVertex_
;
185
}
186
190
virtual
tAbstractFFVVertexPtr
vertexFFG
()
const
{
191
return
FFGVertex_
;
192
}
193
197
virtual
tAbstractFFVVertexPtr
vertexFFW
()
const
{
198
return
FFWVertex_
;
199
}
200
204
virtual
tAbstractFFSVertexPtr
vertexFFH
()
const
{
205
return
FFHVertex_
;
206
}
207
211
virtual
tAbstractVVVVertexPtr
vertexGGG
()
const
{
212
return
GGGVertex_
;
213
}
214
218
virtual
tAbstractVVVVertexPtr
vertexWWW
()
const
{
219
return
WWWVertex_
;
220
}
221
225
virtual
tAbstractVVSVertexPtr
vertexWWH
()
const
{
226
return
WWHVertex_
;
227
}
228
232
virtual
tAbstractVVVVVertexPtr
vertexWWWW
()
const
{
233
return
WWWWVertex_
;
234
}
235
239
virtual
tAbstractVVVVVertexPtr
vertexGGGG
()
const
{
240
return
GGGGVertex_
;
241
}
242
246
virtual
tAbstractVVSVertexPtr
vertexHGG
()
const
{
247
return
HGGVertex_
;
248
}
249
253
virtual
tAbstractVVSVertexPtr
vertexHPP
()
const
{
254
return
HPPVertex_
;
255
}
256
260
virtual
tAbstractSSSVertexPtr
vertexHHH
()
const
{
261
return
HHHVertex_
;
262
}
263
267
virtual
tAbstractVVSSVertexPtr
vertexWWHH
()
const
{
268
return
WWHHVertex_
;
269
}
270
274
unsigned
int
numberOfVertices
()
const
{
275
return
vertexList_
.size() +
extraVertices_
.size();
276
}
277
281
tVertexBasePtr
vertex
(
size_t
ix)
const
{
282
const
size_t
S =
vertexList_
.size();
283
if
( ix < S )
284
return
vertexList_
[ix];
285
else
286
return
extraVertices_
[ix - S];
287
}
289
295
Energy
mass
(Energy2 scale,
tcPDPtr
part)
const
{
296
return
runningMass_
->value(scale,part);
297
}
298
302
trunPtr
massPtr
()
const
{
303
return
runningMass_
;
304
}
305
309
const
map<string,pair<unsigned int,int> > &
couplings
()
const
{
310
return
couplings_
;
311
}
312
313
protected
:
314
321
virtual
IBPtr
clone
()
const
;
322
327
virtual
IBPtr
fullclone
()
const
;
329
330
protected
:
331
337
virtual
void
doinit
();
339
340
protected
:
341
345
void
addVertex
(VertexBasePtr in) {
346
if
( in )
347
vertexList_
.push_back(in);
348
}
349
354
void
resetMass
(
long
id
, Energy
mass
,
tPDPtr
particle=
tPDPtr
());
355
356
protected
:
357
361
void
setCouplings
(
string
name
,pair<unsigned int,int> vals) {
362
couplings_
[
name
] = vals;
363
}
364
365
private
:
366
370
StandardModel
&
operator=
(
const
StandardModel
&) =
delete
;
371
372
private
:
373
382
AbstractFFVVertexPtr
FFZVertex_
;
383
387
AbstractFFVVertexPtr
FFPVertex_
;
388
392
AbstractFFVVertexPtr
FFGVertex_
;
393
397
AbstractFFVVertexPtr
FFWVertex_
;
398
402
AbstractFFSVertexPtr
FFHVertex_
;
403
407
AbstractVVSVertexPtr
WWHVertex_
;
408
412
AbstractVVVVertexPtr
GGGVertex_
;
413
417
AbstractVVVVertexPtr
WWWVertex_
;
418
422
AbstractVVVVVertexPtr
GGGGVertex_
;
423
427
AbstractVVVVVertexPtr
WWWWVertex_
;
428
432
AbstractVVSVertexPtr
HGGVertex_
;
433
437
AbstractVVSVertexPtr
HPPVertex_
;
438
442
AbstractSSSVertexPtr
HHHVertex_
;
443
447
AbstractVVSSVertexPtr
WWHHVertex_
;
448
452
vector<VertexBasePtr>
vertexList_
;
453
457
vector<VertexBasePtr>
extraVertices_
;
459
463
runPtr
runningMass_
;
464
468
ModelGeneratorPtr
modelGenerator_
;
469
473
map<string,pair<unsigned int,int> >
couplings_
;
474
};
475
476
}
477
478
#endif
/* HERWIG_StandardModel_H */
Herwig::StandardModel
This is the Herwig StandardModel class which inherits from ThePEG Standard Model class and implements...
Definition:
StandardModel.h:39
Herwig::StandardModel::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::StandardModel::Init
static void Init()
Standard Init function used to initialize the interfaces.
Herwig::StandardModel::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Herwig::StandardModel::vertexWWWW
virtual tAbstractVVVVVertexPtr vertexWWWW() const
Pointer to the quartic electroweak gauge boson vertex.
Definition:
StandardModel.h:232
Herwig::StandardModel::lnu
double lnu() const
The left and right couplings of the Z^0 including sin and cos theta_W.
Definition:
StandardModel.h:115
Herwig::StandardModel::numberOfVertices
unsigned int numberOfVertices() const
Total number of vertices.
Definition:
StandardModel.h:274
Herwig::StandardModel::StandardModel
StandardModel(const StandardModel &)
Copy-constructor.
Herwig::StandardModel::StandardModel
StandardModel()
Default constructor.
Herwig::StandardModel::couplings_
map< string, pair< unsigned int, int > > couplings_
Couplings in the model.
Definition:
StandardModel.h:473
Herwig::StandardModel::FFHVertex_
AbstractFFSVertexPtr FFHVertex_
Pointer to the fermion-fermion-Higgs vertex.
Definition:
StandardModel.h:402
Herwig::StandardModel::vertexFFW
virtual tAbstractFFVVertexPtr vertexFFW() const
Pointer to the fermion-fermion-W vertex.
Definition:
StandardModel.h:197
Herwig::StandardModel::HHHVertex_
AbstractSSSVertexPtr HHHVertex_
Pointer to triple Higgs vertex.
Definition:
StandardModel.h:442
Herwig::StandardModel::vertexWWH
virtual tAbstractVVSVertexPtr vertexWWH() const
Pointer to the two electroweak gauge boson Higgs vertex.
Definition:
StandardModel.h:225
Herwig::StandardModel::rd
double rd() const
The right-handed coupling of a down type quark.
Definition:
StandardModel.h:164
Herwig::StandardModel::ru
double ru() const
The right-handed coupling of an up type quark.
Definition:
StandardModel.h:157
Herwig::StandardModel::registerDefaultVertices
virtual bool registerDefaultVertices() const
Should the default vertices be considered for generic diagrams.
Definition:
StandardModel.h:104
Herwig::StandardModel::re
double re() const
The right-handed coupling of a charged lepton.
Definition:
StandardModel.h:150
Herwig::StandardModel::doinit
virtual void doinit()
Initialize this object after the setup phase before saving and EventGenerator to disk.
Herwig::StandardModel::vertexHGG
virtual tAbstractVVSVertexPtr vertexHGG() const
Pointer to the quartic gluon vertex.
Definition:
StandardModel.h:246
Herwig::StandardModel::WWWVertex_
AbstractVVVVertexPtr WWWVertex_
Pointer to the triple electroweak gauge boson vertex.
Definition:
StandardModel.h:417
Herwig::StandardModel::HPPVertex_
AbstractVVSVertexPtr HPPVertex_
Pointer to higgs-gamma-gamma vertex.
Definition:
StandardModel.h:437
Herwig::StandardModel::extraVertices_
vector< VertexBasePtr > extraVertices_
Additional vertices to be considered in automatic ME construction.
Definition:
StandardModel.h:457
Herwig::StandardModel::setCouplings
void setCouplings(string name, pair< unsigned int, int > vals)
Set the couplings in the model.
Definition:
StandardModel.h:361
Herwig::StandardModel::FFWVertex_
AbstractFFVVertexPtr FFWVertex_
Pointer to the fermion-fermion-W vertex.
Definition:
StandardModel.h:397
Herwig::StandardModel::WWHHVertex_
AbstractVVSSVertexPtr WWHHVertex_
Pointer to WWHH vertex.
Definition:
StandardModel.h:447
Herwig::StandardModel::HGGVertex_
AbstractVVSVertexPtr HGGVertex_
Pointer to higgs-gluon-gluon vertex.
Definition:
StandardModel.h:432
Herwig::StandardModel::resetMass
void resetMass(long id, Energy mass, tPDPtr particle=tPDPtr())
Helper function to reset the mass of a ParticleData object in BSM models.
Herwig::StandardModel::vertexFFG
virtual tAbstractFFVVertexPtr vertexFFG() const
Pointer to the fermion-fermion-gluon vertex.
Definition:
StandardModel.h:190
Herwig::StandardModel::vertexFFH
virtual tAbstractFFSVertexPtr vertexFFH() const
Pointer to the fermion-fermion-Higgs vertex.
Definition:
StandardModel.h:204
Herwig::StandardModel::trunPtr
Ptr< Herwig::RunningMassBase >::transient_pointer trunPtr
Transient pointer to the RunningMassBase object.
Definition:
StandardModel.h:54
Herwig::StandardModel::vertexGGGG
virtual tAbstractVVVVVertexPtr vertexGGGG() const
Pointer to the quartic gluon vertex.
Definition:
StandardModel.h:239
Herwig::StandardModel::GGGGVertex_
AbstractVVVVVertexPtr GGGGVertex_
Pointer to the quartic gluon vertex.
Definition:
StandardModel.h:422
Herwig::StandardModel::WWWWVertex_
AbstractVVVVVertexPtr WWWWVertex_
Pointer to the quartic electroweak gauge boson vertex.
Definition:
StandardModel.h:427
Herwig::StandardModel::le
double le() const
The left-handed coupling of a charged lepton.
Definition:
StandardModel.h:122
Herwig::StandardModel::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::StandardModel::couplings
const map< string, pair< unsigned int, int > > & couplings() const
Set the couplings in the model.
Definition:
StandardModel.h:309
Herwig::StandardModel::vertexFFP
virtual tAbstractFFVVertexPtr vertexFFP() const
Pointer to the fermion-fermion-photon vertex.
Definition:
StandardModel.h:183
Herwig::StandardModel::vertexFFZ
virtual tAbstractFFVVertexPtr vertexFFZ() const
Pointers to the objects handling the vertices.
Definition:
StandardModel.h:176
Herwig::StandardModel::GGGVertex_
AbstractVVVVertexPtr GGGVertex_
Pointer to the triple gluon vertex.
Definition:
StandardModel.h:412
Herwig::StandardModel::FFPVertex_
AbstractFFVVertexPtr FFPVertex_
Pointer to the fermion-fermion-photon vertex.
Definition:
StandardModel.h:387
Herwig::StandardModel::WWHVertex_
AbstractVVSVertexPtr WWHVertex_
Pointer to the two electroweak gauge boson Higgs vertex.
Definition:
StandardModel.h:407
Herwig::StandardModel::addVertex
void addVertex(VertexBasePtr in)
Add a vertex to the list.
Definition:
StandardModel.h:345
Herwig::StandardModel::lu
double lu() const
The left-handed coupling of an up type quark.
Definition:
StandardModel.h:129
Herwig::StandardModel::vertexWWW
virtual tAbstractVVVVertexPtr vertexWWW() const
Pointer to the triple electroweak gauge boson vertex.
Definition:
StandardModel.h:218
Herwig::StandardModel::modelGenerator_
ModelGeneratorPtr modelGenerator_
Pointer to ModelGenerator Class.
Definition:
StandardModel.h:468
Herwig::StandardModel::FFGVertex_
AbstractFFVVertexPtr FFGVertex_
Pointer to the fermion-fermion-gluon vertex.
Definition:
StandardModel.h:392
Herwig::StandardModel::runningMass_
runPtr runningMass_
The running mass.
Definition:
StandardModel.h:463
Herwig::StandardModel::vertex
tVertexBasePtr vertex(size_t ix) const
Access to a vertex from the list.
Definition:
StandardModel.h:281
Herwig::StandardModel::vertexList_
vector< VertexBasePtr > vertexList_
Full list of vertices as a vector to allow searching.
Definition:
StandardModel.h:452
Herwig::StandardModel::vertexHPP
virtual tAbstractVVSVertexPtr vertexHPP() const
Pointer to the quartic gluon vertex.
Definition:
StandardModel.h:253
Herwig::StandardModel::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Herwig::StandardModel::ld
double ld() const
The left-handed coupling of a down type quark.
Definition:
StandardModel.h:136
Herwig::StandardModel::runPtr
Ptr< Herwig::RunningMassBase >::pointer runPtr
Some typedefs for the pointers.
Definition:
StandardModel.h:49
Herwig::StandardModel::vertexHHH
virtual tAbstractSSSVertexPtr vertexHHH() const
Pointer to the triple Higgs vertex.
Definition:
StandardModel.h:260
Herwig::StandardModel::rnu
double rnu() const
The right-handed coupling of a neutrino.
Definition:
StandardModel.h:143
Herwig::StandardModel::operator=
StandardModel & operator=(const StandardModel &)=delete
Private and non-existent assignment operator.
Herwig::StandardModel::vertexWWHH
virtual tAbstractVVSSVertexPtr vertexWWHH() const
Pointer to the WWHH vertex.
Definition:
StandardModel.h:267
Herwig::StandardModel::mass
Energy mass(Energy2 scale, tcPDPtr part) const
Return the running mass for a given scale and particle type.
Definition:
StandardModel.h:295
Herwig::StandardModel::FFZVertex_
AbstractFFVVertexPtr FFZVertex_
Pointers to the vertices for Standard Model helicity amplitude calculations.
Definition:
StandardModel.h:382
Herwig::StandardModel::vertexGGG
virtual tAbstractVVVVertexPtr vertexGGG() const
Pointer to the triple gluon vertex.
Definition:
StandardModel.h:211
Herwig::StandardModel::massPtr
trunPtr massPtr() const
Return a pointer to the object handling the running mass.
Definition:
StandardModel.h:302
Herwig::StandardModel::~StandardModel
virtual ~StandardModel()
Destructor.
ThePEG::InterfacedBase::name
string name() const
ThePEG::PersistentIStream
ThePEG::PersistentOStream
ThePEG::StandardModelBase
ThePEG::StandardModelBase::sin2ThetaW
double sin2ThetaW() const
ThePEG::StandardModelBase::ae
double ae() const
ThePEG::StandardModelBase::vnu
double vnu() const
ThePEG::StandardModelBase::ve
double ve() const
ThePEG::StandardModelBase::vu
double vu() const
ThePEG::StandardModelBase::au
double au() const
ThePEG::StandardModelBase::anu
double anu() const
ThePEG::StandardModelBase::vd
double vd() const
ThePEG::StandardModelBase::ad
double ad() const
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG::Helicity
ThePEG
ThePEG::tPDPtr
ThePEG::Ptr< ParticleData >::transient_pointer tPDPtr
ThePEG::sqrt
double sqrt(int x)
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