BOSS 7.1.1
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtResonance2 Class Reference

#include <EvtResonance2.hh>

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

Detailed Description

Definition at line 31 of file EvtResonance2.hh.

Constructor & Destructor Documentation

◆ EvtResonance2()

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,
bool usemD = true )

Definition at line 52 of file EvtResonance2.cc.

55 : ////////////////////////////////////////////////////
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) {}///////////////////////////////////////////////////////////////////
const EvtVector4R & p4_d2()
const EvtVector4R & p4_p()
const EvtVector4R & p4_d1()

◆ ~EvtResonance2()

EvtResonance2::~EvtResonance2 ( )
virtual

Definition at line 30 of file EvtResonance2.cc.

30{}

Member Function Documentation

◆ amplitude()

double EvtResonance2::amplitude ( )
inline

Definition at line 55 of file EvtResonance2.hh.

55{ return _ampl; }

◆ bwm()

double EvtResonance2::bwm ( )
inline

Definition at line 64 of file EvtResonance2.hh.

64{ return _bwm; }

◆ gamma()

double EvtResonance2::gamma ( )
inline

Definition at line 61 of file EvtResonance2.hh.

61{ return _gamma; }

◆ operator=()

EvtResonance2 & EvtResonance2::operator= ( const EvtResonance2 & n)

Definition at line 34 of file EvtResonance2.cc.

35{
36 if ( &n == this ) return *this;
37 _p4_p = n._p4_p;
38 _p4_d1 = n._p4_d1;
39 _p4_d2 = n._p4_d2;
40 _ampl = n._ampl;
41 _theta = n._theta;
42 _gamma = n._gamma;
43 _spin = n._spin;
44 _bwm = n._bwm;
45 _invmass_angdenom = n._invmass_angdenom;
46 _use_mD = n._use_mD;
47 return *this;
48}
const Int_t n

◆ p4_d1()

const EvtVector4R & EvtResonance2::p4_d1 ( )
inline

Definition at line 50 of file EvtResonance2.hh.

50{ return _p4_d1; }

◆ p4_d2()

const EvtVector4R & EvtResonance2::p4_d2 ( )
inline

Definition at line 51 of file EvtResonance2.hh.

51{ return _p4_d2; }

◆ p4_p()

const EvtVector4R & EvtResonance2::p4_p ( )
inline

Definition at line 49 of file EvtResonance2.hh.

49{ return _p4_p; }

◆ resAmpl()

EvtComplex EvtResonance2::resAmpl ( )

Definition at line 61 of file EvtResonance2.cc.

61 {
62
63 double pi180inv = 1.0/EvtConst::radToDegrees;
64
65 EvtComplex ampl;
66 EvtVector4R p4_d3 = _p4_p-_p4_d1-_p4_d2;
67
68 //get cos of the angle between the daughters from their 4-momenta
69 //and the 4-momentum of the parent
70
71 //in general, EvtDecayAngle(parent, part1+part2, part1) gives the angle
72 //the missing particle (not listed in the arguments) makes
73 //with part2 in the rest frame of both
74 //listed particles (12)
75
76 //angle 3 makes with 2 in rest frame of 12 (CS3)
77 //double cos_phi_0 = EvtDecayAngle(_p4_p, _p4_d1+_p4_d2, _p4_d1);
78 //angle 3 makes with 1 in 12 is, of course, -cos_phi_0
79
80 //first compute several quantities...follow CLEO preprint 00-23
81
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();
89
90 double mR=_bwm;
91 double gammaR=_gamma;
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));
97
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;}
102 md = _use_mD?mD:mAB;
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));
105
106
107 // report(INFO,"EvtGen") << mAB<<" "<< mBC<<" "<< mAC<<" "<< mA<<" "<< mB<<" "<< mC<<" "
108 // << mD<<" "<< mR<<" "<< gammaR<<" "<< pAB<<" "<< pR<<" "<< pD<<" "<<pDAB<<endl;
109
110 double fR=1;
111 double fD=1;
112 int power=0;
113 switch (_spin) {
114 case 0:
115 fR=1.0;
116 fD=1.0;
117 power=1;
118 //report(INFO,"EvtGen") << "fR="<<fR<<" fD="<<fD<<endl;
119 break;
120 case 1:
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);
123 //report(INFO,"EvtGen") << "fR="<<fR<<" fD="<<fD<<endl;
124 power=3;
125 break;
126 case 2:///////////////////////////////////////////////////////////
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)) );//////////////////////////////////////////////////
129 power=5;///////////////////////////////////////////////////
130 break;///////////////////////////////////////////////////////////
131 default:
132 report(INFO,"EvtGen") << "Incorrect spin in EvtResonance22.cc\n";
133 }
134
135 double gammaAB= gammaR*pow(pAB/pR,power)*(mR/mAB)*fR*fR;
136 //report(INFO,"EvtGen") << gammaAB<<endl;
137 switch (_spin) {
138 case 0:
139 ampl=_ampl*EvtComplex(cos(_theta*pi180inv),sin(_theta*pi180inv))*
140 fR*fD/(mR*mR-mAB*mAB-EvtComplex(0.0,mR*gammaAB));
141 break;
142 case 1:
143 ampl=_ampl*EvtComplex(cos(_theta*pi180inv),sin(_theta*pi180inv))*
144 (fR*fD*(mAC*mAC-mBC*mBC+((mD*mD-mC*mC)*(mB*mB-mA*mA)/(mdenom*mdenom)))/ //////////////////////////////////////////////////////////////////
145 //(fR*fD*(mAC*mAC-mBC*mBC+((mD*mD-mC*mC)*(mB*mB-mA*mA)/(mR*mR)))/
146 (mR*mR-mAB*mAB-EvtComplex(0.0,mR*gammaAB)));
147 break;
148 case 2:
149 ampl=_ampl*EvtComplex(cos(_theta*pi180inv),sin(_theta*pi180inv))*
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)));
154 break;
155
156 default:
157 report(INFO,"EvtGen") << "Incorrect spin in EvtResonance22.cc\n";
158 }
159
160 //report(INFO,"EvtGen") <<"The amplitude is "<<ampl<<endl;
161 return ampl;
162}
double sin(const BesAngle a)
Definition BesAngle.h:210
double cos(const BesAngle a)
Definition BesAngle.h:213
double mass
ostream & report(Severity severity, const char *facility)
Definition EvtReport.cc:36
@ INFO
Definition EvtReport.hh:52
static const double radToDegrees
Definition EvtConst.hh:30
double mass() const

Referenced by EvtDDalitz::decay().

◆ spin()

int EvtResonance2::spin ( )
inline

Definition at line 67 of file EvtResonance2.hh.

67{ return _spin; }

◆ theta()

double EvtResonance2::theta ( )
inline

Definition at line 58 of file EvtResonance2.hh.

58{ return _theta; }

The documentation for this class was generated from the following files: