gambit is hosted by Hepforge, IPPP Durham
GAMBIT  v1.5.0-252-gf9a3f78
a Global And Modular Bsm Inference Tool
3bithit.cpp
Go to the documentation of this file.
1 // 3-BIT-HIT: Calculate MSSM spectra, decays and EWPO.
2 // *************************************************
24 
25 #include <stdexcept>
26 
32 
33 using namespace BackendIniBit::Functown;
34 using namespace SpecBit::Functown;
35 using namespace DecayBit::Functown;
36 using namespace PrecisionBit::Functown;
37 
38 using std::cout;
39 using std::endl;
40 
41 const std::string filename_in = "DecayBit/data/3bithit.in";
42 const std::string filename_out[2] = {"3bithit.out.slha1", "3bithit.out.slha2"};
43 
44 int main()
45 {
46 
47  try
48  {
49 
50  cout << endl;
51  cout << "---------------------------------------------------------" << endl;
52  cout << " ____ ____ _____ _______ _ _ _____ _______ " << endl;
53  cout << " |___ \\ | _ \\_ _|__ __| | | | |_ _|__ __|"<< endl;
54  cout << " __) |_____| |_) || | | |____| |__| | | | | | " << endl;
55  cout << " |__ <______| _ < | | | |____| __ | | | | | " << endl;
56  cout << " ___) | | |_) || |_ | | | | | |_| |_ | | " << endl;
57  cout << " |____/ |____/_____| |_| |_| |_|_____| |_| " << endl;
58  cout << "---------------------------------------------------------" << endl;
59  cout << endl;
60  cout << " MSSM spectrum generation, decay and EWPO calculator " << endl;
61  cout << " based on GAMBIT modules SpecBit, DecayBit and " << endl;
62  cout << " PrecisionBit. Uses the following backends: " << endl;
63  cout << " SPheno " << endl;
64  cout << " GM2Calc " << endl;
65  cout << " FeynHiggs " << endl;
66  cout << " SDECAY (via SUSY-HIT) " << endl;
67  cout << endl;
68  cout << " GAMBIT Models Workgroup " << endl;
69  cout << " EPJC 2018 78:22 " << endl;
70  cout << " (arXiv:1705.07936) " << endl;
71  cout << endl;
72  cout << "---------------------------------------------------------" << endl;
73  cout << endl;
74 
75  // Setup logging
76  std::map<std::string, std::string> loggerinfo;
77  loggerinfo["Default"] = "3bithit.log";
78  logger().initialise(loggerinfo);
79 
80  // Initialise the random number generator.
81  Random::create_rng_engine("default");
82 
83  // Check that required backends are present
84  if (not Backends::backendInfo().works["SPheno4.0.3"]) backend_error().raise(LOCAL_INFO, "SPheno 4.0.3 is missing!");
85  if (not Backends::backendInfo().works["gm2calc1.3.0"]) backend_error().raise(LOCAL_INFO, "gm2calc 1.3.1 is missing!");
86  if (not Backends::backendInfo().works["FeynHiggs2.11.3"]) backend_error().raise(LOCAL_INFO, "FeynHiggs 2.11.3 is missing!");
87  if (not Backends::backendInfo().works["SUSY_HIT1.5"]) backend_error().raise(LOCAL_INFO, "SUSY-HIT 1.5 is missing!");
88 
89  // Read in the model
90  YAML::Node infile, SM_parameters, SUSY_parameters;
91  bool model_is_GUT_scale;
92  std::map<bool,std::string> model;
93  model[true] = "NUHM2";
94  model[false] = "MSSM20atQ";
95  try
96  {
97  infile = YAML::LoadFile(filename_in);
98  if (infile["StandardModel_SLHA2"]) SM_parameters = infile["StandardModel_SLHA2"];
99  else throw std::runtime_error("Block StandardModel_SLHA2 not found in "+filename_in+". Quitting...");
100  model_is_GUT_scale = infile[model[true]];
101  if (model_is_GUT_scale) SUSY_parameters = infile[model[true]];
102  if (infile[model[false]])
103  {
104  if (model_is_GUT_scale) throw std::runtime_error("Error: two different models given in "+filename_in+"!");
105  SUSY_parameters = infile[model[false]];
106  }
107  else if (not model_is_GUT_scale) throw std::runtime_error("You must give an " + model[false] + " or " +
108  model[true] + " model in "+filename_in+".");
109  }
110  catch (YAML::Exception &e)
111  {
112  throw std::runtime_error("YAML error in "+filename_in+".\n(yaml-cpp error: "+std::string(e.what())+" )");
113  }
114  std::string SUSY_model = model[model_is_GUT_scale];
115 
116  // Retrieve a raw pointer to the parameter set of each primary model to be scanned, for manually setting parameter values
117  ModelParameters* SM_primpar = Models::StandardModel_SLHA2::Functown::primary_parameters.getcontentsPtr();
118  ModelParameters* SUSY_primpar = model_is_GUT_scale ? Models::NUHM2::Functown::primary_parameters.getcontentsPtr()
119  : Models::MSSM20atQ::Functown::primary_parameters.getcontentsPtr();
120 
121  // Resolve backend requirements 'by hand'. Must be done before dependencies are resolved.
122  get_MSSM_spectrum_SPheno.resolveBackendReq(&Backends::SPheno_4_0_3::Functown::run_SPheno);
123 
124  FH_AllHiggsMasses.resolveBackendReq(&Backends::FeynHiggs_2_11_3::Functown::FHHiggsCorr);
125  FH_AllHiggsMasses.resolveBackendReq(&Backends::FeynHiggs_2_11_3::Functown::FHUncertainties);
126  FH_Couplings.resolveBackendReq(&Backends::FeynHiggs_2_11_3::Functown::FHCouplings);
127  FH_Couplings.resolveBackendReq(&Backends::FeynHiggs_2_11_3::Functown::FHSelectUZ);
128  FH_PrecisionObs.resolveBackendReq(&Backends::FeynHiggs_2_11_3::Functown::FHConstraints);
129 
130  gluino_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_glui2body);
131  gluino_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_glui3body);
132  gluino_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_gluiloop);
133  gluino_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_gluiwidth);
134 
135  stop_1_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_stop2body);
136  stop_1_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_stop3body);
137  stop_1_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_stoploop);
138  stop_1_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_stopwidth);
139 
140  stop_2_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_stop2body);
141  stop_2_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_stop3body);
142  stop_2_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_stopwidth);
143 
144  sbottom_1_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_sbot2body);
145  sbottom_1_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_sbot3body);
146  sbottom_1_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_sbotwidth);
147 
148  sbottom_2_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_sbot2body);
149  sbottom_2_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_sbot3body);
150  sbottom_2_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_sbotwidth);
151 
152  sup_l_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_sup2body);
153  sup_l_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_supwidth);
154 
155  sup_r_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_sup2body);
156  sup_r_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_supwidth);
157 
158  sdown_l_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_sdown2body);
159  sdown_l_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_sdownwidth);
160 
161  sdown_r_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_sdown2body);
162  sdown_r_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_sdownwidth);
163 
164  scharm_l_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_sup2body);
165  scharm_l_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_supwidth);
166 
167  scharm_r_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_sup2body);
168  scharm_r_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_supwidth);
169 
170  sstrange_l_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_sdown2body);
171  sstrange_l_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_sdownwidth);
172  sstrange_r_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_sdown2body);
173  sstrange_r_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_sdownwidth);
174 
175  selectron_l_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_sel2body);
176  selectron_l_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_selwidth);
177 
178  selectron_r_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_sel2body);
179  selectron_r_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_selwidth);
180 
181  smuon_l_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_sel2body);
182  smuon_l_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_selwidth);
183 
184  smuon_r_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_sel2body);
185  smuon_r_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_selwidth);
186 
187  stau_1_decays_SH.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_stau2body);
188  stau_1_decays_SH.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_stau2bodygrav);
189  stau_1_decays_SH.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_stauwidth);
190 
191  stau_2_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_stau2body);
192  stau_2_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_stauwidth);
193 
194  snu_electronl_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_snel2body);
195  snu_electronl_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_snelwidth);
196 
197  snu_muonl_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_snel2body);
198  snu_muonl_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_snelwidth);
199 
200  snu_taul_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_sntau2body);
201  snu_taul_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_sntauwidth);
202 
203  chargino_plus_1_decays_SH.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_char2body);
204  chargino_plus_1_decays_SH.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_char2bodygrav);
205  chargino_plus_1_decays_SH.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_char3body);
206  chargino_plus_1_decays_SH.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_charwidth);
207 
208  chargino_plus_2_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_char2body);
209  chargino_plus_2_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_char2bodygrav);
210  chargino_plus_2_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_char3body);
211  chargino_plus_2_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_charwidth);
212 
213  neutralino_1_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_neut2body);
214  neutralino_1_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_neut2bodygrav);
215  neutralino_1_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_neut3body);
216  neutralino_1_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_neutwidth);
217 
218  neutralino_2_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_neut2body);
219  neutralino_2_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_neut2bodygrav);
220  neutralino_2_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_neut3body);
221  neutralino_2_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_neutloop);
222  neutralino_2_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_neutwidth);
223 
224  neutralino_3_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_neut2body);
225  neutralino_3_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_neut2bodygrav);
226  neutralino_3_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_neut3body);
227  neutralino_3_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_neutloop);
228  neutralino_3_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_neutwidth);
229 
230  neutralino_4_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_neut2body);
231  neutralino_4_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_neut2bodygrav);
232  neutralino_4_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_neut3body);
233  neutralino_4_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_neutloop);
234  neutralino_4_decays.resolveBackendReq(&Backends::SUSY_HIT_1_5::Functown::sd_neutwidth);
235 
236  GM2C_SUSY.resolveBackendReq(&Backends::gm2calc_1_3_0::Functown::calculate_amu_1loop);
237  GM2C_SUSY.resolveBackendReq(&Backends::gm2calc_1_3_0::Functown::calculate_amu_2loop);
238  GM2C_SUSY.resolveBackendReq(&Backends::gm2calc_1_3_0::Functown::calculate_uncertainty_amu_2loop);
239 
240  // Notify any module functions that care of the models being scanned.
241  get_SMINPUTS.notifyOfModel("StandardModel_SLHA2");
242  if (model_is_GUT_scale)
243  {
244  Models::NUHM2::Functown::MSSM63atMGUT_parameters.notifyOfModel(SUSY_model);
245  }
246  else
247  {
248  Models::MSSM20atQ::Functown::MSSM25atQ_parameters.notifyOfModel(SUSY_model);
249  Models::MSSM25atQ::Functown::MSSM30atQ_parameters.notifyOfModel(SUSY_model);
250  Models::MSSM30atQ::Functown::MSSM63atQ_parameters.notifyOfModel(SUSY_model);
251  }
252  SPheno_4_0_3_init.notifyOfModel(SUSY_model);
253  get_MSSM_spectrum_SPheno.notifyOfModel(SUSY_model);
254  FH_AllHiggsMasses.notifyOfModel(SUSY_model);
255  FH_Couplings.notifyOfModel(SUSY_model);
256  SUSY_HIT_1_5_init.notifyOfModel(SUSY_model);
257  FeynHiggs_2_11_3_init.notifyOfModel(SUSY_model);
258  all_decays.notifyOfModel(SUSY_model);
259 
260  // Resolve dependencies 'by hand'. Ordering is unimportant, but something must be filled by primary parameters.
261  if (model_is_GUT_scale)
262  {
263  Models::NUHM2::Functown::MSSM63atMGUT_parameters.resolveDependency(&Models::NUHM2::Functown::primary_parameters);
264  get_MSSM_spectrum_SPheno.resolveDependency(&Models::NUHM2::Functown::MSSM63atMGUT_parameters);
265  }
266  else
267  {
268  Models::MSSM20atQ::Functown::MSSM25atQ_parameters.resolveDependency(&Models::MSSM20atQ::Functown::primary_parameters);
269  Models::MSSM25atQ::Functown::MSSM30atQ_parameters.resolveDependency(&Models::MSSM20atQ::Functown::MSSM25atQ_parameters);
270  Models::MSSM30atQ::Functown::MSSM63atQ_parameters.resolveDependency(&Models::MSSM25atQ::Functown::MSSM30atQ_parameters);
271  get_MSSM_spectrum_SPheno.resolveDependency(&Models::MSSM30atQ::Functown::MSSM63atQ_parameters);
272  }
274  FH_HiggsMass.resolveDependency(&get_MSSM_spectrum_SPheno);
275  FH_HeavyHiggsMasses.resolveDependency(&get_MSSM_spectrum_SPheno);
276  FeynHiggs_2_11_3_init.resolveDependency(&get_MSSM_spectrum_SPheno);
277  get_MSSM_spectrum_SPheno.resolveDependency(&get_SMINPUTS);
278 
279  get_SMINPUTS.resolveDependency(&Models::StandardModel_SLHA2::Functown::primary_parameters);
282  stau_1_decays_smallsplit.resolveDependency(&tau_minus_decays);
286 
287  FH_PrecisionObs.resolveDependency(&FH_Couplings);
288  FH_precision_mw.resolveDependency(&FH_PrecisionObs);
289  FH_precision_sinW2.resolveDependency(&FH_PrecisionObs);
290  FH_precision_deltarho.resolveDependency(&FH_PrecisionObs);
294  FH_HiggsMass.resolveDependency(&FH_AllHiggsMasses);
295  FH_HeavyHiggsMasses.resolveDependency(&FH_AllHiggsMasses);
296  GM2C_SUSY.resolveDependency(&make_MSSM_precision_spectrum_4H_W);
297 
298  SUSY_HIT_1_5_init.resolveDependency(&make_MSSM_precision_spectrum_4H_W);
299  SUSY_HIT_1_5_init.resolveDependency(&W_plus_decays);
300  SUSY_HIT_1_5_init.resolveDependency(&W_minus_decays);
301  SUSY_HIT_1_5_init.resolveDependency(&Z_decays);
302 
303  W_minus_decays.resolveDependency(&W_plus_decays);
304  tbar_decays.resolveDependency(&t_decays);
305  mu_minus_decays.resolveDependency(&mu_plus_decays);
306  tau_minus_decays.resolveDependency(&tau_plus_decays);
307  pi_minus_decays.resolveDependency(&pi_plus_decays);
308  rho_minus_decays.resolveDependency(&rho_plus_decays);
309 
310  FH_MSSM_h0_1_decays.resolveDependency(&FH_Couplings);
311  FH_h0_2_decays.resolveDependency(&FH_Couplings);
312  FH_A0_decays.resolveDependency(&FH_Couplings);
313  FH_H_plus_decays.resolveDependency(&FH_Couplings);
314  FH_t_decays.resolveDependency(&FH_Couplings);
315 
316  stau_1_decays.resolveDependency(&stau_1_decays_SH);
317  stau_1_decays.resolveDependency(&stau_1_decays_smallsplit);
320 
321  FH_MSSM_h0_1_decays.resolveDependency(&get_mass_es_pseudonyms);
322  FH_h0_2_decays.resolveDependency(&get_mass_es_pseudonyms);
323  FH_A0_decays.resolveDependency(&get_mass_es_pseudonyms);
324  FH_H_plus_decays.resolveDependency(&get_mass_es_pseudonyms);
325  gluino_decays.resolveDependency(&get_mass_es_pseudonyms);
326  stop_1_decays.resolveDependency(&get_mass_es_pseudonyms);
327  stop_2_decays.resolveDependency(&get_mass_es_pseudonyms);
328  sbottom_1_decays.resolveDependency(&get_mass_es_pseudonyms);
329  sbottom_2_decays.resolveDependency(&get_mass_es_pseudonyms);
330  stau_1_decays_SH.resolveDependency(&get_mass_es_pseudonyms);
332  stau_2_decays.resolveDependency(&get_mass_es_pseudonyms);
333  snu_taul_decays.resolveDependency(&get_mass_es_pseudonyms);
337  neutralino_1_decays.resolveDependency(&get_mass_es_pseudonyms);
338  neutralino_2_decays.resolveDependency(&get_mass_es_pseudonyms);
339  neutralino_3_decays.resolveDependency(&get_mass_es_pseudonyms);
340  neutralino_4_decays.resolveDependency(&get_mass_es_pseudonyms);
341 
342  H_minus_decays.resolveDependency(&H_plus_decays);
343  stopbar_1_decays.resolveDependency(&stop_1_decays);
344  stopbar_2_decays.resolveDependency(&stop_2_decays);
345  sbottombar_1_decays.resolveDependency(&sbottom_1_decays);
346  sbottombar_2_decays.resolveDependency(&sbottom_2_decays);
347  supbar_l_decays.resolveDependency(&sup_l_decays);
348  supbar_r_decays.resolveDependency(&sup_r_decays);
349  sdownbar_l_decays.resolveDependency(&sdown_l_decays);
350  sdownbar_r_decays.resolveDependency(&sdown_r_decays);
351  scharmbar_l_decays.resolveDependency(&scharm_l_decays);
352  scharmbar_r_decays.resolveDependency(&scharm_r_decays);
353  sstrangebar_l_decays.resolveDependency(&sstrange_l_decays);
354  sstrangebar_r_decays.resolveDependency(&sstrange_r_decays);
355  selectronbar_l_decays.resolveDependency(&selectron_l_decays);
356  selectronbar_r_decays.resolveDependency(&selectron_r_decays);
357  smuonbar_l_decays.resolveDependency(&smuon_l_decays);
358  smuonbar_r_decays.resolveDependency(&smuon_r_decays);
359  staubar_1_decays.resolveDependency(&stau_1_decays);
360  staubar_2_decays.resolveDependency(&stau_2_decays);
361  snubar_electronl_decays.resolveDependency(&snu_electronl_decays);
362  snubar_muonl_decays.resolveDependency(&snu_muonl_decays);
363  snubar_taul_decays.resolveDependency(&snu_taul_decays);
366 
367  all_decays.resolveDependency(&get_mass_es_pseudonyms);
368  all_decays.resolveDependency(&make_MSSM_precision_spectrum_4H_W);
369  all_decays.resolveDependency(&FH_MSSM_h0_1_decays);
370  all_decays.resolveDependency(&W_minus_decays);
371  all_decays.resolveDependency(&W_plus_decays);
372  all_decays.resolveDependency(&Z_decays);
373  all_decays.resolveDependency(&FH_t_decays);
374  all_decays.resolveDependency(&tbar_decays);
375  all_decays.resolveDependency(&mu_minus_decays);
376  all_decays.resolveDependency(&mu_plus_decays);
377  all_decays.resolveDependency(&tau_minus_decays);
378  all_decays.resolveDependency(&tau_plus_decays);
379  all_decays.resolveDependency(&pi_0_decays);
380  all_decays.resolveDependency(&pi_minus_decays);
381  all_decays.resolveDependency(&pi_plus_decays);
382  all_decays.resolveDependency(&eta_decays);
383  all_decays.resolveDependency(&rho_0_decays);
384  all_decays.resolveDependency(&rho_minus_decays);
385  all_decays.resolveDependency(&rho_plus_decays);
386  all_decays.resolveDependency(&rho1450_decays);
387  all_decays.resolveDependency(&omega_decays);
388  all_decays.resolveDependency(&FH_h0_2_decays);
389  all_decays.resolveDependency(&FH_A0_decays);
390  all_decays.resolveDependency(&FH_H_plus_decays);
391  all_decays.resolveDependency(&H_minus_decays);
392  all_decays.resolveDependency(&gluino_decays);
393  all_decays.resolveDependency(&stop_1_decays);
394  all_decays.resolveDependency(&stop_2_decays);
395  all_decays.resolveDependency(&sbottom_1_decays);
396  all_decays.resolveDependency(&sbottom_2_decays);
397  all_decays.resolveDependency(&sup_l_decays);
398  all_decays.resolveDependency(&sup_r_decays);
399  all_decays.resolveDependency(&sdown_l_decays);
400  all_decays.resolveDependency(&sdown_r_decays);
401  all_decays.resolveDependency(&scharm_l_decays);
402  all_decays.resolveDependency(&scharm_r_decays);
403  all_decays.resolveDependency(&sstrange_l_decays);
404  all_decays.resolveDependency(&sstrange_r_decays);
405  all_decays.resolveDependency(&selectron_l_decays);
406  all_decays.resolveDependency(&selectron_r_decays);
407  all_decays.resolveDependency(&smuon_l_decays);
408  all_decays.resolveDependency(&smuon_r_decays);
409  all_decays.resolveDependency(&stau_1_decays);
410  all_decays.resolveDependency(&stau_2_decays);
411  all_decays.resolveDependency(&snu_electronl_decays);
412  all_decays.resolveDependency(&snu_muonl_decays);
413  all_decays.resolveDependency(&snu_taul_decays);
414  all_decays.resolveDependency(&stopbar_1_decays);
415  all_decays.resolveDependency(&stopbar_2_decays);
416  all_decays.resolveDependency(&sbottombar_1_decays);
417  all_decays.resolveDependency(&sbottombar_2_decays);
418  all_decays.resolveDependency(&supbar_l_decays);
419  all_decays.resolveDependency(&supbar_r_decays);
420  all_decays.resolveDependency(&sdownbar_l_decays);
421  all_decays.resolveDependency(&sdownbar_r_decays);
422  all_decays.resolveDependency(&scharmbar_l_decays);
423  all_decays.resolveDependency(&scharmbar_r_decays);
424  all_decays.resolveDependency(&sstrangebar_l_decays);
425  all_decays.resolveDependency(&sstrangebar_r_decays);
426  all_decays.resolveDependency(&selectronbar_l_decays);
427  all_decays.resolveDependency(&selectronbar_r_decays);
428  all_decays.resolveDependency(&smuonbar_l_decays);
429  all_decays.resolveDependency(&smuonbar_r_decays);
430  all_decays.resolveDependency(&staubar_1_decays);
431  all_decays.resolveDependency(&staubar_2_decays);
432  all_decays.resolveDependency(&snubar_electronl_decays);
433  all_decays.resolveDependency(&snubar_muonl_decays);
434  all_decays.resolveDependency(&snubar_taul_decays);
435  all_decays.resolveDependency(&chargino_plus_1_decays);
436  all_decays.resolveDependency(&chargino_minus_1_decays);
437  all_decays.resolveDependency(&chargino_plus_2_decays);
438  all_decays.resolveDependency(&chargino_minus_2_decays);
439  all_decays.resolveDependency(&neutralino_1_decays);
440  all_decays.resolveDependency(&neutralino_2_decays);
441  all_decays.resolveDependency(&neutralino_3_decays);
442  all_decays.resolveDependency(&neutralino_4_decays);
443 
444  // Set some module function options
445  get_MSSM_spectrum_SPheno.setOption<double>("n_run", 30);
446  get_MSSM_spectrum_SPheno.setOption<double>("delta_mass", 1.0e-4);
447 
448  try
449  {
450  // Hand over the parameter values
451  auto names = SM_primpar->getKeys();
452  for (auto it = names.begin(); it != names.end(); ++it) SM_primpar->setValue(*it, SM_parameters[*it].as<double>());
453  names = SUSY_primpar->getKeys();
454  for (auto it = names.begin(); it != names.end(); ++it) SUSY_primpar->setValue(*it, SUSY_parameters[*it].as<double>());
455  }
456  catch (YAML::Exception &e)
457  {
458  // Balk if a required parameter is missing
459  throw std::runtime_error("YAML error attempting to read parameter values.\n (yaml-cpp error: "+std::string(e.what())+" )");
460  }
461 
462  // Call the module functions, taking care to calculate in the order implied by how the dependencies have been filled;
463  try
464  {
465 
466  // Start with the spectrum.
467  get_SMINPUTS.reset_and_calculate();
468  if (model_is_GUT_scale)
469  {
470  Models::NUHM2::Functown::MSSM63atMGUT_parameters.reset_and_calculate();
471  }
472  else
473  {
474  Models::MSSM20atQ::Functown::MSSM25atQ_parameters.reset_and_calculate();
475  Models::MSSM25atQ::Functown::MSSM30atQ_parameters.reset_and_calculate();
476  Models::MSSM30atQ::Functown::MSSM63atQ_parameters.reset_and_calculate();
477  }
478  SPheno_4_0_3_init.reset_and_calculate();
479  get_MSSM_spectrum_SPheno.reset_and_calculate();
480  FeynHiggs_2_11_3_init.reset_and_calculate();
481  FH_AllHiggsMasses.reset_and_calculate();
482  FH_HiggsMass.reset_and_calculate();
483  FH_HeavyHiggsMasses.reset_and_calculate();
484  FH_Couplings.reset_and_calculate();
485  FH_PrecisionObs.reset_and_calculate();
486  FH_precision_mw.reset_and_calculate();
487  make_MSSM_precision_spectrum_4H_W.reset_and_calculate();
488 
489  // Now the decays.
490  get_mass_es_pseudonyms.reset_and_calculate();
491  W_plus_decays.reset_and_calculate();
492  W_minus_decays.reset_and_calculate();
493  Z_decays.reset_and_calculate();
494  SUSY_HIT_1_5_init.reset_and_calculate();
495  FH_MSSM_h0_1_decays.reset_and_calculate();
496  FH_t_decays.reset_and_calculate();
497  tbar_decays.reset_and_calculate();
498  mu_plus_decays.reset_and_calculate();
499  mu_minus_decays.reset_and_calculate();
500  tau_plus_decays.reset_and_calculate();
501  tau_minus_decays.reset_and_calculate();
502  pi_0_decays.reset_and_calculate();
503  pi_plus_decays.reset_and_calculate();
504  pi_minus_decays.reset_and_calculate();
505  eta_decays.reset_and_calculate();
506  rho_0_decays.reset_and_calculate();
507  rho_plus_decays.reset_and_calculate();
508  rho_minus_decays.reset_and_calculate();
509  rho1450_decays.reset_and_calculate();
510  omega_decays.reset_and_calculate();
511  get_mass_es_pseudonyms.reset_and_calculate();
512  FH_h0_2_decays.reset_and_calculate();
513  FH_A0_decays.reset_and_calculate();
514  FH_H_plus_decays.reset_and_calculate();
515  H_minus_decays.reset_and_calculate();
516  gluino_decays.reset_and_calculate();
517  stop_1_decays.reset_and_calculate();
518  stop_2_decays.reset_and_calculate();
519  sbottom_1_decays.reset_and_calculate();
520  sbottom_2_decays.reset_and_calculate();
521  sup_l_decays.reset_and_calculate();
522  sup_r_decays.reset_and_calculate();
523  sdown_l_decays.reset_and_calculate();
524  sdown_r_decays.reset_and_calculate();
525  scharm_l_decays.reset_and_calculate();
526  scharm_r_decays.reset_and_calculate();
527  sstrange_l_decays.reset_and_calculate();
528  sstrange_r_decays.reset_and_calculate();
529  selectron_l_decays.reset_and_calculate();
530  selectron_r_decays.reset_and_calculate();
531  smuon_l_decays.reset_and_calculate();
532  smuon_r_decays.reset_and_calculate();
533  stau_1_decays_SH.reset_and_calculate();
534  stau_1_decays_smallsplit.reset_and_calculate();
535  stau_1_decays.reset_and_calculate();
536  stau_2_decays.reset_and_calculate();
537  snu_electronl_decays.reset_and_calculate();
538  snu_muonl_decays.reset_and_calculate();
539  snu_taul_decays.reset_and_calculate();
540  stopbar_1_decays.reset_and_calculate();
541  stopbar_2_decays.reset_and_calculate();
542  sbottombar_1_decays.reset_and_calculate();
543  sbottombar_2_decays.reset_and_calculate();
544  supbar_l_decays.reset_and_calculate();
545  supbar_r_decays.reset_and_calculate();
546  sdownbar_l_decays.reset_and_calculate();
547  sdownbar_r_decays.reset_and_calculate();
548  scharmbar_l_decays.reset_and_calculate();
549  scharmbar_r_decays.reset_and_calculate();
550  sstrangebar_l_decays.reset_and_calculate();
551  sstrangebar_r_decays.reset_and_calculate();
552  selectronbar_l_decays.reset_and_calculate();
553  selectronbar_r_decays.reset_and_calculate();
554  smuonbar_l_decays.reset_and_calculate();
555  smuonbar_r_decays.reset_and_calculate();
556  staubar_1_decays.reset_and_calculate();
557  staubar_2_decays.reset_and_calculate();
558  snubar_electronl_decays.reset_and_calculate();
559  snubar_muonl_decays.reset_and_calculate();
560  snubar_taul_decays.reset_and_calculate();
561  chargino_plus_1_decays_SH.reset_and_calculate();
562  chargino_plus_1_decays_smallsplit.reset_and_calculate();
563  chargino_plus_1_decays.reset_and_calculate();
564  chargino_minus_1_decays.reset_and_calculate();
565  chargino_plus_2_decays.reset_and_calculate();
566  chargino_minus_2_decays.reset_and_calculate();
567  neutralino_1_decays.reset_and_calculate();
568  neutralino_2_decays.reset_and_calculate();
569  neutralino_3_decays.reset_and_calculate();
570  neutralino_4_decays.reset_and_calculate();
571  all_decays.reset_and_calculate();
572 
573  // Now the other EWPO.
574  FH_precision_sinW2.reset_and_calculate();
575  FH_precision_deltarho.reset_and_calculate();
576  GM2C_SUSY.reset_and_calculate();
577 
578  // Dump the final results to SLHA files.
579  SLHAstruct slha[2] = {make_MSSM_precision_spectrum_4H_W(0).getSLHAea(1), make_MSSM_precision_spectrum_4H_W(0).getSLHAea(2)};
580  SLHAstruct decays[2] = {all_decays(0).getSLHAea(1,false,get_mass_es_pseudonyms(0)), all_decays(0).getSLHAea(2,false,get_mass_es_pseudonyms(0))};
581  for (int i = 0; i < 2; i++) slha[i].insert(slha[i].end(), decays[i].cbegin(), decays[i].cend());
582  SLHAea::Block ewpo_block("EWPO");
583  ewpo_block.push_back("BLOCK EWPO # Electroweak precision observable predictions");
584  ewpo_block.push_back("# central +1sigma -1sigma");
585  SLHAea::Line line1, line2, line3, line4, line5;
586  const SubSpectrum& HE = make_MSSM_precision_spectrum_4H_W(0).get_HE();
587  line1 << 1 << HE.get(Par::Pole_Mass, 25, 0) << " " << HE.get(Par::Pole_Mass_1srd_high, 25, 0) << " " << HE.get(Par::Pole_Mass_1srd_low, 25, 0) << "# Precision Higgs mass (GeV)";
588  line2 << 2 << FH_precision_mw(0).central << " " << FH_precision_mw(0).upper << " " << FH_precision_mw(0).lower << "# Precision W mass (GeV)";
589  line3 << 3 << FH_precision_sinW2(0).central << " " << FH_precision_sinW2(0).upper << " " << FH_precision_sinW2(0).lower << "# sin^2 \\theta_W effective (leptonic)";
590  line4 << 4 << FH_precision_deltarho(0).central << " " << FH_precision_deltarho(0).upper << " " << FH_precision_deltarho(0).lower << "# \\Delta \\rho";
591  line5 << 5 << GM2C_SUSY(0).central << " " << GM2C_SUSY(0).upper << " " << GM2C_SUSY(0).lower << "# SUSY contribution to muon g-2";
592  ewpo_block.push_back(line1);
593  ewpo_block.push_back(line2);
594  ewpo_block.push_back(line3);
595  ewpo_block.push_back(line4);
596  ewpo_block.push_back(line5);
597  for (int i = 0; i < 2; i++)
598  {
599  slha[i].push_back(ewpo_block);
600  Utils::FileLock mylock(filename_out[i]);
601  mylock.get_lock();
602  std::ofstream ofs(filename_out[i]);
603  ofs << slha[i];
604  ofs.close();
605  mylock.release_lock();
606  cout << endl << "SLHA file " << filename_out[i] << " successfully emitted.";
607  }
608  cout << endl << endl;
609 
610  }
611 
612  // Be sure to do something sensible in cases where the point was invalidated by one of the functions.
614  {
615  cout << endl << "Model is invalid according to " << e.thrower()->origin() << "::" << e.thrower()->name() << "." << endl;
616  cout << "Reason: " << e.message() << endl;
617  }
618 
619  cout << endl << "3-BIT-HIT has finished." << endl << endl;
620  return 0;
621 
622  }
623 
624  catch (std::exception& e)
625  {
626  cout << endl << "3-BIT-HIT has exited with fatal exception: " << e.what() << endl << endl;
627  }
628 
629  return(1);
630 
631 }
void mu_minus_decays(DecayTable::Entry &result)
Definition: DecayBit.cpp:445
void stop_1_decays(DecayTable::Entry &result)
SUSY-HIT MSSM decays: stop_1.
Definition: DecayBit.cpp:976
void stau_1_decays(DecayTable::Entry &result)
MSSM decays: stau_1 (Uses SUSY-HIT results or dedicated DecayBit calculation for small mass splitting...
Definition: DecayBit.cpp:1424
fh_Couplings libfeynhiggs fh_PrecisionObs FH_precision_mw
void FH_A0_decays(DecayTable::Entry &result)
FeynHiggs MSSM decays: A0.
Definition: DecayBit.cpp:563
void sbottombar_2_decays(DecayTable::Entry &result)
Definition: DecayBit.cpp:2791
void selectronbar_l_decays(DecayTable::Entry &result)
Definition: DecayBit.cpp:2800
Rollcall header for module SpecBit.
void chargino_plus_2_decays(DecayTable::Entry &result)
SUSY-HIT MSSM decays: chargino_plus_2.
Definition: DecayBit.cpp:1639
void Z_decays(DecayTable::Entry &result)
SM decays: Z Reference: 2017 PDG.
Definition: DecayBit.cpp:285
void rho_0_decays(DecayTable::Entry &result)
SM decays: rho0 Reference: 2017 PDG.
Definition: DecayBit.cpp:399
void stau_1_decays_smallsplit(DecayTable::Entry &result)
MSSM decays: stau decays for small stau–neutralino mass splitting.
Definition: DecayBit.cpp:2566
void FH_precision_deltarho(triplet< double > &result)
void neutralino_3_decays(DecayTable::Entry &result)
SUSY-HIT MSSM decays: neutralino_3.
Definition: DecayBit.cpp:1954
void supbar_l_decays(DecayTable::Entry &result)
Definition: DecayBit.cpp:2792
void W_minus_decays(DecayTable::Entry &result)
SM decays: conjugates.
Definition: DecayBit.cpp:443
void sup_l_decays(DecayTable::Entry &result)
SUSY-HIT MSSM decays: sup_l.
Definition: DecayBit.cpp:1221
void FH_MSSM_h0_1_decays(DecayTable::Entry &result)
FeynHiggs MSSM decays: h0_1.
Definition: DecayBit.cpp:547
void eta_decays(DecayTable::Entry &result)
SM decays: eta Reference: 2017 PDG.
Definition: DecayBit.cpp:388
void omega_decays(DecayTable::Entry &result)
SM decays: omega Reference: 2017 PDG.
Definition: DecayBit.cpp:421
void smuon_l_decays(DecayTable::Entry &result)
SUSY-HIT MSSM decays: smuon_l.
Definition: DecayBit.cpp:1392
void sdown_l_decays(DecayTable::Entry &result)
SUSY-HIT MSSM decays: sdown_l.
Definition: DecayBit.cpp:1258
void sstrange_l_decays(DecayTable::Entry &result)
SUSY-HIT MSSM decays: sstrange_l.
Definition: DecayBit.cpp:1326
void FH_HeavyHiggsMasses(map_int_triplet_dbl &result)
Includes everything needed to use a GAMBIT module as a standalone analysis code.
void chargino_plus_1_decays(DecayTable::Entry &result)
MSSM decays: chargino_plus_1 (Uses SUSY-HIT results or dedicated DecayBit calculation for small mass ...
Definition: DecayBit.cpp:1548
void GM2C_SUSY(triplet< double > &result)
Calculate a_mu_SUSY using the gm2calc backend.
void snubar_muonl_decays(DecayTable::Entry &result)
Definition: DecayBit.cpp:2807
void sdownbar_r_decays(DecayTable::Entry &result)
Definition: DecayBit.cpp:2795
#define LOCAL_INFO
Definition: local_info.hpp:34
GAMBIT file locking functions Use these to block access to sensitive parts of the code by other proce...
void snubar_electronl_decays(DecayTable::Entry &result)
Definition: DecayBit.cpp:2806
void selectron_r_decays(DecayTable::Entry &result)
SUSY-HIT MSSM decays: selectron_r.
Definition: DecayBit.cpp:1376
void get_SMINPUTS(SMInputs &result)
Gambit module functions.
Definition: SpecBit.cpp:82
void sstrangebar_r_decays(DecayTable::Entry &result)
Definition: DecayBit.cpp:2799
void smuonbar_r_decays(DecayTable::Entry &result)
Definition: DecayBit.cpp:2803
void stopbar_2_decays(DecayTable::Entry &result)
Definition: DecayBit.cpp:2789
void rho1450_decays(DecayTable::Entry &result)
SM decays: rho1450 Reference: 2017 PDG.
Definition: DecayBit.cpp:432
void stau_1_decays_SH(DecayTable::Entry &result)
SUSY-HIT MSSM decays: stau_1.
Definition: DecayBit.cpp:1441
void neutralino_4_decays(DecayTable::Entry &result)
SUSY-HIT MSSM decays: neutralino_4.
Definition: DecayBit.cpp:2092
str origin() const
Getter for the wrapped function&#39;s origin (module or backend name)
Definition: functors.cpp:121
Gambit invalid point exception class.
Definition: exceptions.hpp:226
void stau_2_decays(DecayTable::Entry &result)
SUSY-HIT MSSM decays: stau_2.
Definition: DecayBit.cpp:1464
void snu_muonl_decays(DecayTable::Entry &result)
SUSY-HIT MSSM decays: snu_muonl.
Definition: DecayBit.cpp:1507
std::string message()
Retrieve the message that this exception was raised with.
Definition: exceptions.cpp:374
void sup_r_decays(DecayTable::Entry &result)
SUSY-HIT MSSM decays: sup_r.
Definition: DecayBit.cpp:1241
void FH_AllHiggsMasses(fh_HiggsMassObs &result)
Higgs masses and mixings with theoretical uncertainties.
functor * thrower()
Retrieve pointer to the functor that threw the invalid point exception.
Definition: exceptions.cpp:410
void gluino_decays(DecayTable::Entry &result)
SUSY-HIT MSSM decays: gluino.
Definition: DecayBit.cpp:894
void pi_plus_decays(DecayTable::Entry &result)
SM decays: pi+ Reference: 2017 PDG.
Definition: DecayBit.cpp:375
void staubar_1_decays(DecayTable::Entry &result)
Definition: DecayBit.cpp:2804
void all_decays(DecayTable &decays)
Collect all the DecayTable entries into an actual DecayTable.
Definition: DecayBit.cpp:2998
str name() const
Getter for the wrapped function&#39;s name.
Definition: functors.cpp:115
void scharmbar_r_decays(DecayTable::Entry &result)
Definition: DecayBit.cpp:2797
error & backend_error()
Backend errors.
SLHAea::Coll SLHAstruct
Less confusing name for SLHAea container class.
void sdown_r_decays(DecayTable::Entry &result)
SUSY-HIT MSSM decays: sdown_r.
Definition: DecayBit.cpp:1275
void sstrangebar_l_decays(DecayTable::Entry &result)
Definition: DecayBit.cpp:2798
void neutralino_2_decays(DecayTable::Entry &result)
SUSY-HIT MSSM decays: neutralino_2.
Definition: DecayBit.cpp:1833
void setValue(std::string const &inkey, double const &value)
Set single parameter value.
void FH_H_plus_decays(DecayTable::Entry &result)
FeynHiggs MSSM decays: H+.
Definition: DecayBit.cpp:571
void chargino_plus_1_decays_smallsplit(DecayTable::Entry &result)
MSSM decays: chargino decays for small chargino–neutralino mass splitting.
Definition: DecayBit.cpp:2249
void FH_h0_2_decays(DecayTable::Entry &result)
FeynHiggs MSSM decays: h0_2.
Definition: DecayBit.cpp:555
virtual double get(const Par::Tags, const str &, const SpecOverrideOptions=use_overrides, const SafeBool check_antiparticle=SafeBool(true)) const =0
void snubar_taul_decays(DecayTable::Entry &result)
Definition: DecayBit.cpp:2808
void H_minus_decays(DecayTable::Entry &result)
MSSM decays: conjugates.
Definition: DecayBit.cpp:2787
void smuonbar_l_decays(DecayTable::Entry &result)
Definition: DecayBit.cpp:2802
void get_mass_es_pseudonyms(mass_es_pseudonyms &result)
Get MSSM mass eigenstate pseudonyms for the gauge eigenstates.
Definition: DecayBit.cpp:3205
void scharm_r_decays(DecayTable::Entry &result)
SUSY-HIT MSSM decays: scharm_r.
Definition: DecayBit.cpp:1309
void sstrange_r_decays(DecayTable::Entry &result)
SUSY-HIT MSSM decays: sstrange_r.
Definition: DecayBit.cpp:1343
void pi_minus_decays(DecayTable::Entry &result)
Definition: DecayBit.cpp:447
Rollcall header for PrecisionBit.
void tbar_decays(DecayTable::Entry &result)
Definition: DecayBit.cpp:444
void chargino_minus_2_decays(DecayTable::Entry &result)
Definition: DecayBit.cpp:2810
void neutralino_1_decays(DecayTable::Entry &result)
SUSY-HIT MSSM decays: neutralino_1.
Definition: DecayBit.cpp:1729
std::string infile("FlavBit/data/example.slha")
void scharmbar_l_decays(DecayTable::Entry &result)
Definition: DecayBit.cpp:2796
Logging::LogMaster & logger()
Function to retrieve a reference to the Gambit global log object.
Definition: logger.cpp:95
void smuon_r_decays(DecayTable::Entry &result)
SUSY-HIT MSSM decays: smuon_r.
Definition: DecayBit.cpp:1408
void rho_minus_decays(DecayTable::Entry &result)
Definition: DecayBit.cpp:448
void initialise(std::vector< std::pair< std::set< std::string >, std::string >> &)
Function to construct loggers according to blueprint.
Definition: logmaster.cpp:223
void stop_2_decays(DecayTable::Entry &result)
SUSY-HIT MSSM decays: stop_2.
Definition: DecayBit.cpp:1035
void make_MSSM_precision_spectrum_4H_W(Spectrum &improved_spec)
Precision MSSM spectrum manufacturer with precision W and 2HDM (4x) Higgs masses. ...
int main()
Definition: 3bithit.cpp:44
Rollcall header for DecayBit.
const std::string filename_in
Definition: 3bithit.cpp:41
void chargino_minus_1_decays(DecayTable::Entry &result)
Definition: DecayBit.cpp:2809
Virtual base class for interacting with spectrum generator output.
Definition: subspectrum.hpp:87
void supbar_r_decays(DecayTable::Entry &result)
Definition: DecayBit.cpp:2793
void snu_taul_decays(DecayTable::Entry &result)
SUSY-HIT MSSM decays: snu_taul Note that SUSY-HIT calls ~nu_tau_L "snutau1" even though it has no RH ...
Definition: DecayBit.cpp:1524
void FH_Couplings(fh_Couplings &result)
Call FH_Couplings from FeynHiggs and collect the output.
void tau_minus_decays(DecayTable::Entry &result)
Definition: DecayBit.cpp:446
void FH_precision_sinW2(triplet< double > &result)
void sbottombar_1_decays(DecayTable::Entry &result)
Definition: DecayBit.cpp:2790
void chargino_plus_1_decays_SH(DecayTable::Entry &result)
SUSY-HIT MSSM decays: chargino_plus_1.
Definition: DecayBit.cpp:1565
void pi_0_decays(DecayTable::Entry &result)
SM decays: pi0 Reference: 2017 PDG.
Definition: DecayBit.cpp:360
void staubar_2_decays(DecayTable::Entry &result)
Definition: DecayBit.cpp:2805
void snu_electronl_decays(DecayTable::Entry &result)
SUSY-HIT MSSM decays: snu_electronl.
Definition: DecayBit.cpp:1491
void sbottom_2_decays(DecayTable::Entry &result)
SUSY-HIT MSSM decays: sbottom_2.
Definition: DecayBit.cpp:1156
const std::string filename_out[2]
Definition: 3bithit.cpp:42
void FH_t_decays(DecayTable::Entry &result)
FeynHiggs MSSM decays: t Reference for total width: 2017 PDG.
Definition: DecayBit.cpp:532
void rho_plus_decays(DecayTable::Entry &result)
SM decays: rho+ Reference: 2017 PDG.
Definition: DecayBit.cpp:410
void stopbar_1_decays(DecayTable::Entry &result)
Definition: DecayBit.cpp:2788
void FH_PrecisionObs(fh_PrecisionObs &result)
void W_plus_decays(DecayTable::Entry &result)
SM decays: W+ Reference: 2017 PDG.
Definition: DecayBit.cpp:270
void sbottom_1_decays(DecayTable::Entry &result)
SUSY-HIT MSSM decays: sbottom_1.
Definition: DecayBit.cpp:1108
void sdownbar_l_decays(DecayTable::Entry &result)
Definition: DecayBit.cpp:2794
void scharm_l_decays(DecayTable::Entry &result)
SUSY-HIT MSSM decays: scharm_l.
Definition: DecayBit.cpp:1292
std::vector< std::string > getKeys() const
Get parameter keys (names), probably for external iteration.
void selectron_l_decays(DecayTable::Entry &result)
SUSY-HIT MSSM decays: selectron_l.
Definition: DecayBit.cpp:1360
void H_plus_decays(DecayTable::Entry &result)
SUSY-HIT MSSM decays: H_plus.
Definition: DecayBit.cpp:853
void mu_plus_decays(DecayTable::Entry &result)
SM decays: mu+ Reference: 2017 PDG.
Definition: DecayBit.cpp:329
void tau_plus_decays(DecayTable::Entry &result)
SM decays: tau+ Reference: 2017 PDG.
Definition: DecayBit.cpp:341
void t_decays(DecayTable::Entry &result)
SM decays: t Reference: 2017 PDG.
Definition: DecayBit.cpp:317
void FH_HiggsMass(triplet< double > &result)
void selectronbar_r_decays(DecayTable::Entry &result)
Definition: DecayBit.cpp:2801
void get_MSSM_spectrum_SPheno(Spectrum &spectrum)