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_hA2(double w);
106 
111  double get_hA3(double w);
112 
117  double get_hV(double w);
118 
123  double get_R1(double w);
124 
129  double get_R2(double w);
130 
135  double get_R0(double w);
136 
141  double getPlep();
142 
147  double getMwidth(){
148  updateParameters();
149  return width;
150  }
151 
152 private:
157  std::vector<std::string> mvlnuParameters;
158  bool CLNflag;
160  bool NPanalysis;
162  double MV_o_MM;
163  double sqrtMV_o_MM;
164 
165  double GF;
166  double Mlep;
167  double Mnu;
168  double MM;
169  double MV;
170  double w0;
171  double RV;
172  double mu_b;
173  double Mb;
174  double Mc;
175  double width;
176  double ale_mub;
177  gslpp::complex Vcb;
178  double amplsq_factor;
179  double q2min, q2max;
181  double CV_SM;
183  double CS;
184  double CP;
185  double CSp;
186  double CPp;
187  double CV;
188  double CA;
189  double CVp;
190  double CAp;
191  double C7;
192  double C7p;
193  double CT;
194  double CTp;
196  double hA1w1,rho2,R1w1,R2w1;
197  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;
198  double af0,af1,af2,ag0,ag1,ag2,aF11,aF12,aF21,aF22;
199  double mBcstV1,mBcstV2,mBcstV3,mBcstV4,mBcstA1,mBcstA2,mBcstA3,mBcstA4,
200  mBcstP1,mBcstP2,mBcstP3,chiTV,chiTA,chiTP,nI;
201  double zV1,zV2,zV3,zV4,zA1,zA2,zA3,zA4,zP1,zP2,zP3;
202  double cached_intJ1s_tau, cached_intJ1c_tau, cached_intJ2s_tau, cached_intJ2c_tau, cached_intJ3_tau, cached_intJ4_tau,
203  cached_intJ5_tau, cached_intJ6s_tau, cached_intJ6c_tau, cached_intJ7_tau, cached_intJ8_tau, cached_intJ9_tau,
204  cached_intJ1s_mu, cached_intJ1c_mu, cached_intJ2s_mu, cached_intJ2c_mu, cached_intJ3_mu,
205  cached_intJ4_mu, cached_intJ5_mu, cached_intJ6s_mu, cached_intJ6c_mu, cached_intJ7_mu, cached_intJ8_mu, cached_intJ9_mu,
206  cached_intJ1s_el, cached_intJ1c_el, cached_intJ2s_el, cached_intJ2c_el, cached_intJ3_el, cached_intJ4_el,
207  cached_intJ5_el, cached_intJ6s_el, cached_intJ6c_el, cached_intJ7_el, cached_intJ8_el, cached_intJ9_el;
208  double hA1w1_cache,rho2_cache,R1w1_cache,R2w1_cache;
209  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;
210  double af0_cache,af1_cache,af2_cache,ag0_cache,ag1_cache,ag2_cache,aF11_cache,aF12_cache,aF21_cache,aF22_cache;
211  double CS_cache,CSp_cache,CP_cache,CPp_cache,CV_cache,CVp_cache,CA_cache,CAp_cache,CT_cache,CTp_cache;
212  bool checkcache_int_tau, checkcache_int_mu, checkcache_int_el;
213 
217  void updateParameters();
218 
226  double lambda_half(double a, double b, double c);
227 
233  double phi_f(double z);
234 
240  double f_BGL(double q2);
241 
247  double phi_g(double q2);
248 
254  double g_BGL(double q2);
255 
261  double phi_F1(double q2);
262 
268  double F1_BGL(double q2);
269 
275  double phi_F2(double q2);
276 
282  double F2_BGL(double q2);
283 
289  double hA1(double q2);
290 
296  double R1(double q2);
297 
303  double R2(double q2);
304 
310  double R0(double q2);
311 
317  double V(double q2);
318 
324  double A0(double q2);
325 
326 
332  double A1(double q2);
333 
339  double A2(double q2);
340 
346  double T1(double q2);
347 
348 
354  double T2(double q2);
355 
361  double A12(double q2);
362 
368  double T23(double q2);
369 
375  gslpp::complex HV0(double q2);
376 
382  gslpp::complex HVp(double q2);
383 
389  gslpp::complex HVm(double q2);
390 
396  gslpp::complex HA0(double q2);
397 
403  gslpp::complex HAp(double q2);
404 
410  gslpp::complex HAm(double q2);
411 
417  gslpp::complex HP(double q2);
418 
424  gslpp::complex HS(double q2);
425 
431  gslpp::complex HT0(double q2);
432 
438  gslpp::complex HT0t(double q2);
439 
445  gslpp::complex HTp(double q2);
446 
452  gslpp::complex HTpt(double q2);
453 
459  gslpp::complex HTm(double q2);
460 
466  gslpp::complex HTmt(double q2);
467 
473  gslpp::complex G000(double q2);
474 
480  gslpp::complex G010(double q2);
481 
487  gslpp::complex G020(double q2);
488 
494  gslpp::complex G200(double q2);
495 
501  gslpp::complex G210(double q2);
502 
508  gslpp::complex G220(double q2);
509 
515  gslpp::complex G211(double q2);
516 
522  gslpp::complex G221(double q2);
523 
529  gslpp::complex G222(double q2);
530 
536  double J1s(double q2);
537 
543  double J1c(double q2);
544 
550  double J2s(double q2);
551 
557  double J2c(double q2);
558 
564  double J3(double q2);
565 
571  double J4(double q2);
572 
578  double J5(double q2);
579 
585  double J6s(double q2);
586 
592  double J6c(double q2);
593 
599  double J7(double q2);
600 
606  double J8(double q2);
607 
613  double J9(double q2);
614 
622  double integrateJ(int i, double q2_min, double q2_max) ;
623 
629  double dGammadw(double w);
630 
637  double dGammadcldq2(double q2, double cl);
638 
644  double dGammadcl(double cl);
645 
652  double dGammadcVdq2(double q2, double cV);
653 
659  double dGammadcV(double cV);
660 
667  double dGammadchidq2(double q2, double chi);
668 
675  double dGammadchi(double chi);
676 
682  double Hminus(double q2);
683 
689  double Hplus(double q2);
690 
696  double H0(double q2);
697 
703  double H0t(double q2);
704 
710  double dGpdq2(double q2);
711 
717  double dGmdq2(double q2);
718 
726  double integrateGpm(int i, double q2_min, double q2_max) ;
727 
728  gsl_error_handler_t * old_handler;
729  gsl_function FJ;
730  double J_res;
731  double J_err;
732  gsl_integration_cquad_workspace * w_J;
734 };
735 
736 #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:1211
MVlnu::get_hA2
double get_hA2(double w)
return at
Definition: MVlnu.cpp:1186
MVlnu::GF
double GF
Definition: MVlnu.h:165
MVlnu::sqrtMV_o_MM
double sqrtMV_o_MM
Definition: MVlnu.h:163
MVlnu::meson
QCD::meson meson
Definition: MVlnu.h:155
MVlnu::CLNflag
bool CLNflag
Definition: MVlnu.h:158
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:153
MVlnu::getPlep
double getPlep()
Binned lepton helicity asymmetry .
Definition: MVlnu.cpp:1306
MVlnu::btocNPpmflag
bool btocNPpmflag
Definition: MVlnu.h:159
MVlnu::MV
double MV
Definition: MVlnu.h:169
MVlnu::Mnu
double Mnu
Definition: MVlnu.h:167
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:168
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:156
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:477
MVlnu::Mc
double Mc
Definition: MVlnu.h:174
MVlnu::w0
double w0
Definition: MVlnu.h:170
MVlnu::mu_b
double mu_b
Definition: MVlnu.h:172
MVlnu::Mlep
double Mlep
Definition: MVlnu.h:166
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:154
QCD::meson
meson
An enum type for mesons.
Definition: QCD.h:336
MVlnu::get_hA3
double get_hA3(double w)
return at
Definition: MVlnu.cpp:1195
MVlnu::get_R0
double get_R0(double w)
return at
Definition: MVlnu.cpp:1229
MVlnu::getMwidth
double getMwidth()
The width of the meson M.
Definition: MVlnu.h:147
MVlnu::width
double width
Definition: MVlnu.h:175
MVlnu::RV
double RV
Definition: MVlnu.h:171
MVlnu::Mb
double Mb
Definition: MVlnu.h:173
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:1220
MVlnu::NPanalysis
bool NPanalysis
Definition: MVlnu.h:160
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:162
MVlnu::mvlnuParameters
std::vector< std::string > mvlnuParameters
Definition: MVlnu.h:157
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
MVlnu::get_hV
double get_hV(double w)
return at
Definition: MVlnu.cpp:1203
QCD::lepton
lepton
An enum type for leptons.
Definition: QCD.h:310