a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
MPlnu Class Reference

#include <MPlnu.h>

Detailed Description

Definition at line 23 of file MPlnu.h.

Public Member Functions

double get_f0 (double q2)
 return f0 form factor at \( q^2 \) More...
 
double get_fplus (double q2)
 return fplus form factor at \( q^2 \) More...
 
double get_fT (double q2)
 return fT form factor at \( q^2 \) More...
 
double get_strong_unitarity_BGL ()
 Strong Unitarity constraint for BGL parameters using HQET. More...
 
double get_unitarity_0plus_BGL ()
 Weak Unitarity constraint for BGL parameters related to 0+ resonances. More...
 
double get_unitarity_1min_BGL ()
 Weak Unitarity constraint for BGL parameters related to 1- resonances. More...
 
double getaf0_0 ()
 The BGL parameter \( a_0^{f_0}\). More...
 
double getDeltaGammaDeltaw (double w_min, double w_max)
 The integral of \( d\Gamma/dw \) from \(w_{min}\) to \(w_{max}\). More...
 
double getMwidth ()
 The width of the meson M. More...
 
std::vector< std::string > initializeMPlnuParameters ()
 
 MPlnu (const StandardModel &SM_i, QCD::meson meson_i, QCD::meson pseudoscalar_i, QCD::lepton lep_i)
 Constructor. More...
 
virtual ~MPlnu ()
 Destructor. More...
 

Private Attributes

bool BGLflag
 
bool btocNPpmflag
 
bool CLNflag
 
bool DMflag
 
double GF
 
QCD::lepton lep
 
double Mb
 
double Mc
 
QCD::meson meson
 
double Mlep
 
double MM
 
double Mnu
 
double MP
 
std::vector< std::string > mplnuParameters
 
double mu_b
 
const StandardModelmySM
 
bool NPanalysis
 
QCD::meson pseudoscalarM
 
double RV
 
double w0
 
double width
 
double z0
 

Constructor & Destructor Documentation

◆ MPlnu()

MPlnu::MPlnu ( const StandardModel SM_i,
QCD::meson  meson_i,
QCD::meson  pseudoscalar_i,
QCD::lepton  lep_i 
)

Constructor.

Parameters
[in]SM_ia reference to an object of type StandardModel
[in]meson_iinitial meson of the decay
[in]vector_ifinal vector meson of the decay
[in]lep_ifinal leptons of the decay

Definition at line 21 of file MPlnu.cpp.

22: mySM(SM_i), ig(ROOT::Math::Integration::kADAPTIVESINGULAR, ROOT::Math::Integration::kGAUSS51), wf()
23{
24 lep = lep_i;
25 meson = meson_i;
26 pseudoscalarM = pseudoscalar_i;
27 CLNflag = false;
28 BGLflag = false;
29 DMflag = false;
30 btocNPpmflag = false;
31 NPanalysis = false;
32
33 checkcache_int_tau = false;
34 checkcache_int_mu = false;
35 checkcache_int_el = false;
36
37 double max_double = std::numeric_limits<double>::max();
38
39 fplusz0_cache = max_double;
40 rho1to2_cache = max_double;
41 N_0_cache = max_double;
42 alpha_0_cache = max_double;
43 alpha_p_cache = max_double;
44 beta_0_cache = max_double;
45 beta_p_cache = max_double;
46 gamma_0_cache = max_double;
47 gamma_p_cache = max_double;
48 af0_1_cache = max_double;
49 af0_2_cache = max_double;
50 afplus_0_cache = max_double;
51 afplus_1_cache = max_double;
52 afplus_2_cache = max_double;
53
54#if NBGL == 3
55 af0_3_cache = max_double;
56 afplus_3_cache = max_double;
57#endif
58
59 afplus1_cache = max_double;
60 afplus2_cache = max_double;
61 afplus3_cache = max_double;
62 afplus4_cache = max_double;
63 afplus5_cache = max_double;
64 afplus6_cache = max_double;
65 afplus7_cache = max_double;
66 afplus8_cache = max_double;
67 afplus9_cache = max_double;
68 afplus10_cache = max_double;
69 afzero1_cache = max_double;
70 afzero2_cache = max_double;
71 afzero3_cache = max_double;
72 afzero4_cache = max_double;
73 afzero5_cache = max_double;
74 afzero6_cache = max_double;
75 afzero7_cache = max_double;
76 afzero8_cache = max_double;
77 afzero9_cache = max_double;
78 afzero10_cache = max_double;
79 bfplus1_cache = max_double;
80 bfplus2_cache = max_double;
81 bfplus3_cache = max_double;
82 bfplus4_cache = max_double;
83 bfplus5_cache = max_double;
84 bfplus6_cache = max_double;
85 bfplus7_cache = max_double;
86 bfplus8_cache = max_double;
87 bfplus9_cache = max_double;
88 bfplus10_cache = max_double;
89 bfzero1_cache = max_double;
90 bfzero2_cache = max_double;
91 bfzero3_cache = max_double;
92 bfzero4_cache = max_double;
93 bfzero5_cache = max_double;
94 bfzero6_cache = max_double;
95 bfzero7_cache = max_double;
96 bfzero8_cache = max_double;
97 bfzero9_cache = max_double;
98 bfzero10_cache = max_double;
99
100 CS_cache = max_double;
101 CSp_cache = max_double;
102 CP_cache = max_double;
103 CPp_cache = max_double;
104 CV_cache = max_double;
105 CVp_cache = max_double;
106 CA_cache = max_double;
107 CAp_cache = max_double;
108 CT_cache = max_double;
109 CTp_cache = max_double;
110
111 ig.SetRelTolerance(1.E-6); // set relative tolerance
112 ig.SetAbsTolerance(1.E-6); // set absoulte tolerance
113
114}
QCD::lepton lep
Definition: MPlnu.h:106
bool btocNPpmflag
Definition: MPlnu.h:113
bool CLNflag
Definition: MPlnu.h:110
bool NPanalysis
Definition: MPlnu.h:114
QCD::meson pseudoscalarM
Definition: MPlnu.h:108
QCD::meson meson
Definition: MPlnu.h:107
bool BGLflag
Definition: MPlnu.h:111
const StandardModel & mySM
Definition: MPlnu.h:105
bool DMflag
Definition: MPlnu.h:112

