BOSS 7.0.9
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtResonance Class Reference

#include <EvtResonance.hh>

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

Detailed Description

Constructor & Destructor Documentation

◆ EvtResonance() [1/2]

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() [1/2]

EvtResonance::~EvtResonance ( )
virtual

◆ EvtResonance() [2/2]

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() [2/2]

virtual EvtResonance::~EvtResonance ( )
virtual

Member Function Documentation

◆ amplitude() [1/2]

double EvtResonance::amplitude ( )
inline

Definition at line 54 of file bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtResonance.hh.

54{ return _ampl; }

◆ amplitude() [2/2]

double EvtResonance::amplitude ( )
inline

Definition at line 54 of file BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtResonance.hh.

54{ return _ampl; }

◆ bwm() [1/2]

double EvtResonance::bwm ( )
inline

Definition at line 63 of file bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtResonance.hh.

63{ return _bwm; }

◆ bwm() [2/2]

double EvtResonance::bwm ( )
inline

Definition at line 63 of file BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtResonance.hh.

63{ return _bwm; }

◆ gamma() [1/2]

double EvtResonance::gamma ( )
inline

Definition at line 60 of file bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtResonance.hh.

60{ return _gamma; }

◆ gamma() [2/2]

double EvtResonance::gamma ( )
inline

Definition at line 60 of file BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtResonance.hh.

60{ return _gamma; }

◆ operator=() [1/2]

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

Definition at line 35 of file bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtResonance.cc.

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

◆ operator=() [2/2]

EvtResonance & EvtResonance::operator= ( const EvtResonance )

◆ p4_d1() [1/2]

const EvtVector4R & EvtResonance::p4_d1 ( )
inline

Definition at line 49 of file bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtResonance.hh.

49{ return _p4_d1; }

◆ p4_d1() [2/2]

const EvtVector4R & EvtResonance::p4_d1 ( )
inline

Definition at line 49 of file BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtResonance.hh.

49{ return _p4_d1; }

◆ p4_d2() [1/2]

const EvtVector4R & EvtResonance::p4_d2 ( )
inline

Definition at line 50 of file bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtResonance.hh.

50{ return _p4_d2; }

◆ p4_d2() [2/2]

const EvtVector4R & EvtResonance::p4_d2 ( )
inline

Definition at line 50 of file BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtResonance.hh.

50{ return _p4_d2; }

◆ p4_p() [1/2]

const EvtVector4R & EvtResonance::p4_p ( )
inline

Definition at line 48 of file bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtResonance.hh.

48{ return _p4_p; }

◆ p4_p() [2/2]

const EvtVector4R & EvtResonance::p4_p ( )
inline

Definition at line 48 of file BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtResonance.hh.

48{ return _p4_p; }

◆ relBrWig() [1/2]

EvtComplex EvtResonance::relBrWig ( int  i)

Definition at line 114 of file bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtResonance.cc.

114 {
115
116//this function returns relativistic Breit-Wigner amplitude
117//for a given resonance (for P-wave decays of scalars only at the moment!)
118
119 EvtComplex BW;
120 EvtVector4R _p4_d3 = _p4_p-_p4_d1-_p4_d2;
121 EvtVector4R _p4_12 = _p4_d1 + _p4_d2;
122
123 //EvtVector4R _p4_pm3 = _p4_p - _p4_d3;
124 //EvtVector4R _p4_1m2 = _p4_d1 - _p4_d2;
125
126 //double msq12 = _p4_12.mass2();
127 double msq13 = (_p4_d1 + _p4_d3).mass2();
128 double msq23 = (_p4_d2 + _p4_d3).mass2();
129 double msqParent = _p4_p.mass2();
130 double msq1 = _p4_d1.mass2();
131 double msq2 = _p4_d2.mass2();
132 double msq3 = _p4_d3.mass2();
133
134 double M;
135
136 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());
137
138 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);
139
140 double gam, R;
141
142if (i == 1) {
143//consider this the K resonance
144
145 R = 2.0/(0.197);
146
147}
148else R = 5.0/(0.197);
149
150 gam = _gamma*(_bwm/_p4_12.mass())*(p2/p2R)*(p2/p2R)*(p2/p2R)*((1 + R*R*p2R*p2R)/(1 + R*R*p2*p2));
151 M = (msq13 - msq23 - (msqParent - msq3)*(msq1 - msq2)/(_bwm*_bwm))*sqrt((1 + R*R*p2R*p2R)/(1 + R*R*p2*p2));
152 //M = (msq13 - msq23 - (msqParent - msq3)*(msq1 - msq2)/(_p4_12.mass2()))*sqrt((1 + R*R*p2R*p2R)/(1 + R*R*p2*p2));
153
154 BW = sqrt(_gamma)*M/((_bwm*_bwm - _p4_12.mass2()) - EvtComplex(0.0,1.0)*gam*_bwm);
155
156 return BW;
157
158}
complex_t R(double Q2, double M2, double G, double Mp2, double Mm2)
Definition: TUtil.h:27

