BOSS 7.1.2
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtD0ToKpipipi Class Reference

#include <EvtD0ToKpipipi.hh>

+ Inheritance diagram for EvtD0ToKpipipi:

Public Member Functions

 EvtD0ToKpipipi ()
 
virtual ~EvtD0ToKpipipi ()
 
void getName (std::string &name)
 
EvtDecayBaseclone ()
 
void init ()
 
void initProbMax ()
 
void decay (EvtParticle *p)
 
- Public Member Functions inherited from EvtDecayProb
void makeDecay (EvtParticle *p)
 
void setProb (double prob)
 
double getProb ()
 
void setWeight (double weight)
 
virtual ~EvtDecayProb ()
 
- Public Member Functions inherited from EvtDecayBase
virtual std::string commandName ()
 
virtual void command (std::string cmd)
 
double getProbMax (double prob)
 
double resetProbMax (double prob)
 
 EvtDecayBase ()
 
virtual ~EvtDecayBase ()
 
virtual bool matchingDecay (const EvtDecayBase &other) const
 
EvtId getParentId ()
 
double getBranchingFraction ()
 
void disableCheckQ ()
 
void checkQ ()
 
int getNDaug ()
 
EvtIdgetDaugs ()
 
EvtId getDaug (int i)
 
int getNArg ()
 
int getPHOTOS ()
 
void setPHOTOS ()
 
void setVerbose ()
 
void setSummary ()
 
double * getArgs ()
 
std::string * getArgsStr ()
 
double getArg (int j)
 
std::string getArgStr (int j)
 
std::string getModelName ()
 
int getDSum ()
 
int summary ()
 
int verbose ()
 
void saveDecayInfo (EvtId ipar, int ndaug, EvtId *daug, int narg, std::vector< std::string > &args, std::string name, double brfr)
 
void printSummary ()
 
void setProbMax (double prbmx)
 
void noProbMax ()
 
void checkNArg (int a1, int a2=-1, int a3=-1, int a4=-1)
 
void checkNDaug (int d1, int d2=-1)
 
void checkSpinParent (EvtSpinType::spintype sp)
 
void checkSpinDaughter (int d1, EvtSpinType::spintype sp)
 
virtual int nRealDaughters ()
 

Additional Inherited Members

- Static Public Member Functions inherited from EvtDecayBase
static void findMasses (EvtParticle *p, int ndaugs, EvtId daugs[10], double masses[10])
 
static void findMass (EvtParticle *p)
 
static double findMaxMass (EvtParticle *p)
 
- Protected Member Functions inherited from EvtDecayBase
bool daugsDecayedByParentModel ()
 
- Protected Attributes inherited from EvtDecayBase
bool _daugsDecayedByParentModel
 

Detailed Description

Definition at line 8 of file EvtD0ToKpipipi.hh.

Constructor & Destructor Documentation

◆ EvtD0ToKpipipi()

EvtD0ToKpipipi::EvtD0ToKpipipi ( )
inline

Definition at line 12 of file EvtD0ToKpipipi.hh.

12{}

Referenced by clone().

◆ ~EvtD0ToKpipipi()

EvtD0ToKpipipi::~EvtD0ToKpipipi ( )
virtual

Definition at line 31 of file EvtD0ToKpipipi.cc.

31{}

Member Function Documentation

◆ clone()

EvtDecayBase * EvtD0ToKpipipi::clone ( )
virtual

Implements EvtDecayBase.

Definition at line 37 of file EvtD0ToKpipipi.cc.

37 {
38 return new EvtD0ToKpipipi;
39}

◆ decay()

void EvtD0ToKpipipi::decay ( EvtParticle * p)
virtual

Implements EvtDecayBase.

Definition at line 169 of file EvtD0ToKpipipi.cc.