◆ ~MPlnu()

MPlnu::~MPlnu ( )
virtual

Destructor.

Definition at line 116 of file MPlnu.cpp.

117{}

Member Function Documentation

◆ get_f0()

double MPlnu::get_f0 ( double  q2)

return f0 form factor at \( q^2 \)

Returns
\( f_{0}(q^2) \)

Definition at line 811 of file MPlnu.cpp.

812{
813 updateParameters();
814
815 return f0(q2);
816}

◆ get_fplus()

double MPlnu::get_fplus ( double  q2)

return fplus form factor at \( q^2 \)

Returns
\( f_{+}(q^2) \)

Definition at line 804 of file MPlnu.cpp.

805{
806 updateParameters();
807
808 return fplus(q2);
809}

◆ get_fT()

double MPlnu::get_fT ( double  q2)

return fT form factor at \( q^2 \)

Returns
\( q^2 \)

Definition at line 818 of file MPlnu.cpp.

819{
820 updateParameters();
821
822 return fT(q2);
823}

◆ get_strong_unitarity_BGL()

double MPlnu::get_strong_unitarity_BGL ( )

Strong Unitarity constraint for BGL parameters using HQET.

Returns
\( \Sum_i (af0_i^2) \)

Definition at line 791 of file MPlnu.cpp.

792{
793 updateParameters();
794
795#if NBGL == 3
796 return 1707.54 * afplus_0 * afplus_0 + 1299.57 * afplus_0 * afplus_1 + 442.82 * afplus_1 * afplus_1 - 356.01 * afplus_0 * afplus_2
797 - 101.62 * afplus_1 * afplus_2 + 34.947 * afplus_2 * afplus_2 - 206.767 * afplus_0 * afplus_3 - 127.668 * afplus_1 * afplus_3
798 + 33.234 * afplus_2 * afplus_3 + 16.475 * afplus_3 * afplus_3;
799#else
800 return 442.82 * afplus_0 * afplus_0 - 101.619 * afplus_0 * afplus_1 + 34.947* afplus_1 * afplus_1 - 127.668 * afplus_0 * afplus_2 + 33.234 * afplus_1 * afplus_2 + 16.4754 * afplus_2 * afplus_2;
801#endif
802}

◆ get_unitarity_0plus_BGL()

double MPlnu::get_unitarity_0plus_BGL ( )

Weak Unitarity constraint for BGL parameters related to 0+ resonances.

Returns
\( \Sum_i (af0_i^2) \)

Definition at line 780 of file MPlnu.cpp.

