BOSS 6.6.4.p01
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtbTosllScalarAmp Class Reference

#include <EvtbTosllScalarAmp.hh>

+ Inheritance diagram for EvtbTosllScalarAmp:

Public Member Functions

 EvtbTosllScalarAmp (double c7, double c9, double c10)
 
void CalcAmp (EvtParticle *parent, EvtAmp &amp, EvtbTosllFF *formFactors)
 
- Public Member Functions inherited from EvtbTosllAmp
virtual void CalcAmp (EvtParticle *parent, EvtAmp &amp, EvtbTosllFF *formFactors)=0
 
double CalcMaxProb (EvtId parent, EvtId meson, EvtId lepton, EvtId nudaug, EvtbTosllFF *formFactors, double &poleSize)
 
EvtComplex GetC7Eff (double q2, bool nnlo=true)
 
EvtComplex GetC9Eff (double q2, bool nnlo=true, bool btod=false)
 
EvtComplex GetC10Eff (double q2, bool nnlo=true)
 
double dGdsProb (double mb, double ms, double ml, double s)
 
double dGdsdupProb (double mb, double ms, double ml, double s, double u)
 

Detailed Description

Definition at line 29 of file EvtbTosllScalarAmp.hh.

Constructor & Destructor Documentation

◆ EvtbTosllScalarAmp()

EvtbTosllScalarAmp::EvtbTosllScalarAmp ( double  c7,
double  c9,
double  c10 
)
inline

Definition at line 33 of file EvtbTosllScalarAmp.hh.

33:_c7(c7),_c9(c9),_c10(c10){}

Member Function Documentation

◆ CalcAmp()

void EvtbTosllScalarAmp::CalcAmp ( EvtParticle parent,
EvtAmp amp,
EvtbTosllFF formFactors 
)
virtual

Implements EvtbTosllAmp.

Definition at line 39 of file EvtbTosllScalarAmp.cc.

