gambit is hosted by Hepforge, IPPP Durham
GAMBIT  v1.5.0-252-gf9a3f78
a Global And Modular Bsm Inference Tool
MSSM30atX.cpp
Go to the documentation of this file.
1 
44 #include <string>
45 #include <vector>
46 
49 #include "gambit/Logs/logger.hpp"
51 
52 #include "gambit/Models/models/MSSM63atQ.hpp" // Contains declaration of MSSM_mA_to_MSSM_mhud and MSSMatX_to_MSSMatQ functions
59 
61 
62 using namespace Gambit::Utils;
63 
64 // General helper translation function definition
65 namespace Gambit {
67  {
68 
69  // Copy all common parameters of MSSM30atX into MSSM63atX
70  targetP.setValues(myP,false);
71 
72  // Manually set parameters that differ
73 
74  // RH squark soft masses
75  // Off-diagonal elements set to zero
76  // Only upper diagonal needed (symmetric)
77  targetP.setValue("mq2_11", myP["mq2_1"] );
78  targetP.setValue("mq2_12", 0. );
79  targetP.setValue("mq2_13", 0. );
80 
81  //targetP.setValue("mq2_21", 0. );
82  targetP.setValue("mq2_22", myP["mq2_2"] );
83  targetP.setValue("mq2_23", 0. );
84 
85  //targetP.setValue("mq2_31", 0. );
86  //targetP.setValue("mq2_32", 0. );
87  targetP.setValue("mq2_33", myP["mq2_3"] );
88 
89  // RH slepton soft masses
90  // Off-diagonal elements set to zero
91  // Only upper diagonal needed (symmetric)
92  targetP.setValue("ml2_11", myP["ml2_1"] );
93  targetP.setValue("ml2_12", 0. );
94  targetP.setValue("ml2_13", 0. );
95 
96  //targetP.setValue("ml2_21", 0. );
97  targetP.setValue("ml2_22", myP["ml2_2"] );
98  targetP.setValue("ml2_23", 0. );
99 
100  //targetP.setValue("ml2_31", 0. );
101  //targetP.setValue("ml2_32", 0. );
102  targetP.setValue("ml2_33", myP["ml2_3"] );
103 
104  // LH down-type slepton soft masses
105  // Off-diagonal elements set to zero
106  // Only upper diagonal needed (symmetric)
107  targetP.setValue("md2_11", myP["md2_1"] );
108  targetP.setValue("md2_12", 0. );
109  targetP.setValue("md2_13", 0. );
110 
111  //targetP.setValue("md2_21", 0. );
112  targetP.setValue("md2_22", myP["md2_2"] );
113  targetP.setValue("md2_23", 0. );
114 
115  //targetP.setValue("md2_31", 0. );
116  //targetP.setValue("md2_32", 0. );
117  targetP.setValue("md2_33", myP["md2_3"] );
118 
119  // LH up-type slepton soft masses
120  // Off-diagonal elements set to zero
121  // Only upper diagonal needed (symmetric)
122  targetP.setValue("mu2_11", myP["mu2_1"] );
123  targetP.setValue("mu2_12", 0. );
124  targetP.setValue("mu2_13", 0. );
125 
126  //targetP.setValue("mu2_21", 0. );
127  targetP.setValue("mu2_22", myP["mu2_2"] );
128  targetP.setValue("mu2_23", 0. );
129 
130  //targetP.setValue("mu2_31", 0. );
131  //targetP.setValue("mu2_32", 0. );
132  targetP.setValue("mu2_33", myP["mu2_3"] );
133 
134  // LH charged slepton soft masses
135  // Off-diagonal elements set to zero
136  // Only upper diagonal needed (symmetric)
137  targetP.setValue("me2_11", myP["me2_1"] );
138  targetP.setValue("me2_12", 0. );
139  targetP.setValue("me2_13", 0. );
140 
141  //targetP.setValue("me2_21", 0. );
142  targetP.setValue("me2_22", myP["me2_2"] );
143  targetP.setValue("me2_23", 0. );
144 
145  //targetP.setValue("me2_31", 0. );
146  //targetP.setValue("me2_32", 0. );
147  targetP.setValue("me2_33", myP["me2_3"] );
148 
149  // slepton trilinear couplings
150  // Off-diagonal elements set to zero
151  targetP.setValue("Ae_11", myP["Ae_1"] );
152  targetP.setValue("Ae_12", 0. );
153  targetP.setValue("Ae_13", 0. );
154 
155  targetP.setValue("Ae_21", 0. );
156  targetP.setValue("Ae_22", myP["Ae_2"] );
157  targetP.setValue("Ae_23", 0. );
158 
159  targetP.setValue("Ae_31", 0. );
160  targetP.setValue("Ae_32", 0. );
161  targetP.setValue("Ae_33", myP["Ae_3"] );
162 
163  // down-type trilinear couplings
164  // Off-diagonal elements set to zero
165  // First and second generation to zero
166  targetP.setValue("Ad_11", myP["Ad_1"] );
167  targetP.setValue("Ad_12", 0. );
168  targetP.setValue("Ad_13", 0. );
169 
170  targetP.setValue("Ad_21", 0. );
171  targetP.setValue("Ad_22", myP["Ad_2"] );
172  targetP.setValue("Ad_23", 0. );
173 
174  targetP.setValue("Ad_31", 0. );
175  targetP.setValue("Ad_32", 0. );
176  targetP.setValue("Ad_33", myP["Ad_3"] );
177 
178  // up-type trilinear couplings
179  // Off-diagonal elements set to zero
180  // First and second generation set to zero
181  targetP.setValue("Au_11", myP["Au_1"] );
182  targetP.setValue("Au_12", 0. );
183  targetP.setValue("Au_13", 0. );
184 
185  targetP.setValue("Au_21", 0. );
186  targetP.setValue("Au_22", myP["Au_2"] );
187  targetP.setValue("Au_23", 0. );
188 
189  targetP.setValue("Au_31", 0. );
190  targetP.setValue("Au_32", 0. );
191  targetP.setValue("Au_33", myP["Au_3"] );
192 
193  // Done!
194  }
195 }
196 
199 #define DEFINE_IAPFUNC(PARENT) \
200 void MODEL_NAMESPACE::CAT_3(MODEL,_to_,PARENT) (const ModelParameters &myP, ModelParameters &targetP) \
201 { \
202  logger()<<"Running interpret_as_parent calculations for " STRINGIFY(MODEL) " --> " STRINGIFY(PARENT) "..."<<LogTags::info<<EOM; \
203  MSSM30atX_to_MSSM63atX(myP, targetP); \
204 } \
205 
206 #define MODEL MSSM30atQ
207 DEFINE_IAPFUNC(MSSM63atQ)
208 #undef MODEL
209 #define MODEL MSSM30atQ_mA
210 DEFINE_IAPFUNC(MSSM63atQ_mA)
211 #undef MODEL
212 #define MODEL MSSM30atMGUT
214 #undef MODEL
215 #define MODEL MSSM30atMGUT_mA
216 DEFINE_IAPFUNC(MSSM63atMGUT_mA)
217 #undef MODEL
218 #define MODEL MSSM30atMSUSY
219 DEFINE_IAPFUNC(MSSM63atMSUSY)
220 #undef MODEL
221 #define MODEL MSSM30atMSUSY_mA
222 DEFINE_IAPFUNC(MSSM63atMSUSY_mA)
223 #undef MODEL
224 
227 #define MODEL MSSM30atQ_mA
228 void MODEL_NAMESPACE::MSSM30atQ_mA_to_MSSM30atQ(const ModelParameters &myP, ModelParameters &targetP)
229 {
230  logger()<<"Running interpret_as_X calculations for MSSM30atQ_mA --> MSSM30atQ."<<LogTags::info<<EOM;
231  USE_MODEL_PIPE(MSSM30atQ) // Need the pipe for the TARGET model
232  const SubSpectrum& HE = Dep::unimproved_MSSM_spectrum->get_HE();
233  MSSM_mA_to_MSSM_mhud(myP, targetP, HE);
234 }
235 #undef MODEL
236 
237 #define MODEL MSSM30atMGUT_mA
238 void MODEL_NAMESPACE::MSSM30atMGUT_mA_to_MSSM30atMGUT(const ModelParameters &myP, ModelParameters &targetP)
239 {
240  logger()<<"Running interpret_as_X calculations for MSSM30atMGUT_mA --> MSSM30atMGUT."<<LogTags::info<<EOM;
241  USE_MODEL_PIPE(MSSM30atMGUT) // Need the pipe for the TARGET model
242  const SubSpectrum& HE = Dep::unimproved_MSSM_spectrum->get_HE();
243  MSSM_mA_to_MSSM_mhud(myP, targetP, HE);
244 }
245 #undef MODEL
246 
247 #define MODEL MSSM30atMSUSY_mA
248 void MODEL_NAMESPACE::MSSM30atMSUSY_mA_to_MSSM30atMSUSY(const ModelParameters &myP, ModelParameters &targetP)
249 {
250  logger()<<"Running interpret_as_X calculations for MSSM30atMSUSY_mA --> MSSM30atMSUSY."<<LogTags::info<<EOM;
251  USE_MODEL_PIPE(MSSM30atMSUSY) // Need the pipe for the TARGET model
252  const SubSpectrum& HE = Dep::unimproved_MSSM_spectrum->get_HE();
253  MSSM_mA_to_MSSM_mhud(myP, targetP, HE);
254 }
255 #undef MODEL
256 
259 #define MODEL MSSM30atMGUT
260 void MODEL_NAMESPACE::MSSM30atMGUT_to_MSSM30atQ (const ModelParameters &myP, ModelParameters &targetP)
261 {
262  USE_MODEL_PIPE(MSSM30atQ) // Need pipe for TARGET model
263  logger()<<"Running interpret_as_X calculations for MSSM30atMGUT --> MSSM30atQ..."<<LogTags::info<<EOM;
264  const SubSpectrum& HE = Dep::unimproved_MSSM_spectrum->get_HE();
265  MSSMatX_to_MSSMatQ(myP, targetP, HE);
266 }
267 #undef MODEL
268 
269 #define MODEL MSSM30atMSUSY
270 void MODEL_NAMESPACE::MSSM30atMSUSY_to_MSSM30atQ (const ModelParameters &myP, ModelParameters &targetP)
271 {
272  USE_MODEL_PIPE(MSSM30atQ) // Need pipe for TARGET model
273  logger()<<"Running interpret_as_X calculations for MSSM30atMSUSY --> MSSM30atQ..."<<LogTags::info<<EOM;
274  const SubSpectrum& HE = Dep::unimproved_MSSM_spectrum->get_HE();
275  MSSMatX_to_MSSMatQ(myP, targetP, HE);
276 }
277 #undef MODEL
278 
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...
void MSSM30atX_to_MSSM63atX(const ModelParameters &myP, ModelParameters &targetP)
Definition: MSSM30atX.cpp:66
Logging access header for GAMBIT.
Helper macros for model definitions.
General small utility functions.
void setValue(std::string const &inkey, double const &value)
Set single parameter value.
void MSSMatX_to_MSSMatQ(const ModelParameters &myP, ModelParameters &targetP, const SubSpectrum &HE)
Definition: MSSM63atX.cpp:44
#define USE_MODEL_PIPE(MODEL_X)
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:99
Logging::LogMaster & logger()
Function to retrieve a reference to the Gambit global log object.
Definition: logger.cpp:95
#define DEFINE_IAPFUNC(PARENT)
Definition: MSSM30atX.cpp:199
void setValues(std::map< std::string, double > const &params_map, bool missing_is_error=true)
Set many parameter values using a map.
TODO: see if we can use this one:
Definition: Analysis.hpp:33