21#include "EvtGenBase/EvtPatches.hh"
23#include "EvtGenBase/EvtVector4R.hh"
24#include "EvtGenBase/EvtKine.hh"
25#include "EvtGenBase/EvtComplex.hh"
26#include "EvtGenBase/EvtResonance.hh"
27#include "EvtGenBase/EvtReport.hh"
28#include "EvtGenBase/EvtConst.hh"
37 if ( &
n ==
this )
return *
this;
53 double theta,
double gamma,
double bwm,
int spin):
54 _p4_p(p4_p),_p4_d1(p4_d1), _p4_d2(p4_d2),_ampl(ampl), _theta(theta),
55 _gamma(gamma), _bwm(bwm), _spin(spin) {}
75 double cos_phi_0 =
EvtDecayAngle(_p4_p, _p4_d1+_p4_d2, _p4_d1);
89 (cos_phi_0/((_p4_d1+_p4_d2).
mass()-_bwm-
EvtComplex(0.0,0.5*_gamma))));
95 ((1.5*cos_phi_0*cos_phi_0-0.5)/((_p4_d1+_p4_d2).mass()-_bwm-
EvtComplex(0.0, 0.5*_gamma))));
101 ((2.5*cos_phi_0*cos_phi_0*cos_phi_0-1.5*cos_phi_0)/((_p4_d1+_p4_d2).mass()-_bwm-
EvtComplex(0.0, 0.5*_gamma))));
105 report(
DEBUG,
"EvtGen") <<
"EvtGen: wrong spin in EvtResonance" << endl;
127 double msq13 = (_p4_d1 + _p4_d3).mass2();
128 double msq23 = (_p4_d2 + _p4_d3).mass2();
129 double msqParent = _p4_p.
mass2();
130 double msq1 = _p4_d1.
mass2();
131 double msq2 = _p4_d2.mass2();
132 double msq3 = _p4_d3.
mass2();
136 double p2 = sqrt((_p4_12.
mass2() - (_p4_d1.
mass() + _p4_d2.mass())*(_p4_d1.
mass() + _p4_d2.mass()))*(_p4_12.
mass2() - (_p4_d1.
mass() - _p4_d2.mass())*(_p4_d1.
mass() - _p4_d2.mass())))/(2.0*_p4_12.
mass());
138 double p2R = sqrt((_bwm*_bwm - (_p4_d1.
mass() + _p4_d2.mass())*(_p4_d1.
mass() + _p4_d2.mass()))*(_bwm*_bwm - (_p4_d1.
mass() - _p4_d2.mass())*(_p4_d1.
mass() - _p4_d2.mass())))/(2.0*_bwm);
150 gam = _gamma*(_bwm/_p4_12.
mass())*(p2/p2R)*(p2/p2R)*(p2/p2R)*((1 +
R*
R*p2R*p2R)/(1 + R*R*p2*p2));
151 M = (msq13 - msq23 - (msqParent - msq3)*(msq1 - msq2)/(_bwm*_bwm))*sqrt((1 + R*R*p2R*p2R)/(1 + R*R*p2*p2));
154 BW = sqrt(_gamma)*M/((_bwm*_bwm - _p4_12.
mass2()) -
EvtComplex(0.0,1.0)*gam*_bwm);
double sin(const BesAngle a)
double cos(const BesAngle a)
double EvtDecayAngle(const EvtVector4R &p, const EvtVector4R &q, const EvtVector4R &d)
ostream & report(Severity severity, const char *facility)
static const double radToDegrees
static const double twoPi
EvtResonance & operator=(const EvtResonance &)
EvtComplex relBrWig(int i)
EvtResonance(const EvtVector4R &p4_p, const EvtVector4R &p4_d1, const EvtVector4R &p4_d2, double ampl=0.0, double theta=0.0, double gamma=0.0, double bwm=0.0, int spin=0)
complex_t R(double Q2, double M2, double G, double Mp2, double Mm2)