Referenced by EvtDDalitz::decay().

◆ relBrWig() [2/2]

EvtComplex EvtResonance::relBrWig ( int  i)

◆ resAmpl() [1/2]

EvtComplex EvtResonance::resAmpl ( )

Definition at line 59 of file bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtResonance.cc.

59 {
60
61 double pi180inv = 1.0/EvtConst::radToDegrees;
62
63 EvtComplex ampl;
64 //EvtVector4R _p4_d3 = _p4_p-_p4_d1-_p4_d2;
65
66 //get cos of the angle between the daughters from their 4-momenta
67 //and the 4-momentum of the parent
68
69 //in general, EvtDecayAngle(parent, part1+part2, part1) gives the angle
70 //the missing particle (not listed in the arguments) makes
71 //with part2 in the rest frame of both
72 //listed particles (12)
73
74 //angle 3 makes with 2 in rest frame of 12 (CS3)
75 double cos_phi_0 = EvtDecayAngle(_p4_p, _p4_d1+_p4_d2, _p4_d1);
76 //angle 3 makes with 1 in 12 is, of course, -cos_phi_0
77
78 switch (_spin) {
79
80 case 0 :
81 ampl=(_ampl*EvtComplex(cos(_theta*pi180inv),sin(_theta*pi180inv))*
82 sqrt(_gamma/EvtConst::twoPi)*
83 (1.0/((_p4_d1+_p4_d2).mass()-_bwm-EvtComplex(0.0,0.5*_gamma))));
84 break;
85
86 case 1 :
87 ampl=(_ampl*EvtComplex(cos(_theta*pi180inv),sin(_theta*pi180inv))*
88 sqrt(_gamma/EvtConst::twoPi)*
89 (cos_phi_0/((_p4_d1+_p4_d2).mass()-_bwm-EvtComplex(0.0,0.5*_gamma))));
90 break;
91
92 case 2:
93 ampl=(_ampl*EvtComplex(cos(_theta*pi180inv),sin(_theta*pi180inv))*
94 sqrt(_gamma/EvtConst::twoPi)*
95 ((1.5*cos_phi_0*cos_phi_0-0.5)/((_p4_d1+_p4_d2).mass()-_bwm-EvtComplex(0.0, 0.5*_gamma))));
96 break;
97
98 case 3:
99 ampl=(_ampl*EvtComplex(cos(_theta*pi180inv),sin(_theta*pi180inv))*
100 sqrt(_gamma/EvtConst::twoPi)*
101 ((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))));
102 break;
103
104 default:
105 report(DEBUG,"EvtGen") << "EvtGen: wrong spin in EvtResonance" << endl;
106 ampl = EvtComplex(0.0);
107 break;
108
109 }
110
111 return ampl;
112}
double sin(const BesAngle a)
Definition: BesAngle.h:210
double cos(const BesAngle a)
Definition: BesAngle.h:213
double mass
double EvtDecayAngle(const EvtVector4R &p, const EvtVector4R &q, const EvtVector4R &d)
ostream & report(Severity severity, const char *facility)

Referenced by EvtDDalitz::decay().

◆ resAmpl() [2/2]

EvtComplex EvtResonance::resAmpl ( )

◆ spin() [1/2]

int EvtResonance::spin ( )
inline

Definition at line 66 of file bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtResonance.hh.

66{ return _spin; }

◆ spin() [2/2]

int EvtResonance::spin ( )
inline

Definition at line 66 of file BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtResonance.hh.

66{ return _spin; }

◆ theta() [1/2]

double EvtResonance::theta ( )
inline

Definition at line 57 of file bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtResonance.hh.

57{ return _theta; }

◆ theta() [2/2]

double EvtResonance::theta ( )
inline

Definition at line 57 of file BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtResonance.hh.

57{ return _theta; }

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