herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
SusyBase.h
1// -*- C++ -*-
2//
3// SusyBase.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_SusyBase_H
10#define HERWIG_SusyBase_H
11//
12// This is the declaration of the SusyBase class.
13//
14
15#include "Herwig/Models/General/BSMModel.h"
16#include "MixingMatrix.h"
17#include "ThePEG/Utilities/CFileLineReader.h"
18#include "ThePEG/Helicity/Vertex/AbstractVSSVertex.h"
19#include "ThePEG/Helicity/Vertex/AbstractSSSVertex.h"
20#include "ThePEG/Helicity/Vertex/AbstractVVSSVertex.h"
21#include "ThePEG/Helicity/Vertex/AbstractRFSVertex.h"
22#include "ThePEG/Helicity/Vertex/AbstractRFVVertex.h"
23#include "SusyBase.fh"
24
25namespace Herwig {
26using namespace ThePEG;
27
28 /*@name Some convenient typedefs. */
30
33 typedef map<long, double> ParamMap;
34
38 typedef map<long,string> StringMap;
40
51class SusyBase: public BSMModel {
52
53public:
54
59
60public:
61
67 double tanBeta() const { return tanBeta_; }
68
72 Energy muParameter() const { return mu_; }
73
77 const MixingMatrixPtr & neutralinoMix() const {
78 return NMix_;
79 }
80
84 const MixingMatrixPtr & charginoUMix() const {
85 return UMix_;
86 }
87
91 const MixingMatrixPtr & charginoVMix() const {
92 return VMix_;
93 }
94
98 const Complex & gluinoPhase() const {return gluinoPhase_;}
100
105
106public:
107
115
121 void persistentInput(PersistentIStream & is, int version);
123
130 static void Init();
131
132public:
133
141 const Energy & M1() const {return M1_;}
142
146 const Energy & M2() const {return M2_;}
147
151 const Energy & M3() const {return M3_;}
152
156 const Energy2 & Mh12() const {return mH12_;}
157
161 const Energy2 & Mh22() const {return mH22_;}
162
166 const Energy & MeL() const {return meL_;}
167
171 const Energy & MmuL() const {return mmuL_;}
172
176 const Energy & MtauL() const {return mtauL_;}
177
181 const Energy & MeR() const {return meR_;}
182
186 const Energy & MmuR() const {return mmuR_;}
187
191 const Energy & MtauR() const {return mtauR_;}
192
196 const Energy & Mq1L() const {return mq1L_;}
197
201 const Energy & Mq2L() const {return mq2L_;}
202
206 const Energy & Mq3L() const {return mq3L_;}
207
211 const Energy & MdR() const {return mdR_;}
212
216 const Energy & MuR() const {return muR_;}
217
221 const Energy & MsR() const {return msR_;}
222
226 const Energy & McR() const {return mcR_;}
227
231 const Energy & MbR() const {return mbR_;}
232
236 const Energy & MtR() const {return mtR_;}
238
242 const Energy & MPlanck() const {return MPlanck_;}
243
244protected:
245
250 virtual void readSetup(istream & is);
251
252private:
253
262 void readBlock(CFileLineReader & ifs,string name,string line,
263 bool stringBlock);
264
271 const MixingVector readMatrix(CFileLineReader & ifs, unsigned int & row,
272 unsigned int & col);
273
274protected:
275
279 virtual void createMixingMatrices();
280
284 virtual void extractParameters(bool checkmodel=true);
285
293 void createMixingMatrix(MixingMatrixPtr & matrix, string name,
294 const MixingVector & values,
295 MatrixSize size);
296
301
306 virtual void adjustMixingMatrix(long id);
308
316 const map<string,ParamMap> & parameters() const {
317 return parameters_;
318 }
319
323 const map<string,StringMap> & info() const {
324 return info_;
325 }
326
330 const map<string,pair<MatrixSize,MixingVector> > & mixings() const {
331 return mixings_;
332 }
334
338 void neutralinoMix(MixingMatrixPtr nm) { NMix_ = nm; }
339
343 void charginoUMix(MixingMatrixPtr um) { UMix_ = um; }
344
348 void charginoVMix(MixingMatrixPtr vm) { VMix_ = vm; }
349
354 double findValue(const map<string,ParamMap>::const_iterator pit,
355 int iloc, const string & block,
356 const string & name) {
357 ParamMap::const_iterator it = pit->second.find(iloc);
358 if(it!=pit->second.end()) {
359 return it->second;
360 }
361 else {
362 ostringstream message;
363 message << "SusyBase::findValue() Parameter " << name << " = " << iloc
364 << " not found in BLOCK " << block << "\n";
365 if(generator())
366 generator()->logWarning( Exception(message.str(), Exception::warning) );
367 else
368 cerr << message.str();
369 return 0.;
370 }
371 }
372
373protected:
374
381 virtual IBPtr clone() const;
382
387 virtual IBPtr fullclone() const;
389
390protected:
391
399 virtual void doinit();
401
402private:
403
408 SusyBase & operator=(const SusyBase &) = delete;
409
410private:
411
416
420 Energy MPlanck_;
421
426
431
432 /*
433 * Storage of the parameters.
434 */
436
439 map<string,ParamMap> parameters_;
440
444 map<string,StringMap> info_;
445
449 map<string,pair<MatrixSize, MixingVector> > mixings_;
450
454 double tanBeta_;
455
459 Energy mu_;
461
469 Energy M1_;
470
474 Energy M2_;
475
479 Energy M3_;
480
484 Energy2 mH12_;
485
489 Energy2 mH22_;
490
494 Energy meL_;
495
499 Energy mmuL_;
500
504 Energy mtauL_;
505
509 Energy meR_;
510
514 Energy mmuR_;
515
519 Energy mtauR_;
520
524 Energy mq1L_;
525
529 Energy mq2L_;
530
534 Energy mq3L_;
535
539 Energy mdR_;
540
544 Energy muR_;
545
549 Energy msR_;
550
554 Energy mcR_;
555
559 Energy mbR_;
560
564 Energy mtR_;
566
571
583 MixingMatrixPtr NMix_;
584
588 MixingMatrixPtr UMix_;
589
593 MixingMatrixPtr VMix_;
595
601 AbstractVSSVertexPtr WSFSFVertex_;
602
606 AbstractVVSSVertexPtr WWSFSFVertex_;
607
611 AbstractFFSVertexPtr NFSFVertex_;
612
616 AbstractFFSVertexPtr GFSFVertex_;
617
621 AbstractSSSVertexPtr HSFSFVertex_;
622
626 AbstractFFSVertexPtr CFSFVertex_;
627
631 AbstractVSSVertexPtr GSFSFVertex_;
632
636 AbstractVVSSVertexPtr GGSQSQVertex_;
637
641 AbstractVVSSVertexPtr WGSQSQVertex_;
642
646 AbstractFFVVertexPtr GSGSGVertex_;
647
651 AbstractFFVVertexPtr GNGVertex_;
652
656 AbstractFFVVertexPtr NNZVertex_;
657
661 AbstractFFVVertexPtr NNPVertex_;
662
666 AbstractFFVVertexPtr CCZVertex_;
667
671 AbstractFFVVertexPtr CNWVertex_;
672
676 AbstractFFSVertexPtr GOGOHVertex_;
677
681 AbstractVSSVertexPtr WHHVertex_;
682
686 AbstractFFSVertexPtr NCTVertex_;
687
691 AbstractRFVVertexPtr GVNVVertex_;
692
696 AbstractRFSVertexPtr GVNHVertex_;
697
701 AbstractRFSVertexPtr GVFSVertex_;
703
708};
709
710}
711
712#endif /* HERWIG_SusyBase_H */
Here is the documentation of the BSMModel class.
Definition: BSMModel.h:21
This class is designed to be a base class for SUSY models.
Definition: SusyBase.h:51
const Energy & M3() const
The bilinear breaking mass term for the gluinos.
Definition: SusyBase.h:151
map< string, pair< MatrixSize, MixingVector > > mixings_
Mixing blocks.
Definition: SusyBase.h:449
const Energy & MeL() const
Soft breaking mass for the first generation lepton doublet.
Definition: SusyBase.h:166
bool majoranaNeutrinos() const
Treatment of neutrinos.
Definition: SusyBase.h:104
AbstractVSSVertexPtr WSFSFVertex_
Pointer to the gauge boson sfermion-sfermion vertex.
Definition: SusyBase.h:601
AbstractVVSSVertexPtr WGSQSQVertex_
Pointer to the gauge boson-gluon-squark-squark vertex;.
Definition: SusyBase.h:641
virtual void readSetup(istream &is)
Function to read information from a setup file.
bool readFile_
Whether or not the SLHA file has been read.
Definition: SusyBase.h:415
Energy2 mH12_
The soft breaking mass squared for .
Definition: SusyBase.h:484
virtual void adjustMixingMatrix(long id)
Adjust row of Mixing Matrix if a negative mass occurs in LHA file.
AbstractFFVVertexPtr GSGSGVertex_
Pointer to the gluon-gluino-gluino vertex.
Definition: SusyBase.h:646
Energy mmuR_
Soft breaking mass for the second generation lepton singlet.
Definition: SusyBase.h:514
AbstractVVSSVertexPtr WWSFSFVertex_
Pointer to the gauge boson pair sfermion-sfermion vertex.
Definition: SusyBase.h:606
Energy muParameter() const
Value of parameter.
Definition: SusyBase.h:72
const Energy & MmuL() const
Soft breaking mass for the second generation lepton doublet.
Definition: SusyBase.h:171
map< string, StringMap > info_
Info blocks.
Definition: SusyBase.h:444
MixingMatrixPtr NMix_
Neutralino and Chargino mixing matrices.
Definition: SusyBase.h:583
bool gravitino_
Whether or not to include gravitino interactions.
Definition: SusyBase.h:425
AbstractRFSVertexPtr GVFSVertex_
Pointer to the vertex for gravitino-fermion sfermion.
Definition: SusyBase.h:701
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
const MixingVector readMatrix(CFileLineReader &ifs, unsigned int &row, unsigned int &col)
Function to read mixing matrix from LHA file.
Energy mbR_
Soft breaking mass for the bottom singlet.
Definition: SusyBase.h:559
AbstractVSSVertexPtr GSFSFVertex_
Pointer to the gluon-sfermion-sfermion vertex.
Definition: SusyBase.h:631
MixingMatrixPtr VMix_
The mixing matrix for the charginos.
Definition: SusyBase.h:593
const map< string, ParamMap > & parameters() const
Access to the mixings and parameters for the inheriting classes.
Definition: SusyBase.h:316
Energy msR_
Soft breaking mass for the strange singlet.
Definition: SusyBase.h:549
Energy2 mH22_
The soft breaking mass squared for .
Definition: SusyBase.h:489
AbstractFFVVertexPtr CCZVertex_
Pointer to the vertex chargino-chargino-Z vertex.
Definition: SusyBase.h:666
Energy meR_
Soft breaking mass for the first generation lepton singlet.
Definition: SusyBase.h:509
AbstractSSSVertexPtr HSFSFVertex_
Pointer to the Higgs-sfermion-sfermion vertex.
Definition: SusyBase.h:621
const Energy & Mq1L() const
Soft breaking mass for the first generation quark doublet.
Definition: SusyBase.h:196
AbstractFFVVertexPtr NNZVertex_
Pointer to the neutralino-neutralino-Z vertex.
Definition: SusyBase.h:656
AbstractRFSVertexPtr GVNHVertex_
Pointer to the vertex for gravitino-neutralino Higgs boson.
Definition: SusyBase.h:696
const Energy & M1() const
Soft breaking parameters.
Definition: SusyBase.h:141
const Energy & M2() const
The bilinear breaking mass term for the wino.
Definition: SusyBase.h:146
const Energy & MmuR() const
Soft breaking mass for the second generation lepton singlet.
Definition: SusyBase.h:186
Energy mq1L_
Soft breaking mass for the first generation quark doublet.
Definition: SusyBase.h:524
Energy M1_
Soft breaking parameters.
Definition: SusyBase.h:469
Energy meL_
Soft breaking mass for the first generation lepton doublet.
Definition: SusyBase.h:494
const Energy & MtauL() const
Soft breaking mass for the third generation lepton doublet.
Definition: SusyBase.h:176
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
AbstractFFSVertexPtr GOGOHVertex_
Pointer to the vertex gaugino-gaugino-higgs vertex.
Definition: SusyBase.h:676
void charginoVMix(MixingMatrixPtr vm)
Reset the V-type chargino mixing matrix.
Definition: SusyBase.h:348
const Energy & Mq3L() const
Soft breaking mass for the third generation quark doublet.
Definition: SusyBase.h:206
const Energy & MuR() const
Soft breaking mass for the up singlet.
Definition: SusyBase.h:216
map< string, ParamMap > parameters_
Parameter blocks.
Definition: SusyBase.h:439
double tanBeta_
Definition: SusyBase.h:454
AbstractFFSVertexPtr CFSFVertex_
Pointer to the -fermion-sfermion vertex.
Definition: SusyBase.h:626
AbstractFFSVertexPtr GFSFVertex_
Pointer to the gluino-fermion-sfermion coupling.
Definition: SusyBase.h:616
Energy MPlanck_
Planck mass needed in GMSB models.
Definition: SusyBase.h:420
AbstractFFSVertexPtr NFSFVertex_
Pointer to the neutralino-fermion-sfermion vertex.
Definition: SusyBase.h:611
Energy mtR_
Soft breaking mass for the top singlet.
Definition: SusyBase.h:564
const Energy & MPlanck() const
Planck mass.
Definition: SusyBase.h:242
virtual void extractParameters(bool checkmodel=true)
Extract the parameters from the input blocks.
virtual IBPtr clone() const
Make a simple clone of this object.
const Energy & McR() const
Soft breaking mass for the charm singlet.
Definition: SusyBase.h:226
virtual void createMixingMatrices()
Create the mixing matrices for the model.
AbstractFFVVertexPtr NNPVertex_
Pointer to the neutralino-neutralino-photon vertex.
Definition: SusyBase.h:661
Energy mtauL_
Soft breaking mass for the third generation lepton doublet.
Definition: SusyBase.h:504
AbstractVSSVertexPtr WHHVertex_
Pointer to the vertex for a gauge boson and higgs.
Definition: SusyBase.h:681
double findValue(const map< string, ParamMap >::const_iterator pit, int iloc, const string &block, const string &name)
Read a parameter from a block, checking that the entry exists.
Definition: SusyBase.h:354
Energy mcR_
Soft breaking mass for the charm singlet.
Definition: SusyBase.h:554
Energy mq2L_
Soft breaking mass for the second generation quark doublet.
Definition: SusyBase.h:529
const Complex & gluinoPhase() const
The phase for gluino vertices.
Definition: SusyBase.h:98
const Energy & Mq2L() const
Soft breaking mass for the second generation quark doublet.
Definition: SusyBase.h:201
AbstractVVSSVertexPtr GGSQSQVertex_
Pointer to the gluon-gluon-squark-squark vertex;.
Definition: SusyBase.h:636
double tanBeta() const
Value of .
Definition: SusyBase.h:67
bool allowedToResetSMMasses_
Allow the resetting of Standard Model masses.
Definition: SusyBase.h:707
Energy mmuL_
Soft breaking mass for the second generation lepton doublet.
Definition: SusyBase.h:499
const map< string, StringMap > & info() const
Info blocks.
Definition: SusyBase.h:323
bool majoranaNeutrinos_
Treatment of the neutrinos.
Definition: SusyBase.h:430
static void Init()
The standard Init function used to initialize the interfaces.
void charginoUMix(MixingMatrixPtr um)
Reset the U-type chargino mixing matrix.
Definition: SusyBase.h:343
Energy muR_
Soft breaking mass for the up singlet.
Definition: SusyBase.h:544
Energy mdR_
Soft breaking mass for the down singlet.
Definition: SusyBase.h:539
const Energy2 & Mh12() const
The soft breaking mass squared for .
Definition: SusyBase.h:156
const MixingMatrixPtr & neutralinoMix() const
The neutralino mixing matrix.
Definition: SusyBase.h:77
SusyBase()
The default constructor.
AbstractFFVVertexPtr CNWVertex_
Pointer to the vertex chargino-neutralino-Z vertex.
Definition: SusyBase.h:671
const Energy & MdR() const
Soft breaking mass for the down singlet.
Definition: SusyBase.h:211
void createMixingMatrix(MixingMatrixPtr &matrix, string name, const MixingVector &values, MatrixSize size)
Create a object MixingMatrix in the repository.
void resetRepositoryMasses()
Reset masses in the repository to values read from LHA file.
Energy M3_
The bilinear breaking mass term for the gluinos.
Definition: SusyBase.h:479
const Energy & MeR() const
Soft breaking mass for the first generation lepton singlet.
Definition: SusyBase.h:181
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
AbstractRFVVertexPtr GVNVVertex_
Pointer to the vertex for gravitino-neutralino vector boson.
Definition: SusyBase.h:691
Energy M2_
The bilinear breaking mass term for the wino.
Definition: SusyBase.h:474
const Energy & MtR() const
Soft breaking mass for the top singlet.
Definition: SusyBase.h:236
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
const Energy & MbR() const
Soft breaking mass for the bottom singlet.
Definition: SusyBase.h:231
const MixingMatrixPtr & charginoVMix() const
The V-type chargino mixing matrix.
Definition: SusyBase.h:91
AbstractFFVVertexPtr GNGVertex_
Pointer to the gluino-neutralino-gluon vertex.
Definition: SusyBase.h:651
void neutralinoMix(MixingMatrixPtr nm)
Reset neutralino mixing matrix.
Definition: SusyBase.h:338
Energy mq3L_
Soft breaking mass for the third generation quark doublet.
Definition: SusyBase.h:534
SusyBase & operator=(const SusyBase &)=delete
The assignment operator is private and must never be called.
const Energy & MsR() const
Soft breaking mass for the strange singlet.
Definition: SusyBase.h:221
const MixingMatrixPtr & charginoUMix() const
The U-type chargino mixing matrix.
Definition: SusyBase.h:84
Energy mtauR_
Soft breaking mass for the third generation lepton singlet.
Definition: SusyBase.h:519
Complex gluinoPhase_
Phase for the gluino.
Definition: SusyBase.h:570
const map< string, pair< MatrixSize, MixingVector > > & mixings() const
Mixing blocks.
Definition: SusyBase.h:330
const Energy2 & Mh22() const
The soft breaking mass squared for .
Definition: SusyBase.h:161
void readBlock(CFileLineReader &ifs, string name, string line, bool stringBlock)
Read block from LHA file.
MixingMatrixPtr UMix_
The mixing matrix for the charginos.
Definition: SusyBase.h:588
AbstractFFSVertexPtr NCTVertex_
Pointer to the vertex for flavour changing stop decay.
Definition: SusyBase.h:686
const Energy & MtauR() const
Soft breaking mass for the third generation lepton singlet.
Definition: SusyBase.h:191
string name() const
tEGPtr generator() const
-*- C++ -*-
map< long, string > StringMap
Map to hold key, string pairs.
Definition: SusyBase.h:38
vector< MixingElement > MixingVector
A vector of mixing elements.
Definition: MixingMatrix.h:62
map< long, double > ParamMap
Map to hold key, parameter pairs.
Definition: SusyBase.h:33
pair< unsigned int, unsigned int > MatrixSize
The size of the matrix.
Definition: MixingMatrix.h:67
std::complex< double > Complex
ThePEG::Ptr< InterfacedBase >::pointer IBPtr