67 if ( meson == DST0 || meson == DSTP || meson == DSTM || meson == DSTB )
71 if ( meson == D0 || meson == DP || meson == DM || meson == D0B )
73 else {
report(
ERROR,
"EvtGen" ) <<
"Wrong daugther in EvtGoityRoberts!\n"; }
102 v.set( 1.0, 0.0, 0.0, 0.0 );
104 p4_pi =
pion->getP4();
119 double alpha3 = 0.690;
120 double alpha1 = -1.430;
121 double alpha2 = -0.140;
128 double betas = 0.285;
129 double betap = 0.280;
130 double betad = 0.260;
131 double betasp = betas * betas + betap * betap;
132 double betasd = betas * betas + betad * betad;
134 double lambdabar = 0.750;
137 double xi =
exp( lambdabar * lambdabar * ( 1.0 -
w *
w ) / ( 4 * betas * betas ) );
138 double xi1 = -1.0 * sqrt( 2.0 / 3.0 ) *
139 ( lambdabar * lambdabar * (
w *
w - 1.0 ) / ( 4 * betas * betas ) ) *
140 exp( lambdabar * lambdabar * ( 1.0 -
w *
w ) / ( 4 * betas * betas ) );
141 double rho1 = sqrt( 1.0 / 2.0 ) * ( lambdabar / betas ) *
142 pow( ( 2 * betas * betap / ( betasp ) ), 2.5 ) *
143 exp( lambdabar * lambdabar * ( 1.0 -
w *
w ) / ( 2 * betasp ) );
144 double rho2 = sqrt( 1.0 / 8.0 ) * ( lambdabar * lambdabar / ( betas * betas ) ) *
145 pow( ( 2 * betas * betad / ( betasd ) ), 3.5 ) *
146 exp( lambdabar * lambdabar * ( 1.0 -
w *
w ) / ( 2 * betasd ) );
151 EvtComplex f3nr, f4nr, f5nr, f6nr, knr, g1nr, g2nr, g3nr, g4nr, g5nr;
152 EvtComplex h1r, h2r, h3r, f1r, f2r, f3r, f4r, f5r, f6r, kr, g1r, g2r, g3r, g4r, g5r;
153 EvtComplex h1, h2, h3,
f1, f2, f3, f4, f5, f6, k,
g1, g2, g3, g4, g5;
156 h1nr = -g * xi * ( p4_pi *
v ) / ( f0 * mb * md * (
EvtComplex( p4_pi *
v, 0.0 ) + dmb ) );
157 h2nr = -g * xi / ( f0 * mb * (
EvtComplex( p4_pi *
v, 0.0 ) + dmb ) );
158 h3nr = -( g * xi / ( f0 * md ) ) * ( 1.0 / (
EvtComplex( p4_pi *
v, 0.0 ) + dmb ) -
161 f1nr = -( g * xi / ( 2 * f0 * mb ) ) * ( 1.0 / (
EvtComplex( p4_pi *
v, 0.0 ) + dmb ) -
162 1.0 / (
EvtComplex( p4_pi * vp, 0.0 ) + dmd ) );
163 f2nr = f1nr * mb / md;
166 f5nr = ( g * xi / ( 2 * f0 * mb * md ) ) *
168 f6nr = ( g * xi / ( 2 * f0 * mb ) ) * ( 1.0 / (
EvtComplex( p4_pi *
v, 0.0 ) + dmb ) -
171 knr = ( g * xi / ( 2 * f0 ) ) *
172 ( ( p4_pi * ( vp -
w *
v ) ) / (
EvtComplex( p4_pi *
v, 0.0 ) + dmb ) +
173 EvtComplex( ( p4_pi * (
v -
w * vp ) ) / ( p4_pi * vp ), 0.0 ) );
178 g4nr = ( g * xi ) / ( f0 * md *
EvtComplex( p4_pi * vp ) );
182 h1r = -alpha1 * rho1 * ( p4_pi *
v ) /
183 ( f0 * mb * md * (
EvtComplex( p4_pi *
v, 0.0 ) + dmt1 ) ) +
184 alpha2 * rho2 * ( p4_pi * (
v + 2.0 *
w *
v - vp ) ) /
185 ( 3 * f0 * mb * md * (
EvtComplex( p4_pi *
v, 0.0 ) + dmt2 ) ) -
186 alpha3 * xi1 * ( p4_pi *
v ) / ( f0 * mb * md *
EvtComplex( p4_pi *
v, 0.0 ) + dmt3 );
188 -alpha2 * ( 1 +
w ) * rho2 / ( 3 * f0 * mb * (
EvtComplex( p4_pi *
v, 0.0 ) + dmt2 ) ) -
189 alpha3 * xi1 / ( f0 * mb * (
EvtComplex( p4_pi *
v, 0.0 ) + dmt3 ) );
190 h3r = alpha2 * rho2 * ( 1 +
w ) / ( 3 * f0 * md * (
EvtComplex( p4_pi *
v, 0.0 ) + dmt2 ) ) -
191 alpha3 * xi1 / ( f0 * md * (
EvtComplex( p4_pi *
v, 0.0 ) + dmt3 ) );
193 f1r = -alpha2 * rho2 * (
w - 1.0 ) /
194 ( 6 * f0 * mb * (
EvtComplex( p4_pi *
v, 0.0 ) + dmt2 ) ) -
195 alpha3 * xi1 / ( 2 * f0 * mb * (
EvtComplex( p4_pi *
v, 0.0 ) + dmt3 ) );
199 f5r = alpha1 * rho1 * ( p4_pi *
v ) /
200 ( 2 * f0 * mb * md * (
EvtComplex( p4_pi *
v, 0.0 ) + dmt1 ) ) +
201 alpha2 * rho2 * ( p4_pi * ( vp -
v / 3.0 - 2.0 / 3.0 *
w *
v ) ) /
202 ( 2 * f0 * mb * md * (
EvtComplex( p4_pi *
v, 0.0 ) + dmt2 ) ) +
203 alpha3 * xi1 * ( p4_pi *
v ) /
204 ( 2 * f0 * mb * md * (
EvtComplex( p4_pi *
v, 0.0 ) + dmt3 ) );
206 alpha2 * rho2 * (
w - 1.0 ) / ( 6 * f0 * mb * (
EvtComplex( p4_pi *
v, 0.0 ) + dmt2 ) ) +
207 alpha3 * xi1 / ( 2 * f0 * mb * (
EvtComplex( p4_pi *
v, 0.0 ) + dmt3 ) );
209 kr = -alpha1 * rho1 * (
w - 1.0 ) * ( p4_pi *
v ) /
210 ( 2 * f0 * (
EvtComplex( p4_pi *
v, 0.0 ) + dmt1 ) ) -
211 alpha2 * rho2 * (
w - 1.0 ) * ( p4_pi * ( vp -
w *
v ) ) /
212 ( 3 * f0 * (
EvtComplex( p4_pi *
v, 0.0 ) + dmt2 ) ) +
213 alpha3 * xi1 * ( p4_pi * ( vp -
w *
v ) ) /
214 ( 2 * f0 * (
EvtComplex( p4_pi *
v, 0.0 ) + dmt3 ) );
219 g4r = 2.0 * alpha2 * rho2 / ( 3 * f0 * md * (
EvtComplex( p4_pi *
v, 0.0 ) + dmt2 ) );
243 g_metric.
setdiag( 1.0, -1.0, -1.0, -1.0 );
245 if ( nlep == EM || nlep == MUM )
255 (
g1 * p4_pi + g2 * mb *
v ) ) +
264 if ( nlep == EP || nlep == MUP )
267 EvtComplex( 0.0, -0.5 ) *
275 (
g1 * p4_pi + g2 * mb *
v ) ) +
276 EvtComplex( 0.0, -0.5 ) *
directProd( ( g3 * mb *
v + g4 * md * vp + g5 * p4_pi ),
282 else {
report(
DEBUG,
"EvtGen" ) <<
"42387dfs878w wrong lepton number\n"; }
311 EvtParticle *d, *
pion, *lepton, *neutrino;
319 EvtVector4C l1, l2, et0, et1, et2;
321 EvtVector4R
v, vp, p4_pi;
324 v.set( 1.0, 0.0, 0.0, 0.0 );
326 p4_pi =
pion->getP4();
331 EvtComplex dmb( 0.0460, -0.5 * 0.00001 );
337 double alpha3 = 0.690;
338 double alpha1 = -1.430;
339 double alpha2 = -0.140;
342 EvtComplex dmt3( 0.563, -0.5 * 0.191 );
343 EvtComplex dmt1( 0.392, -0.5 * 1.040 );
344 EvtComplex dmt2( 0.709, -0.5 * 0.405 );
346 double betas = 0.285;
347 double betap = 0.280;
348 double betad = 0.260;
349 double betasp = betas * betas + betap * betap;
350 double betasd = betas * betas + betad * betad;
352 double lambdabar = 0.750;
355 double xi =
exp( lambdabar * lambdabar * ( 1.0 -
w *
w ) / ( 4 * betas * betas ) );
356 double xi1 = -1.0 * sqrt( 2.0 / 3.0 ) *
357 ( lambdabar * lambdabar * (
w *
w - 1.0 ) / ( 4 * betas * betas ) ) *
358 exp( lambdabar * lambdabar * ( 1.0 -
w *
w ) / ( 4 * betas * betas ) );
359 double rho1 = sqrt( 1.0 / 2.0 ) * ( lambdabar / betas ) *
360 pow( ( 2 * betas * betap / ( betasp ) ), 2.5 ) *
361 exp( lambdabar * lambdabar * ( 1.0 -
w *
w ) / ( 2 * betasp ) );
362 double rho2 = sqrt( 1.0 / 8.0 ) * ( lambdabar * lambdabar / ( betas * betas ) ) *
363 pow( ( 2 * betas * betad / ( betasd ) ), 3.5 ) *
364 exp( lambdabar * lambdabar * ( 1.0 -
w *
w ) / ( 2 * betasd ) );
366 EvtComplex h, a1, a2, a3;
367 EvtComplex hnr, a1nr, a2nr, a3nr;
368 EvtComplex hr, a1r, a2r, a3r;
371 hnr = g * xi * ( 1.0 / ( EvtComplex( p4_pi *
v, 0.0 ) + dmb ) ) / ( 2 * f0 * mb * md );
372 a1nr = -1.0 * g * xi * ( 1 +
w ) * ( 1.0 / ( EvtComplex( p4_pi *
v, 0.0 ) + dmb ) ) /
374 a2nr = g * xi * ( ( p4_pi * (
v + vp ) ) / ( EvtComplex( p4_pi *
v, 0.0 ) + dmb ) ) /
376 a3nr = EvtComplex( 0.0, 0.0 );
379 hr = alpha2 * rho2 * (
w - 1 ) * ( 1.0 / ( EvtComplex( p4_pi *
v, 0.0 ) + dmt2 ) ) /
380 ( 6 * f0 * mb * md ) +
381 alpha3 * xi1 * ( 1.0 / ( EvtComplex( p4_pi *
v, 0.0 ) + dmt3 ) ) / ( 2 * f0 * mb * md );
382 a1r = -1.0 * alpha2 * rho2 * (
w *
w - 1 ) *
383 ( 1.0 / ( EvtComplex( p4_pi *
v, 0.0 ) + dmt2 ) ) / ( 6 * f0 ) -
384 alpha3 * xi1 * ( 1 +
w ) * ( 1.0 / ( EvtComplex( p4_pi *
v, 0.0 ) + dmt3 ) ) /
386 a2r = alpha1 * rho1 * ( ( p4_pi *
v ) / ( EvtComplex( p4_pi *
v, 0.0 ) + dmt1 ) ) /
388 alpha2 * rho2 * ( 0.5 * p4_pi * (
w * vp -
v ) + p4_pi * ( vp -
w *
v ) ) /
389 ( 3 * f0 * mb * ( EvtComplex( p4_pi *
v, 0.0 ) + dmt2 ) ) +
390 alpha3 * xi1 * ( ( p4_pi * (
v + vp ) ) / ( EvtComplex( p4_pi *
v, 0.0 ) + dmt3 ) ) /
392 a3r = -1.0 * alpha1 * rho1 * ( ( p4_pi *
v ) / ( EvtComplex( p4_pi *
v, 0.0 ) + dmt1 ) ) /
395 ( ( p4_pi * ( vp -
w *
v ) ) / ( EvtComplex( p4_pi *
v, 0.0 ) + dmt2 ) ) /
406 if ( nlep == EM || nlep == MUM )
410 a1 * p4_pi + a2 * mb *
v + a3 * md * vp;
416 if ( nlep == EP || nlep == MUP )
420 a1 * p4_pi + a2 * mb *
v + a3 * md * vp;
424 else {
report(
ERROR,
"EvtGen" ) <<
"42387dfs878w wrong lepton number\n"; }
Evt3Rank3C directProd(const EvtVector3C &c1, const EvtVector3C &c2, const EvtVector3C &c3)
EvtComplex exp(const EvtComplex &c)
EvtVector4C EvtLeptonVACurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
ostream & report(Severity severity, const char *facility)
EvtTensor4C dual(const EvtTensor4C &t2)
**********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
void vertex(const EvtComplex &)
void checkSpinDaughter(int d1, EvtSpinType::spintype sp)
void checkSpinParent(EvtSpinType::spintype sp)
void setProbMax(double prbmx)
void checkNDaug(int d1, int d2=-1)
void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)
virtual ~EvtGoityRoberts()
void getName(std::string &name)
void decay(EvtParticle *p)
static double getMeanMass(EvtId i)
static EvtId getId(const std::string &name)
virtual EvtVector4C epsParent(int i) const
virtual EvtDiracSpinor spParentNeutrino() const
virtual EvtDiracSpinor spParent(int) const
const EvtVector4R & getP4() const
EvtParticle * getDaug(int i)
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
void setdiag(double t00, double t11, double t22, double t33)
EvtVector4C cont2(const EvtVector4C &v4) const
EvtComplex cont(const EvtVector4C &v4) const