BOSS 7.0.3
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtbTosllVectorAmp Class Reference

#include <EvtbTosllVectorAmp.hh>

+ Inheritance diagram for EvtbTosllVectorAmp:

Public Member Functions

 EvtbTosllVectorAmp (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 30 of file EvtbTosllVectorAmp.hh.

Constructor & Destructor Documentation

◆ EvtbTosllVectorAmp()

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

Definition at line 34 of file EvtbTosllVectorAmp.hh.

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

Member Function Documentation

◆ CalcAmp()

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

Implements EvtbTosllAmp.

Definition at line 38 of file EvtbTosllVectorAmp.cc.

40 {
41
42 //Add the lepton and neutrino 4 momenta to find q2
43
44 EvtVector4R q = parent->getDaug(1)->getP4()
45 + parent->getDaug(2)->getP4();
46 double q2 = (q.mass2());
47
48
49 double a1,a2,a0,v,t1,t2,t3;
50 double mesonmass = parent->getDaug(0)->mass();
51 double parentmass = parent->mass();
52
53 formFactors->getVectorFF(parent->getId(),
54 parent->getDaug(0)->getId(),
55 q2,
56 mesonmass,
57 a1,a2,a0,v,t1,t2,t3);
58
59
60 EvtId daught = parent->getDaug(0)->getId();
61 bool btod = false;
62 bool nnlo = true;
63 if
64 (
65 daught == EvtPDL::getId(std::string("rho+")) ||
66 daught == EvtPDL::getId(std::string("rho-")) ||
67 daught == EvtPDL::getId(std::string("rho0")) ||
68 daught == EvtPDL::getId(std::string("omega"))
69 )
70 btod = true;
71
72 EvtVector4R p4b;
73 p4b.set(parent->mass(),0.0,0.0,0.0);
74 EvtVector4R p4meson = parent->getDaug(0)->getP4();
75
76 EvtVector4C l11,l12;
77 EvtVector4C l21,l22;
78
79 EvtVector4C a11,a12;
80 EvtVector4C a21,a22;
81
82 EvtId parentID = parent->getId();
83
84 //EvtId l_num = parent->getDaug(1)->getId();
85
86 EvtVector4R pbhat=p4b/parentmass;
87 EvtVector4R qhat=q/parentmass;
88 EvtVector4R pkstarhat=p4meson/parentmass;
89 EvtVector4R phat=pbhat+pkstarhat;
90
91 EvtComplex c7eff = EvtbTosllAmp::GetC7Eff(q2,nnlo);
92 EvtComplex c9eff = EvtbTosllAmp::GetC9Eff(q2,nnlo,btod);
93 EvtComplex c10eff = EvtbTosllAmp::GetC10Eff(q2,nnlo);
94 EvtComplex uniti(0.0,1.0);
95
96 double mhatb=4.4/(parentmass);
97 double mhatkstar=mesonmass/(parentmass);
98 double shat=q2/(parentmass*parentmass);
99
100
101 EvtComplex a;
102 a=c9eff*v*2/(1+mhatkstar)+4*mhatb*c7eff*t1/shat;
103 EvtComplex b;
104 b=(1+mhatkstar)*(c9eff*a1+2*mhatb*(1-mhatkstar)*c7eff*t2/shat);
105 EvtComplex c;
106 c=((1-mhatkstar)*c9eff*a2+
107 2*mhatb*c7eff*(t3+(1-mhatkstar*mhatkstar)*t2/shat))/
108 (1-mhatkstar*mhatkstar);
109 EvtComplex d;
110 d=(c9eff*((1+mhatkstar)*a1-(1-mhatkstar)*a2-2*mhatkstar*a0)
111 -2*mhatb*c7eff*t3)/shat;
112 EvtComplex e;
113 e=2*c10eff*v/(1+mhatkstar);
114 EvtComplex f;
115 f=(1+mhatkstar)*c10eff*a1;
116 EvtComplex g;
117 g=c10eff*a2/(1+mhatkstar);
118 EvtComplex h;
119 h=c10eff*((1+mhatkstar)*a1-(1-mhatkstar)*a2-2*mhatkstar*a0)/shat;
120
121 EvtTensor4C T1,T2;
122
123 static EvtIdSet bmesons("B-","anti-B0");
124 static EvtIdSet bbarmesons("B+","B0");
125
126 EvtParticle* lepPlus(0);
127 EvtParticle* lepMinus(0);
128
129 int charge1 = EvtPDL::chg3(parent->getDaug(1)->getId());
130 int charge2 = EvtPDL::chg3(parent->getDaug(2)->getId());
131
132 lepPlus = (charge1 > charge2) ? parent->getDaug(1) : parent->getDaug(2);
133 lepMinus = (charge1 < charge2) ? parent->getDaug(1) : parent->getDaug(2);
134
135// static EvtIdSet leptons("e-","mu-","tau-");
136// static EvtIdSet antileptons("e+","mu+","tau+");
137
138// if (leptons.contains(l_num)){
139 if (bmesons.contains(parentID)) {
140
141 T1=a*dual(directProd(pbhat,pkstarhat))
142 -b*uniti*EvtTensor4C::g()
143 +c*uniti*directProd(pbhat,phat)
144 +d*uniti*directProd(pbhat,qhat);
145
146 T2=e*dual(directProd(pbhat,pkstarhat))
147 -f*uniti*EvtTensor4C::g()
148 +g*uniti*directProd(pbhat,phat)
149 +h*uniti*directProd(pbhat,qhat);
150
151 l11=EvtLeptonVCurrent(lepPlus->spParent(0),
152 lepMinus->spParent(0));
153 l21=EvtLeptonVCurrent(lepPlus->spParent(1),
154 lepMinus->spParent(0));
155 l12=EvtLeptonVCurrent(lepPlus->spParent(0),
156 lepMinus->spParent(1));
157 l22=EvtLeptonVCurrent(lepPlus->spParent(1),
158 lepMinus->spParent(1));
159
160 a11=EvtLeptonACurrent(lepPlus->spParent(0),
161 lepMinus->spParent(0));
162 a21=EvtLeptonACurrent(lepPlus->spParent(1),
163 lepMinus->spParent(0));
164 a12=EvtLeptonACurrent(lepPlus->spParent(0),
165 lepMinus->spParent(1));
166 a22=EvtLeptonACurrent(lepPlus->spParent(1),
167 lepMinus->spParent(1));
168
169 } else {
170
171 if (bbarmesons.contains(parentID)) {
172
173 T1=-a*dual(directProd(pbhat,pkstarhat))
174 -b*uniti*EvtTensor4C::g()
175 +c*uniti*directProd(pbhat,phat)
176 +d*uniti*directProd(pbhat,qhat);
177
178 T2=-e*dual(directProd(pbhat,pkstarhat))
179 -f*uniti*EvtTensor4C::g()
180 +g*uniti*directProd(pbhat,phat)
181 +h*uniti*directProd(pbhat,qhat);
182
183 l11=EvtLeptonVCurrent(lepPlus->spParent(1),
184 lepMinus->spParent(1));
185 l21=EvtLeptonVCurrent(lepPlus->spParent(0),
186 lepMinus->spParent(1));
187 l12=EvtLeptonVCurrent(lepPlus->spParent(1),
188 lepMinus->spParent(0));
189 l22=EvtLeptonVCurrent(lepPlus->spParent(0),
190 lepMinus->spParent(0));
191
192 a11=EvtLeptonACurrent(lepPlus->spParent(1),
193 lepMinus->spParent(1));
194 a21=EvtLeptonACurrent(lepPlus->spParent(0),
195 lepMinus->spParent(1));
196 a12=EvtLeptonACurrent(lepPlus->spParent(1),
197 lepMinus->spParent(0));
198 a22=EvtLeptonACurrent(lepPlus->spParent(0),
199 lepMinus->spParent(0));
200
201 }
202 else{
203 report(ERROR,"EvtGen") << "Wrong lepton number\n";
204 }
205 }
206
207
208 int i;
209
210 for(i=0;i<3;i++){
211 EvtVector4C eps=parent->getDaug(0)->epsParent(i).conj();
212
213 EvtVector4C E1=T1.cont1(eps);
214 EvtVector4C E2=T2.cont1(eps);
215
216 amp.vertex(i,0,0,l11*E1+a11*E2);
217 amp.vertex(i,0,1,l12*E1+a12*E2);
218 amp.vertex(i,1,0,l21*E1+a21*E2);
219 amp.vertex(i,1,1,l22*E1+a22*E2);
220 }
221}
Evt3Rank3C directProd(const EvtVector3C &c1, const EvtVector3C &c2, const EvtVector3C &c3)
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
EvtTensor3C eps(const EvtVector3R &v)
Definition: EvtTensor3C.cc:307
EvtTensor4C dual(const EvtTensor4C &t2)
Definition: EvtTensor4C.cc:379
****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
**********Class see also m_nmax DOUBLE PRECISION m_amel DOUBLE PRECISION m_x2 DOUBLE PRECISION m_alfinv DOUBLE PRECISION m_Xenph INTEGER m_KeyWtm INTEGER m_idyfs DOUBLE PRECISION m_zini DOUBLE PRECISION m_q2 DOUBLE PRECISION m_Wt_KF DOUBLE PRECISION m_WtCut INTEGER m_KFfin *COMMON c_KarLud $ !Input CMS energy[GeV] $ !CMS energy after beam spread beam strahlung[GeV] $ !Beam energy spread[GeV] $ !z boost due to beam spread $ !electron beam mass *ff pair spectrum $ !minimum v
Definition: KarLud.h:35
void vertex(const EvtComplex &amp)
Definition: EvtAmp.cc:477
Definition: EvtId.hh:27
static int chg3(EvtId i)
Definition: EvtPDL.hh:60
static EvtId getId(const std::string &name)
Definition: EvtPDL.cc:287
virtual EvtVector4C epsParent(int i) const
Definition: EvtParticle.cc:565
EvtId getId() const
Definition: EvtParticle.cc:113
const EvtVector4R & getP4() const
Definition: EvtParticle.cc:121
EvtParticle * getDaug(int i)
Definition: EvtParticle.cc:85
double mass() const
Definition: EvtParticle.cc:127
static const EvtTensor4C & g()
Definition: EvtTensor4C.cc:47
EvtVector4C conj() const
Definition: EvtVector4C.hh:206
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 getVectorFF(EvtId parent, EvtId daught, double t, double mass, double &a1, double &a2, double &a0, double &v, double &t1, double &t2, double &t3)
Definition: EvtbTosllFF.hh:33

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