41 {
42
43 //Add the lepton and neutrino 4 momenta to find q2
44
45 EvtVector4R q = parent->getDaug(1)->getP4()
46 + parent->getDaug(2)->getP4();
47 double q2 = (q.mass2());
48
49 double fp,f0,ft;
50 double mesonmass = parent->getDaug(0)->mass();
51 double parentmass = parent->mass();
52
53 formFactors->getScalarFF(parent->getId(),
54 parent->getDaug(0)->getId(),
55 q2,
56 mesonmass,
57 fp,f0,ft);
58
59 EvtId daught = parent->getDaug(0)->getId();
60 bool btod = false;
61 bool nnlo = true;
62 if (daught == EvtPDL::getId(std::string("pi+")) ||
63 daught == EvtPDL::getId(std::string("pi-")) ||
64 daught == EvtPDL::getId(std::string("pi0")) ||
65 daught == EvtPDL::getId(std::string("eta")) ||
66 daught == EvtPDL::getId(std::string("eta'"))
67 ) btod = true;
68
69
70 EvtVector4R p4b;
71 p4b.set(parent->mass(),0.0,0.0,0.0);
72
73 EvtVector4C l11,l12;
74 EvtVector4C l21,l22;
75
76 EvtVector4C a11,a12;
77 EvtVector4C a21,a22;
78
79 EvtId l_num = parent->getDaug(1)->getId();
80
81 EvtVector4C T1,T2;
82
83 EvtVector4R phat=p4b/parentmass;
84 EvtVector4R qhat=q/parentmass;
85
86 EvtComplex c7eff = EvtbTosllAmp::GetC7Eff(q2,nnlo);
87 EvtComplex c9eff = EvtbTosllAmp::GetC9Eff(q2,nnlo,btod);
88 EvtComplex c10eff = EvtbTosllAmp::GetC10Eff(q2,nnlo);
89
90 //double mbhat=1;
91 double mbhat=4.4/(parentmass);
92 //double mkhat = 0.15;
93 double mkhat=mesonmass/(parentmass);
94 double shat=q2/(parentmass*parentmass);
95
96 double fm=(f0-fp)*(1-mkhat*mkhat)/shat;
97
98 EvtComplex aprime;
99 aprime = c9eff*fp+2.0*mbhat*c7eff*ft/(1+mkhat);
100 EvtComplex bprime;
101 bprime = c9eff*fm-2*mbhat*c7eff*ft*(1-mkhat)/shat;
102
103 EvtComplex cprime;
104 cprime = c10eff*fp;
105 EvtComplex dprime;
106 dprime = c10eff*fm;
107
108 static EvtIdSet leptons("e-","mu-","tau-");
109 static EvtIdSet antileptons("e+","mu+","tau+");
110
111 if (leptons.contains(l_num)){
112
113 T1=aprime*phat+bprime*qhat;
114 T2=cprime*phat+dprime*qhat;
115
116 l11=EvtLeptonVCurrent(parent->getDaug(1)->spParent(0),
117 parent->getDaug(2)->spParent(0));
118 l21=EvtLeptonVCurrent(parent->getDaug(1)->spParent(1),
119 parent->getDaug(2)->spParent(0));
120 l12=EvtLeptonVCurrent(parent->getDaug(1)->spParent(0),
121 parent->getDaug(2)->spParent(1));
122 l22=EvtLeptonVCurrent(parent->getDaug(1)->spParent(1),
123 parent->getDaug(2)->spParent(1));
124 a11=EvtLeptonACurrent(parent->getDaug(1)->spParent(0),
125 parent->getDaug(2)->spParent(0));
126 a21=EvtLeptonACurrent(parent->getDaug(1)->spParent(1),
127 parent->getDaug(2)->spParent(0));
128 a12=EvtLeptonACurrent(parent->getDaug(1)->spParent(0),
129 parent->getDaug(2)->spParent(1));
130 a22=EvtLeptonACurrent(parent->getDaug(1)->spParent(1),
131 parent->getDaug(2)->spParent(1));
132 }
133 else{
134 if (antileptons.contains(l_num)){
135
136 T1=aprime*phat+bprime*qhat;
137 T2=cprime*phat+dprime*qhat;
138
139 l11=EvtLeptonVCurrent(parent->getDaug(1)->spParent(1),
140 parent->getDaug(2)->spParent(1));
141 l21=EvtLeptonVCurrent(parent->getDaug(1)->spParent(0),
142 parent->getDaug(2)->spParent(1));
143 l12=EvtLeptonVCurrent(parent->getDaug(1)->spParent(1),
144 parent->getDaug(2)->spParent(0));
145 l22=EvtLeptonVCurrent(parent->getDaug(1)->spParent(0),
146 parent->getDaug(2)->spParent(0));
147
148 a11=EvtLeptonACurrent(parent->getDaug(1)->spParent(1),
149 parent->getDaug(2)->spParent(1));
150 a21=EvtLeptonACurrent(parent->getDaug(1)->spParent(0),
151 parent->getDaug(2)->spParent(1));
152 a12=EvtLeptonACurrent(parent->getDaug(1)->spParent(1),
153 parent->getDaug(2)->spParent(0));
154 a22=EvtLeptonACurrent(parent->getDaug(1)->spParent(0),
155 parent->getDaug(2)->spParent(0));
156
157 }
158 else{
159 report(ERROR,"EvtGen") << "Wrong lepton number\n";
160 }
161 }
162
163 amp.vertex(0,0,l11*T1+a11*T2);
164 amp.vertex(0,1,l12*T1+a12*T2);
165 amp.vertex(1,0,l21*T1+a21*T2);
166 amp.vertex(1,1,l22*T1+a22*T2);
167
168}
EvtVector4C EvtLeptonACurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
EvtVector4C EvtLeptonVCurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
ostream & report(Severity severity, const char *facility)
Definition: EvtReport.cc:36
@ ERROR
Definition: EvtReport.hh:49
****INTEGER imax DOUBLE PRECISION m_pi *DOUBLE PRECISION m_amfin DOUBLE PRECISION m_Chfin DOUBLE PRECISION m_Xenph DOUBLE PRECISION m_sinw2 DOUBLE PRECISION m_GFermi DOUBLE PRECISION m_MfinMin DOUBLE PRECISION m_ta2 INTEGER m_out INTEGER m_KeyFSR INTEGER m_KeyQCD *COMMON c_Semalib $ !copy of input $ !CMS energy $ !beam mass $ !final mass $ !beam charge $ !final charge $ !smallest final mass $ !Z mass $ !Z width $ !EW mixing angle $ !Gmu Fermi $ alphaQED at q
Definition: KKsem.h:33
void vertex(const EvtComplex &amp)
Definition: EvtAmp.cc:477
Definition: EvtId.hh:27
static EvtId getId(const std::string &name)
Definition: EvtPDL.cc:287
EvtId getId() const
Definition: EvtParticle.cc:113
virtual EvtDiracSpinor spParent(int) const
Definition: EvtParticle.cc:607
const EvtVector4R & getP4() const
Definition: EvtParticle.cc:121
EvtParticle * getDaug(int i)
Definition: EvtParticle.cc:85
double mass() const
Definition: EvtParticle.cc:127
void set(int i, double d)
Definition: EvtVector4R.hh:183
EvtComplex GetC7Eff(double q2, bool nnlo=true)
EvtComplex GetC10Eff(double q2, bool nnlo=true)
EvtComplex GetC9Eff(double q2, bool nnlo=true, bool btod=false)
virtual void getScalarFF(EvtId parent, EvtId daught, double t, double mass, double &fp, double &f0, double &ft)
Definition: EvtbTosllFF.hh:31

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