herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
UEDBase.h
1// -*- C++ -*-
2//
3// UEDBase.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_UEDBase_H
10#define HERWIG_UEDBase_H
11//
12// This is the declaration of the UEDBase class.
13//
14
15#include "Herwig/Models/General/BSMModel.h"
16#include "ThePEG/Helicity/Vertex/AbstractFFVVertex.h"
17#include "ThePEG/Helicity/Vertex/AbstractFFSVertex.h"
18#include "ThePEG/Helicity/Vertex/AbstractVVVVertex.h"
19#include "ThePEG/Helicity/Vertex/AbstractVSSVertex.h"
20
21#include "UEDBase.fh"
22
23namespace Herwig {
24using namespace ThePEG;
25
38class UEDBase: public BSMModel {
39
40public:
41
43 typedef pair<long, Energy> IDMassPair;
44
46 typedef map<unsigned int, double> WAMap;
47
48public:
49
54
62
68 void persistentInput(PersistentIStream & is, int version);
70
77 static void Init();
78
79public:
80
86 InvEnergy compactRadius() const {
87 return 1./theInvRadius;
88 }
89
93 double sinThetaN(const unsigned int n) const;
94
98 double sinThetaOne() const {
99 return theSinThetaOne;
100 }
102
103protected:
104
110 theMasses.push_back(elem);
111 }
112
118 void addMixingAngle(const unsigned int n,
119 const double val) {
120 theMixingAngles.insert(make_pair(n, val));
121 }
122
123private:
124
131 void calculateKKMasses(const unsigned int n);
132
138 void bosonMasses(const unsigned int n);
139
145 void fermionMasses(const unsigned int n);
146
152 void resetMass(long id, Energy value);
153
158 double calculateMixingAngle(const unsigned int n);
160
165
169 static bool lowerMass(const pair<long, Energy> & p1,
170 const pair<long, Energy> & p2) {
171 return p1.second < p2.second;
172 }
173
174protected:
175
182 virtual IBPtr clone() const {return new_ptr(*this);}
183
188 virtual IBPtr fullclone() const {return new_ptr(*this);}
190
191
192protected:
193
196 virtual void doinit();
198
199private:
200
205 UEDBase & operator=(const UEDBase &) = delete;
206
207private:
208
213
218
223
227 Energy theMbarH;
228
233
238
242 vector<IDMassPair> theMasses;
243
247 Energy theVeV;
248
253
258
263
269 AbstractFFVVertexPtr theF1F1Z0Vertex;
270
274 AbstractFFVVertexPtr theF1F1G0Vertex;
275
279 AbstractFFVVertexPtr theF1F0G1Vertex;
280
284 AbstractVVVVertexPtr theG1G1G0Vertex;
285
289 AbstractVVVVVertexPtr theG0G0G1G1Vertex;
290
294 AbstractFFVVertexPtr theF1F1P0Vertex;
295
299 AbstractFFVVertexPtr theF1F1W0Vertex;
300
304 AbstractFFVVertexPtr theF1F0W1Vertex;
305
309 AbstractFFSVertexPtr theF1F0H1Vertex;
310
314 AbstractVSSVertexPtr theP0H1H1Vertex;
315
319 AbstractVSSVertexPtr theZ0H1H1Vertex;
320
324 AbstractVSSVertexPtr theW0A1H1Vertex;
325
329 AbstractVSSVertexPtr theZ0A1h1Vertex;
330
334 AbstractVVVVertexPtr theW0W1W1Vertex;
336};
337
338
339}
340
341#endif /* HERWIG_UEDBase_H */
Here is the documentation of the BSMModel class.
Definition: BSMModel.h:21
This class serves as a base class for all UED models.
Definition: UEDBase.h:38
void bosonMasses(const unsigned int n)
Calculate the radiative corrections to the spin-0 and spin-1 masses of the KK excitations.
static void Init()
The standard Init function used to initialize the interfaces.
AbstractVVVVertexPtr theW0W1W1Vertex
The vertex.
Definition: UEDBase.h:334
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
double calculateMixingAngle(const unsigned int n)
Calculate the Weinburg Mixing angle for the appropriate level.
AbstractFFVVertexPtr theF1F1W0Vertex
The .
Definition: UEDBase.h:299
AbstractFFVVertexPtr theF1F1Z0Vertex
The .
Definition: UEDBase.h:269
double theSinThetaOne
Store for faster access.
Definition: UEDBase.h:237
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
UEDBase & operator=(const UEDBase &)=delete
The assignment operator is private and must never be called.
void writeSpectrum()
Write out a spectrum file ordered in mass (name can be set by an interface).
double sinThetaN(const unsigned int n) const
Return the Weinburg mixing angle for any level.
AbstractFFVVertexPtr theF1F0G1Vertex
The .
Definition: UEDBase.h:279
InvEnergy compactRadius() const
Return the compactification radius.
Definition: UEDBase.h:86
AbstractVVVVertexPtr theG1G1G0Vertex
The vertex.
Definition: UEDBase.h:284
AbstractVSSVertexPtr theW0A1H1Vertex
The .
Definition: UEDBase.h:324
AbstractFFSVertexPtr theF1F0H1Vertex
The .
Definition: UEDBase.h:309
AbstractVSSVertexPtr theZ0A1h1Vertex
The .
Definition: UEDBase.h:329
bool includeSMMass_
Include SM masses in calculation of KK masses.
Definition: UEDBase.h:252
AbstractVVVVVertexPtr theG0G0G1G1Vertex
The vertex.
Definition: UEDBase.h:289
UEDBase()
The default constructor.
static bool lowerMass(const pair< long, Energy > &p1, const pair< long, Energy > &p2)
A predicate for sorting the list of masses.
Definition: UEDBase.h:169
WAMap theMixingAngles
The values of .
Definition: UEDBase.h:232
Energy theInvRadius
Store the radius of the compactified dimension.
Definition: UEDBase.h:217
bool includeGaugeMixing_
Include gauge boson mixing.
Definition: UEDBase.h:262
vector< IDMassPair > theMasses
Store the masses of the new particles.
Definition: UEDBase.h:242
double theLambdaR
The value of .
Definition: UEDBase.h:222
Energy theVeV
The value of the vacuum expectation value of the higgs field.
Definition: UEDBase.h:247
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Definition: UEDBase.h:188
AbstractFFVVertexPtr theF1F1G0Vertex
The .
Definition: UEDBase.h:274
AbstractVSSVertexPtr theZ0H1H1Vertex
The .
Definition: UEDBase.h:319
void calculateKKMasses(const unsigned int n)
Calculate the radiative corrections to the masses of the KK excitations.
AbstractVSSVertexPtr theP0H1H1Vertex
The .
Definition: UEDBase.h:314
bool theRadCorr
Whether to calculate the radiative corrections to the KK masses.
Definition: UEDBase.h:212
bool fixedCouplings_
Use fixed couplings for the mass calculation.
Definition: UEDBase.h:257
map< unsigned int, double > WAMap
Typedef for unsigned int/double map to store Weinburg angles.
Definition: UEDBase.h:46
AbstractFFVVertexPtr theF1F0W1Vertex
The .
Definition: UEDBase.h:304
void addMixingAngle(const unsigned int n, const double val)
Add a new mixing angle to the storage.
Definition: UEDBase.h:118
void resetMass(long id, Energy value)
Reset the mass of the ParticleData object.
void addMassElement(IDMassPair elem)
Add a new ID,mass pair to the mass storage.
Definition: UEDBase.h:109
AbstractFFVVertexPtr theF1F1P0Vertex
The .
Definition: UEDBase.h:294
pair< long, Energy > IDMassPair
Typedef for ID-Mass pair.
Definition: UEDBase.h:43
virtual IBPtr clone() const
Make a simple clone of this object.
Definition: UEDBase.h:182
double sinThetaOne() const
Return the Weinburg mixing angle for .
Definition: UEDBase.h:98
void fermionMasses(const unsigned int n)
Calculate the radiative corrections to the spin-1/2 masses of the KK excitations.
Energy theMbarH
The boundary mass term for the Higgs.
Definition: UEDBase.h:227
-*- C++ -*-
ThePEG::Ptr< InterfacedBase >::pointer IBPtr