BOSS
7.0.5
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtPhiDalitz.cc
Go to the documentation of this file.
1
#include "
EvtGenBase/EvtPatches.hh
"
2
3
#include <stdlib.h>
4
#include <math.h>
5
#include "
EvtGenBase/EvtVector4R.hh
"
6
#include "
EvtGenBase/EvtParticle.hh
"
7
#include "
EvtGenBase/EvtGenKine.hh
"
8
#include "
EvtGenBase/EvtPDL.hh
"
9
#include "
EvtGenModels/EvtPhiDalitz.hh
"
10
#include "
EvtGenBase/EvtReport.hh
"
11
#include <string>
12
13
EvtPhiDalitz::~EvtPhiDalitz
() {}
14
15
void
EvtPhiDalitz::getName
(std::string& model_name){
16
17
model_name=
"PHI_DALITZ"
;
18
19
}
20
21
22
EvtDecayBase
*
EvtPhiDalitz::clone
(){
23
24
return
new
EvtPhiDalitz
;
25
26
}
27
28
void
EvtPhiDalitz::init
(){
29
30
// check that there are 0 arguments
31
checkNArg
(0);
32
checkNDaug
(3);
33
34
checkSpinParent
(
EvtSpinType::VECTOR
);
35
36
checkSpinDaughter
(0,
EvtSpinType::SCALAR
);
37
checkSpinDaughter
(1,
EvtSpinType::SCALAR
);
38
checkSpinDaughter
(2,
EvtSpinType::SCALAR
);
39
}
40
41
42
43
void
EvtPhiDalitz::decay
(
EvtParticle
*p){
44
45
EvtId
PIP=
EvtPDL::getId
(
"pi+"
);
46
EvtId
PIM=
EvtPDL::getId
(
"pi-"
);
47
EvtId
PIZ=
EvtPDL::getId
(
"pi0"
);
48
EvtId
RHOP=
EvtPDL::getId
(
"rho+"
);
49
EvtId
RHOM=
EvtPDL::getId
(
"rho-"
);
50
EvtId
RHOZ=
EvtPDL::getId
(
"rho0"
);
51
EvtId
OMEGA=
EvtPDL::getId
(
"omega"
);
52
53
p->
initializePhaseSpace
(
getNDaug
(),
getDaugs
());
54
55
EvtVector4R
Ppip = p->
getDaug
(0)->
getP4
();
56
EvtVector4R
Ppim = p->
getDaug
(1)->
getP4
();
57
EvtVector4R
Ppi0 = p->
getDaug
(2)->
getP4
();
58
EvtVector4R
Qp = (Ppim + Ppi0);
59
EvtVector4R
Qm = (Ppip + Ppi0);
60
EvtVector4R
Q0 = (Ppip + Ppim);
61
double
m2_pip = pow(
EvtPDL::getMeanMass
(PIP),2);
62
double
m2_pim = pow(
EvtPDL::getMeanMass
(PIM),2);
63
double
m2_pi0 = pow(
EvtPDL::getMeanMass
(PIZ),2);
64
double
M2rhop = pow(
EvtPDL::getMeanMass
(RHOP),2);
65
double
M2rhom = pow(
EvtPDL::getMeanMass
(RHOM),2);
66
double
M2rho0 = pow(
EvtPDL::getMeanMass
(RHOZ),2);
67
double
M2omega = pow(
EvtPDL::getMeanMass
(OMEGA),2);
68
69
double
Wrhop =
EvtPDL::getWidth
(RHOP);
70
double
Wrhom =
EvtPDL::getWidth
(RHOM);
71
double
Wrho0 =
EvtPDL::getWidth
(RHOZ);
72
double
Womega =
EvtPDL::getWidth
(OMEGA);
73
74
EvtComplex
Atot(0,0);
75
76
//Rho+ Risonance Amplitude
77
double
Gp = Wrhop*pow(((Qp.
mass2
()-m2_pim-m2_pi0)/2-M2rhop/4)/(M2rhop/4-(m2_pim+m2_pi0)/2),3/2)*(M2rhop/Qp.
mass2
());
78
EvtComplex
Drhop((Qp.
mass2
()-M2rhop),Qp.
mass
()*Gp);
79
EvtComplex
A1(M2rhop/Drhop);
80
81
//Rho- Risonance Amplitude
82
double
Gm = Wrhom*pow(((Qm.
mass2
()-m2_pip-m2_pi0)/2-M2rhom/4)/(M2rhom/4-(m2_pip+m2_pi0)/2),3/2)*(M2rhom/Qm.
mass2
());
83
EvtComplex
Drhom((Qm.
mass2
()-M2rhom),Qm.
mass
()*Gm);
84
EvtComplex
A2(M2rhom/Drhom);
85
86
//Rho0 Risonance Amplitude
87
double
G0 = Wrho0*pow(((Q0.
mass2
()-m2_pip-m2_pim)/2-M2rho0/4)/(M2rho0/4-(m2_pip+m2_pim)/2),3/2)*(M2rho0/Q0.
mass2
());
88
EvtComplex
Drho0((Q0.
mass2
()-M2rho0),Q0.
mass
()*G0);
89
EvtComplex
A3(M2rho0/Drho0);
90
91
//Omega Risonance Amplitude
92
EvtComplex
OmegaPhase(0,-0.22);
93
EvtComplex
DOmega((Q0.
mass2
()-M2omega),Q0.
mass
()*Womega);
94
EvtComplex
A4(0.0071*M2omega*
exp
(OmegaPhase)/DOmega);
95
96
//Direct Decay Amplitude
97
EvtComplex
DirPhase(0,2.47);
98
EvtComplex
A5(0.78*
exp
(DirPhase));
99
100
Atot=A1+A2+A3+A4+A5;
101
102
vertex
(0,Atot);
103
vertex
(1,Atot);
104
vertex
(2,Atot);
105
106
return ;
107
108
}
109
110
111
112
113
114
115
exp
EvtComplex exp(const EvtComplex &c)
Definition:
EvtComplex.hh:252
EvtGenKine.hh
EvtPDL.hh
EvtParticle.hh
EvtPatches.hh
EvtPhiDalitz.hh
EvtReport.hh
EvtVector4R.hh
EvtComplex
Definition:
EvtComplex.hh:28
EvtDecayAmp::vertex
void vertex(const EvtComplex &)
Definition:
EvtDecayAmp.hh:37
EvtDecayBase
Definition:
EvtDecayBase.hh:33
EvtDecayBase::checkSpinDaughter
void checkSpinDaughter(int d1, EvtSpinType::spintype sp)
Definition:
EvtDecayBase.cc:533
EvtDecayBase::checkSpinParent
void checkSpinParent(EvtSpinType::spintype sp)
Definition:
EvtDecayBase.cc:520
EvtDecayBase::getNDaug
int getNDaug()
Definition:
EvtDecayBase.hh:64
EvtDecayBase::checkNDaug
void checkNDaug(int d1, int d2=-1)
Definition:
EvtDecayBase.cc:504
EvtDecayBase::getDaugs
EvtId * getDaugs()
Definition:
EvtDecayBase.hh:65
EvtDecayBase::checkNArg
void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)
Definition:
EvtDecayBase.cc:482
EvtId
Definition:
EvtId.hh:27
EvtPDL::getWidth
static double getWidth(EvtId i)
Definition:
EvtPDL.hh:54
EvtPDL::getMeanMass
static double getMeanMass(EvtId i)
Definition:
EvtPDL.hh:45
EvtPDL::getId
static EvtId getId(const std::string &name)
Definition:
EvtPDL.cc:287
EvtParticle
Definition:
EvtParticle.hh:42
EvtParticle::getP4
const EvtVector4R & getP4() const
Definition:
EvtParticle.cc:121
EvtParticle::getDaug
EvtParticle * getDaug(int i)
Definition:
EvtParticle.cc:85
EvtParticle::initializePhaseSpace
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
Definition:
EvtParticle.cc:1071
EvtPhiDalitz::clone
EvtDecayBase * clone()
Definition:
EvtPhiDalitz.cc:22
EvtPhiDalitz::init
void init()
Definition:
EvtPhiDalitz.cc:28
EvtPhiDalitz::decay
void decay(EvtParticle *p)
Definition:
EvtPhiDalitz.cc:43
EvtPhiDalitz::EvtPhiDalitz
EvtPhiDalitz()
Definition:
EvtPhiDalitz.hh:13
EvtPhiDalitz::~EvtPhiDalitz
virtual ~EvtPhiDalitz()
Definition:
EvtPhiDalitz.cc:13
EvtPhiDalitz::getName
void getName(std::string &name)
Definition:
EvtPhiDalitz.cc:15
EvtSpinType::SCALAR
@ SCALAR
Definition:
EvtSpinType.hh:31
EvtSpinType::VECTOR
@ VECTOR
Definition:
EvtSpinType.hh:31
EvtVector4R
Definition:
EvtVector4R.hh:29
EvtVector4R::mass
double mass() const
Definition:
EvtVector4R.cc:39
EvtVector4R::mass2
double mass2() const
Definition:
EvtVector4R.hh:116
source
Generator
BesEvtGen
BesEvtGen-00-04-08
src
EvtGen
EvtGenModels
EvtPhiDalitz.cc
Generated by
1.9.6