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 
11 class StandardModel;
12 #include <gsl/gsl_integration.h>
13 #include <TF1.h>
14 #include <TGraph.h>
15 #include <TFitResultPtr.h>
16 #include <gsl/gsl_spline.h>
17 #include <memory>
18 
19 #define NBGL 3 /* ONLY 3 or 2*/
20 
21 class MPlnu {
22 public:
30  MPlnu(const StandardModel& SM_i, QCD::meson meson_i, QCD::meson pseudoscalar_i, QCD::lepton lep_i);
31 
35  virtual ~MPlnu();
36  std::vector<std::string> initializeMPlnuParameters();
37 
44  double getDeltaGammaDeltaw(double w_min, double w_max);
45 
50  double get_unitarity_1min_BGL();
51 
56  double get_unitarity_0plus_BGL();
57 
62  double get_strong_unitarity_BGL();
63 
68  double get_fplus(double q2);
69 
74  double get_f0(double q2);
75 
80  double get_fT(double q2);
81 
86  double getMwidth()
87  {
88  updateParameters();
89  return width;
90  }
91 
96  double getaf0_0()
97  {
98  updateParameters();
99  return af0_0;
100  }
101 
102 private:
107  std::vector<std::string> mplnuParameters;
108  bool CLNflag;
110  bool NPanalysis;
112  double GF;
113  double Mlep;
114  double Mnu;
115  double MM;
116  double MP;
117  double w0;
118  double z0;
119  double RV;
120  double mu_b;
121  double Mb;
122  double Mc;
123  double width;
124  double ale_mub;
125  gslpp::complex Vcb;
126  double amplsq_factor;
127  double q2min, q2max;
129  double eta_EW;
130  double CV_SM;
132  double CS;
133  double CP;
134  double CSp;
135  double CPp;
136  double CV;
137  double CA;
138  double CVp;
139  double CAp;
140  double C7;
141  double C7p;
142  double CT;
143  double CTp;
145  double fplusz0,rho1to2;
146  double N_0, alpha_0, alpha_p, beta_0, beta_p, gamma_0, gamma_p;
147  double af0_0,af0_1,af0_2,afplus_0,afplus_1,afplus_2;
148 #if NBGL == 3
149  double af0_3, afplus_3;
150 #endif
151  double mBc1m_1,mBc1m_2,mBc1m_3,mBc1m_4,mBc0p_1,mBc0p_2,chitildeT,chiL,nI;
152  double z1m_1,z1m_2,z1m_3,z0p_1,z0p_2;
153  gslpp::complex z1m_4;
154  double cached_intJ1_tau, cached_intJ2_tau, cached_intJ3_tau,
155  cached_intJ1_mu, cached_intJ2_mu, cached_intJ3_mu,
156  cached_intJ1_el, cached_intJ2_el, cached_intJ3_el;
157  double fplusz0_cache,rho1to2_cache;
158  double N_0_cache, alpha_0_cache, alpha_p_cache, beta_0_cache, beta_p_cache, gamma_0_cache, gamma_p_cache;
159  double af0_1_cache,af0_2_cache,afplus_0_cache,afplus_1_cache,afplus_2_cache;
160 #if NBGL == 3
161  double af0_3_cache,afplus_3_cache;
162 #endif
163  double CS_cache,CSp_cache,CP_cache,CPp_cache,CV_cache,CVp_cache,CA_cache,CAp_cache,CT_cache,CTp_cache;
164  bool checkcache_int_tau, checkcache_int_mu, checkcache_int_el;
165 
169  void updateParameters();
170 
178  double lambda_half(double a, double b, double c);
179 
185  double phi_fplus(double q2);
186 
192  double fplus(double q2);
193 
199  double phi_f0(double z);
200 
206  double f0(double q2);
207 
213  double fT(double q2);
214 
220  gslpp::complex HV(double q2);
221 
227  gslpp::complex HA(double q2);
228 
234  gslpp::complex HP(double q2);
235 
241  gslpp::complex HS(double q2);
242 
248  gslpp::complex HT(double q2);
249 
255  gslpp::complex HTt(double q2);
256 
262  gslpp::complex G0(double q2);
263 
269  gslpp::complex G1(double q2);
270 
276  gslpp::complex G2(double q2);
277 
283  double J1(double q2);
284 
290  double J2(double q2);
291 
297  double J3(double q2);
298 
304  double dGammadq2(double q2);
305 
313  double integrateJ(int i, double q2_min, double q2_max) ;
314 
320  double dGammadw(double w);
321 
322  gsl_error_handler_t * old_handler;
323  gsl_function FJ;
324  double J_res;
325  double J_err;
326  gsl_integration_cquad_workspace * w_J;
328 };
329 
330 #endif /* MPLNU_H */
331 
MPlnu::initializeMPlnuParameters
std::vector< std::string > initializeMPlnuParameters()
Definition: MPlnu.cpp:72
MPlnu::get_fT
double get_fT(double q2)
return fT form factor at
Definition: MPlnu.cpp:636
MPlnu::RV
double RV
Definition: MPlnu.h:119
MPlnu::mySM
const StandardModel & mySM
Definition: MPlnu.h:103
MPlnu::width
double width
Definition: MPlnu.h:123
MPlnu::GF
double GF
Definition: MPlnu.h:112
MPlnu::~MPlnu
virtual ~MPlnu()
Destructor.
Definition: MPlnu.cpp:69
MPlnu::btocNPpmflag
bool btocNPpmflag
Definition: MPlnu.h:109
MPlnu::z0
double z0
Definition: MPlnu.h:118
MPlnu::get_f0
double get_f0(double q2)
return f0 form factor at
Definition: MPlnu.cpp:629
MPlnu::meson
QCD::meson meson
Definition: MPlnu.h:105
MPlnu::Mc
double Mc
Definition: MPlnu.h:122
MPlnu::MPlnu
MPlnu(const StandardModel &SM_i, QCD::meson meson_i, QCD::meson pseudoscalar_i, QCD::lepton lep_i)
Constructor.
Definition: MPlnu.cpp:20
gslpp::complex
A class for defining operations on and functions of complex numbers.
Definition: gslpp_complex.h:35
MPlnu::get_unitarity_0plus_BGL
double get_unitarity_0plus_BGL()
Weak Unitarity constraint for BGL parameters related to 0+ resonances.
Definition: MPlnu.cpp:598
StandardModel
A model class for the Standard Model.
Definition: StandardModel.h:477
MPlnu::MM
double MM
Definition: MPlnu.h:115
MPlnu::Mb
double Mb
Definition: MPlnu.h:121
MPlnu::pseudoscalarM
QCD::meson pseudoscalarM
Definition: MPlnu.h:106
MPlnu::get_strong_unitarity_BGL
double get_strong_unitarity_BGL()
Strong Unitarity constraint for BGL parameters using HQET.
Definition: MPlnu.cpp:609
MPlnu::get_fplus
double get_fplus(double q2)
return fplus form factor at
Definition: MPlnu.cpp:622
MPlnu::get_unitarity_1min_BGL
double get_unitarity_1min_BGL()
Weak Unitarity constraint for BGL parameters related to 1- resonances.
Definition: MPlnu.cpp:587
MPlnu::NPanalysis
bool NPanalysis
Definition: MPlnu.h:110
QCD::meson
meson
An enum type for mesons.
Definition: QCD.h:336
MPlnu::Mnu
double Mnu
Definition: MPlnu.h:114
MPlnu::getDeltaGammaDeltaw
double getDeltaGammaDeltaw(double w_min, double w_max)
The integral of from to .
Definition: MPlnu.cpp:571
MPlnu
Definition: MPlnu.h:21
MPlnu::Mlep
double Mlep
Definition: MPlnu.h:113
MPlnu::w0
double w0
Definition: MPlnu.h:117
MPlnu::mu_b
double mu_b
Definition: MPlnu.h:120
MPlnu::mplnuParameters
std::vector< std::string > mplnuParameters
Definition: MPlnu.h:107
MPlnu::getMwidth
double getMwidth()
The width of the meson M.
Definition: MPlnu.h:86
af0_0
Definition: MPlnuObservables.h:195
MPlnu::CLNflag
bool CLNflag
Definition: MPlnu.h:108
HV
Definition: OrderScheme.h:22
MPlnu::MP
double MP
Definition: MPlnu.h:116
MPlnu::lep
QCD::lepton lep
Definition: MPlnu.h:104
MPlnu::getaf0_0
double getaf0_0()
The BGL parameter .
Definition: MPlnu.h:96
QCD::lepton
lepton
An enum type for leptons.
Definition: QCD.h:310