a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
MPlnu.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2014 HEPfit Collaboration
3 *
4 *
5 * For the licensing terms see doc/COPYING.
6 */
7
8#ifndef MPLNU_H
9#define MPLNU_H
10
11class StandardModel;
12
13#include <TF1.h>
14#include <TGraph.h>
15#include <TFitResultPtr.h>
16#include <gsl/gsl_spline.h>
17#include "Math/GSLIntegrator.h"
18#include "Math/Functor.h"
19#include <memory>
20
21#define NBGL 3 /* ONLY 3 or 2*/
22
23class MPlnu {
24public:
32 MPlnu(const StandardModel& SM_i, QCD::meson meson_i, QCD::meson pseudoscalar_i, QCD::lepton lep_i);
33
37 virtual ~MPlnu();
38 std::vector<std::string> initializeMPlnuParameters();
39
46 double getDeltaGammaDeltaw(double w_min, double w_max);
47
53
59
65
70 double get_fplus(double q2);
71
76 double get_f0(double q2);
77
82 double get_fT(double q2);
83
88 double getMwidth()
89 {
90 updateParameters();
91 return width;
92 }
93
98 double getaf0_0()
99 {
100 updateParameters();
101 return af0_0;
102 }
103
104private:
109 std::vector<std::string> mplnuParameters;
110 bool CLNflag;
111 bool BGLflag;
112 bool DMflag;
116 double GF;
117 double Mlep;
118 double Mnu;
119 double MM;
120 double MP;
121 double w0;
122 double z0;
123 double RV;
124 double mu_b;
125 double Mb;
126 double Mc;
127 double width;
128 double ale_mub;
129 gslpp::complex Vcb;
130 double amplsq_factor;
131 double q2min, q2max;
133 double eta_EW;
134 double CV_SM;
136 gslpp::complex CS;
137 gslpp::complex CP;
138 gslpp::complex CSp;
139 gslpp::complex CPp;
140 gslpp::complex CV;
141 gslpp::complex CA;
142 gslpp::complex CVp;
143 gslpp::complex CAp;
144 gslpp::complex C7;
145 gslpp::complex C7p;
146 gslpp::complex CT;
147 gslpp::complex CTp;
149 double fplusz0,rho1to2;
150 double N_0, alpha_0, alpha_p, beta_0, beta_p, gamma_0, gamma_p;
151 double af0_0,af0_1,af0_2,afplus_0,afplus_1,afplus_2;
152#if NBGL == 3
153 double af0_3, afplus_3;
154#endif
155 double afplus1, afplus2, afplus3, afplus4, afplus5, afplus6,
156 afplus7, afplus8, afplus9, afplus10, afzero1, afzero2, afzero3,
157 afzero4, afzero5, afzero6, afzero7, afzero8, afzero9, afzero10,
158 bfplus1, bfplus2, bfplus3, bfplus4, bfplus5, bfplus6, bfplus7,
159 bfplus8, bfplus9, bfplus10, bfzero1, bfzero2, bfzero3, bfzero4,
160 bfzero5, bfzero6, bfzero7, bfzero8, bfzero9, bfzero10;
161 double mBc1m_1,mBc1m_2,mBc1m_3,mBc1m_4,mBc0p_1,mBc0p_2,chitildeT,chiL,nI;
162 double z1m_1,z1m_2,z1m_3,z0p_1,z0p_2;
163 gslpp::complex z1m_4;
164 double cached_intJ1_tau, cached_intJ2_tau, cached_intJ3_tau,
165 cached_intJ1_mu, cached_intJ2_mu, cached_intJ3_mu,
166 cached_intJ1_el, cached_intJ2_el, cached_intJ3_el;
167 double fplusz0_cache,rho1to2_cache;
168 double N_0_cache, alpha_0_cache, alpha_p_cache, beta_0_cache, beta_p_cache, gamma_0_cache, gamma_p_cache;
169 double af0_1_cache,af0_2_cache,afplus_0_cache,afplus_1_cache,afplus_2_cache;
170 double afplus1_cache, afplus2_cache, afplus3_cache, afplus4_cache, afplus5_cache, afplus6_cache,
171 afplus7_cache, afplus8_cache, afplus9_cache, afplus10_cache, afzero1_cache, afzero2_cache, afzero3_cache,
172 afzero4_cache, afzero5_cache, afzero6_cache, afzero7_cache, afzero8_cache, afzero9_cache, afzero10_cache,
173 bfplus1_cache, bfplus2_cache, bfplus3_cache, bfplus4_cache, bfplus5_cache, bfplus6_cache, bfplus7_cache,
174 bfplus8_cache, bfplus9_cache, bfplus10_cache, bfzero1_cache, bfzero2_cache, bfzero3_cache, bfzero4_cache,
175 bfzero5_cache, bfzero6_cache, bfzero7_cache, bfzero8_cache, bfzero9_cache, bfzero10_cache;
176#if NBGL == 3
177 double af0_3_cache,afplus_3_cache;
178#endif
179 gslpp::complex CS_cache,CSp_cache,CP_cache,CPp_cache,CV_cache,CVp_cache,CA_cache,CAp_cache,CT_cache,CTp_cache;
180 bool checkcache_int_tau, checkcache_int_mu, checkcache_int_el;
181
185 void updateParameters();
186
194 double lambda_half(double a, double b, double c);
195
201 double phi_fplus(double q2);
202
208 double fplus(double q2);
209
215 double phi_f0(double z);
216
222 double f0(double q2);
223
229 double fT(double q2);
230
236 gslpp::complex HV(double q2);
237
243 gslpp::complex HA(double q2);
244
250 gslpp::complex HP(double q2);
251
257 gslpp::complex HS(double q2);
258
264 gslpp::complex HT(double q2);
265
271 gslpp::complex HTt(double q2);
272
278 gslpp::complex G0(double q2);
279
285 gslpp::complex G1(double q2);
286
292 gslpp::complex G2(double q2);
293
299 double J1(double q2);
300
306 double J2(double q2);
307
313 double J3(double q2);
314
320 double dGammadq2(double q2);
321
329 double integrateJ(int i, double q2_min, double q2_max) ;
330
336 double dGammadw(double w);
337
338 double J_res;
339 ROOT::Math::GSLIntegrator ig;
340 ROOT::Math::Functor1D wf;
342};
343
344#endif /* MPLNU_H */
345
@ HV
Definition: OrderScheme.h:22
Definition: MPlnu.h:23
QCD::lepton lep
Definition: MPlnu.h:106
virtual ~MPlnu()
Destructor.
Definition: MPlnu.cpp:116
bool btocNPpmflag
Definition: MPlnu.h:113
double z0
Definition: MPlnu.h:122
bool CLNflag
Definition: MPlnu.h:110
bool NPanalysis
Definition: MPlnu.h:114
double Mc
Definition: MPlnu.h:126
double get_fT(double q2)
return fT form factor at
Definition: MPlnu.cpp:818
std::vector< std::string > mplnuParameters
Definition: MPlnu.h:109
double getDeltaGammaDeltaw(double w_min, double w_max)
The integral of from to .
Definition: MPlnu.cpp:753
QCD::meson pseudoscalarM
Definition: MPlnu.h:108
double Mnu
Definition: MPlnu.h:118
double Mb
Definition: MPlnu.h:125
QCD::meson meson
Definition: MPlnu.h:107
std::vector< std::string > initializeMPlnuParameters()
Definition: MPlnu.cpp:119
double get_fplus(double q2)
return fplus form factor at
Definition: MPlnu.cpp:804
double getaf0_0()
The BGL parameter .
Definition: MPlnu.h:98
double mu_b
Definition: MPlnu.h:124
MPlnu(const StandardModel &SM_i, QCD::meson meson_i, QCD::meson pseudoscalar_i, QCD::lepton lep_i)
Constructor.
Definition: MPlnu.cpp:21
double GF
Definition: MPlnu.h:116
double get_unitarity_1min_BGL()
Weak Unitarity constraint for BGL parameters related to 1- resonances.
Definition: MPlnu.cpp:769
bool BGLflag
Definition: MPlnu.h:111
double Mlep
Definition: MPlnu.h:117
double MP
Definition: MPlnu.h:120
double w0
Definition: MPlnu.h:121
double get_strong_unitarity_BGL()
Strong Unitarity constraint for BGL parameters using HQET.
Definition: MPlnu.cpp:791
double get_unitarity_0plus_BGL()
Weak Unitarity constraint for BGL parameters related to 0+ resonances.
Definition: MPlnu.cpp:780
const StandardModel & mySM
Definition: MPlnu.h:105
double get_f0(double q2)
return f0 form factor at
Definition: MPlnu.cpp:811
double width
Definition: MPlnu.h:127
double MM
Definition: MPlnu.h:119
bool DMflag
Definition: MPlnu.h:112
double getMwidth()
The width of the meson M.
Definition: MPlnu.h:88
double RV
Definition: MPlnu.h:123
meson
An enum type for mesons.
Definition: QCD.h:336
lepton
An enum type for leptons.
Definition: QCD.h:310
A model class for the Standard Model.