781{
782 updateParameters();
783
784#if NBGL == 3
785 return af0_0 * af0_0 + af0_1 * af0_1 + af0_2 * af0_2 + af0_3 * af0_3;
786#else
787 return af0_0 * af0_0 + af0_1 * af0_1 + af0_2*af0_2;
788#endif
789}

◆ get_unitarity_1min_BGL()

double MPlnu::get_unitarity_1min_BGL ( )

Weak Unitarity constraint for BGL parameters related to 1- resonances.

Returns
\( \Sum_i (af+_i^2) \)

Definition at line 769 of file MPlnu.cpp.

770{
771 updateParameters();
772
773#if NBGL == 3
774 return afplus_0 * afplus_0 + afplus_1 * afplus_1 + afplus_2 * afplus_2 + afplus_3 * afplus_3;
775#else
776 return afplus_0 * afplus_0 + afplus_1 * afplus_1 + afplus_2 * afplus_2;
777#endif
778}

◆ getaf0_0()

double MPlnu::getaf0_0 ( )
inline

The BGL parameter \( a_0^{f_0}\).

Returns
\( a_0^{f_0}\)

Definition at line 98 of file MPlnu.h.

99 {
100 updateParameters();
101 return af0_0;
102 }

◆ getDeltaGammaDeltaw()

double MPlnu::getDeltaGammaDeltaw ( double  w_min,
double  w_max 
)

The integral of \( d\Gamma/dw \) from \(w_{min}\) to \(w_{max}\).

Parameters
[in]w_minmaximum q^2 of the integral
[in]w_maxminimum q^2 of the integral
Returns
\( <d\Gamma/dw> \)

Definition at line 753 of file MPlnu.cpp.

754{
755 updateParameters();
756
757 double q2_min = (2. * MM * MP)*(w0 - w_max); // min is Mlep*Mlep;
758 double q2_max = (2. * MM * MP)*(w0 - w_min); // max is (MM-MP)*(MM-MP);
759
760 double intJ1 = integrateJ(1, q2_min, q2_max);
761 double intJ3 = integrateJ(3, q2_min, q2_max);
762
763 return 2. * (intJ1 + intJ3 / 3.);
764
765 // x-check of the SM computation
766 //return integrateJ(4, q2_min, q2_max);
767}
double MP
Definition: MPlnu.h:120
double w0
Definition: MPlnu.h:121
double MM
Definition: MPlnu.h:119

◆ getMwidth()

double MPlnu::getMwidth ( )
inline

The width of the meson M.

Returns
\( \Gamma_M \)

Definition at line 88 of file MPlnu.h.

89 {
90 updateParameters();
91 return width;
92 }
double width
Definition: MPlnu.h:127

◆ initializeMPlnuParameters()

std::vector< std::string > MPlnu::initializeMPlnuParameters ( )

Definition at line 119 of file MPlnu.cpp.

120{
124 btocNPpmflag = (mySM.getModelName().compare("RealWeakEFTCCPM") == 0);
125 NPanalysis = (mySM.getModelName().compare("RealWeakEFTCCPM") == 0 || mySM.getModelName().compare("RealWeakEFTCC") == 0);
126 if (CLNflag + BGLflag + DMflag != true) throw std::runtime_error("MPlnu: Set only one among CLNflag, BGLflag, DMflag to true");
127 else mplnuParameters = make_vector<std::string>();
128 if (CLNflag) {
129 mplnuParameters.clear();
130 if (pseudoscalarM == StandardModel::D_P) mplnuParameters = make_vector<std::string>()
131 << "fplusz0" << "rho1to2"
132 << "N_0" << "alpha_0" << "alpha_p" << "beta_0" << "beta_p" << "gamma_0" << "gamma_p";
133 }
134 else if (BGLflag) {
135 mplnuParameters.clear();
136 if (pseudoscalarM == StandardModel::D_P) mplnuParameters = make_vector<std::string>()
137 << "af0_1" << "af0_2" << "afplus_0" << "afplus_1" << "afplus_2"
138#if NBGL == 3
139 << "af0_3" << "afplus_3"
140#endif
141 << "mBc1m_1" << "mBc1m_2" << "mBc1m_3" << "mBc1m_4"
142 << "mBc0p_1" << "mBc0p_2" << "chitildeT" << "chiL" << "n_I";
143 }
144 else if (DMflag) {
145 mplnuParameters.clear();
146 mplnuParameters = make_vector<std::string>()
147 << "afplus1" << "afplus2" << "afplus3" << "afplus4" << "afplus5"
148 << "afplus6" << "afplus7" << "afplus8" << "afplus9" << "afplus10"
149 << "afzero1" << "afzero2" << "afzero3" << "afzero4" << "afzero5"
150 << "afzero6" << "afzero7" << "afzero8" << "afzero9" << "afzero10"
151 << "bfplus1" << "bfplus2" << "bfplus3" << "bfplus4" << "bfplus5"
152 << "bfplus6" << "bfplus7" << "bfplus8" << "bfplus9" << "bfplus10"
153 << "bfzero1" << "bfzero2" << "bfzero3" << "bfzero4" << "bfzero5"
154 << "bfzero6" << "bfzero7" << "bfzero8" << "bfzero9" << "bfzero10";
155 }
156 else {
157 std::stringstream out;
158 out << pseudoscalarM;
159 throw std::runtime_error("MPlnu: vector " + out.str() + " not implemented");
160 }
161
164 return mplnuParameters;
165}
bool getFlagBGL() const
Definition: Flavour.h:344
bool getFlagCLN() const
Definition: Flavour.h:340
bool getFlagDM() const
Definition: Flavour.h:348
std::vector< std::string > mplnuParameters
Definition: MPlnu.h:109
std::string getModelName() const
A method to fetch the name of the model.
Definition: Model.h:59
@ D_P
Definition: QCD.h:342
void initializeMeson(QCD::meson meson_i) const
A method to initialize a meson.
Definition: QCD.cpp:280
const Flavour & getFlavour() const

