a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
MVlnuObservables.cpp
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#include "MVlnuObservables.h"
9#include "MVlnu.h"
10#include "MPlnu.h"
11#include "StandardModel.h"
12
14: ThObservable(SM_i)
15{
16 lep1 = lep_1;
17 lep2 = lep_2;
18 meson = meson_i;
19 vectorM = vector_i;
20
23}
24
26{
27 double w_min = getBinMin();
28 double w_max = getBinMax();
29 double MM = SM.getMesons(meson).getMass();
30 double MV = SM.getMesons(vectorM).getMass();
31 double q2_min_lep1 = SM.getLeptons(lep1).getMass()*SM.getLeptons(lep1).getMass();
32 double w_max_lep1 = (MM*MM+MV*MV)/(2.*MM*MV)-q2_min_lep1/(2.*MM*MV);
33 double deltaGammadeltaw_lep2_extra = 0.;
34
35 w_max_lep1 = std::min(w_max_lep1, w_max);
36
37 if (w_max > w_max_lep1) deltaGammadeltaw_lep2_extra = SM.getFlavour().getMVlnu(meson, vectorM, lep2).getDeltaGammaDeltaw(w_max_lep1, w_max);
38
39 double deltaGammadeltaw_lep1 = SM.getFlavour().getMVlnu(meson, vectorM, lep1).getDeltaGammaDeltaw(w_min,w_max_lep1);
40 double deltaGammadeltaw_lep2 = SM.getFlavour().getMVlnu(meson, vectorM, lep2).getDeltaGammaDeltaw(w_min,w_max_lep1);
41
42 return (deltaGammadeltaw_lep2_extra+0.5*(deltaGammadeltaw_lep1+deltaGammadeltaw_lep2))*1.e+15; // in units of 10^-15 GeV // NOTE: DO NOT divide by the bin size because experimentalists do not.
43}
44
46: ThObservable(SM_i)
47{
48 lep1 = lep_1;
49 lep2 = lep_2;
50 lep3 = lep_3;
51 meson = meson_i;
52 vectorM = vector_i;
53
57}
58
60{
61 double MM = SM.getMesons(meson).getMass();
62 double MV = SM.getMesons(vectorM).getMass();
63 double q2_min_lep1 = SM.getLeptons(lep1).getMass()*SM.getLeptons(lep1).getMass();
64 double q2_min_lep2 = SM.getLeptons(lep2).getMass()*SM.getLeptons(lep2).getMass();
65 double q2_min_lep3 = SM.getLeptons(lep3).getMass()*SM.getLeptons(lep3).getMass();
66 double w_max_lep1 = (MM*MM+MV*MV)/(2.*MM*MV)-q2_min_lep1/(2.*MM*MV);
67 double w_max_lep2 = (MM*MM+MV*MV)/(2.*MM*MV)-q2_min_lep2/(2.*MM*MV);
68 double w_max_lep3 = (MM*MM+MV*MV)/(2.*MM*MV)-q2_min_lep3/(2.*MM*MV);
69 double q2_max = (MM-MV)*(MM-MV);
70 double w_min = (MM*MM+MV*MV)/(2.*MM*MV)-q2_max/(2.*MM*MV);
71 double deltaGammadeltaw_lep1 = SM.getFlavour().getMVlnu(meson, vectorM, lep1).getDeltaGammaDeltaw(w_min,w_max_lep1);
72 double deltaGammadeltaw_lep2 = SM.getFlavour().getMVlnu(meson, vectorM, lep2).getDeltaGammaDeltaw(w_min,w_max_lep2);
73 double deltaGammadeltaw_lep3 = SM.getFlavour().getMVlnu(meson, vectorM, lep3).getDeltaGammaDeltaw(w_min,w_max_lep3);
74
75 return deltaGammadeltaw_lep1/((deltaGammadeltaw_lep2+deltaGammadeltaw_lep3)/2.); // in units of 10^-15 GeV
76}
77
79: ThObservable(SM_i)
80{
81 lep1 = lep_1;
82 lep2 = lep_2;
83 meson = meson_i;
84 vectorM = vector_i;
85
88}
89
91{
92 /* sign change for theta_l to go from exp to theory conventions */
93 double cl_min = -getBinMax();
94 double cl_max = -getBinMin();
95 double deltaGammadeltacl_lep1 = SM.getFlavour().getMVlnu(meson, vectorM, lep1).getDeltaGammaDeltacl(cl_min,cl_max);
96 double deltaGammadeltacl_lep2 = SM.getFlavour().getMVlnu(meson, vectorM, lep2).getDeltaGammaDeltacl(cl_min,cl_max);
97
98 return (deltaGammadeltacl_lep1+deltaGammadeltacl_lep2)/2.*1.e+15; // in units of 10^-15 GeV
99}
100
102: ThObservable(SM_i)
103{
104 lep1 = lep_1;
105 lep2 = lep_2;
106 meson = meson_i;
107 vectorM = vector_i;
108
111}
112
114{
115 double cV_min = getBinMin();
116 double cV_max = getBinMax();
117 double deltaGammadeltacV_lep1 = SM.getFlavour().getMVlnu(meson, vectorM, lep1).getDeltaGammaDeltacV(cV_min,cV_max);
118 double deltaGammadeltacV_lep2 = SM.getFlavour().getMVlnu(meson, vectorM, lep2).getDeltaGammaDeltacV(cV_min,cV_max);
119
120 return (deltaGammadeltacV_lep1+deltaGammadeltacV_lep2)/2.*1.e+15; // in units of 10^-15 GeV
121}
122
124: ThObservable(SM_i)
125{
126 lep1 = lep_1;
127 lep2 = lep_2;
128 meson = meson_i;
129 vectorM = vector_i;
130
133}
134
136{
137 double chi_min = getBinMin();
138 double chi_max = getBinMax();
139 double deltaGammadeltachi_lep1 = SM.getFlavour().getMVlnu(meson, vectorM, lep1).getDeltaGammaDeltachi(chi_min,chi_max);
140 double deltaGammadeltachi_lep2 = SM.getFlavour().getMVlnu(meson, vectorM, lep2).getDeltaGammaDeltachi(chi_min,chi_max);
141
142 return (deltaGammadeltachi_lep1+deltaGammadeltachi_lep2)/2.*1.e+15; // in units of 10^-15 GeV
143}
144
145FL_MVlnu::FL_MVlnu(const StandardModel& SM_i, QCD::meson meson_i, QCD::meson vector_i, QCD::lepton lep_i): ThObservable(SM_i)
146{
147 lep = lep_i;
148 meson = meson_i;
149 vectorM = vector_i;
150
152}
153
155{
156 return SM.getFlavour().getMVlnu(meson, vectorM, lep).getFL();
157}
158
160: ThObservable(SM_i)
161{
162 lep = lep_i;
163 meson = meson_i;
164 vectorM = vector_i;
165
167}
168
170{
172}
173
175: ThObservable(SM_i)
176{
177 lep = lep_i;
178 meson = meson_i;
179 vectorM = vector_i;
180
182}
183
185{
187}
188
190: ThObservable(SM_i)
191{
192 lep = lep_i;
193 meson = meson_i;
194 vectorM = vector_i;
195
197}
198
200{
202}
203
205: ThObservable(SM_i)
206{
207 lep = lep_i;
208 meson = meson_i;
209 vectorM = vector_i;
210
212}
213
214FF_hV::FF_hV(const StandardModel& SM_i, QCD::meson meson_i, QCD::meson vector_i, QCD::lepton lep_i)
215: ThObservable(SM_i)
216{
217 lep = lep_i;
218 meson = meson_i;
219 vectorM = vector_i;
220
222}
223
225{
226 double w = getBinMin();
227
229}
230
232{
234}
235
236FF_hA1::FF_hA1(const StandardModel& SM_i, QCD::meson meson_i, QCD::meson vector_i, QCD::lepton lep_i)
237: ThObservable(SM_i)
238{
239 lep = lep_i;
240 meson = meson_i;
241 vectorM = vector_i;
242
244}
245
247{
248 double w = getBinMin();
250}
251
252FF_hA2::FF_hA2(const StandardModel& SM_i, QCD::meson meson_i, QCD::meson vector_i, QCD::lepton lep_i)
253: ThObservable(SM_i)
254{
255 lep = lep_i;
256 meson = meson_i;
257 vectorM = vector_i;
258
260}
261
263{
264 double w = getBinMin();
265// double rD = SM.getMesons(vectorM).getMass()/SM.getMesons(meson).getMass();
266// double hA1 = SM.getFlavour().getMVlnu(meson, vectorM, lep).get_hA1(w);
267// double R2 = SM.getFlavour().getMVlnu(meson, vectorM, lep).get_R2(w);
268// double R0 = SM.getFlavour().getMVlnu(meson, vectorM, lep).get_R0(w);
269// double R3 = (R2 * (1. - rD) + rD * (R0 * (1. + rD) - 2.))/(1. - rD)/(1. - rD);
270
271// return (R2 - R3) * hA1/2./rD;
273}
274
275FF_hA3::FF_hA3(const StandardModel& SM_i, QCD::meson meson_i, QCD::meson vector_i, QCD::lepton lep_i)
276: ThObservable(SM_i)
277{
278 lep = lep_i;
279 meson = meson_i;
280 vectorM = vector_i;
281
283}
284
286{
287 double w = getBinMin();
288// double rD = SM.getMesons(vectorM).getMass()/SM.getMesons(meson).getMass();
289// double hA1 = SM.getFlavour().getMVlnu(meson, vectorM, lep).get_hA1(w);
290// double R2 = SM.getFlavour().getMVlnu(meson, vectorM, lep).get_R2(w);
291// double R0 = SM.getFlavour().getMVlnu(meson, vectorM, lep).get_R0(w);
292// double R3 = (R2 * (1. - rD) + rD * (R0 * (1. + rD) - 2.))/(1. - rD)/(1. - rD);
293//
294// return (R2 + R3) * hA1/2.;
296}
297
298FF_R1::FF_R1(const StandardModel& SM_i, QCD::meson meson_i, QCD::meson vector_i, QCD::lepton lep_i)
299: ThObservable(SM_i)
300{
301 lep = lep_i;
302 meson = meson_i;
303 vectorM = vector_i;
304
306}
307
309{
310 double w = getBinMin();
312}
313
314FF_R2::FF_R2(const StandardModel& SM_i, QCD::meson meson_i, QCD::meson vector_i, QCD::lepton lep_i)
315: ThObservable(SM_i)
316{
317 lep = lep_i;
318 meson = meson_i;
319 vectorM = vector_i;
320
322}
323
325{
326 double w = getBinMin();
328}
329
330FF_R0::FF_R0(const StandardModel& SM_i, QCD::meson meson_i, QCD::meson vector_i, QCD::lepton lep_i)
331: ThObservable(SM_i)
332{
333 lep = lep_i;
334 meson = meson_i;
335 vectorM = vector_i;
336
338}
339
341{
342 double w = getBinMin();
344}
345
347: ThObservable(SM_i)
348{
349 lep = lep_i;
350 meson = meson_i;
351 vectorM = vector_i;
352 pseudoscalarM = pseudoscalar_i;
353
356}
357
359{
361}
362
364{
365 lep = lep_i;
366 meson = meson_i;
367 vectorM = vector_i;
368
370}
371
373{
375}
FF_R0(const StandardModel &SM_i, QCD::meson meson_i, QCD::meson vector_i, QCD::lepton lep_i)
Constructor.
QCD::meson vectorM
QCD::lepton lep
double computeThValue()
.
QCD::meson meson
QCD::meson meson
double computeThValue()
.
FF_R1(const StandardModel &SM_i, QCD::meson meson_i, QCD::meson vector_i, QCD::lepton lep_i)
Constructor.
QCD::meson vectorM
QCD::lepton lep
QCD::lepton lep
double computeThValue()
.
QCD::meson vectorM
QCD::meson meson
FF_R2(const StandardModel &SM_i, QCD::meson meson_i, QCD::meson vector_i, QCD::lepton lep_i)
Constructor.
QCD::meson meson
QCD::lepton lep
FF_hA1(const StandardModel &SM_i, QCD::meson meson_i, QCD::meson vector_i, QCD::lepton lep_i)
Constructor.
double computeThValue()
.
QCD::meson vectorM
QCD::lepton lep
double computeThValue()
A1 form factor at maximum lepton-neutrino invariant mass.
FF_hA1atw1(const StandardModel &SM_i, QCD::meson meson_i, QCD::meson vector_i, QCD::lepton lep_i)
Constructor.
QCD::meson meson
QCD::meson vectorM
FF_hA2(const StandardModel &SM_i, QCD::meson meson_i, QCD::meson vector_i, QCD::lepton lep_i)
Constructor.
QCD::meson meson
double computeThValue()
.
QCD::lepton lep
QCD::meson vectorM
QCD::meson vectorM
QCD::lepton lep
FF_hA3(const StandardModel &SM_i, QCD::meson meson_i, QCD::meson vector_i, QCD::lepton lep_i)
Constructor.
QCD::meson meson
double computeThValue()
.
QCD::lepton lep
double computeThValue()
.
QCD::meson meson
QCD::meson vectorM
FF_hV(const StandardModel &SM_i, QCD::meson meson_i, QCD::meson vector_i, QCD::lepton lep_i)
Constructor.
double computeThValue()
FL polarization fraction .
FL_MVlnu(const StandardModel &SM_i, QCD::meson meson_i, QCD::meson vector_i, QCD::lepton lep_i)
Constructor.
QCD::lepton lep
QCD::meson meson
QCD::meson vectorM
MVlnu & getMVlnu(QCD::meson meson_i, QCD::meson vector_i, QCD::lepton lep_i) const
Returns the initial and final state dependent object for .
Definition: Flavour.cpp:249
MPlnu & getMPlnu(QCD::meson meson_i, QCD::meson pseudoscalar_i, QCD::lepton lep_i) const
Returns the initial and final state dependent object for .
Definition: Flavour.cpp:266
GammacV_MVlnu(const StandardModel &SM_i, QCD::meson meson_i, QCD::meson vector_i, QCD::lepton lep_1, QCD::lepton lep_2)
Constructor.
double computeThValue()
The binned observable in .
QCD::meson vectorM
QCD::lepton lep1
QCD::meson meson
QCD::lepton lep2
Gammachi_MVlnu(const StandardModel &SM_i, QCD::meson meson_i, QCD::meson vector_i, QCD::lepton lep_1, QCD::lepton lep_2)
Constructor.
QCD::meson vectorM
QCD::lepton lep1
QCD::lepton lep2
double computeThValue()
The binned observable in .
QCD::meson meson
QCD::meson vectorM
Gammacl_MVlnu(const StandardModel &SM_i, QCD::meson meson_i, QCD::meson vector_i, QCD::lepton lep_1, QCD::lepton lep_2)
Constructor.
QCD::lepton lep2
double computeThValue()
The binned observable in .
QCD::lepton lep1
QCD::meson meson
Gammaw_MVlnu(const StandardModel &SM_i, QCD::meson meson_i, QCD::meson vector_i, QCD::lepton lep_1, QCD::lepton lep_2)
Constructor.
QCD::lepton lep2
QCD::lepton lep1
double computeThValue()
The binned observable in .
QCD::meson vectorM
std::vector< std::string > initializeMPlnuParameters()
Definition: MPlnu.cpp:119
double get_unitarity_1min_BGL()
Weak Unitarity constraint for BGL parameters related to 1- resonances.
Definition: MPlnu.cpp:769
double get_hA1w1()
return A1 form factor at
Definition: MVlnu.cpp:1511
double get_R0(double w)
return at
Definition: MVlnu.cpp:1571
double get_unitarity_V_BGL()
Vector unitarity constraint for BGL parameters.
Definition: MVlnu.cpp:1484
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 get_hA1(double w)
return at
Definition: MVlnu.cpp:1518
std::vector< std::string > initializeMVlnuParameters()
Definition: MVlnu.cpp:167
double get_hA2(double w)
return at
Definition: MVlnu.cpp:1526
double get_R2(double w)
return at
Definition: MVlnu.cpp:1561
double getDeltaGammaDeltaw(double w_min, double w_max)
The integral of from to .
Definition: MVlnu.cpp:1346
double get_R1(double w)
return at
Definition: MVlnu.cpp:1551
double getFL()
Binned D* polarization fraction .
Definition: MVlnu.cpp:1469
double get_hA3(double w)
return at
Definition: MVlnu.cpp:1535
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 getDeltaGammaDeltacV(double cV_min, double cV_max)
The integral of from to .
Definition: MVlnu.cpp:1417
const double & getMass() const
A get method to access the particle mass.
Definition: Particle.h:61
QCD::meson meson
double computeThValue()
Binned lepton helicity asymmetry .
QCD::lepton lep
Plep_MVlnu(const StandardModel &SM_i, QCD::meson meson_i, QCD::meson vector_i, QCD::lepton lep_i)
Constructor.
QCD::meson vectorM
meson
An enum type for mesons.
Definition: QCD.h:336
const Meson & getMesons(const QCD::meson m) const
A get method to access a meson as an object of the type Meson.
Definition: QCD.h:526
lepton
An enum type for leptons.
Definition: QCD.h:310
QCD::meson meson
QCD::lepton lep3
double computeThValue()
The binned observable in .
QCD::meson vectorM
QCD::lepton lep2
RDstar_MVlnu(const StandardModel &SM_i, QCD::meson meson_i, QCD::meson vector_i, QCD::lepton lep_1, QCD::lepton lep_2, QCD::lepton lep_3)
Constructor.
QCD::lepton lep1
A model class for the Standard Model.
const Particle & getLeptons(const QCD::lepton p) const
A get method to retrieve the member object of a lepton.
const Flavour & getFlavour() const
A class for a model prediction of an observable.
Definition: ThObservable.h:25
void setParametersForObservable(std::vector< std::string > parametersForObservable_i)
A set method to get the parameters for the specific observable.
Definition: ThObservable.h:109
double getBinMin()
A get method to get the minimum value of the bin.
Definition: ThObservable.h:82
double getBinMax()
A get method to get the maximum value of the bin.
Definition: ThObservable.h:91
const StandardModel & SM
A reference to an object of StandardMode class.
Definition: ThObservable.h:121
double computeThValue()
Axial unitarity constraint for .
UnitarityA_MVlnu(const StandardModel &SM_i, QCD::meson meson_i, QCD::meson vector_i, QCD::lepton lep_i)
Constructor.
UnitarityP_MVlnu(const StandardModel &SM_i, QCD::meson meson_i, QCD::meson vector_i, QCD::lepton lep_i)
Constructor.
double computeThValue()
Axial unitarity constraint for .
double computeThValue()
Combined unitarity constraint for .
UnitarityV_D_Dst(const StandardModel &SM_i, QCD::meson meson_i, QCD::meson vector_i, QCD::meson pseudoscalar_i, QCD::lepton lep_i)
Constructor.
QCD::meson pseudoscalarM
UnitarityV_MVlnu(const StandardModel &SM_i, QCD::meson meson_i, QCD::meson vector_i, QCD::lepton lep_i)
Constructor.
double computeThValue()
Vectorial unitarity constraint for .