EvtResonance2 Class Reference

#include <EvtResonance2.hh>

List of all members.

Public Member Functions

EvtResonance2operator= (const EvtResonance2 &)
 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)
virtual ~EvtResonance2 ()
const EvtVector4Rp4_p ()
const EvtVector4Rp4_d1 ()
const EvtVector4Rp4_d2 ()
double amplitude ()
double theta ()
double gamma ()
double bwm ()
int spin ()
EvtComplex resAmpl ()

Private Attributes

EvtVector4R _p4_p
EvtVector4R _p4_d1
EvtVector4R _p4_d2
double _ampl
double _theta
double _gamma
double _bwm
int _spin
bool _invmass_angdenom


Detailed Description

Definition at line 31 of file EvtResonance2.hh.


Constructor & Destructor Documentation

EvtResonance2::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 
)

Definition at line 51 of file EvtResonance2.cc.

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

EvtResonance2::~EvtResonance2 (  )  [virtual]

Definition at line 30 of file EvtResonance2.cc.

00030 {}


Member Function Documentation

double EvtResonance2::amplitude (  )  [inline]

Definition at line 54 of file EvtResonance2.hh.

References _ampl.

00054 { return _ampl; }  

double EvtResonance2::bwm (  )  [inline]

Definition at line 63 of file EvtResonance2.hh.

References _bwm.

00063 { return _bwm; } 

double EvtResonance2::gamma (  )  [inline]

Definition at line 60 of file EvtResonance2.hh.

References _gamma.

00060 { return _gamma; } 

EvtResonance2 & EvtResonance2::operator= ( const EvtResonance2  ) 

Definition at line 34 of file EvtResonance2.cc.

References _ampl, _bwm, _gamma, _invmass_angdenom, _p4_d1, _p4_d2, _p4_p, _spin, and _theta.

00035 {
00036   if ( &n == this ) return *this;
00037   _p4_p = n._p4_p;
00038   _p4_d1 = n._p4_d1;
00039   _p4_d2 = n._p4_d2;
00040   _ampl = n._ampl;
00041   _theta = n._theta;
00042   _gamma = n._gamma;
00043   _spin = n._spin;
00044   _bwm = n._bwm;
00045   _invmass_angdenom = n._invmass_angdenom;
00046    return  *this;
00047 }

const EvtVector4R& EvtResonance2::p4_d1 (  )  [inline]

Definition at line 49 of file EvtResonance2.hh.

References _p4_d1.

00049 { return _p4_d1; }

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

Definition at line 50 of file EvtResonance2.hh.

References _p4_d2.

00050 { return _p4_d2; }  

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

Definition at line 48 of file EvtResonance2.hh.

References _p4_p.

00048 { return _p4_p; }

EvtComplex EvtResonance2::resAmpl (  ) 

Definition at line 60 of file EvtResonance2.cc.

References _ampl, _bwm, _gamma, _invmass_angdenom, _p4_d1, _p4_d2, _p4_p, _spin, _theta, cos(), Bes_Common::INFO, EvtVector4R::mass(), mass, EvtConst::radToDegrees, report(), and sin().

Referenced by EvtDDalitz::amplDtoK0PiPi(), and EvtDDalitz::decay().

