EvtResonance Class Reference

#include <EvtResonance.hh>

List of all members.

Public Member Functions

EvtResonanceoperator= (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 EvtVector4Rp4_p ()
const EvtVector4Rp4_d1 ()
const EvtVector4Rp4_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


Detailed Description

Definition at line 31 of file EvtResonance.hh.


Constructor & Destructor Documentation

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 
)

Definition at line 51 of file EvtResonance.cc.

00053                                                                             : 
00054   _p4_p(p4_p),_p4_d1(p4_d1), _p4_d2(p4_d2),_ampl(ampl), _theta(theta), 
00055   _gamma(gamma), _bwm(bwm), _spin(spin) {}

EvtResonance::~EvtResonance (  )  [virtual]

Definition at line 31 of file EvtResonance.cc.

00031 {}


Member Function Documentation

double EvtResonance::amplitude (  )  [inline]

Definition at line 54 of file EvtResonance.hh.

References _ampl.

00054 { return _ampl; }  

double EvtResonance::bwm (  )  [inline]

Definition at line 63 of file EvtResonance.hh.

References _bwm.

00063 { return _bwm; } 

double EvtResonance::gamma (  )  [inline]

Definition at line 60 of file EvtResonance.hh.

References _gamma.

00060 { return _gamma; } 

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]

Definition at line 49 of file EvtResonance.hh.

References _p4_d1.

00049 { return _p4_d1; }

const EvtVector4R& EvtResonance::p4_d2 (  )  [inline]

Definition at line 50 of file EvtResonance.hh.

References _p4_d2.

00050 { return _p4_d2; }  

const EvtVector4R& EvtResonance::p4_p (  )  [inline]

Definition at line 48 of file EvtResonance.hh.

References _p4_p.

00048 { return _p4_p; }

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]

Definition at line 66 of file EvtResonance.hh.

References _spin.

00066 { return _spin; } 

double EvtResonance::theta (  )  [inline]

Definition at line 57 of file EvtResonance.hh.

References _theta.

00057 { return _theta; } 


Member Data Documentation

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]

Definition at line 80 of file EvtResonance.hh.

Referenced by operator=(), resAmpl(), and spin().

double EvtResonance::_theta [private]

Definition at line 79 of file EvtResonance.hh.

Referenced by operator=(), resAmpl(), and theta().


Generated on Tue Nov 29 23:19:22 2016 for BOSS_7.0.2 by  doxygen 1.4.7