BOSS 6.6.4.p01
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)
 

Detailed Description

Definition at line 31 of file EvtResonance.hh.

Constructor & Destructor Documentation

◆ EvtResonance()

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.

53 :
54 _p4_p(p4_p),_p4_d1(p4_d1), _p4_d2(p4_d2),_ampl(ampl), _theta(theta),
55 _gamma(gamma), _bwm(bwm), _spin(spin) {}
const EvtVector4R & p4_d2()
Definition: EvtResonance.hh:50
const EvtVector4R & p4_d1()
Definition: EvtResonance.hh:49
double bwm()
Definition: EvtResonance.hh:63
double gamma()
Definition: EvtResonance.hh:60
const EvtVector4R & p4_p()
Definition: EvtResonance.hh:48
double theta()
Definition: EvtResonance.hh:57

◆ ~EvtResonance()

EvtResonance::~EvtResonance ( )
virtual

Definition at line 31 of file EvtResonance.cc.

31{}

Member Function Documentation

◆ amplitude()

double EvtResonance::amplitude ( )
inline

Definition at line 54 of file EvtResonance.hh.

54{ return _ampl; }

◆ bwm()

double EvtResonance::bwm ( )
inline

Definition at line 63 of file EvtResonance.hh.

63{ return _bwm; }

◆ gamma()

double EvtResonance::gamma ( )
inline

Definition at line 60 of file EvtResonance.hh.

60{ return _gamma; }

◆ operator=()

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

Definition at line 35 of file 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

◆ p4_d1()

const EvtVector4R & EvtResonance::p4_d1 ( )
inline

Definition at line 49 of file EvtResonance.hh.

49{ return _p4_d1; }

◆ p4_d2()

const EvtVector4R & EvtResonance::p4_d2 ( )
inline

Definition at line 50 of file EvtResonance.hh.

50{ return _p4_d2; }

◆ p4_p()

const EvtVector4R & EvtResonance::p4_p ( )
inline

Definition at line 48 of file EvtResonance.hh.

48{ return _p4_p; }

◆ relBrWig()

EvtComplex EvtResonance::relBrWig ( int  i)

Definition at line 114 of file 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}
double mass() const
Definition: EvtVector4R.cc:39
double mass2() const
Definition: EvtVector4R.hh:116
complex_t R(double Q2, double M2, double G, double Mp2, double Mm2)
Definition: TUtil.h:27

Referenced by EvtDDalitz::decay().

◆ resAmpl()

EvtComplex EvtResonance::resAmpl ( )

Definition at line 59 of file 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)
Definition: EvtKine.cc:33
ostream & report(Severity severity, const char *facility)
Definition: EvtReport.cc:36
@ DEBUG
Definition: EvtReport.hh:53
static const double radToDegrees
Definition: EvtConst.hh:30
static const double twoPi
Definition: EvtConst.hh:29

Referenced by EvtDDalitz::decay().

◆ spin()

int EvtResonance::spin ( )
inline

Definition at line 66 of file EvtResonance.hh.

66{ return _spin; }

◆ theta()

double EvtResonance::theta ( )
inline

Definition at line 57 of file EvtResonance.hh.

57{ return _theta; }

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