169 {
170/*
171 double maxprob = 0.0;
172 for(int ir=0;ir<=60000000;ir++){
173 p->initializePhaseSpace(getNDaug(),getDaugs());
174 EvtVector4R Km0 = p->getDaug(0)->getP4();
175 EvtVector4R pi1 = p->getDaug(1)->getP4();
176 EvtVector4R pi2 = p->getDaug(2)->getP4();
177 EvtVector4R pi3 = p->getDaug(3)->getP4();
178 double Km[4],Pip1[4],Pip2[4],Pim[4];
179 Km[0] = Km0.get(0); Pip1[0] = pi1.get(0); Pip2[0] = pi2.get(0); Pim[0] = pi3.get(0);
180 Km[1] = Km0.get(1); Pip1[1] = pi1.get(1); Pip2[1] = pi2.get(1); Pim[1] = pi3.get(1);
181 Km[2] = Km0.get(2); Pip1[2] = pi1.get(2); Pip2[2] = pi2.get(2); Pim[2] = pi3.get(2);
182 Km[3] = Km0.get(3); Pip1[3] = pi1.get(3); Pip2[3] = pi2.get(3); Pim[3] = pi3.get(3);
183 double Prob = calPDF(Km, Pip1, Pip2, Pim);
184 if(Prob>maxprob) {
185 maxprob=Prob;
186 std::cout << "Max PDF = " << ir << " prob= " << Prob << std::endl;
187 }
188 }
189 std::cout << "Max!!!!!!!!!!! " << maxprob<< std::endl;
190*/
192 EvtVector4R Km0 = p->getDaug(0)->getP4();
193 EvtVector4R pi1 = p->getDaug(1)->getP4();
194 EvtVector4R pi2 = p->getDaug(2)->getP4();
195 EvtVector4R pi3 = p->getDaug(3)->getP4();
196
197 double Km[4],Pip1[4],Pip2[4],Pim[4];
198 Km[0] = Km0.get(0); Pip1[0] = pi1.get(0); Pip2[0] = pi2.get(0); Pim[0] = pi3.get(0);
199 Km[1] = Km0.get(1); Pip1[1] = pi1.get(1); Pip2[1] = pi2.get(1); Pim[1] = pi3.get(1);
200 Km[2] = Km0.get(2); Pip1[2] = pi1.get(2); Pip2[2] = pi2.get(2); Pim[2] = pi3.get(2);
201 Km[3] = Km0.get(3); Pip1[3] = pi1.get(3); Pip2[3] = pi2.get(3); Pim[3] = pi3.get(3);
202 double prob = calPDF(Km, Pip1, Pip2, Pim);
203 setProb(prob);
204 return;
205}
character *LEPTONflag integer iresonances real pi2
EvtId * getDaugs()
void setProb(double prob)
const EvtVector4R & getP4() const
EvtParticle * getDaug(int i)
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
double get(int i) const

◆ getName()

void EvtD0ToKpipipi::getName ( std::string & name)
virtual

Implements EvtDecayBase.

Definition at line 33 of file EvtD0ToKpipipi.cc.

33 {
34 model_name="D0ToKpipipi";
35}

◆ init()

void EvtD0ToKpipipi::init ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 41 of file EvtD0ToKpipipi.cc.