00060                                   {
00061  
00062   double pi180inv = 1.0/EvtConst::radToDegrees;
00063 
00064   EvtComplex ampl;
00065   EvtVector4R  p4_d3 = _p4_p-_p4_d1-_p4_d2;
00066 
00067   //get cos of the angle between the daughters from their 4-momenta
00068   //and the 4-momentum of the parent
00069 
00070   //in general, EvtDecayAngle(parent, part1+part2, part1) gives the angle
00071   //the missing particle (not listed in the arguments) makes
00072   //with part2 in the rest frame of both
00073   //listed particles (12)
00074  
00075   //angle 3 makes with 2 in rest frame of 12 (CS3)  
00076   //double cos_phi_0 = EvtDecayAngle(_p4_p, _p4_d1+_p4_d2, _p4_d1);
00077   //angle 3 makes with 1 in 12 is, of course, -cos_phi_0
00078 
00079   //first compute several quantities...follow CLEO preprint 00-23
00080 
00081   double mAB=(_p4_d1+_p4_d2).mass();
00082   double mBC=(_p4_d2+p4_d3).mass();
00083   double mAC=(_p4_d1+p4_d3).mass();
00084   double mA=_p4_d1.mass(); 
00085   double mB=_p4_d2.mass(); 
00086   double mD=_p4_p.mass();
00087   double mC=p4_d3.mass();
00088   
00089   double mR=_bwm;
00090   double gammaR=_gamma;
00091   double mdenom = _invmass_angdenom ? mAB : mR;
00092   double pAB=sqrt( (((mAB*mAB-mA*mA-mB*mB)*(mAB*mAB-mA*mA-mB*mB)/4.0) -
00093                     mA*mA*mB*mB)/(mAB*mAB));
00094   double pR=sqrt( (((mR*mR-mA*mA-mB*mB)*(mR*mR-mA*mA-mB*mB)/4.0) -
00095                    mA*mA*mB*mB)/(mR*mR));
00096 
00097   double pD= (((mD*mD-mR*mR-mC*mC)*(mD*mD-mR*mR-mC*mC)/4.0) -
00098                    mR*mR*mC*mC)/(mD*mD);
00099   if ( pD>0 ) { pD=sqrt(pD); } else {pD=0;}
00100   double pDAB=sqrt( (((mD*mD-mAB*mAB-mC*mC)*(mD*mD-mAB*mAB-mC*mC)/4.0) -
00101                    mAB*mAB*mC*mC)/(mD*mD));
00102 
00103 
00104   //    report(INFO,"EvtGen") << mAB<<" "<< mBC<<" "<< mAC<<" "<< mA<<" "<< mB<<" "<< mC<<" "
00105   //     << mD<<" "<< mR<<" "<< gammaR<<" "<< pAB<<" "<< pR<<" "<< pD<<" "<<pDAB<<endl;
00106 
00107   double fR=1;
00108   double fD=1;
00109   int power=0;
00110   switch (_spin) {
00111   case 0:
00112     fR=1.0;
00113     fD=1.0;
00114     power=1;
00115     //report(INFO,"EvtGen") << "fR="<<fR<<" fD="<<fD<<endl;
00116     break;
00117   case 1:
00118     fR=sqrt(1.0+1.5*1.5*pR*pR)/sqrt(1.0+1.5*1.5*pAB*pAB);
00119     fD=sqrt(1.0+5.0*5.0*pD*pD)/sqrt(1.0+5.0*5.0*pDAB*pDAB);
00120     //report(INFO,"EvtGen") << "fR="<<fR<<" fD="<<fD<<endl;
00121     power=3;
00122     break;
00123   case 2:
00124     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)) );
00125     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)) );
00126     power=5;
00127     break;
00128   default:
00129     report(INFO,"EvtGen") << "Incorrect spin in EvtResonance22.cc\n";
00130   }
00131   
00132   double gammaAB= gammaR*pow(pAB/pR,power)*(mR/mAB)*fR*fR;
00133   //report(INFO,"EvtGen") << gammaAB<<endl;
00134   switch (_spin) {
00135   case 0:
00136     ampl=_ampl*EvtComplex(cos(_theta*pi180inv),sin(_theta*pi180inv))*
00137           fR*fD/(mR*mR-mAB*mAB-EvtComplex(0.0,mR*gammaAB));
00138     break;
00139   case 1:
00140     ampl=_ampl*EvtComplex(cos(_theta*pi180inv),sin(_theta*pi180inv))*
00141       (fR*fD*(mAC*mAC-mBC*mBC+((mD*mD-mC*mC)*(mB*mB-mA*mA)/(mdenom*mdenom)))/ 
00142        //(fR*fD*(mAC*mAC-mBC*mBC+((mD*mD-mC*mC)*(mB*mB-mA*mA)/(mR*mR)))/
00143        (mR*mR-mAB*mAB-EvtComplex(0.0,mR*gammaAB)));
00144     break;
00145   case 2:
00146     ampl=_ampl*EvtComplex(cos(_theta*pi180inv),sin(_theta*pi180inv))*
00147       fR*fD/(mR*mR-mAB*mAB-EvtComplex(0.0,mR*gammaAB))*
00148       (pow((mBC*mBC-mAC*mAC+(mD*mD-mC*mC)*(mA*mA-mB*mB)/(mdenom*mdenom)),2)-
00149        (1.0/3.0)*(mAB*mAB-2*mD*mD-2*mC*mC+pow((mD*mD- mC*mC)/mdenom, 2))*
00150        (mAB*mAB-2*mA*mA-2*mB*mB+pow((mA*mA-mB*mB)/mdenom,2))); 
00151   break;
00152 
00153   default:
00154     report(INFO,"EvtGen") << "Incorrect spin in EvtResonance22.cc\n";
00155   }
00156 
00157   //report(INFO,"EvtGen") <<"The amplitude is "<<ampl<<endl;
00158   return ampl;
00159 }

int EvtResonance2::spin (  )  [inline]

Definition at line 66 of file EvtResonance2.hh.

References _spin.

00066 { return _spin; } 

double EvtResonance2::theta (  )  [inline]

Definition at line 57 of file EvtResonance2.hh.

References _theta.

00057 { return _theta; } 


Member Data Documentation

double EvtResonance2::_ampl [private]

Definition at line 76 of file EvtResonance2.hh.

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

double EvtResonance2::_bwm [private]

Definition at line 76 of file EvtResonance2.hh.

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

double EvtResonance2::_gamma [private]

Definition at line 76 of file EvtResonance2.hh.

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

bool EvtResonance2::_invmass_angdenom [private]

Definition at line 78 of file EvtResonance2.hh.

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

EvtVector4R EvtResonance2::_p4_d1 [private]

Definition at line 75 of file EvtResonance2.hh.

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

EvtVector4R EvtResonance2::_p4_d2 [private]

Definition at line 75 of file EvtResonance2.hh.

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

EvtVector4R EvtResonance2::_p4_p [private]

Definition at line 75 of file EvtResonance2.hh.

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

int EvtResonance2::_spin [private]

Definition at line 77 of file EvtResonance2.hh.

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

double EvtResonance2::_theta [private]

Definition at line 76 of file EvtResonance2.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