a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
MVlnu.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 MVLNU_H
9 #define MVLNU_H
10 
11 class StandardModel;
12 #include <gsl/gsl_integration.h>
13 #include <gsl/gsl_spline.h>
14 #include <memory>
15 
16 class MVlnu {
17 public:
25  MVlnu(const StandardModel& SM_i, QCD::meson meson_i, QCD::meson vector_i, QCD::lepton lep_i);
26 
30  virtual ~MVlnu();
31  std::vector<std::string> initializeMVlnuParameters();
32 
39  double getDeltaGammaDeltaw(double w_min, double w_max);
40 
47  double getDeltaGammaDeltacl(double cl_min, double cl_max);
48 
55  double getDeltaGammaDeltacV(double cV_min, double cV_max);
56 
63  double getDeltaGammaDeltachi(double chi_min, double chi_max);
64 
69  double getFL();
70 
75  double get_unitarity_V_BGL();
76 
81  double get_unitarity_A_BGL();
82 
87  double get_unitarity_P_BGL();
88 
93  double get_hA1w1();
94 
99  double get_hA1(double w);
100 
105  double get_R1(double w);
106 
111  double get_R2(double w);
112 
117  double get_R0(double w);
118 
123  double getPlep();
124 
129  double getMwidth(){
130  updateParameters();
131  return width;
132  }
133 
134 private:
139  std::vector<std::string> mvlnuParameters;
140  bool CLNflag;
142  bool NPanalysis;
144  double MV_o_MM;
145  double sqrtMV_o_MM;
146 
147  double GF;
148  double Mlep;
149  double Mnu;
150  double MM;
151  double MV;
152  double w0;
153  double RV;
154  double mu_b;
155  double Mb;
156  double Mc;
157  double width;
158  double ale_mub;
159  gslpp::complex Vcb;
160  double amplsq_factor;
161  double q2min, q2max;
163  double CV_SM;
165  double CS;
166  double CP;
167  double CSp;
168  double CPp;
169  double CV;
170  double CA;
171  double CVp;
172  double CAp;
173  double C7;
174  double C7p;
175  double CT;
176  double CTp;
178  double hA1w1,rho2,R1w1,R2w1;
179  double N_A, N_1, N_2, j_A, j_0, j_1, j_2, k_A, k_0, k_1, k_2, l_A;
180  double af0,af1,af2,ag0,ag1,ag2,aF11,aF12,aF21,aF22;
181  double mBcstV1,mBcstV2,mBcstV3,mBcstV4,mBcstA1,mBcstA2,mBcstA3,mBcstA4,
182  mBcstP1,mBcstP2,mBcstP3,chiTV,chiTA,chiTP,nI;
183  double zV1,zV2,zV3,zV4,zA1,zA2,zA3,zA4,zP1,zP2,zP3;
184  double cached_intJ1s_tau, cached_intJ1c_tau, cached_intJ2s_tau, cached_intJ2c_tau, cached_intJ3_tau, cached_intJ4_tau,
185  cached_intJ5_tau, cached_intJ6s_tau, cached_intJ6c_tau, cached_intJ7_tau, cached_intJ8_tau, cached_intJ9_tau,
186  cached_intJ1s_mu, cached_intJ1c_mu, cached_intJ2s_mu, cached_intJ2c_mu, cached_intJ3_mu,
187  cached_intJ4_mu, cached_intJ5_mu, cached_intJ6s_mu, cached_intJ6c_mu, cached_intJ7_mu, cached_intJ8_mu, cached_intJ9_mu,
188  cached_intJ1s_el, cached_intJ1c_el, cached_intJ2s_el, cached_intJ2c_el, cached_intJ3_el, cached_intJ4_el,
189  cached_intJ5_el, cached_intJ6s_el, cached_intJ6c_el, cached_intJ7_el, cached_intJ8_el, cached_intJ9_el;
190  double hA1w1_cache,rho2_cache,R1w1_cache,R2w1_cache;
191  double N_A_cache, N_1_cache, N_2_cache, j_A_cache, j_0_cache, j_1_cache, j_2_cache, k_A_cache, k_0_cache, k_1_cache, k_2_cache, l_A_cache;
192  double af0_cache,af1_cache,af2_cache,ag0_cache,ag1_cache,ag2_cache,aF11_cache,aF12_cache,aF21_cache,aF22_cache;
193  double CS_cache,CSp_cache,CP_cache,CPp_cache,CV_cache,CVp_cache,CA_cache,CAp_cache,CT_cache,CTp_cache;
194  bool checkcache_int_tau, checkcache_int_mu, checkcache_int_el;
195 
199  void updateParameters();
200 
208  double lambda_half(double a, double b, double c);
209 
215  double phi_f(double z);
216 
222  double f_BGL(double q2);
223 
229  double phi_g(double q2);
230 
236  double g_BGL(double q2);
237 
243  double phi_F1(double q2);
244 
250  double F1_BGL(double q2);
251 
257  double phi_F2(double q2);
258 
264  double F2_BGL(double q2);
265 
271  double hA1(double q2);
272 
278  double R1(double q2);
279 
285  double R2(double q2);
286 
292  double R0(double q2);
293 
299  double V(double q2);
300 
306  double A0(double q2);
307 
308 
314  double A1(double q2);
315 
321  double A2(double q2);
322 
328  double T1(double q2);
329 
330 
336  double T2(double q2);
337 
343  double A12(double q2);
344 
350  double T23(double q2);
351 
357  gslpp::complex HV0(double q2);
358 
364  gslpp::complex HVp(double q2);
365 
371  gslpp::complex HVm(double q2);
372 
378  gslpp::complex HA0(double q2);
379 
385  gslpp::complex HAp(double q2);
386 
392  gslpp::complex HAm(double q2);
393 
399  gslpp::complex HP(double q2);
400 
406  gslpp::complex HS(double q2);
407 
413  gslpp::complex HT0(double q2);
414 
420  gslpp::complex HT0t(double q2);
421 
427  gslpp::complex HTp(double q2);
428 
434  gslpp::complex HTpt(double q2);
435 
441  gslpp::complex HTm(double q2);
442 
448  gslpp::complex HTmt(double q2);
449 
455  gslpp::complex G000(double q2);
456 
462  gslpp::complex G010(double q2);
463 
469  gslpp::complex G020(double q2);
470 
476  gslpp::complex G200(double q2);
477 
483  gslpp::complex G210(double q2);
484 
490  gslpp::complex G220(double q2);
491 
497  gslpp::complex G211(double q2);
498 
504  gslpp::complex G221(double q2);
505 
511  gslpp::complex G222(double q2);
512 
518  double J1s(double q2);
519 
525  double J1c(double q2);
526 
532  double J2s(double q2);
533 
539  double J2c(double q2);
540 
546  double J3(double q2);
547 
553  double J4(double q2);
554 
560  double J5(double q2);
561 
567  double J6s(double q2);
568 
574  double J6c(double q2);
575 
581  double J7(double q2);
582 
588  double J8(double q2);
589 
595  double J9(double q2);
596 
604  double integrateJ(int i, double q2_min, double q2_max) ;
605 
611  double dGammadw(double w);
612 
619  double dGammadcldq2(double q2, double cl);
620 
626  double dGammadcl(double cl);
627 
634  double dGammadcVdq2(double q2, double cV);
635 
641  double dGammadcV(double cV);
642 
649  double dGammadchidq2(double q2, double chi);
650 
657  double dGammadchi(double chi);
658 
664  double Hminus(double q2);
665 
671  double Hplus(double q2);
672 
678  double H0(double q2);
679 
685  double H0t(double q2);
686 
692  double dGpdq2(double q2);
693 
699  double dGmdq2(double q2);
700 
708  double integrateGpm(int i, double q2_min, double q2_max) ;
709 
710  gsl_error_handler_t * old_handler;
711  gsl_function FJ;
712  double J_res;
713  double J_err;
714  gsl_integration_cquad_workspace * w_J;
716 };
717 
718 #endif /* MVLNU_H */
MVlnu::getDeltaGammaDeltachi
double getDeltaGammaDeltachi(double chi_min, double chi_max)
The integral of from to .
Definition: MVlnu.cpp:1113
MVlnu::getDeltaGammaDeltaw
double getDeltaGammaDeltaw(double w_min, double w_max)
The integral of from to .
Definition: MVlnu.cpp:1006
MVlnu::get_R1
double get_R1(double w)
return at
Definition: MVlnu.cpp:1186
MVlnu::GF
double GF
Definition: MVlnu.h:147
MVlnu::sqrtMV_o_MM
double sqrtMV_o_MM
Definition: MVlnu.h:145
MVlnu::meson
QCD::meson meson
Definition: MVlnu.h:137
MVlnu::CLNflag
bool CLNflag
Definition: MVlnu.h:140
MVlnu::getDeltaGammaDeltacl
double getDeltaGammaDeltacl(double cl_min, double cl_max)
The integral of from to .
Definition: MVlnu.cpp:1042
MVlnu::~MVlnu
virtual ~MVlnu()
Destructor.
Definition: MVlnu.cpp:75
MVlnu::mySM
const StandardModel & mySM
Definition: MVlnu.h:135
MVlnu::getPlep
double getPlep()
Binned lepton helicity asymmetry .
Definition: MVlnu.cpp:1281
MVlnu::btocNPpmflag
bool btocNPpmflag
Definition: MVlnu.h:141
MVlnu::MV
double MV
Definition: MVlnu.h:151
MVlnu::Mnu
double Mnu
Definition: MVlnu.h:149
MVlnu::getDeltaGammaDeltacV
double getDeltaGammaDeltacV(double cV_min, double cV_max)
The integral of from to .
Definition: MVlnu.cpp:1077
MVlnu::MM
double MM
Definition: MVlnu.h:150
MVlnu::initializeMVlnuParameters
std::vector< std::string > initializeMVlnuParameters()
Definition: MVlnu.cpp:78
gslpp::complex
A class for defining operations on and functions of complex numbers.
Definition: gslpp_complex.h:35
MVlnu::vectorM
QCD::meson vectorM
Definition: MVlnu.h:138
MVlnu::MVlnu
MVlnu(const StandardModel &SM_i, QCD::meson meson_i, QCD::meson vector_i, QCD::lepton lep_i)
Constructor.
Definition: MVlnu.cpp:18
StandardModel
A model class for the Standard Model.
Definition: StandardModel.h:474
MVlnu::Mc
double Mc
Definition: MVlnu.h:156
MVlnu::w0
double w0
Definition: MVlnu.h:152
MVlnu::mu_b
double mu_b
Definition: MVlnu.h:154
MVlnu::Mlep
double Mlep
Definition: MVlnu.h:148
MVlnu::get_unitarity_P_BGL
double get_unitarity_P_BGL()
Pseudoscalar unitarity constraint for BGL parameters.
Definition: MVlnu.cpp:1160
MVlnu::lep
QCD::lepton lep
Definition: MVlnu.h:136
QCD::meson
meson
An enum type for mesons.
Definition: QCD.h:336
MVlnu::get_R0
double get_R0(double w)
return at
Definition: MVlnu.cpp:1204
MVlnu::getMwidth
double getMwidth()
The width of the meson M.
Definition: MVlnu.h:129
MVlnu::width
double width
Definition: MVlnu.h:157
MVlnu::RV
double RV
Definition: MVlnu.h:153
MVlnu::Mb
double Mb
Definition: MVlnu.h:155
MVlnu::get_hA1w1
double get_hA1w1()
return A1 form factor at
Definition: MVlnu.cpp:1171
MVlnu::get_unitarity_V_BGL
double get_unitarity_V_BGL()
Vector unitarity constraint for BGL parameters.
Definition: MVlnu.cpp:1144
MVlnu
Definition: MVlnu.h:16
MVlnu::get_R2
double get_R2(double w)
return at
Definition: MVlnu.cpp:1195
MVlnu::NPanalysis
bool NPanalysis
Definition: MVlnu.h:142
MVlnu::get_hA1
double get_hA1(double w)
return at
Definition: MVlnu.cpp:1178
MVlnu::MV_o_MM
double MV_o_MM
Definition: MVlnu.h:144
MVlnu::mvlnuParameters
std::vector< std::string > mvlnuParameters
Definition: MVlnu.h:139
MVlnu::get_unitarity_A_BGL
double get_unitarity_A_BGL()
Axial unitarity constraint for BGL parameters.
Definition: MVlnu.cpp:1152
MVlnu::getFL
double getFL()
Binned D* polarization fraction .
Definition: MVlnu.cpp:1129
QCD::lepton
lepton
An enum type for leptons.
Definition: QCD.h:310