gambit is hosted by Hepforge, IPPP Durham
GAMBIT  v1.5.0-2191-ga4742ac
a Global And Modular Bsm Inference Tool
Go to the documentation of this file.
30 #include <string>
31 #include <vector>
35 #include "gambit/Logs/logger.hpp"
43 // Activate debug output
44 //#define MSSM63_mA_DBUG
46 // General helper translation function definition
47 namespace Gambit {
48  void MSSM_mA_to_MSSM_mhud(const ModelParameters &myP, ModelParameters &targetP, const SubSpectrum& HE)
49  {
50  // Copy all the common parameters of MSSM63at<X>_mA into MSSM63at<X>
51  targetP.setValues(myP,false); // Set "missing_is_error" flag to false since e.g. mA parameter from MSSM63atQ_mA does not exist in MSSM63atQ. Similar for variants at other scales.
53  // Set the sign of mu
54  targetP.setValue("SignMu", Gambit::sgn(myP["mu"]));
56  // Now only the "mHu2" and "mHd2" parameters are left unset. Extract these from the Spectrum object dependency.
57  // Make sure the high-scale value was correctly added to the spectrum wrapper object
58  if (HE.has(Par::mass2,"mHu2") and HE.has(Par::mass2,"mHd2"))
59  {
60  targetP.setValue("mHu2", HE.get(Par::mass2,"mHu2"));
61  targetP.setValue("mHd2", HE.get(Par::mass2,"mHd2"));
62  }
63  else
64  {
65  model_error().raise(LOCAL_INFO,"Parameter with name 'mHu2' or 'mHd2' (type Par::mass2) not found in Spectrum object! "
66  "Translation from MSSM<X>_mA to MSSM<X> is not possible without this value. "
67  "Please use a Spectrum wrapper that provides it.");
68  }
70  }
71 }
74 // Need to define MODEL and PARENT in order for helper macros to work correctly
75 #define MODEL MSSM63atQ_mA
76 #define PARENT MSSM63atQ
77 void MODEL_NAMESPACE::MSSM63atQ_mA_to_MSSM63atQ (const ModelParameters &myP, ModelParameters &targetP)
78 {
80  logger()<<"Running interpret_as_parent calculations for MSSM63atQ_mA --> MSSM63atQ..."<<LogTags::info<<EOM;
81  const SubSpectrum& HE = Dep::unimproved_MSSM_spectrum->get_HE();
82  MSSM_mA_to_MSSM_mhud(myP, targetP, HE);
83 }
84 #undef PARENT
85 #undef MODEL
87 #define MODEL MSSM63atMSUSY_mA
88 #define PARENT MSSM63atMSUSY
89 void MODEL_NAMESPACE::MSSM63atMSUSY_mA_to_MSSM63atMSUSY (const ModelParameters &myP, ModelParameters &targetP)
90 {
92  logger()<<"Running interpret_as_parent calculations for MSSM63atMSUSY_mA --> MSSM63atMSUSY..."<<LogTags::info<<EOM;
93  const SubSpectrum& HE = Dep::unimproved_MSSM_spectrum->get_HE();
94  MSSM_mA_to_MSSM_mhud(myP, targetP, HE);
95 }
96 #undef PARENT
97 #undef MODEL
99 #define MODEL MSSM63atMGUT_mA
100 #define PARENT MSSM63atMGUT
101 void MODEL_NAMESPACE::MSSM63atMGUT_mA_to_MSSM63atMGUT (const ModelParameters &myP, ModelParameters &targetP)
102 {
104  logger()<<"Running interpret_as_parent calculations for MSSM63atMGUT_mA --> MSSM63atMGUT..."<<LogTags::info<<EOM;
105  const SubSpectrum& HE = Dep::unimproved_MSSM_spectrum->get_HE();
106  MSSM_mA_to_MSSM_mhud(myP, targetP, HE);
107 }
108 #undef PARENT
109 #undef MODEL
void MSSM_mA_to_MSSM_mhud(const ModelParameters &myP, ModelParameters &targetP, const SubSpectrum &HE)
This class is used to deliver both information defined in the Standard Model (or potentially just QED...
#define LOCAL_INFO
Definition: local_info.hpp:34
Logging access header for GAMBIT.
Helper macros for model definitions.
General small utility functions.
#define PARENT
void setValue(std::string const &inkey, double const &value)
Set single parameter value.
virtual double get(const Par::Tags, const str &, const SpecOverrideOptions=use_overrides, const SafeBool check_antiparticle=SafeBool(true)) const =0
Macro to easily get the Pipes for an INTERPRET_AS_X function, for retrieving dependencies.
const Logging::endofmessage EOM
Explicit const instance of the end of message struct in Gambit namespace.
Definition: logger.hpp:100
EXPORT_SYMBOLS Logging::LogMaster & logger()
Function to retrieve a reference to the Gambit global log object.
Definition: logger.cpp:95
Virtual base class for interacting with spectrum generator output.
Definition: subspectrum.hpp:87
void setValues(std::map< std::string, double > const &params_map, bool missing_is_error=true)
Set many parameter values using a map.
int sgn(T val)
error & model_error()
Model errors.
TODO: see if we can use this one:
Definition: Analysis.hpp:33
virtual bool has(const Par::Tags, const str &, const SpecOverrideOptions=use_overrides, const SafeBool check_antiparticle=SafeBool(true)) const =0
Getters/Setters etc.