36 if ( &
n ==
this )
return *
this;
45 _invmass_angdenom =
n._invmass_angdenom;
54 double theta,
double gamma,
double bwm,
int spin,
55 bool invmass_angdenom,
bool usemD):
56 _p4_p(p4_p),_p4_d1(p4_d1), _p4_d2(p4_d2),_ampl(ampl), _theta(theta),
57 _gamma(gamma), _bwm(bwm), _spin(spin), _invmass_angdenom(invmass_angdenom), _use_mD(usemD) {}
82 double mAB=(_p4_d1+_p4_d2).
mass();
83 double mBC=(_p4_d2+p4_d3).
mass();
84 double mAC=(_p4_d1+p4_d3).
mass();
85 double mA=_p4_d1.
mass();
86 double mB=_p4_d2.mass();
87 double mD=_p4_p.
mass();
88 double mC=p4_d3.
mass();
92 double mdenom = _invmass_angdenom ? mAB : mR;
93 double pAB=sqrt( (((mAB*mAB-mA*mA-mB*mB)*(mAB*mAB-mA*mA-mB*mB)/4.0) -
94 mA*mA*mB*mB)/(mAB*mAB));
95 double pR=sqrt( (((mR*mR-mA*mA-mB*mB)*(mR*mR-mA*mA-mB*mB)/4.0) -
96 mA*mA*mB*mB)/(mR*mR));
98 double md = _use_mD?mD:mR;
99 double pD= (((mD*mD-mR*mR-mC*mC)*(mD*mD-mR*mR-mC*mC)/4.0) -
100 mR*mR*mC*mC)/(md*md);
101 if ( pD>0 ) { pD=sqrt(pD); }
else {pD=0;}
103 double pDAB=sqrt( (((mD*mD-mAB*mAB-mC*mC)*(mD*mD-mAB*mAB-mC*mC)/4.0) -
104 mAB*mAB*mC*mC)/(md*md));
121 fR=sqrt(1.0+1.5*1.5*pR*pR)/sqrt(1.0+1.5*1.5*pAB*pAB);
122 fD=sqrt(1.0+5.0*5.0*pD*pD)/sqrt(1.0+5.0*5.0*pDAB*pDAB);
127 fR = sqrt( (9+3*pow((1.5*pR),2)+pow((1.5*pR),4))/(9+3*pow((1.5*pAB),2)+pow((1.5*pAB),4)) );
128 fD = sqrt( (9+3*pow((5.0*pD),2)+pow((5.0*pD),4))/(9+3*pow((5.0*pDAB),2)+pow((5.0*pDAB),4)) );
132 report(
INFO,
"EvtGen") <<
"Incorrect spin in EvtResonance22.cc\n";
135 double gammaAB= gammaR*pow(pAB/pR,power)*(mR/mAB)*fR*fR;
140 fR*fD/(mR*mR-mAB*mAB-
EvtComplex(0.0,mR*gammaAB));
144 (fR*fD*(mAC*mAC-mBC*mBC+((mD*mD-mC*mC)*(mB*mB-mA*mA)/(mdenom*mdenom)))/
150 fR*fD/(mR*mR-mAB*mAB-
EvtComplex(0.0,mR*gammaAB))*
151 (pow((mBC*mBC-mAC*mAC+(mD*mD-mC*mC)*(mA*mA-mB*mB)/(mdenom*mdenom)),2)-
152 (1.0/3.0)*(mAB*mAB-2*mD*mD-2*mC*mC+pow((mD*mD- mC*mC)/mdenom, 2))*
153 (mAB*mAB-2*mA*mA-2*mB*mB+pow((mA*mA-mB*mB)/mdenom,2)));
157 report(
INFO,
"EvtGen") <<
"Incorrect spin in EvtResonance22.cc\n";
double sin(const BesAngle a)
double cos(const BesAngle a)
ostream & report(Severity severity, const char *facility)
static const double radToDegrees
EvtResonance2(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, bool invmass_angdenom=false, bool usemD=true)
EvtResonance2 & operator=(const EvtResonance2 &)