CGEM BOSS 6.6.5.g
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtbTosllBallFF Class Reference

#include <EvtbTosllBallFF.hh>

+ Inheritance diagram for EvtbTosllBallFF:

Public Member Functions

 EvtbTosllBallFF ()
 
void getScalarFF (EvtId parent, EvtId daught, double t, double mass, double &fp, double &f0, double &ft)
 
void getVectorFF (EvtId parent, EvtId daught, double t, double mass, double &a1, double &a2, double &a0, double &v, double &t1, double &t2, double &t3)
 
virtual void getScalarFF (EvtId parent, EvtId daught, double t, double mass, double &fp, double &f0, double &ft)
 
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)
 

Detailed Description

Definition at line 29 of file EvtbTosllBallFF.hh.

Constructor & Destructor Documentation

◆ EvtbTosllBallFF()

EvtbTosllBallFF::EvtbTosllBallFF ( )

Definition at line 27 of file EvtbTosllBallFF.cc.

27{}

Member Function Documentation

◆ getScalarFF()

void EvtbTosllBallFF::getScalarFF ( EvtId  parent,
EvtId  daught,
double  t,
double  mass,
double &  fp,
double &  f0,
double &  ft 
)
virtual

Reimplemented from EvtbTosllFF.

Definition at line 30 of file EvtbTosllBallFF.cc.

32 {
33
34 int model = 1;
35
36 double m=EvtPDL::getMeanMass(parent);
37 double md=EvtPDL::getMeanMass(daught);
38
39 double shat=t/(m*m);
40 double shat2=shat*shat;
41 double shat3=shat2*shat;
42
43 if (daught == EvtPDL::getId(std::string("K+")) ||
44 daught == EvtPDL::getId(std::string("K-")) ||
45 daught == EvtPDL::getId(std::string("K_S0")) ||
46 daught == EvtPDL::getId(std::string("K0")) ||
47 daught == EvtPDL::getId(std::string("anti-K0")) ||
48 daught == EvtPDL::getId(std::string("K_L0"))
49 )
50 {
51 // B --> K form factors
52 if (model == 1) {
53 //this is Ali-Ball '01
54 fp = 0.278*exp(1.568*shat+0.470*shat2+0.885*shat3);
55 f0 = 0.278*exp(0.740*shat+0.080*shat2+0.425*shat3);
56 ft = 0.300*exp(1.600*shat+0.501*shat2+0.796*shat3);
57 }
58 if (model == 2) {
59 //this is Ali-Ball '99
60 fp = 0.319*exp(1.465*shat+0.372*shat2+0.782*shat3);
61 f0 = 0.319*exp(0.633*shat-0.095*shat2+0.591*shat3);
62 ft = 0.355*exp(1.478*shat+0.373*shat2+0.700*shat3);
63 }
64 if (model == 3) {
65 //QCD sum rules (Colangelo et al)
66 fp = 0.25/(1.-t/(5.0*5.0));
67 f0 = 0.25/(1.-t/(7.0*7.0));
68 ft = - 0.14/((1.0 - t/(5.0*5.0))*(1.0 - t/(7.0*7.0)));
69 }
70 if (model == 4) {
71 // Quark model (Melikhov et al)
72 fp = 0.36/(1. - 0.048*t + 0.00063*t*t);
73 double fm = -0.30/(1. - 0.050*t + 0.00061*t*t);
74 f0 = fp + fm*(t/(m*m - md*md));
75 ft = -(m+md)*0.06/(1 -0.049*t + 0.00064*t*t);
76 }
77 if (model == 5) {
78 fp = 0.341/(1. - 1.41*shat + 0.406*shat*shat);
79 f0 = 0.341/(1. - 0.41*shat -0.361*shat*shat);
80 ft = 0.374/(1. - 1.42*shat + 0.434*shat*shat);
81 }
82 }
83 else if (daught == EvtPDL::getId(std::string("pi+")) ||
84 daught == EvtPDL::getId(std::string("pi-")) ||
85 daught == EvtPDL::getId(std::string("pi0")) ||
86 daught == EvtPDL::getId(std::string("eta")) ||
87 daught == EvtPDL::getId(std::string("eta'"))
88 )
89 {
90 // B --> pi form factors
91 fp = 0.261/(1. - 2.03*shat + 1.293*shat*shat);
92 f0 = 0.261/(1. - 0.27*shat -0.752*shat*shat);
93 ft = 0.296/(1. - 1.28*shat + 0.193*shat*shat);
94 }
95 // cout << "shat "<<shat<<"\t"<<"fp "<<fp<<"\t"<<"f0 "<<f0<<"\t"
96 // <<"ft "<<ft<<endl;
97
98}
EvtComplex exp(const EvtComplex &c)
Definition: EvtComplex.hh:252
static double getMeanMass(EvtId i)
Definition: EvtPDL.hh:45
static EvtId getId(const std::string &name)
Definition: EvtPDL.cc:287
int t()
Definition: t.c:1

◆ getVectorFF()

void EvtbTosllBallFF::getVectorFF ( EvtId  parent,
EvtId  daught,
double  t,
double  mass,
double &  a1,
double &  a2,
double &  a0,
double &  v,
double &  t1,
double &  t2,
double &  t3 
)
virtual

Reimplemented from EvtbTosllFF.

Definition at line 101 of file EvtbTosllBallFF.cc.

