gambit is hosted by Hepforge, IPPP Durham
GAMBIT  v1.5.0-252-gf9a3f78
a Global And Modular Bsm Inference Tool
sminputs.cpp
Go to the documentation of this file.
1 // GAMBIT: Global and Modular BSM Inference Tool
2 // *********************************************
17 
21 
22 namespace Gambit
23 {
24 
25  // Create an SMInputs struct from an SLHAea object
26  SMInputs::SMInputs(SLHAea::Coll& data)
27  {
28  // Defaults set from PDG 2014.
29  // * from http://pdg.lbl.gov/2014/reviews/rpp2014-rev-standard-model.pdf
30  // ** from http://pdg.lbl.gov/2014/reviews/rpp2014-rev-phys-constants.pdf
31  // § from http://pdg.lbl.gov/2014/tables/rpp2014-sum-leptons.pdf
32  // @ from http://pdg.lbl.gov/2014/tables/rpp2014-sum-quarks.pdf
33  // (for reference: http://pdg.lbl.gov/2014/reviews/rpp2014-rev-quark-masses.pdf)
34  // $ from http://arxiv.org/abs/1403.4427
35  // ! from http://pdg.lbl.gov/2014/listings/rpp2014-list-z-boson.pdf
36  // & from http://pdg.lbl.gov/2014/listings/rpp2014-list-b-quark.pdf
37  // % from http://pdg.lbl.gov/2014/listings/rpp2014-list-c-quark.pdf
38  // ^ from http://pdg.lbl.gov/2014/reviews/rpp2014-rev-qcd.pdf
39  // If more than one source listed, values are equal in both sources.
40  // Values in GeV where units apply.
41  // SLHA1
42  alphainv = SLHAea_get(data,"SMINPUTS",1 , 1.27940010E+02); // alpha^{-1}(mZ)^MSbar *
43  GF = SLHAea_get(data,"SMINPUTS",2 , 1.16637870E-05); // G_Fermi **
44  alphaS = SLHAea_get(data,"SMINPUTS",3 , 1.18500000E-01); // alpha_s(mZ)^MSbar ^
45  mZ = SLHAea_get(data,"SMINPUTS",4 , 9.11876000E+01); // mZ(pole) !
46  mBmB = SLHAea_get(data,"SMINPUTS",5 , 4.18000000E+00); // mb(mb)^MSbar &
47  mT = SLHAea_get(data,"SMINPUTS",6 , 1.73340000E+02); // mtop(pole) $
48  mTau = SLHAea_get(data,"SMINPUTS",7 , 1.77682000E+00); // mtau(pole) §
49  mNu3 = SLHAea_get(data,"SMINPUTS",8 , 0); // mnu3(pole)
50  // SLHA2
51  mE = SLHAea_get(data,"SMINPUTS",11, 5.10998928E-04); // melectron(pole) § **
52  mNu1 = SLHAea_get(data,"SMINPUTS",12, 0); // mnu1(pole)
53  mMu = SLHAea_get(data,"SMINPUTS",13, 1.05658372E-01); // mmuon(pole) §
54  mNu2 = SLHAea_get(data,"SMINPUTS",14, 0); // mnu2(pole)
55  mD = SLHAea_get(data,"SMINPUTS",21, 4.80000000E-03); // md(2 GeV)^MSbar @
56  mU = SLHAea_get(data,"SMINPUTS",22, 2.30000000E-03); // mu(2 GeV)^MSbar @
57  mS = SLHAea_get(data,"SMINPUTS",23, 9.50000000E-02); // ms(2 GeV)^MSbar @
58  mCmC = SLHAea_get(data,"SMINPUTS",24, 1.27500000E+00); // mc(mc)^MSbar %
59 
60  // W boson mass
61  // This is an output according to SLHA, however in cases where a spectrum generator doesn't run we
62  // will still need it, for example in the SMSimpleSpec wrapper. Default from numerical-constants.hpp.
63  mW = SLHAea_get(data,"MASS", 24, mw_central_observed);
64 
65  // CKM parameters
66  // from http://pdg.lbl.gov/2014/reviews/rpp2014-rev-ckm-matrix.pdf
67  CKM.lambda = SLHAea_get(data,"VCKMIN",1, 0.22537);
68  CKM.A = SLHAea_get(data,"VCKMIN",2, 0.814);
69  CKM.rhobar = SLHAea_get(data,"VCKMIN",3, 0.117);
70  CKM.etabar = SLHAea_get(data,"VCKMIN",4, 0.353);
71 
72  // PMNS parameters
73  // from http://pdg.lbl.gov/2014/tables/rpp2014-sum-leptons.pdf
74  // see also http://pdg.lbl.gov/2014/reviews/rpp2014-rev-neutrino-mixing.pdf
75  // Note: angles given as x = sin^2(2*theta), so I have converted them as:
76  // theta = 0.5*arcsin(sqrt(x))
77  // CP-violating phases not measured, so I set them to zero.
78  PMNS.theta12 = SLHAea_get(data,"UPMNSIN",1, 0.58376); // the solar angle
79  PMNS.theta23 = SLHAea_get(data,"UPMNSIN",2, 0.76958); // the atmospheric mixing angle
80  PMNS.theta13 = SLHAea_get(data,"UPMNSIN",3, 0.15495);
81  PMNS.delta13 = SLHAea_get(data,"UPMNSIN",4, 0); // the Dirac CP-violating phase
82  PMNS.alpha1 = SLHAea_get(data,"UPMNSIN",5, 0); // the first Majorana CP-violating phase
83  PMNS.alpha2 = SLHAea_get(data,"UPMNSIN",6, 0); // the second CP-violating Majorana phase
84  }
85 
86  // Return a fresh SLHAea object containing the contents of this object.
88  {
89  SLHAstruct slha;
90  this->add_to_SLHAea(slha);
91  slhahelp::add_MODSEL_disclaimer(slha, "spectrum");
92  return slha;
93  }
94 
95  // Add the contents of this object to an existing SLHAea object.
96  void SMInputs::add_to_SLHAea(SLHAea::Coll& data) const
97  {
98  // SMINPUTS block
99  SLHAea_add(data,"SMINPUTS",1 , alphainv, "alpha^{-1}(mZ)^MSbar");
100  SLHAea_add(data,"SMINPUTS",2 , GF , "G_Fermi" );
101  SLHAea_add(data,"SMINPUTS",3 , alphaS , "alpha_s(mZ)^MSbar" );
102  SLHAea_add(data,"SMINPUTS",4 , mZ , "mZ(pole)" );
103  SLHAea_add(data,"SMINPUTS",5 , mBmB , "mb(mb)^MSbar" );
104  SLHAea_add(data,"SMINPUTS",6 , mT , "mtop(pole)" );
105  SLHAea_add(data,"SMINPUTS",7 , mTau , "mtau(pole)" );
106  SLHAea_add(data,"SMINPUTS",8 , mNu3 , "mnu3(pole)" );
107 
108  SLHAea_add(data,"SMINPUTS",11, mE , "melectron(pole)" );
109  SLHAea_add(data,"SMINPUTS",12, mNu1 , "mnu1(pole)" );
110  SLHAea_add(data,"SMINPUTS",13, mMu , "mmuon(pole)" );
111  SLHAea_add(data,"SMINPUTS",14, mNu2 , "mnu2(pole)" );
112  SLHAea_add(data,"SMINPUTS",21, mD , "md(2 GeV)^MSbar" );
113  SLHAea_add(data,"SMINPUTS",22, mU , "mu(2 GeV)^MSbar" );
114  SLHAea_add(data,"SMINPUTS",23, mS , "ms(2 GeV)^MSbar" );
115  SLHAea_add(data,"SMINPUTS",24, mCmC , "mc(mc)^MSbar" );
116 
117  // VCKMIN block
118  SLHAea_add(data,"VCKMIN",1, CKM.lambda, "lambda");
119  SLHAea_add(data,"VCKMIN",2, CKM.A , "A" );
120  SLHAea_add(data,"VCKMIN",3, CKM.rhobar, "rhobar");
121  SLHAea_add(data,"VCKMIN",4, CKM.etabar, "etabar");
122 
123  // UPMNSIN block
124  SLHAea_add(data,"UPMNSIN",1, PMNS.theta12, "theta12 (solar angle)");
125  SLHAea_add(data,"UPMNSIN",2, PMNS.theta23, "theta23 (atmospheric mixing angle)");
126  SLHAea_add(data,"UPMNSIN",3, PMNS.theta13, "theta13");
127  SLHAea_add(data,"UPMNSIN",4, PMNS.delta13, "delta13 (Dirac CP-violating phase)");
128  SLHAea_add(data,"UPMNSIN",5, PMNS.alpha1 , "alpha1 (first Majorana CP-violating phase)" );
129  SLHAea_add(data,"UPMNSIN",6, PMNS.alpha2 , "alpha2 (second CP-violating Majorana phase)");
130 
131  // MASS block
132  SLHAea_add(data,"MASS", 24, mW, "mW(pole)");
133 
134  return;
135  }
136 
137 
138 } // end namespace Gambit
139 
greatScanData data
Definition: great.cpp:38
void add_MODSEL_disclaimer(SLHAstruct &slha, const str &object)
Add a disclaimer about the absence of a MODSEL block in a generated SLHAea object.
Parameters used to define the Standard Model, in SLHA2 format.
void SLHAea_add(SLHAstruct &slha, const str &block, const int index, const double value, const str &comment="", const bool overwrite=false)
Add an entry to an SLHAea object (if overwrite=false, only if it doesn't already exist) ...
Routines to help translate between SLHA2 sfermions and SLHA1 (or similar) sfermions.
SLHAea::Coll SLHAstruct
Less confusing name for SLHAea container class.
void add_to_SLHAea(SLHAstruct &slha) const
Definition: sminputs.cpp:96
SLHAstruct getSLHAea() const
Definition: sminputs.cpp:87
Exception objects required for standalone compilation.
double SLHAea_get(const SLHAstruct &slha, const str &block, const int index)
Get an entry from an SLHAea object as a double, with some error checking.
const double mw_central_observed
M_W (Breit-Wigner mass parameter ~ pole) = 80.385 +/- 0.015 GeV (1 sigma), Gaussian.
TODO: see if we can use this one:
Definition: Analysis.hpp:33
double E(const double x, const double y)