37 return "GOITY_ROBERTS";
76 if ( meson == DST0 || meson == DSTP || meson == DSTM || meson == DSTB ) {
79 if ( meson == D0 || meson == DP || meson == DM || meson == D0B ) {
83 <<
"Wrong daugther in EvtGoityRoberts!\n";
113 v.
set( 1.0, 0.0, 0.0, 0.0 );
115 p4_pi = pion->
getP4();
130 double alpha3 = 0.690;
131 double alpha1 = -1.430;
132 double alpha2 = -0.140;
139 double betas = 0.285;
140 double betap = 0.280;
141 double betad = 0.260;
142 double betasp = betas * betas + betap * betap;
143 double betasd = betas * betas + betad * betad;
145 double lambdabar = 0.750;
148 double xi =
exp( lambdabar * lambdabar * ( 1.0 - w * w ) /
149 ( 4 * betas * betas ) );
151 -1.0 * sqrt( 2.0 / 3.0 ) *
152 ( lambdabar * lambdabar * ( w * w - 1.0 ) / ( 4 * betas * betas ) ) *
153 exp( lambdabar * lambdabar * ( 1.0 - w * w ) / ( 4 * betas * betas ) );
154 double rho1 = sqrt( 1.0 / 2.0 ) * ( lambdabar / betas ) *
155 pow( ( 2 * betas * betap / ( betasp ) ), 2.5 ) *
156 exp( lambdabar * lambdabar * ( 1.0 - w * w ) / ( 2 * betasp ) );
157 double rho2 = sqrt( 1.0 / 8.0 ) *
158 ( lambdabar * lambdabar / ( betas * betas ) ) *
159 pow( ( 2 * betas * betad / ( betasd ) ), 3.5 ) *
160 exp( lambdabar * lambdabar * ( 1.0 - w * w ) / ( 2 * betasd ) );
165 EvtComplex f3nr, f4nr, f5nr, f6nr, knr, g1nr, g2nr, g3nr, g4nr, g5nr;
166 EvtComplex h1r, h2r, h3r, f1r, f2r, f3r, f4r, f5r, f6r, kr, g1r, g2r, g3r,
168 EvtComplex h1, h2, h3, f1, f2, f3, f4, f5, f6, k, g1, g2, g3, g4, g5;
171 h1nr = -g * xi * ( p4_pi * v ) /
172 ( f0 * mb * md * (
EvtComplex( p4_pi * v, 0.0 ) + dmb ) );
173 h2nr = -g * xi / ( f0 * mb * (
EvtComplex( p4_pi * v, 0.0 ) + dmb ) );
174 h3nr = -( g * xi / ( f0 * md ) ) *
175 ( 1.0 / (
EvtComplex( p4_pi * v, 0.0 ) + dmb ) -
176 EvtComplex( ( 1.0 + w ) / ( p4_pi * vp ), 0.0 ) );
178 f1nr = -( g * xi / ( 2 * f0 * mb ) ) *
179 ( 1.0 / (
EvtComplex( p4_pi * v, 0.0 ) + dmb ) -
180 1.0 / (
EvtComplex( p4_pi * vp, 0.0 ) + dmd ) );
181 f2nr = f1nr * mb / md;
184 f5nr = ( g * xi / ( 2 * f0 * mb * md ) ) *
186 ( p4_pi * v ) / (
EvtComplex( p4_pi * v, 0.0 ) + dmb ) );
187 f6nr = ( g * xi / ( 2 * f0 * mb ) ) *
188 ( 1.0 / (
EvtComplex( p4_pi * v, 0.0 ) + dmb ) -
191 knr = ( g * xi / ( 2 * f0 ) ) *
192 ( ( p4_pi * ( vp - w * v ) ) / (
EvtComplex( p4_pi * v, 0.0 ) + dmb ) +
193 EvtComplex( ( p4_pi * ( v - w * vp ) ) / ( p4_pi * vp ), 0.0 ) );
198 g4nr = ( g * xi ) / ( f0 * md *
EvtComplex( p4_pi * vp ) );
202 h1r = -alpha1 * rho1 * ( p4_pi * v ) /
203 ( f0 * mb * md * (
EvtComplex( p4_pi * v, 0.0 ) + dmt1 ) ) +
204 alpha2 * rho2 * ( p4_pi * ( v + 2.0 * w * v - vp ) ) /
205 ( 3 * f0 * mb * md * (
EvtComplex( p4_pi * v, 0.0 ) + dmt2 ) ) -
206 alpha3 * xi1 * ( p4_pi * v ) /
207 ( f0 * mb * md *
EvtComplex( p4_pi * v, 0.0 ) + dmt3 );
208 h2r = -alpha2 * ( 1 + w ) * rho2 /
209 ( 3 * f0 * mb * (
EvtComplex( p4_pi * v, 0.0 ) + dmt2 ) ) -
210 alpha3 * xi1 / ( f0 * mb * (
EvtComplex( p4_pi * v, 0.0 ) + dmt3 ) );
211 h3r = alpha2 * rho2 * ( 1 + w ) /
212 ( 3 * f0 * md * (
EvtComplex( p4_pi * v, 0.0 ) + dmt2 ) ) -
213 alpha3 * xi1 / ( f0 * md * (
EvtComplex( p4_pi * v, 0.0 ) + dmt3 ) );
215 f1r = -alpha2 * rho2 * ( w - 1.0 ) /
216 ( 6 * f0 * mb * (
EvtComplex( p4_pi * v, 0.0 ) + dmt2 ) ) -
218 ( 2 * f0 * mb * (
EvtComplex( p4_pi * v, 0.0 ) + dmt3 ) );
222 f5r = alpha1 * rho1 * ( p4_pi * v ) /
223 ( 2 * f0 * mb * md * (
EvtComplex( p4_pi * v, 0.0 ) + dmt1 ) ) +
224 alpha2 * rho2 * ( p4_pi * ( vp - v / 3.0 - 2.0 / 3.0 * w * v ) ) /
225 ( 2 * f0 * mb * md * (
EvtComplex( p4_pi * v, 0.0 ) + dmt2 ) ) +
226 alpha3 * xi1 * ( p4_pi * v ) /
227 ( 2 * f0 * mb * md * (
EvtComplex( p4_pi * v, 0.0 ) + dmt3 ) );
228 f6r = alpha2 * rho2 * ( w - 1.0 ) /
229 ( 6 * f0 * mb * (
EvtComplex( p4_pi * v, 0.0 ) + dmt2 ) ) +
231 ( 2 * f0 * mb * (
EvtComplex( p4_pi * v, 0.0 ) + dmt3 ) );
233 kr = -alpha1 * rho1 * ( w - 1.0 ) * ( p4_pi * v ) /
234 ( 2 * f0 * (
EvtComplex( p4_pi * v, 0.0 ) + dmt1 ) ) -
235 alpha2 * rho2 * ( w - 1.0 ) * ( p4_pi * ( vp - w * v ) ) /
236 ( 3 * f0 * (
EvtComplex( p4_pi * v, 0.0 ) + dmt2 ) ) +
237 alpha3 * xi1 * ( p4_pi * ( vp - w * v ) ) /
238 ( 2 * f0 * (
EvtComplex( p4_pi * v, 0.0 ) + dmt3 ) );
243 g4r = 2.0 * alpha2 * rho2 /
244 ( 3 * f0 * md * (
EvtComplex( p4_pi * v, 0.0 ) + dmt2 ) );
268 g_metric.
setdiag( 1.0, -1.0, -1.0, -1.0 );
270 if ( nlep == EM || nlep == MUM ) {
285 ( g1 * p4_pi + g2 * mb * v ) ) +
288 ( g3 * mb * v + g4 * md * vp + g5 * p4_pi ),
296 if ( nlep == EP || nlep == MUP ) {
311 ( g1 * p4_pi + g2 * mb * v ) ) +
314 ( g3 * mb * v + g4 * md * vp + g5 * p4_pi ),
323 <<
"42387dfs878w wrong lepton number\n";
366 v.
set( 1.0, 0.0, 0.0, 0.0 );
368 p4_pi = pion->
getP4();
379 double alpha3 = 0.690;
380 double alpha1 = -1.430;
381 double alpha2 = -0.140;
388 double betas = 0.285;
389 double betap = 0.280;
390 double betad = 0.260;
391 double betasp = betas * betas + betap * betap;
392 double betasd = betas * betas + betad * betad;
394 double lambdabar = 0.750;
397 double xi =
exp( lambdabar * lambdabar * ( 1.0 - w * w ) /
398 ( 4 * betas * betas ) );
400 -1.0 * sqrt( 2.0 / 3.0 ) *
401 ( lambdabar * lambdabar * ( w * w - 1.0 ) / ( 4 * betas * betas ) ) *
402 exp( lambdabar * lambdabar * ( 1.0 - w * w ) / ( 4 * betas * betas ) );
403 double rho1 = sqrt( 1.0 / 2.0 ) * ( lambdabar / betas ) *
404 pow( ( 2 * betas * betap / ( betasp ) ), 2.5 ) *
405 exp( lambdabar * lambdabar * ( 1.0 - w * w ) / ( 2 * betasp ) );
406 double rho2 = sqrt( 1.0 / 8.0 ) *
407 ( lambdabar * lambdabar / ( betas * betas ) ) *
408 pow( ( 2 * betas * betad / ( betasd ) ), 3.5 ) *
409 exp( lambdabar * lambdabar * ( 1.0 - w * w ) / ( 2 * betasd ) );
416 hnr = g * xi * ( 1.0 / (
EvtComplex( p4_pi * v, 0.0 ) + dmb ) ) /
417 ( 2 * f0 * mb * md );
418 a1nr = -1.0 * g * xi * ( 1 + w ) *
419 ( 1.0 / (
EvtComplex( p4_pi * v, 0.0 ) + dmb ) ) / ( 2 * f0 );
421 ( ( p4_pi * ( v + vp ) ) / (
EvtComplex( p4_pi * v, 0.0 ) + dmb ) ) /
426 hr = alpha2 * rho2 * ( w - 1 ) *
427 ( 1.0 / (
EvtComplex( p4_pi * v, 0.0 ) + dmt2 ) ) /
428 ( 6 * f0 * mb * md ) +
429 alpha3 * xi1 * ( 1.0 / (
EvtComplex( p4_pi * v, 0.0 ) + dmt3 ) ) /
430 ( 2 * f0 * mb * md );
431 a1r = -1.0 * alpha2 * rho2 * ( w * w - 1 ) *
432 ( 1.0 / (
EvtComplex( p4_pi * v, 0.0 ) + dmt2 ) ) / ( 6 * f0 ) -
433 alpha3 * xi1 * ( 1 + w ) *
434 ( 1.0 / (
EvtComplex( p4_pi * v, 0.0 ) + dmt3 ) ) / ( 2 * f0 );
435 a2r = alpha1 * rho1 *
436 ( ( p4_pi * v ) / (
EvtComplex( p4_pi * v, 0.0 ) + dmt1 ) ) /
439 ( 0.5 * p4_pi * ( w * vp - v ) + p4_pi * ( vp - w * v ) ) /
440 ( 3 * f0 * mb * (
EvtComplex( p4_pi * v, 0.0 ) + dmt2 ) ) +
442 ( ( p4_pi * ( v + vp ) ) / (
EvtComplex( p4_pi * v, 0.0 ) + dmt3 ) ) /
444 a3r = -1.0 * alpha1 * rho1 *
445 ( ( p4_pi * v ) / (
EvtComplex( p4_pi * v, 0.0 ) + dmt1 ) ) /
448 ( ( p4_pi * ( vp - w * v ) ) /
460 if ( nlep == EM || nlep == MUM ) {
461 omega =
EvtComplex( 0.0, -1.0 ) * h * mb * md *
463 a1 * p4_pi +
a2 * mb * v +
a3 * md * vp;
469 if ( nlep == EP || nlep == MUP ) {
470 omega =
EvtComplex( 0.0, 1.0 ) * h * mb * md *
472 a1 * p4_pi +
a2 * mb * v +
a3 * md * vp;
479 <<
"42387dfs878w wrong lepton number\n";
void DecayBDstarpilnuGR(EvtParticle *pb, EvtId ndstar, EvtId nlep, EvtId nnu)
EvtTensor3C directProd(const EvtVector3C &c1, const EvtVector3C &c2)
void setdiag(double t00, double t11, double t22, double t33)
EvtTensor4C dual(const EvtTensor4C &t2)
std::ostream & EvtGenReport(EvtGenSeverity severity, const char *facility=0)
void decay(EvtParticle *p) override
EvtVector4C cont2(const EvtVector4C &v4) const
static double getMeanMass(EvtId i)
void DecayBDpilnuGR(EvtParticle *pb, EvtId nd, EvtId nlep, EvtId nnu)
void set(int i, double d)
virtual EvtDiracSpinor spParent(int) const
std::string getName() override
void setProbMax(double prbmx)
void vertex(const EvtComplex &)
double initializePhaseSpace(unsigned int numdaughter, EvtId *daughters, bool forceResetMasses=false, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
virtual EvtVector4C epsParent(int i) const
void checkNDaug(int d1, int d2=-1)
void checkSpinParent(EvtSpinType::spintype sp)
void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)
static EvtId getId(const std::string &name)
const EvtVector4R & getP4() const
void initProbMax() override
void checkSpinDaughter(int d1, EvtSpinType::spintype sp)
virtual EvtDiracSpinor spParentNeutrino() const
EvtComplex exp(const EvtComplex &c)
EvtVector4C EvtLeptonVACurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
EvtParticle * getDaug(int i)
EvtComplex cont(const EvtVector4C &v4) const
EvtDecayBase * clone() override
EvtId getDaug(int i) const