104 {
105
106 int model = 1;
107
108 double m=EvtPDL::getMeanMass(parent);
109 double md=EvtPDL::getMeanMass(daught);
110
111 double shat=t/(m*m);
112 double shat2=shat*shat;
113
114 if (
115 daught == EvtPDL::getId(std::string("K*+")) ||
116 daught == EvtPDL::getId(std::string("K*-")) ||
117 daught == EvtPDL::getId(std::string("K*0")) ||
118 daught == EvtPDL::getId(std::string("anti-K*0"))
119 )
120 {
121 if (model == 1) {
122 //this is Ali-Ball '01
123 a1 = 0.294*exp(0.656*shat+0.456*shat2);
124 a2 = 0.246*exp(1.237*shat+0.822*shat2);
125 a0 = 0.412*exp(1.543*shat+0.954*shat2);
126 v = 0.399*exp(1.537*shat+1.123*shat2);
127
128 t1 = 0.334*exp(1.575*shat+1.140*shat2);
129 t2 = 0.334*exp(0.562*shat+0.481*shat2);
130 t3 = 0.234*exp(1.230*shat+1.089*shat2);
131 }
132 if (model == 2) {
133 //this is Ali-Ball '99
134 a1=0.337*exp(0.602*shat+0.258*shat2);
135 a2=0.282*exp(1.172*shat+0.567*shat2);
136 a0=0.471*exp(1.505*shat+0.710*shat2);
137 v=0.457*exp(1.482*shat+1.015*shat2);
138
139 t1=0.379*exp(1.519*shat+1.030*shat2);
140 t2=0.379*exp(0.517*shat+0.426*shat2);
141 t3=0.260*exp(1.129*shat+1.128*shat2);
142 }
143 if (model == 3) {
144 //QCD sum rules (Colangelo et al)
145 a1 = 0.30*(1 - 0.023*t);
146 a2 = 0.40*(1 + 0.034*t);
147 a0 = 0.3/(1.- t/(4.8*4.8));
148 v = 0.47/(1.- t/(5.0*5.0));
149
150 t1 = 0.19/(1.-t/(5.3*5.3));
151 t2 = 0.19*(1. - 0.02*t);
152 t3 = -0.7*(1. + 0.005*t);
153 }
154
155 if (model == 4) {
156 // Quark model (Melikhov et al)
157 a1 = 1.6/(1 - 0.0288*t + 0.00028*t*t); a1 = a1/(m+md);
158 a2 = (m+md)*0.036/(1. - 0.053*t + 0.00082*t*t);
159 double aminus = 0.041/(1. - 0.055*t + 0.00088*t*t);
160 double f = 1.60/(1. - 0.0288*t + 0.00028*t*t);
161 double aplus = -0.036/(1. - 0.053*t + 0.00082*t*t);
162 a0 = (t*aminus + f + (m*m-md*md)*aplus)/(2.0*md);
163 v = (m+md)*0.048/(1. - 0.057*t + 0.00085*t*t);
164
165 t1 = 0.28/(1. - 0.058*t + 0.0009*t*t);
166 double gplus = -0.28/(1. - 0.058*t + 0.0009*t*t);
167 double gminus = 0.24/(1. - 0.059*t + 0.00096*t*t);
168 t2 = -gplus - (t*gminus)/(m*m-md*md);
169 double h = 0.0037/(1. - 0.075*t + 0.0016*t*t);
170 t3 = (m+md)*(m+md)*((gminus/(m*m-md*md) - h/2.));
171
172 }
173 if (model == 5) {
174 a1 = 0.337/(1. - 0.60*shat - 0.023*shat*shat);
175 a2 = 0.283/(1. - 1.18*shat + 0.281*shat*shat);
176 a0 = 0.470/(1. - 1.55*shat + 0.680*shat*shat);
177 v = 0.458/(1. - 1.55*shat + 0.575*shat*shat);
178 t1 = 0.379/(1. - 1.59*shat + 0.615*shat*shat);
179 t2 = 0.379/(1. - 0.49*shat - 0.241*shat*shat);
180 t3 = 0.261/(1. - 1.20*shat + 0.098*shat*shat);
181 }
182 }
183 else if
184 (
185 daught == EvtPDL::getId(std::string("rho+")) ||
186 daught == EvtPDL::getId(std::string("rho-")) ||
187 daught == EvtPDL::getId(std::string("rho0")) ||
188 daught == EvtPDL::getId(std::string("omega"))
189 )
190 {
191 // B --> rho form factors
192 a1 = 0.261/(1. - 0.29*shat - 0.415*shat*shat);
193 a2 = 0.223/(1. - 0.93*shat - 0.092*shat*shat);
194 a0 = 0.372/(1. - 1.40*shat + 0.437*shat*shat);
195 v = 0.338/(1. - 1.37*shat + 0.315*shat*shat);
196 t1 = 0.285/(1. - 1.41*shat + 0.361*shat*shat);
197 t2 = 0.285/(1. - 0.28*shat - 0.500*shat*shat);
198 t3 = 0.202/(1. - 1.06*shat - 0.076*shat*shat);
199 }
200 //cout << "shat "<<shat<<"\t"<<"a1 "<<a1<<"\t"<<"a2 "<<a2<<"\t"
201 // <<"a0 "<<a0<<endl;
202 // cout << "\t"<<"v "<<v<<"\t"<<"t1 "<<t1<<"\t"<<"t2 "<<t2<<"\t"
203 // <<"t3 "<<t3<<endl;
204}
**********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

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