gambit is hosted by Hepforge, IPPP Durham
GAMBIT  v1.5.0-2191-ga4742ac
a Global And Modular Bsm Inference Tool
CosmoModels.hpp
Go to the documentation of this file.
1 // GAMBIT: Global and Modular BSM Inference Tool
2 // *********************************************
42 
43 #pragma once
44 
45 // Vanilla ΛCDM.
46 // This model would usually be scanned alongside an inflationary model and a neutrino model
47 #define MODEL LCDM
49  DEFINEPARS(T_cmb,omega_b,omega_cdm,H0,tau_reio)
50  MAP_TO_CAPABILITY(T_cmb,T_cmb)
51  MAP_TO_CAPABILITY(H0, H0)
52 #undef MODEL
53 
54 // Vanilla ΛCDM.
55 // This model would usually be scanned alongside an inflationary model and a neutrino model
56 // As LCDM but with 100theta_s, acoustic angular scale of first CMB peak x 100, as
57 // model parameter instead of H0.
58 #define MODEL LCDM_theta
60  DEFINEPARS(T_cmb,omega_b,omega_cdm,100theta_s,tau_reio)
61  MAP_TO_CAPABILITY(T_cmb,T_cmb)
62 #undef MODEL
63 
64 /* CMB + BBN */
65 
66 // η (baryon-to-photon ratio) defined at BBN.
67 // r_CMB(BBN): Ratio of temperatures in non-cold DM compared to the SM with 3 massive neutrinos:
68 // r_CMB = T_v(BSM)/T_v(SM) at CMB (BBN)
69 // dNurCMB(_BBN): ΔN_effective defined at CMB(BBN) from additional radiation.
70 #define MODEL etaBBN_rBBN_rCMB_dNurBBN_dNurCMB
72  DEFINEPARS(eta_BBN)
73  DEFINEPARS(r_BBN,r_CMB)
74  DEFINEPARS(dNur_BBN,dNur_CMB)
75 #undef MODEL
76 
77 // No additional radiation or changes to the neutrino temperature.
78 // Just the baryon-to-photon ratio η at BBN.
79 #define MODEL etaBBN
80  #define PARENT etaBBN_rBBN_rCMB_dNurBBN_dNurCMB
82  DEFINEPARS(eta_BBN)
83  INTERPRET_AS_PARENT_FUNCTION(etaBBN_to_etaBBN_rBBN_rCMB_dNurBBN_dNurCMB)
84  #undef PARENT
85 #undef MODEL
86 
87 // As etaBBN_rBBN_rCMB_dNurBBN_dNurCMB, but with the
88 // baryon-to-photon ratio η at BBN set equal to η today.
89 #define MODEL rBBN_rCMB_dNurBBN_dNurCMB
90  #define PARENT etaBBN_rBBN_rCMB_dNurBBN_dNurCMB
92  DEFINEPARS(r_BBN,r_CMB)
93  DEFINEPARS(dNur_BBN,dNur_CMB)
94  INTERPRET_AS_PARENT_FUNCTION(rBBN_rCMB_dNurBBN_dNurCMB_to_etaBBN_rBBN_rCMB_dNurBBN_dNurCMB)
95  INTERPRET_AS_PARENT_DEPENDENCY(eta0, double)
96  #undef PARENT
97 #undef MODEL
98 
99 // As above, but with no additional radiation.
100 #define MODEL rBBN_rCMB
101  #define PARENT rBBN_rCMB_dNurBBN_dNurCMB
103  DEFINEPARS(r_BBN,r_CMB)
104  INTERPRET_AS_PARENT_FUNCTION(rBBN_rCMB_to_rBBN_rCMB_dNurBBN_dNurCMB)
105  #undef PARENT
106 #undef MODEL
107 
108 // As above, but with neutrino temperature at BBN the same as at recombination.
109 #define MODEL rCMB
110  #define PARENT rBBN_rCMB
112  DEFINEPARS(r_CMB)
113  INTERPRET_AS_PARENT_FUNCTION(rCMB_to_rBBN_rCMB)
114  #undef PARENT
115 #undef MODEL
116 
117 // As rBBN_rCMB_dNurBBN_dNurCMB, but with no changes to the neutrino temperature.
118 #define MODEL dNurBBN_dNurCMB
119  #define PARENT rBBN_rCMB_dNurBBN_dNurCMB
121  DEFINEPARS(dNur_BBN,dNur_CMB)
122  INTERPRET_AS_PARENT_FUNCTION(dNurBBN_dNurCMB_to_rBBN_rCMB_dNurBBN_dNurCMB)
123  #undef PARENT
124 #undef MODEL
125 
126 // As above, but with additional radiation the same at BBN as at recombination.
127 #define MODEL dNurCMB
128  #define PARENT dNurBBN_dNurCMB
130  DEFINEPARS(dNur_CMB)
131  INTERPRET_AS_PARENT_FUNCTION(dNurCMB_to_dNurBBN_dNurCMB)
132  #undef PARENT
133 #undef MODEL
134 
135 
136 /* INFLATION */
137 
138 // Inflationary models -- if one of these is in use, you would usually need to use a cosmological model
139 // to scan over the four standard cosmological parameters (H0 or theta, omega_b, omega_cdm, tau_reio).
140 // The shape of the (either parameterised or full) primordial power spectrum will be determined by
141 // the inflation model in use.
142 
143 // Simple, parameterised, purely phenomenological, scale-free power spectrum
144 #define MODEL PowerLaw_ps
146  DEFINEPARS(ln10A_s,n_s,r,N_pivot)
147 #undef MODEL
148 
149 // Even simpler, parameterised, purely phenomenological, scale-free power spectrum
150 #define MODEL Minimal_PowerLaw_ps
151  #define PARENT PowerLaw_ps
153  DEFINEPARS(ln10A_s,n_s)
154  INTERPRET_AS_PARENT_FUNCTION(Minimal_PowerLaw_ps_to_PowerLaw_ps)
155  #undef PARENT
156 #undef MODEL
157 
158 // Single field, monomial inflation with exponent 2/3 (assuming instant reheating)
159 // Potential: V(phi) = 1.5 lambda M_P^(10/3) phi^(2/3)
160 #define MODEL Inflation_InstReh_1mono23
163  INTERPRET_AS_X_FUNCTION(PowerLaw_ps, as_PowerLaw)
164  INTERPRET_AS_X_DEPENDENCY(PowerLaw_ps, PowerLaw_ps_parameters, ModelParameters)
165 #undef MODEL
166 
167 // Single field, linear inflation (assuming instant reheating)
168 // Potential: V(phi) = lambda M_P^3 phi
169 #define MODEL Inflation_InstReh_1linear
172  INTERPRET_AS_X_FUNCTION(PowerLaw_ps, as_PowerLaw)
173  INTERPRET_AS_X_DEPENDENCY(PowerLaw_ps, PowerLaw_ps_parameters, ModelParameters)
174 #undef MODEL
175 
176 // Single field, quadratic inflation (assuming instant reheating)
177 // Potential: V(phi) = 0.5 m^2 phi^2 = 0.5 m_phi^2 M_P^2 phi^2
178 #define MODEL Inflation_InstReh_1quadratic
180  DEFINEPARS(m_phi)
181  INTERPRET_AS_X_FUNCTION(PowerLaw_ps, as_PowerLaw)
182  INTERPRET_AS_X_DEPENDENCY(PowerLaw_ps, PowerLaw_ps_parameters, ModelParameters)
183 #undef MODEL
184 
185 // Single field, quartic inflation (assuming instant reheating)
186 // Potential: V(phi) = 0.25 lambda phi^4
187 #define MODEL Inflation_InstReh_1quartic
190  INTERPRET_AS_X_FUNCTION(PowerLaw_ps, as_PowerLaw)
191  INTERPRET_AS_X_DEPENDENCY(PowerLaw_ps, PowerLaw_ps_parameters, ModelParameters)
192 #undef MODEL
193 
194 // Single field, natural inflation (assuming instant reheating)
195 // Potential: V(phi) = Lambda^4 [ 1 + cos(phi/f) ] = (lambda M_P)^4 [ 1 + cos(phi/[f_phi M_P]) ]
196 #define MODEL Inflation_InstReh_1natural
198  DEFINEPARS(lambda, f_phi)
199  INTERPRET_AS_X_FUNCTION(PowerLaw_ps, as_PowerLaw)
200  INTERPRET_AS_X_DEPENDENCY(PowerLaw_ps, PowerLaw_ps_parameters, ModelParameters)
201 #undef MODEL
202 
203 // Single field, Starobinsky - aka R^2 - inflation (assuming instant reheating)
204 // Potential: V(phi) = Lambda^4 [1-exp(-sqrt(2/3)phi/M_P)]^2 = (lambda M_P)^4 [1-exp(-sqrt(2/3)phi/M_P)]^2
205 #define MODEL Inflation_InstReh_1Starobinsky
208  INTERPRET_AS_X_FUNCTION(PowerLaw_ps, as_PowerLaw)
209  INTERPRET_AS_X_DEPENDENCY(PowerLaw_ps, PowerLaw_ps_parameters, ModelParameters)
210 #undef MODEL
START_MODEL dNur_CMB INTERPRET_AS_PARENT_FUNCTION(dNurBBN_dNurCMB_to_rBBN_rCMB_dNurBBN_dNurCMB) START_MODEL DEFINEPARS(dNur_CMB) INTERPRET_AS_PARENT_FUNCTION(dNurCMB_to_dNurBBN_dNurCMB) START_MODEL DEFINEPARS(ln10A_s
#define START_MODEL
START_MODEL T_cmb omega_cdm
Definition: CosmoModels.hpp:60
START_MODEL T_cmb omega_b
Definition: CosmoModels.hpp:60
START_MODEL as_PowerLaw as_PowerLaw as_PowerLaw as_PowerLaw f_phi INTERPRET_AS_X_FUNCTION(PowerLaw_ps, as_PowerLaw) INTERPRET_AS_X_DEPENDENCY(PowerLaw_ps
START_MODEL DEFINEPARS(T_cmb, omega_b, omega_cdm, H0, tau_reio) MAP_TO_CAPABILITY(T_cmb
START_MODEL as_PowerLaw as_PowerLaw as_PowerLaw as_PowerLaw f_phi PowerLaw_ps_parameters
START_MODEL dNur_CMB r
#define INTERPRET_AS_PARENT_DEPENDENCY(DEP, TYPE)
Wrappers to convert INTERPRET_AS_X macros to INTERPRET_AS_PARENT macros.
double lambda(double x, double y, double z)
Definition: MSSM_H.hpp:38
START_MODEL T_cmb MAP_TO_CAPABILITY(H0, H0) START_MODEL DEFINEPARS(T_cmb
START_MODEL as_PowerLaw INTERPRET_AS_X_DEPENDENCY(PowerLaw_ps, PowerLaw_ps_parameters, ModelParameters) START_MODEL DEFINEPARS(lambda) INTERPRET_AS_X_FUNCTION(PowerLaw_ps
START_MODEL dNur_CMB n_s