41 {
42 checkNArg(0);
43 checkNDaug(4);
45/*
46 checkSpinDaughter(0,EvtSpinType::SCALAR);
47 checkSpinDaughter(1,EvtSpinType::SCALAR);
48 checkSpinDaughter(3,EvtSpinType::SCALAR);
49 checkSpinDaughter(4,EvtSpinType::SCALAR);
50*/
51 //std::cout << "Initializing EvtD0ToKpipipi" << std::endl;
52
53 width[0] = 0.09;
54 width[1] = 0.044183653178315;
55 width[2] = 0.541879469380012;
56 width[3] = 0.148423336450619;
57 mass[0] = 1.272;
58 mass[1] = 0.894781734682169;
59 mass[2] = 1.3622013558915;
60 mass[3] = 0.779143408171384;
61
62 phi[0] = 2.34794687054858;
63 rho[0] = 0.0759345115620669;
64 phi[1] = -2.24641399153466;
65 rho[1] = 0.0383327604903577;
66 phi[2] = 2.48955684856045;
67 rho[2] = 0.0931445480476023;
68
69 phi[3] = 0;
70 rho[3] = 1;
71
72 phi[4] = -2.10558220063012;
73 rho[4] = 0.347041869435286;
74 phi[5] = 1.47445088061872;
75 phi[6] = 3.00243265559304;
76 rho[5] = 0.00965088341753795;
77 rho[6] = 0.120536507325731;
78 phi[7] = -2.45477499325158;
79 rho[7] = 0.101419048440676;
80 phi[8] = -1.35809992343491;
81 rho[8] = 4.28149643321317;
82 phi[9] = -2.45149221243198;
83 rho[9] = 0.339492272598394;
84 phi[10] = -0.17419389225461;
85 rho[10] = -0.143619437541254;
86
87 phi[11] = -2.08744386934208;
88 rho[11] = 0.296286583716349;
89 phi[12] = 0.;
90 rho[12] = 0.;
91 phi[13] = -0.432190571560873;
92 rho[13] = 0.657344690733276;
93 phi[14] = -1.39790294886865;
94 rho[14] = 1.71208007006123;
95 phi[15] = 1.58945300476228;
96 rho[15] = 3.58248347683687;
97 phi[16] = 2.58249107256307;
98 rho[16] = -1.10728829503506;
99 phi[17] = -0.163623135170955;
100 rho[17] = 1.70863070178363;
101 phi[18] = -0.134699023080211;
102 rho[18] = 0.567531283682344;
103 phi[19] = -2.12670610368279;
104 rho[19] = 0.276571752504914;
105 phi[20] = -1.3352622107357;
106 rho[20] = 0.416634203151278;
107
108 phi[21] = -2.91571684221842;
109 rho[21] = 0.423062298489176;
110 phi[22] = 2.4544220004327;
111 rho[22] = 1.4017194038459;
112 phi[23] = -2.23388390670423;
113 rho[23] = 4.11110400629068;
114
115 //for (int i=0; i<24; i++) {
116 // cout << i << " rho,phi = " << rho[i] << ", "<< phi[i] << endl;
117 //}
118
119 mD = 1.86486;
120 rRes = 3.0;
121 rD = 5.0;
122 metap = 0.95778;
123 mkstr = 0.89594;
124 mk0 = 0.497614;
125 mass_Kaon = 0.49368;
126 mass_Pion = 0.13957;
127 mass_Pi0 = 0.1349766;
128 math_pi = 3.1415926;
129
130 pi = 3.1415926;
131 mpi = 0.13957;
132 g1 = 0.5468;
133 g2 = 0.23;
134
135 int GG[4][4] = { {1,0,0,0}, {0,-1,0,0}, {0,0,-1,0}, {0,0,0,-1} };
136 int EE[4][4][4][4] =
137 { { {{0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0} },
138 {{0,0,0,0}, {0,0,0,0}, {0,0,0,1}, {0,0,-1,0}},
139 {{0,0,0,0}, {0,0,0,-1}, {0,0,0,0}, {0,1,0,0} },
140 {{0,0,0,0}, {0,0,1,0}, {0,-1,0,0}, {0,0,0,0} } },
141 { {{0,0,0,0}, {0,0,0,0}, {0,0,0,-1}, {0,0,1,0} },
142 {{0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0} },
143 {{0,0,0,1}, {0,0,0,0}, {0,0,0,0}, {-1,0,0,0}},
144 {{0,0,-1,0}, {0,0,0,0}, {1,0,0,0}, {0,0,0,0} } },
145 { {{0,0,0,0}, {0,0,0,1}, {0,0,0,0}, {0,-1,0,0}},
146 {{0,0,0,-1}, {0,0,0,0}, {0,0,0,0}, {1,0,0,0} },
147 {{0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0} },
148 {{0,1,0,0}, {-1,0,0,0}, {0,0,0,0}, {0,0,0,0} } },
149 { {{0,0,0,0}, {0,0,-1,0}, {0,1,0,0}, {0,0,0,0} },
150 {{0,0,1,0}, {0,0,0,0}, {-1,0,0,0}, {0,0,0,0} },
151 {{0,-1,0,0}, {1,0,0,0}, {0,0,0,0}, {0,0,0,0} },
152 {{0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0} } } };
153 for (int i=0; i<4; i++) {
154 for (int j=0; j<4; j++) {
155 G[i][j] = GG[i][j];
156 for (int k=0; k<4; k++) {
157 for (int l=0; l<4; l++) {
158 E[i][j][k][l] = EE[i][j][k][l];
159 }
160 }
161 }
162 }
163}
void checkSpinParent(EvtSpinType::spintype sp)
void checkNDaug(int d1, int d2=-1)
void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)

◆ initProbMax()

void EvtD0ToKpipipi::initProbMax ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 165 of file EvtD0ToKpipipi.cc.

165 {
166 setProbMax(720.0);
167}
void setProbMax(double prbmx)

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