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
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
21class MVlnu {
22public:
30 MVlnu(const StandardModel& SM_i, QCD::meson meson_i, QCD::meson vector_i, QCD::lepton lep_i);
31
35 virtual ~MVlnu();
36 std::vector<std::string> initializeMVlnuParameters();
37
44 double getDeltaGammaDeltaw(double w_min, double w_max);
45
52 double getDeltaGammaDeltacl(double cl_min, double cl_max);
53
60 double getDeltaGammaDeltacV(double cV_min, double cV_max);
61
68 double getDeltaGammaDeltachi(double chi_min, double chi_max);
69
74 double getFL();
75
80 double get_unitarity_V_BGL();
81
86 double get_unitarity_A_BGL();
87
92 double get_unitarity_P_BGL();
93
98 double get_hA1w1();
99
104 double get_hA1(double w);
105
110 double get_hA2(double w);
111
116 double get_hA3(double w);
117
122 double get_hV(double w);
123
128 double get_R1(double w);
129
134 double get_R2(double w);
135
140 double get_R0(double w);
141
146 double getPlep();
147
152 double getMwidth(){
153 updateParameters();
154 return width;
155 }
156
157private:
162 std::vector<std::string> mvlnuParameters;
163 bool CLNflag;
164 bool BGLflag;
165 bool DMflag;
169 double MV_o_MM;
171
172 double GF;
173 double Mlep;
174 double Mnu;
175 double MM;
176 double MV;
177 double w0;
178 double RV;
179 double mu_b;
180 double Mb;
181 double Mc;
182 double width;
183 double ale_mub;
184 gslpp::complex Vcb;
185 double amplsq_factor;
186 double q2min, q2max;
188 double CV_SM;
190 gslpp::complex CS;
191 gslpp::complex CP;
192 gslpp::complex CSp;
193 gslpp::complex CPp;
194 gslpp::complex CV;
195 gslpp::complex CA;
196 gslpp::complex CVp;
197 gslpp::complex CAp;
198 gslpp::complex C7;
199 gslpp::complex C7p;
200 gslpp::complex CT;
201 gslpp::complex CTp;
203 double hA1w1,rho2,R1w1,R2w1;
204 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;
205 double af0,af1,af2,ag0,ag1,ag2,aF11,aF12,aF13,aF21,aF22,aF23;
206 double mBcstV1,mBcstV2,mBcstV3,mBcstV4,mBcstA1,mBcstA2,mBcstA3,mBcstA4,
207 mBcstP1,mBcstP2,mBcstP3,chiTV,chiTA,chiTP,nI;
208 double zV1,zV2,zV3,zV4,zA1,zA2,zA3,zA4,zP1,zP2,zP3;
209 double af_1, ag_1, aF1_1, aF2_1, af_2, ag_2, aF1_2, aF2_2, af_3, ag_3, aF1_3, aF2_3, af_4, ag_4,
210 aF1_4, aF2_4, af_5, ag_5, aF1_5, aF2_5, af_6, ag_6, aF1_6, aF2_6, af_7, ag_7, aF1_7, aF2_7,
211 af_8, ag_8, aF1_8, aF2_8, af_9, ag_9, aF1_9, aF2_9, af_10, ag_10, aF1_10, aF2_10,
212 bf_1, bg_1, bF1_1, bF2_1, bf_2, bg_2, bF1_2, bF2_2, bf_3, bg_3, bF1_3, bF2_3, bf_4, bg_4,
213 bF1_4, bF2_4, bf_5, bg_5, bF1_5, bF2_5, bf_6, bg_6, bF1_6, bF2_6, bf_7, bg_7, bF1_7, bF2_7,
214 bf_8, bg_8, bF1_8, bF2_8, bf_9, bg_9, bF1_9, bF2_9, bf_10, bg_10, bF1_10, bF2_10;
215 double cached_intJ1s_tau, cached_intJ1c_tau, cached_intJ2s_tau, cached_intJ2c_tau, cached_intJ3_tau, cached_intJ4_tau,
216 cached_intJ5_tau, cached_intJ6s_tau, cached_intJ6c_tau, cached_intJ7_tau, cached_intJ8_tau, cached_intJ9_tau,
217 cached_intJ1s_mu, cached_intJ1c_mu, cached_intJ2s_mu, cached_intJ2c_mu, cached_intJ3_mu,
218 cached_intJ4_mu, cached_intJ5_mu, cached_intJ6s_mu, cached_intJ6c_mu, cached_intJ7_mu, cached_intJ8_mu, cached_intJ9_mu,
219 cached_intJ1s_el, cached_intJ1c_el, cached_intJ2s_el, cached_intJ2c_el, cached_intJ3_el, cached_intJ4_el,
220 cached_intJ5_el, cached_intJ6s_el, cached_intJ6c_el, cached_intJ7_el, cached_intJ8_el, cached_intJ9_el;
221 double hA1w1_cache,rho2_cache,R1w1_cache,R2w1_cache;
222 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;
223 double af0_cache,af1_cache,af2_cache,ag0_cache,ag1_cache,ag2_cache,aF11_cache,aF12_cache,aF13_cache,aF21_cache,aF22_cache,aF23_cache;
224 double af_1_cache, ag_1_cache, aF1_1_cache, aF2_1_cache, af_2_cache, ag_2_cache, aF1_2_cache, aF2_2_cache,
225 af_3_cache, ag_3_cache, aF1_3_cache, aF2_3_cache, af_4_cache, ag_4_cache, aF1_4_cache, aF2_4_cache,
226 af_5_cache, ag_5_cache, aF1_5_cache, aF2_5_cache, af_6_cache, ag_6_cache, aF1_6_cache, aF2_6_cache,
227 af_7_cache, ag_7_cache, aF1_7_cache, aF2_7_cache, af_8_cache, ag_8_cache, aF1_8_cache, aF2_8_cache,
228 af_9_cache, ag_9_cache, aF1_9_cache, aF2_9_cache, af_10_cache, ag_10_cache, aF1_10_cache, aF2_10_cache,
229 bf_1_cache, bg_1_cache, bF1_1_cache, bF2_1_cache, bf_2_cache, bg_2_cache, bF1_2_cache, bF2_2_cache,
230 bf_3_cache, bg_3_cache, bF1_3_cache, bF2_3_cache, bf_4_cache, bg_4_cache, bF1_4_cache, bF2_4_cache,
231 bf_5_cache, bg_5_cache, bF1_5_cache, bF2_5_cache, bf_6_cache, bg_6_cache, bF1_6_cache, bF2_6_cache,
232 bf_7_cache, bg_7_cache, bF1_7_cache, bF2_7_cache, bf_8_cache, bg_8_cache, bF1_8_cache, bF2_8_cache,
233 bf_9_cache, bg_9_cache, bF1_9_cache, bF2_9_cache, bf_10_cache, bg_10_cache, bF1_10_cache, bF2_10_cache;
234 gslpp::complex CS_cache,CSp_cache,CP_cache,CPp_cache,CV_cache,CVp_cache,CA_cache,CAp_cache,CT_cache,CTp_cache;
235 bool checkcache_int_tau, checkcache_int_mu, checkcache_int_el;
236
240 void updateParameters();
241
249 double lambda_half(double a, double b, double c);
250
256 double phi_f(double z);
257
263 double f_BGL(double q2);
264
270 double phi_g(double q2);
271
277 double g_BGL(double q2);
278
284 double phi_F1(double q2);
285
291 double F1_BGL(double q2);
292
298 double phi_F2(double q2);
299
305 double F2_BGL(double q2);
306
312 double hA1(double q2);
313
319 double R1(double q2);
320
326 double R2(double q2);
327
333 double R0(double q2);
334
340 double V(double q2);
341
347 double A0(double q2);
348
349
355 double A1(double q2);
356
362 double A2(double q2);
363
369 double T1(double q2);
370
371
377 double T2(double q2);
378
384 double A12(double q2);
385
391 double T23(double q2);
392
398 gslpp::complex HV0(double q2);
399
405 gslpp::complex HVp(double q2);
406
412 gslpp::complex HVm(double q2);
413
419 gslpp::complex HA0(double q2);
420
426 gslpp::complex HAp(double q2);
427
433 gslpp::complex HAm(double q2);
434
440 gslpp::complex HP(double q2);
441
447 gslpp::complex HS(double q2);
448
454 gslpp::complex HT0(double q2);
455
461 gslpp::complex HT0t(double q2);
462
468 gslpp::complex HTp(double q2);
469
475 gslpp::complex HTpt(double q2);
476
482 gslpp::complex HTm(double q2);
483
489 gslpp::complex HTmt(double q2);
490
496 gslpp::complex G000(double q2);
497
503 gslpp::complex G010(double q2);
504
510 gslpp::complex G020(double q2);
511
517 gslpp::complex G200(double q2);
518
524 gslpp::complex G210(double q2);
525
531 gslpp::complex G220(double q2);
532
538 gslpp::complex G211(double q2);
539
545 gslpp::complex G221(double q2);
546
552 gslpp::complex G222(double q2);
553
559 double J1s(double q2);
560
566 double J1c(double q2);
567
573 double J2s(double q2);
574
580 double J2c(double q2);
581
587 double J3(double q2);
588
594 double J4(double q2);
595
601 double J5(double q2);
602
608 double J6s(double q2);
609
615 double J6c(double q2);
616
622 double J7(double q2);
623
629 double J8(double q2);
630
636 double J9(double q2);
637
645 double integrateJ(int i, double q2_min, double q2_max) ;
646
652 double dGammadw(double w);
653
660 double dGammadcldq2(double q2, double cl);
661
667 double dGammadcl(double cl);
668
675 double dGammadcVdq2(double q2, double cV);
676
682 double dGammadcV(double cV);
683
690 double dGammadchidq2(double q2, double chi);
691
698 double dGammadchi(double chi);
699
705 double Hminus(double q2);
706
712 double Hplus(double q2);
713
719 double H0(double q2);
720
726 double H0t(double q2);
727
733 double dGpdq2(double q2);
734
740 double dGmdq2(double q2);
741
749 double integrateGpm(int i, double q2_min, double q2_max) ;
750
751 double J_res;
752 ROOT::Math::GSLIntegrator ig;
753 ROOT::Math::Functor1D wf;
755};
756
757#endif /* MVLNU_H */
Definition: MVlnu.h:21
double get_hA1w1()
return A1 form factor at
Definition: MVlnu.cpp:1511
double get_R0(double w)
return at
Definition: MVlnu.cpp:1571
double MV_o_MM
Definition: MVlnu.h:169
double get_unitarity_V_BGL()
Vector unitarity constraint for BGL parameters.
Definition: MVlnu.cpp:1484
double sqrtMV_o_MM
Definition: MVlnu.h:170
double w0
Definition: MVlnu.h:177
double getDeltaGammaDeltacl(double cl_min, double cl_max)
The integral of from to .
Definition: MVlnu.cpp:1382
double get_unitarity_P_BGL()
Pseudoscalar unitarity constraint for BGL parameters.
Definition: MVlnu.cpp:1500
double getPlep()
Binned lepton helicity asymmetry .
Definition: MVlnu.cpp:1647
double mu_b
Definition: MVlnu.h:179
bool btocNPpmflag
Definition: MVlnu.h:166
double get_hA1(double w)
return at
Definition: MVlnu.cpp:1518
std::vector< std::string > initializeMVlnuParameters()
Definition: MVlnu.cpp:167
double get_hV(double w)
return at
Definition: MVlnu.cpp:1543
QCD::meson meson
Definition: MVlnu.h:160
bool BGLflag
Definition: MVlnu.h:164
double get_hA2(double w)
return at
Definition: MVlnu.cpp:1526
const StandardModel & mySM
Definition: MVlnu.h:158
double get_R2(double w)
return at
Definition: MVlnu.cpp:1561
bool NPanalysis
Definition: MVlnu.h:167
double getMwidth()
The width of the meson M.
Definition: MVlnu.h:152
double RV
Definition: MVlnu.h:178
double MM
Definition: MVlnu.h:175
double getDeltaGammaDeltaw(double w_min, double w_max)
The integral of from to .
Definition: MVlnu.cpp:1346
double Mb
Definition: MVlnu.h:180
double GF
Definition: MVlnu.h:172
double get_R1(double w)
return at
Definition: MVlnu.cpp:1551
double Mc
Definition: MVlnu.h:181
double getFL()
Binned D* polarization fraction .
Definition: MVlnu.cpp:1469
double Mnu
Definition: MVlnu.h:174
double width
Definition: MVlnu.h:182
QCD::meson vectorM
Definition: MVlnu.h:161
bool DMflag
Definition: MVlnu.h:165
virtual ~MVlnu()
Destructor.
Definition: MVlnu.cpp:164
bool CLNflag
Definition: MVlnu.h:163
QCD::lepton lep
Definition: MVlnu.h:159
double get_hA3(double w)
return at
Definition: MVlnu.cpp:1535
double MV
Definition: MVlnu.h:176
MVlnu(const StandardModel &SM_i, QCD::meson meson_i, QCD::meson vector_i, QCD::lepton lep_i)
Constructor.
Definition: MVlnu.cpp:19
double get_unitarity_A_BGL()
Axial unitarity constraint for BGL parameters.
Definition: MVlnu.cpp:1492
double getDeltaGammaDeltachi(double chi_min, double chi_max)
The integral of from to .
Definition: MVlnu.cpp:1453
double Mlep
Definition: MVlnu.h:173
double getDeltaGammaDeltacV(double cV_min, double cV_max)
The integral of from to .
Definition: MVlnu.cpp:1417
std::vector< std::string > mvlnuParameters
Definition: MVlnu.h:162
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.