Member Data Documentation

◆ BGLflag

bool MPlnu::BGLflag
private

A flag for switching to BGL parameterization

Definition at line 111 of file MPlnu.h.

◆ btocNPpmflag

bool MPlnu::btocNPpmflag
private

A flag for switching to the +/- basis for NP Wilson coefficients

Definition at line 113 of file MPlnu.h.

◆ CLNflag

bool MPlnu::CLNflag
private

A flag for switching to CLN parameterization

Definition at line 110 of file MPlnu.h.

◆ DMflag

bool MPlnu::DMflag
private

A flag for switching to Dispersive Matrix method

Definition at line 112 of file MPlnu.h.

◆ GF

double MPlnu::GF
private

Fermi constant

Definition at line 116 of file MPlnu.h.

◆ lep

QCD::lepton MPlnu::lep
private

Final leptons type

Definition at line 106 of file MPlnu.h.

◆ Mb

double MPlnu::Mb
private

b quark mass

Definition at line 125 of file MPlnu.h.

◆ Mc

double MPlnu::Mc
private

charm quark mass

Definition at line 126 of file MPlnu.h.

◆ meson

QCD::meson MPlnu::meson
private

Initial meson type

Definition at line 107 of file MPlnu.h.

◆ Mlep

double MPlnu::Mlep
private

Lepton mass

Definition at line 117 of file MPlnu.h.

◆ MM

double MPlnu::MM
private

Initial meson mass

Definition at line 119 of file MPlnu.h.

◆ Mnu

double MPlnu::Mnu
private

Neutrino mass

Definition at line 118 of file MPlnu.h.

◆ MP

double MPlnu::MP
private

Final pseudoscalar meson mass

Definition at line 120 of file MPlnu.h.

◆ mplnuParameters

std::vector<std::string> MPlnu::mplnuParameters
private

The string of mandatory MPlnu parameters

Definition at line 109 of file MPlnu.h.

◆ mu_b

double MPlnu::mu_b
private

b mass scale

Definition at line 124 of file MPlnu.h.

◆ mySM

const StandardModel& MPlnu::mySM
private

Model type

Definition at line 105 of file MPlnu.h.

◆ NPanalysis

bool MPlnu::NPanalysis
private

A flag to switch to BSM analysis

Definition at line 114 of file MPlnu.h.

◆ pseudoscalarM

QCD::meson MPlnu::pseudoscalarM
private

Final vector meson type

Definition at line 108 of file MPlnu.h.

◆ RV

double MPlnu::RV
private

Dimensionless meson - vector mass ratio

Definition at line 123 of file MPlnu.h.

◆ w0

double MPlnu::w0
private

Kinematic variable w at q2=0

Definition at line 121 of file MPlnu.h.

◆ width

double MPlnu::width
private

Initial meson width

Definition at line 127 of file MPlnu.h.

◆ z0

double MPlnu::z0
private

Kinematic variable z at q2=0

Definition at line 122 of file MPlnu.h.


The documentation for this class was generated from the following files: