#include <EvtResonance.hh>
Public Member Functions | |
EvtResonance & | operator= (const EvtResonance &) |
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) | |
virtual | ~EvtResonance () |
const EvtVector4R & | p4_p () |
const EvtVector4R & | p4_d1 () |
const EvtVector4R & | p4_d2 () |
double | amplitude () |
double | theta () |
double | gamma () |
double | bwm () |
int | spin () |
EvtComplex | resAmpl () |
EvtComplex | relBrWig (int i) |
Private Attributes | |
EvtVector4R | _p4_p |
EvtVector4R | _p4_d1 |
EvtVector4R | _p4_d2 |
double | _ampl |
double | _theta |
double | _gamma |
double | _bwm |
int | _spin |
Definition at line 31 of file EvtResonance.hh.
EvtResonance::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 | |||
) |
EvtResonance::~EvtResonance | ( | ) | [virtual] |
double EvtResonance::amplitude | ( | ) | [inline] |
double EvtResonance::bwm | ( | ) | [inline] |
double EvtResonance::gamma | ( | ) | [inline] |
EvtResonance & EvtResonance::operator= | ( | const EvtResonance & | ) |
Definition at line 35 of file EvtResonance.cc.
References _ampl, _bwm, _gamma, _p4_d1, _p4_d2, _p4_p, _spin, and _theta.
00036 { 00037 if ( &n == this ) return *this; 00038 _p4_p = n._p4_p; 00039 _p4_d1 = n._p4_d1; 00040 _p4_d2 = n._p4_d2; 00041 _ampl = n._ampl; 00042 _theta = n._theta; 00043 _gamma = n._gamma; 00044 _spin = n._spin; 00045 _bwm = n._bwm; 00046 return *this; 00047 }
const EvtVector4R& EvtResonance::p4_d1 | ( | ) | [inline] |
const EvtVector4R& EvtResonance::p4_d2 | ( | ) | [inline] |
const EvtVector4R& EvtResonance::p4_p | ( | ) | [inline] |
EvtComplex EvtResonance::relBrWig | ( | int | i | ) |
Definition at line 114 of file EvtResonance.cc.
References _bwm, _gamma, _p4_d1, _p4_d2, _p4_p, EvtVector4R::mass(), EvtVector4R::mass2(), and rb::R().
Referenced by EvtDDalitz::decay().
00114 { 00115 00116 //this function returns relativistic Breit-Wigner amplitude 00117 //for a given resonance (for P-wave decays of scalars only at the moment!) 00118 00119 EvtComplex BW; 00120 EvtVector4R _p4_d3 = _p4_p-_p4_d1-_p4_d2; 00121 EvtVector4R _p4_12 = _p4_d1 + _p4_d2; 00122 00123 //EvtVector4R _p4_pm3 = _p4_p - _p4_d3; 00124 //EvtVector4R _p4_1m2 = _p4_d1 - _p4_d2; 00125 00126 //double msq12 = _p4_12.mass2(); 00127 double msq13 = (_p4_d1 + _p4_d3).mass2(); 00128 double msq23 = (_p4_d2 + _p4_d3).mass2(); 00129 double msqParent = _p4_p.mass2(); 00130 double msq1 = _p4_d1.mass2(); 00131 double msq2 = _p4_d2.mass2(); 00132 double msq3 = _p4_d3.mass2(); 00133 00134 double M; 00135 00136 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()); 00137 00138 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); 00139 00140 double gam, R; 00141 00142 if (i == 1) { 00143 //consider this the K resonance 00144 00145 R = 2.0/(0.197); 00146 00147 } 00148 else R = 5.0/(0.197); 00149 00150 gam = _gamma*(_bwm/_p4_12.mass())*(p2/p2R)*(p2/p2R)*(p2/p2R)*((1 + R*R*p2R*p2R)/(1 + R*R*p2*p2)); 00151 M = (msq13 - msq23 - (msqParent - msq3)*(msq1 - msq2)/(_bwm*_bwm))*sqrt((1 + R*R*p2R*p2R)/(1 + R*R*p2*p2)); 00152 //M = (msq13 - msq23 - (msqParent - msq3)*(msq1 - msq2)/(_p4_12.mass2()))*sqrt((1 + R*R*p2R*p2R)/(1 + R*R*p2*p2)); 00153 00154 BW = sqrt(_gamma)*M/((_bwm*_bwm - _p4_12.mass2()) - EvtComplex(0.0,1.0)*gam*_bwm); 00155 00156 return BW; 00157 00158 }
EvtComplex EvtResonance::resAmpl | ( | ) |
Definition at line 59 of file EvtResonance.cc.
References _ampl, _bwm, _gamma, _p4_d1, _p4_d2, _p4_p, _spin, _theta, cos(), Bes_Common::DEBUG, EvtDecayAngle(), mass, EvtConst::radToDegrees, report(), sin(), and EvtConst::twoPi.
Referenced by EvtDDalitz::amplDtoK0KK(), and EvtDDalitz::decay().
00059 { 00060 00061 double pi180inv = 1.0/EvtConst::radToDegrees; 00062 00063 EvtComplex ampl; 00064 //EvtVector4R _p4_d3 = _p4_p-_p4_d1-_p4_d2; 00065 00066 //get cos of the angle between the daughters from their 4-momenta 00067 //and the 4-momentum of the parent 00068 00069 //in general, EvtDecayAngle(parent, part1+part2, part1) gives the angle 00070 //the missing particle (not listed in the arguments) makes 00071 //with part2 in the rest frame of both 00072 //listed particles (12) 00073 00074 //angle 3 makes with 2 in rest frame of 12 (CS3) 00075 double cos_phi_0 = EvtDecayAngle(_p4_p, _p4_d1+_p4_d2, _p4_d1); 00076 //angle 3 makes with 1 in 12 is, of course, -cos_phi_0 00077 00078 switch (_spin) { 00079 00080 case 0 : 00081 ampl=(_ampl*EvtComplex(cos(_theta*pi180inv),sin(_theta*pi180inv))* 00082 sqrt(_gamma/EvtConst::twoPi)* 00083 (1.0/((_p4_d1+_p4_d2).mass()-_bwm-EvtComplex(0.0,0.5*_gamma)))); 00084 break; 00085 00086 case 1 : 00087 ampl=(_ampl*EvtComplex(cos(_theta*pi180inv),sin(_theta*pi180inv))* 00088 sqrt(_gamma/EvtConst::twoPi)* 00089 (cos_phi_0/((_p4_d1+_p4_d2).mass()-_bwm-EvtComplex(0.0,0.5*_gamma)))); 00090 break; 00091 00092 case 2: 00093 ampl=(_ampl*EvtComplex(cos(_theta*pi180inv),sin(_theta*pi180inv))* 00094 sqrt(_gamma/EvtConst::twoPi)* 00095 ((1.5*cos_phi_0*cos_phi_0-0.5)/((_p4_d1+_p4_d2).mass()-_bwm-EvtComplex(0.0, 0.5*_gamma)))); 00096 break; 00097 00098 case 3: 00099 ampl=(_ampl*EvtComplex(cos(_theta*pi180inv),sin(_theta*pi180inv))* 00100 sqrt(_gamma/EvtConst::twoPi)* 00101 ((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)))); 00102 break; 00103 00104 default: 00105 report(DEBUG,"EvtGen") << "EvtGen: wrong spin in EvtResonance" << endl; 00106 ampl = EvtComplex(0.0); 00107 break; 00108 00109 } 00110 00111 return ampl; 00112 }
int EvtResonance::spin | ( | ) | [inline] |
double EvtResonance::theta | ( | ) | [inline] |
double EvtResonance::_ampl [private] |
Definition at line 79 of file EvtResonance.hh.
Referenced by amplitude(), operator=(), and resAmpl().
double EvtResonance::_bwm [private] |
Definition at line 79 of file EvtResonance.hh.
Referenced by bwm(), operator=(), relBrWig(), and resAmpl().
double EvtResonance::_gamma [private] |
Definition at line 79 of file EvtResonance.hh.
Referenced by gamma(), operator=(), relBrWig(), and resAmpl().
EvtVector4R EvtResonance::_p4_d1 [private] |
Definition at line 78 of file EvtResonance.hh.
Referenced by operator=(), p4_d1(), relBrWig(), and resAmpl().
EvtVector4R EvtResonance::_p4_d2 [private] |
Definition at line 78 of file EvtResonance.hh.
Referenced by operator=(), p4_d2(), relBrWig(), and resAmpl().
EvtVector4R EvtResonance::_p4_p [private] |
Definition at line 78 of file EvtResonance.hh.
Referenced by operator=(), p4_p(), relBrWig(), and resAmpl().
int EvtResonance::_spin [private] |
double EvtResonance::_theta [private] |