BOSS
7.1.2
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtEtap2pipieta.cc
Go to the documentation of this file.
1
//--------------------------------------------------------------------------
2
//
3
// Environment:
4
// This software is part of models developed at BES collaboration
5
// based on the EvtGen framework. If you use all or part
6
// of it, please give an appropriate acknowledgement.
7
//
8
// Copyright Information: See EvtGen/BesCopyright
9
// Copyright (A) 2006 Ping Rong-Gang @IHEP
10
//
11
// Module: EvtEtap2pipieta.cc
12
//
13
// Description: etaprime -> pi+pi- eta
14
// see PHYSICAL REVIEW D 97, 012003 (2018)
15
//
16
// Modification history:
17
// Jun 03 00:42:10 2024 Liaoyuan Dong Module created
18
//------------------------------------------------------------------------
19
20
#include "
EvtGenBase/EvtPatches.hh
"
21
#include <stdlib.h>
22
#include "
EvtGenBase/EvtParticle.hh
"
23
#include "
EvtGenBase/EvtGenKine.hh
"
24
#include "
EvtGenBase/EvtPDL.hh
"
25
#include "
EvtGenBase/EvtVector4R.hh
"
26
#include "
EvtGenBase/EvtReport.hh
"
27
#include "
EvtGenModels/EvtEtap2pipieta.hh
"
28
#include <string>
29
using namespace
std
;
//::endl;
30
31
EvtEtap2pipieta::~EvtEtap2pipieta
() {}
32
33
void
EvtEtap2pipieta::getName
(std::string& model_name){
34
model_name=
"Etap2pipieta"
;
35
}
36
37
EvtDecayBase
*
EvtEtap2pipieta::clone
(){
38
return
new
EvtEtap2pipieta
;
39
}
40
41
void
EvtEtap2pipieta::init
(){
42
checkNDaug
(3);
43
checkSpinParent
(
EvtSpinType::SCALAR
);
44
EvtSpinType::spintype
parenttype =
EvtPDL::getSpinType
(
getParentId
());
45
m_MetaOverMpip = 0.547862/0.13957018;
// m_Meta/m_Mpi
46
m_sqrt3=sqrt(3.0);
47
par[0]=-0.127;
48
par[1]=-0.106;
49
par[2]=1.5e-03;
50
par[3]=-0.082;
51
}
52
53
void
EvtEtap2pipieta::initProbMax
(){
54
setProbMax
(1.03805);
55
}
56
57
void
EvtEtap2pipieta::decay
(
EvtParticle
*p ){
58
/*
59
double maxprob = 0.0;
60
for(int ir=0;ir<=60000000;ir++){
61
p->initializePhaseSpace(getNDaug(),getDaugs());
62
_pd[0]=p->getDaug(0)->getP4();
63
_pd[1]=p->getDaug(1)->getP4();
64
_pd[2]=p->getDaug(2)->getP4();
65
double Prob = AMPsq();
66
if(Prob>maxprob) {
67
maxprob=Prob;
68
std::cout << "Max PDF = " << ir << " prob= " << Prob << std::endl;
69
}
70
}
71
std::cout << "Max!!!!!!!!!!! " << maxprob<< std::endl;
72
*/
73
p->
initializePhaseSpace
(
getNDaug
(),
getDaugs
());
74
_pd[0]=p->
getDaug
(0)->
getP4
();
75
_pd[1]=p->
getDaug
(1)->
getP4
();
76
_pd[2]=p->
getDaug
(2)->
getP4
();
77
double
prob = AMPsq();
78
setProb
(prob);
79
return
;
80
}
81
82
double
EvtEtap2pipieta::AMPsq(){
83
EvtVector4R
petap=_pd[0]+_pd[1]+_pd[2];
84
EvtVector4R
Betap(petap.
get
(0),-1.0*petap.
get
(1),-1.0*petap.
get
(2),-1.0*petap.
get
(3));
85
86
EvtVector4R
pip_etapcms =
boostTo
(_pd[0],Betap);
87
EvtVector4R
pim_etapcms =
boostTo
(_pd[1],Betap);
88
EvtVector4R
eta_etapcms =
boostTo
(_pd[2],Betap);
89
90
double
Q=Betap.mass()-pip_etapcms.
mass
()-pim_etapcms.
mass
()-eta_etapcms.
mass
();
91
92
double
Tp=pip_etapcms.
get
(0)-pip_etapcms.
mass
();
93
double
Tm=pim_etapcms.
get
(0)-pim_etapcms.
mass
();
94
double
Te=eta_etapcms.
get
(0)-eta_etapcms.
mass
();
95
96
double
X=m_sqrt3*(Tp-Tm)/Q;
97
double
Y=(2.0+m_MetaOverMpip)*Te/Q-1.0;
98
99
double
amp2=1.0+par[0]*Y+par[1]*Y*Y+par[2]*X+par[3]*X*X;
100
return
amp2;
101
}
boostTo
EvtDiracSpinor boostTo(const EvtDiracSpinor &sp, const EvtVector4R p4)
Definition
EvtDiracSpinor.cc:75
EvtEtap2pipieta.hh
EvtGenKine.hh
EvtPDL.hh
EvtParticle.hh
EvtPatches.hh
EvtReport.hh
EvtVector4R.hh
EvtDecayBase
Definition
EvtDecayBase.hh:33
EvtDecayBase::checkSpinParent
void checkSpinParent(EvtSpinType::spintype sp)
Definition
EvtDecayBase.cc:520
EvtDecayBase::setProbMax
void setProbMax(double prbmx)
Definition
EvtDecayBase.cc:297
EvtDecayBase::getParentId
EvtId getParentId()
Definition
EvtDecayBase.hh:60
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
EvtDecayProb::setProb
void setProb(double prob)
Definition
EvtDecayProb.hh:34
EvtEtap2pipieta::EvtEtap2pipieta
EvtEtap2pipieta()
Definition
EvtEtap2pipieta.hh:12
EvtEtap2pipieta::~EvtEtap2pipieta
virtual ~EvtEtap2pipieta()
Definition
EvtEtap2pipieta.cc:31
EvtEtap2pipieta::getName
void getName(std::string &name)
Definition
EvtEtap2pipieta.cc:33
EvtEtap2pipieta::initProbMax
void initProbMax()
Definition
EvtEtap2pipieta.cc:53
EvtEtap2pipieta::clone
EvtDecayBase * clone()
Definition
EvtEtap2pipieta.cc:37
EvtEtap2pipieta::init
void init()
Definition
EvtEtap2pipieta.cc:41
EvtEtap2pipieta::decay
void decay(EvtParticle *p)
Definition
EvtEtap2pipieta.cc:57
EvtPDL::getSpinType
static EvtSpinType::spintype getSpinType(EvtId i)
Definition
EvtPDL.hh:61
EvtParticle
Definition
EvtParticle.hh:42
EvtParticle::getP4
const EvtVector4R & getP4() const
Definition
EvtParticle.cc:120
EvtParticle::getDaug
EvtParticle * getDaug(int i)
Definition
EvtParticle.cc:84
EvtParticle::initializePhaseSpace
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
Definition
EvtParticle.cc:1070
EvtSpinType::spintype
spintype
Definition
EvtSpinType.hh:31
EvtSpinType::SCALAR
@ SCALAR
Definition
EvtSpinType.hh:31
EvtVector4R
Definition
EvtVector4R.hh:29
EvtVector4R::mass
double mass() const
Definition
EvtVector4R.cc:39
EvtVector4R::get
double get(int i) const
Definition
EvtVector4R.hh:179
std
Definition
RootEventData/RootEventData_rootcint.cxx:38
7.1.2
Generator
BesEvtGen
BesEvtGen-00-04-30
src
EvtGen
EvtGenModels
EvtEtap2pipieta.cc
Generated by
1.12.0