BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtbTosllBallFF.cc
Go to the documentation of this file.
1//--------------------------------------------------------------------------
2//
3// Environment:
4// This software is part of the EvtGen package developed jointly
5// for the BaBar and CLEO collaborations. If you use all or part
6// of it, please give an appropriate acknowledgement.
7//
8// Copyright Information: See EvtGen/COPYRIGHT
9// Copyright (C) 2000 Caltech, UCSB
10//
11// Module:
12// Description: Form factors for b->sll according to Ali, Ball et al.
13// hep-ph/9910221v2
14//
15// Modification history:
16//
17// Ryd January 5, 2000 Module created
18//
19//------------------------------------------------------------------------
21
24#include "EvtbTosllBallFF.hh"
25#include <math.h>
26
28
29void EvtbTosllBallFF::getScalarFF( EvtId parent, EvtId daught, double t, double mass,
30 double& fp, double& f0, double& ft ) {
31
32 int model = 1;
33
34 double m = EvtPDL::getMeanMass( parent );
35 double md = EvtPDL::getMeanMass( daught );
36
37 double shat = t / ( m * m );
38 double shat2 = shat * shat;
39 double shat3 = shat2 * shat;
40
41 if ( daught == EvtPDL::getId( std::string( "K+" ) ) ||
42 daught == EvtPDL::getId( std::string( "K-" ) ) ||
43 daught == EvtPDL::getId( std::string( "K_S0" ) ) ||
44 daught == EvtPDL::getId( std::string( "K0" ) ) ||
45 daught == EvtPDL::getId( std::string( "anti-K0" ) ) ||
46 daught == EvtPDL::getId( std::string( "K_L0" ) ) )
47 {
48 // B --> K form factors
49 if ( model == 1 )
50 {
51 // this is Ali-Ball '01
52 fp = 0.278 * exp( 1.568 * shat + 0.470 * shat2 + 0.885 * shat3 );
53 f0 = 0.278 * exp( 0.740 * shat + 0.080 * shat2 + 0.425 * shat3 );
54 ft = 0.300 * exp( 1.600 * shat + 0.501 * shat2 + 0.796 * shat3 );
55 }
56 if ( model == 2 )
57 {
58 // this is Ali-Ball '99
59 fp = 0.319 * exp( 1.465 * shat + 0.372 * shat2 + 0.782 * shat3 );
60 f0 = 0.319 * exp( 0.633 * shat - 0.095 * shat2 + 0.591 * shat3 );
61 ft = 0.355 * exp( 1.478 * shat + 0.373 * shat2 + 0.700 * shat3 );
62 }
63 if ( model == 3 )
64 {
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 {
72 // Quark model (Melikhov et al)
73 fp = 0.36 / ( 1. - 0.048 * t + 0.00063 * t * t );
74 double fm = -0.30 / ( 1. - 0.050 * t + 0.00061 * t * t );
75 f0 = fp + fm * ( t / ( m * m - md * md ) );
76 ft = -( m + md ) * 0.06 / ( 1 - 0.049 * t + 0.00064 * t * t );
77 }
78 if ( model == 5 )
79 {
80 fp = 0.341 / ( 1. - 1.41 * shat + 0.406 * shat * shat );
81 f0 = 0.341 / ( 1. - 0.41 * shat - 0.361 * shat * shat );
82 ft = 0.374 / ( 1. - 1.42 * shat + 0.434 * shat * shat );
83 }
84 }
85 else if ( daught == EvtPDL::getId( std::string( "pi+" ) ) ||
86 daught == EvtPDL::getId( std::string( "pi-" ) ) ||
87 daught == EvtPDL::getId( std::string( "pi0" ) ) ||
88 daught == EvtPDL::getId( std::string( "eta" ) ) ||
89 daught == EvtPDL::getId( std::string( "eta'" ) ) )
90 {
91 // B --> pi form factors
92 fp = 0.261 / ( 1. - 2.03 * shat + 1.293 * shat * shat );
93 f0 = 0.261 / ( 1. - 0.27 * shat - 0.752 * shat * shat );
94 ft = 0.296 / ( 1. - 1.28 * shat + 0.193 * shat * shat );
95 }
96 // cout << "shat "<<shat<<"\t"<<"fp "<<fp<<"\t"<<"f0 "<<f0<<"\t"
97 // <<"ft "<<ft<<endl;
98}
99
100void EvtbTosllBallFF::getVectorFF( EvtId parent, EvtId daught, double t, double mass,
101 double& a1, double& a2, double& a0, double& v, double& t1,
102 double& t2, double& t3 ) {
103
104 int model = 1;
105
106 double m = EvtPDL::getMeanMass( parent );
107 double md = EvtPDL::getMeanMass( daught );
108
109 double shat = t / ( m * m );
110 double shat2 = shat * shat;
111
112 if ( daught == EvtPDL::getId( std::string( "K*+" ) ) ||
113 daught == EvtPDL::getId( std::string( "K*-" ) ) ||
114 daught == EvtPDL::getId( std::string( "K*0" ) ) ||
115 daught == EvtPDL::getId( std::string( "anti-K*0" ) ) )
116 {
117 if ( model == 1 )
118 {
119 // this is Ali-Ball '01
120 a1 = 0.294 * exp( 0.656 * shat + 0.456 * shat2 );
121 a2 = 0.246 * exp( 1.237 * shat + 0.822 * shat2 );
122 a0 = 0.412 * exp( 1.543 * shat + 0.954 * shat2 );
123 v = 0.399 * exp( 1.537 * shat + 1.123 * shat2 );
124
125 t1 = 0.334 * exp( 1.575 * shat + 1.140 * shat2 );
126 t2 = 0.334 * exp( 0.562 * shat + 0.481 * shat2 );
127 t3 = 0.234 * exp( 1.230 * shat + 1.089 * shat2 );
128 }
129 if ( model == 2 )
130 {
131 // this is Ali-Ball '99
132 a1 = 0.337 * exp( 0.602 * shat + 0.258 * shat2 );
133 a2 = 0.282 * exp( 1.172 * shat + 0.567 * shat2 );
134 a0 = 0.471 * exp( 1.505 * shat + 0.710 * shat2 );
135 v = 0.457 * exp( 1.482 * shat + 1.015 * shat2 );
136
137 t1 = 0.379 * exp( 1.519 * shat + 1.030 * shat2 );
138 t2 = 0.379 * exp( 0.517 * shat + 0.426 * shat2 );
139 t3 = 0.260 * exp( 1.129 * shat + 1.128 * shat2 );
140 }
141 if ( model == 3 )
142 {
143 // QCD sum rules (Colangelo et al)
144 a1 = 0.30 * ( 1 - 0.023 * t );
145 a2 = 0.40 * ( 1 + 0.034 * t );
146 a0 = 0.3 / ( 1. - t / ( 4.8 * 4.8 ) );
147 v = 0.47 / ( 1. - t / ( 5.0 * 5.0 ) );
148
149 t1 = 0.19 / ( 1. - t / ( 5.3 * 5.3 ) );
150 t2 = 0.19 * ( 1. - 0.02 * t );
151 t3 = -0.7 * ( 1. + 0.005 * t );
152 }
153
154 if ( model == 4 )
155 {
156 // Quark model (Melikhov et al)
157 a1 = 1.6 / ( 1 - 0.0288 * t + 0.00028 * t * t );
158 a1 = a1 / ( m + md );
159 a2 = ( m + md ) * 0.036 / ( 1. - 0.053 * t + 0.00082 * t * t );
160 double aminus = 0.041 / ( 1. - 0.055 * t + 0.00088 * t * t );
161 double f = 1.60 / ( 1. - 0.0288 * t + 0.00028 * t * t );
162 double aplus = -0.036 / ( 1. - 0.053 * t + 0.00082 * t * t );
163 a0 = ( t * aminus + f + ( m * m - md * md ) * aplus ) / ( 2.0 * md );
164 v = ( m + md ) * 0.048 / ( 1. - 0.057 * t + 0.00085 * t * t );
165
166 t1 = 0.28 / ( 1. - 0.058 * t + 0.0009 * t * t );
167 double gplus = -0.28 / ( 1. - 0.058 * t + 0.0009 * t * t );
168 double gminus = 0.24 / ( 1. - 0.059 * t + 0.00096 * t * t );
169 t2 = -gplus - ( t * gminus ) / ( m * m - md * md );
170 double h = 0.0037 / ( 1. - 0.075 * t + 0.0016 * t * t );
171 t3 = ( m + md ) * ( m + md ) * ( ( gminus / ( m * m - md * md ) - h / 2. ) );
172 }
173 if ( model == 5 )
174 {
175 a1 = 0.337 / ( 1. - 0.60 * shat - 0.023 * shat * shat );
176 a2 = 0.283 / ( 1. - 1.18 * shat + 0.281 * shat * shat );
177 a0 = 0.470 / ( 1. - 1.55 * shat + 0.680 * shat * shat );
178 v = 0.458 / ( 1. - 1.55 * shat + 0.575 * shat * shat );
179 t1 = 0.379 / ( 1. - 1.59 * shat + 0.615 * shat * shat );
180 t2 = 0.379 / ( 1. - 0.49 * shat - 0.241 * shat * shat );
181 t3 = 0.261 / ( 1. - 1.20 * shat + 0.098 * shat * shat );
182 }
183 }
184 else if ( daught == EvtPDL::getId( std::string( "rho+" ) ) ||
185 daught == EvtPDL::getId( std::string( "rho-" ) ) ||
186 daught == EvtPDL::getId( std::string( "rho0" ) ) ||
187 daught == EvtPDL::getId( std::string( "omega" ) ) )
188 {
189 // B --> rho form factors
190 a1 = 0.261 / ( 1. - 0.29 * shat - 0.415 * shat * shat );
191 a2 = 0.223 / ( 1. - 0.93 * shat - 0.092 * shat * shat );
192 a0 = 0.372 / ( 1. - 1.40 * shat + 0.437 * shat * shat );
193 v = 0.338 / ( 1. - 1.37 * shat + 0.315 * shat * shat );
194 t1 = 0.285 / ( 1. - 1.41 * shat + 0.361 * shat * shat );
195 t2 = 0.285 / ( 1. - 0.28 * shat - 0.500 * shat * shat );
196 t3 = 0.202 / ( 1. - 1.06 * shat - 0.076 * shat * shat );
197 }
198 // cout << "shat "<<shat<<"\t"<<"a1 "<<a1<<"\t"<<"a2 "<<a2<<"\t"
199 // <<"a0 "<<a0<<endl;
200 // cout << "\t"<<"v "<<v<<"\t"<<"t1 "<<t1<<"\t"<<"t2 "<<t2<<"\t"
201 // <<"t3 "<<t3<<endl;
202}
double mass
TFile f("ana_bhabha660a_dqa_mcPat_zy_old.root")
character *LEPTONflag integer iresonances real zeta5 real a0
EvtComplex exp(const EvtComplex &c)
**********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
Definition EvtId.hh:27
static double getMeanMass(EvtId i)
Definition EvtPDL.hh:43
static EvtId getId(const std::string &name)
Definition EvtPDL.cc:272
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)
int t()
Definition t.c:1