BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtD0ToKpipi0pi0 Class Reference

#include <EvtD0ToKpipi0pi0.hh>

Inheritance diagram for EvtD0ToKpipi0pi0:

Public Member Functions

 EvtD0ToKpipi0pi0 ()
virtual ~EvtD0ToKpipi0pi0 ()
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 EvtD0ToKpipi0pi0.hh.

Constructor & Destructor Documentation

◆ EvtD0ToKpipi0pi0()

EvtD0ToKpipi0pi0::EvtD0ToKpipi0pi0 ( )
inline

Definition at line 11 of file EvtD0ToKpipi0pi0.hh.

11{}

Referenced by clone().

◆ ~EvtD0ToKpipi0pi0()

EvtD0ToKpipi0pi0::~EvtD0ToKpipi0pi0 ( )
virtual

Definition at line 31 of file EvtD0ToKpipi0pi0.cc.

31{}

Member Function Documentation

◆ clone()

EvtDecayBase * EvtD0ToKpipi0pi0::clone ( )
virtual

Implements EvtDecayBase.

Definition at line 35 of file EvtD0ToKpipi0pi0.cc.

35{ return new EvtD0ToKpipi0pi0; }

◆ decay()

void EvtD0ToKpipi0pi0::decay ( EvtParticle * p)
virtual

Implements EvtDecayBase.

Definition at line 318 of file EvtD0ToKpipi0pi0.cc.

318 {
319 /*
320 double maxprob = 0.0;
321 for(int ir=0;ir<=60000000;ir++){
322 p->initializePhaseSpace(getNDaug(),getDaugs());
323 EvtVector4R Km0 = p->getDaug(0)->getP4();
324 EvtVector4R pi1 = p->getDaug(1)->getP4();
325 EvtVector4R pi2 = p->getDaug(2)->getP4();
326 EvtVector4R pi3 = p->getDaug(3)->getP4();
327 double Km[4],Pip[4],Pi01[4],Pi02[4];
328 Km[0] = Km0.get(0); Pip[0] = pi1.get(0); Pi01[0] = pi2.get(0); Pi02[0] = pi3.get(0);
329 Km[1] = Km0.get(1); Pip[1] = pi1.get(1); Pi01[1] = pi2.get(1); Pi02[1] = pi3.get(1);
330 Km[2] = Km0.get(2); Pip[2] = pi1.get(2); Pi01[2] = pi2.get(2); Pi02[2] = pi3.get(2);
331 Km[3] = Km0.get(3); Pip[3] = pi1.get(3); Pi01[3] = pi2.get(3); Pi02[3] = pi3.get(3);
332 double Prob = calPDF(Km, Pip, Pi01, Pi02);
333 if(Prob>maxprob) {
334 maxprob=Prob;
335 std::cout << "Max PDF = " << ir << " prob= " << Prob << std::endl;
336 }
337 }
338 std::cout << "Max!!!!!!!!!!! " << maxprob<< std::endl;
339 */
341 EvtVector4R Km0 = p->getDaug( 0 )->getP4();
342 EvtVector4R pi1 = p->getDaug( 1 )->getP4();
343 EvtVector4R pi2 = p->getDaug( 2 )->getP4();
344 EvtVector4R pi3 = p->getDaug( 3 )->getP4();
345
346 double Km[4], Pip[4], Pi01[4], Pi02[4];
347 Km[0] = Km0.get( 0 );
348 Pip[0] = pi1.get( 0 );
349 Pi01[0] = pi2.get( 0 );
350 Pi02[0] = pi3.get( 0 );
351 Km[1] = Km0.get( 1 );
352 Pip[1] = pi1.get( 1 );
353 Pi01[1] = pi2.get( 1 );
354 Pi02[1] = pi3.get( 1 );
355 Km[2] = Km0.get( 2 );
356 Pip[2] = pi1.get( 2 );
357 Pi01[2] = pi2.get( 2 );
358 Pi02[2] = pi3.get( 2 );
359 Km[3] = Km0.get( 3 );
360 Pip[3] = pi1.get( 3 );
361 Pi01[3] = pi2.get( 3 );
362 Pi02[3] = pi3.get( 3 );
363 double prob = calPDF( Km, Pip, Pi01, Pi02 );
364 setProb( prob );
365 return;
366}
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 EvtD0ToKpipi0pi0::getName ( std::string & name)
virtual

Implements EvtDecayBase.

Definition at line 33 of file EvtD0ToKpipi0pi0.cc.

33{ model_name = "D0ToKpipi0pi0"; }

◆ init()

void EvtD0ToKpipi0pi0::init ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 37 of file EvtD0ToKpipi0pi0.cc.

37 {
38 checkNArg( 0 );
39 checkNDaug( 4 );
41 /*
42 checkSpinDaughter(0,EvtSpinType::SCALAR);
43 checkSpinDaughter(1,EvtSpinType::SCALAR);
44 checkSpinDaughter(3,EvtSpinType::SCALAR);
45 checkSpinDaughter(4,EvtSpinType::SCALAR);
46 */
47 // std::cout << "Initializing EvtD0ToKpipi0pi0" << std::endl;
48
49 mod[0] = 1;
50 rho[0] = 2.02;
51 phi[0] = -0.75;
52 mod[1] = 1;
53 rho[1] = 1.66;
54 phi[1] = -2.90;
55 mod[2] = 0;
56 rho[2] = 0;
57 phi[2] = 0;
58 mod[3] = 0;
59 rho[3] = 0;
60 phi[3] = 0;
61 mod[4] = 0;
62 rho[4] = 0;
63 phi[4] = 0;
64 mod[5] = 0;
65 rho[5] = 0;
66 phi[5] = 0;
67 mod[6] = 0;
68 rho[6] = 0;
69 phi[6] = 0;
70 mod[7] = 1;
71 rho[7] = 1;
72 phi[7] = 0;
73 mod[8] = 1;
74 rho[8] = 0.842;
75 phi[8] = -2.05;
76 mod[9] = 1;
77 rho[9] = 0.0218;
78 phi[9] = 1.84;
79 mod[10] = 0;
80 rho[10] = 0;
81 phi[10] = 0;
82 mod[11] = 0;
83 rho[11] = 0;
84 phi[11] = 0;
85 mod[12] = 0;
86 rho[12] = 0;
87 phi[12] = 0;
88 mod[13] = 1;
89 rho[13] = 0.0336;
90 phi[13] = -1.55;
91 mod[14] = 1;
92 rho[14] = 0.109;
93 phi[14] = -1.35;
94 mod[15] = 1;
95 rho[15] = 0.196;
96 phi[15] = -2.07;
97 mod[16] = 0;
98 rho[16] = 0;
99 phi[16] = 0;
100 mod[17] = 0;
101 rho[17] = 0;
102 phi[17] = 0;
103 mod[18] = 0;
104 rho[18] = 0;
105 phi[18] = 0;
106 mod[19] = 1;
107 rho[19] = 0.363;
108 phi[19] = 1.93;
109 mod[20] = 0;
110 rho[20] = 0;
111 phi[20] = 0;
112 mod[21] = 0;
113 rho[21] = 0;
114 phi[21] = 0;
115 mod[22] = 0;
116 rho[22] = 0;
117 phi[22] = 0;
118 mod[23] = 1;
119 rho[23] = 0.555;
120 phi[23] = 0.44;
121 mod[24] = 1;
122 rho[24] = 0.526;
123 phi[24] = -1.84;
124 mod[25] = 0;
125 rho[25] = 0;
126 phi[25] = 0;
127 mod[26] = 1;
128 rho[26] = 1;
129 phi[26] = 0.64;
130 mod[27] = 0;
131 rho[27] = 0;
132 phi[27] = 0;
133 mod[28] = 0;
134 rho[28] = 0;
135 phi[28] = 0;
136 mod[29] = 1;
137 rho[29] = 3.34;
138 phi[29] = -0.02;
139 mod[30] = 0;
140 rho[30] = 0;
141 phi[30] = 0;
142 mod[31] = 0;
143 rho[31] = 0;
144 phi[31] = 0;
145 mod[32] = 0;
146 rho[32] = 0;
147 phi[32] = 0;
148 mod[33] = 0;
149 rho[33] = 0;
150 phi[33] = 0;
151 mod[34] = 1;
152 rho[34] = 1.76;
153 phi[34] = -2.39;
154 mod[35] = 1;
155 rho[35] = 0.175;
156 phi[35] = 1.59;
157 mod[36] = 1;
158 rho[36] = 0.397;
159 phi[36] = 1.45;
160 mod[37] = 0;
161 rho[37] = 0;
162 phi[37] = 0;
163 mod[38] = 0;
164 rho[38] = 0;
165 phi[38] = 0;
166 mod[39] = 0;
167 rho[39] = 0;
168 phi[39] = 0;
169 mod[40] = 0;
170 rho[40] = 0;
171 phi[40] = 0;
172 mod[41] = 1;
173 rho[41] = 1.02;
174 phi[41] = 0.52;
175 mod[42] = 0;
176 rho[42] = 0;
177 phi[42] = 0;
178 mod[43] = 0;
179 rho[43] = 0;
180 phi[43] = 0;
181 mod[44] = 0;
182 rho[44] = 0;
183 phi[44] = 0;
184 mod[45] = 0;
185 rho[45] = 0;
186 phi[45] = 0;
187 mod[46] = 1;
188 rho[46] = 0.146;
189 phi[46] = 1.24;
190 mod[47] = 1;
191 rho[47] = 0.0978;
192 phi[47] = -2.89;
193 mod[48] = 1;
194 rho[48] = 0.233;
195 phi[48] = 2.41;
196 mod[49] = 0;
197 rho[49] = 0;
198 phi[49] = 0;
199 mod[50] = 1;
200 rho[50] = 0.424;
201 phi[50] = -0.94;
202 mod[51] = 1;
203 rho[51] = 1.03;
204 phi[51] = -1.93;
205 mod[52] = 0;
206 rho[52] = 0;
207 phi[52] = 0;
208 mod[53] = 0;
209 rho[53] = 0;
210 phi[53] = 0;
211 mod[54] = 1;
212 rho[54] = 0.474;
213 phi[54] = -1.17;
214 mod[55] = 0;
215 rho[55] = 0;
216 phi[55] = 0;
217 mod[56] = 0;
218 rho[56] = 0;
219 phi[56] = 0;
220 mod[57] = 0;
221 rho[57] = 0;
222 phi[57] = 0;
223 mod[58] = 0;
224 rho[58] = 0;
225 phi[58] = 0;
226 mod[59] = 0;
227 rho[59] = 0;
228 phi[59] = 0;
229 mod[60] = 0;
230 rho[60] = 0;
231 phi[60] = 0;
232 mod[61] = 1;
233 rho[61] = 6.74;
234 phi[61] = -1.74;
235 mod[62] = 0;
236 rho[62] = 0;
237 phi[62] = 0;
238 mod[63] = 0;
239 rho[63] = 0;
240 phi[63] = 0;
241 mod[64] = 0;
242 rho[64] = 0;
243 phi[64] = 0;
244 mod[65] = 0;
245 rho[65] = 0;
246 phi[65] = 0;
247 mod[66] = 1;
248 rho[66] = 1.54;
249 phi[66] = -2.93;
250 mod[67] = 1;
251 rho[67] = 1.36;
252 phi[67] = 2.23;
253
254 mass[0] = 1.23;
255 width[0] = 0.50204;
256 mass[1] = 1.2723;
257 width[1] = 0.09;
258 mass[2] = 0.89166;
259 width[2] = 0.0508;
260 mass[3] = 0.89581;
261 width[3] = 0.0474;
262 mass[4] = 0.77511;
263 width[4] = 0.1491;
264
265 // for (int i=0; i<68; i++) {
266 // cout << i << " rho,phi = " << rho[i] << ", "<< phi[i] << endl;
267 // }
268 mD = 1.86486;
269 rRes = 3.0;
270 rD = 5.0;
271 metap = 0.95778;
272 mk0 = 0.497614;
273 mass_Kaon = 0.49368;
274 mass_Pion = 0.13957;
275 math_pi = 3.1415926;
276 mass_Pi0 = 0.1349766;
277 mkstrm = 0.89594;
278 mkstr0 = 0.89594;
279
280 pi = 3.1415926;
281 mpi = 0.13957;
282 g1 = 0.5468;
283 g2 = 0.23;
284
285 int GG[4][4] = { { 1, 0, 0, 0 }, { 0, -1, 0, 0 }, { 0, 0, -1, 0 }, { 0, 0, 0, -1 } };
286 int EE[4][4][4][4] = {
287 { { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
288 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 1 }, { 0, 0, -1, 0 } },
289 { { 0, 0, 0, 0 }, { 0, 0, 0, -1 }, { 0, 0, 0, 0 }, { 0, 1, 0, 0 } },
290 { { 0, 0, 0, 0 }, { 0, 0, 1, 0 }, { 0, -1, 0, 0 }, { 0, 0, 0, 0 } } },
291 { { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, -1 }, { 0, 0, 1, 0 } },
292 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
293 { { 0, 0, 0, 1 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { -1, 0, 0, 0 } },
294 { { 0, 0, -1, 0 }, { 0, 0, 0, 0 }, { 1, 0, 0, 0 }, { 0, 0, 0, 0 } } },
295 { { { 0, 0, 0, 0 }, { 0, 0, 0, 1 }, { 0, 0, 0, 0 }, { 0, -1, 0, 0 } },
296 { { 0, 0, 0, -1 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 1, 0, 0, 0 } },
297 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
298 { { 0, 1, 0, 0 }, { -1, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } } },
299 { { { 0, 0, 0, 0 }, { 0, 0, -1, 0 }, { 0, 1, 0, 0 }, { 0, 0, 0, 0 } },
300 { { 0, 0, 1, 0 }, { 0, 0, 0, 0 }, { -1, 0, 0, 0 }, { 0, 0, 0, 0 } },
301 { { 0, -1, 0, 0 }, { 1, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
302 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } } } };
303 for ( int i = 0; i < 4; i++ )
304 {
305 for ( int j = 0; j < 4; j++ )
306 {
307 G[i][j] = GG[i][j];
308 for ( int k = 0; k < 4; k++ )
309 {
310 for ( int l = 0; l < 4; l++ ) { E[i][j][k][l] = EE[i][j][k][l]; }
311 }
312 }
313 }
314}
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 EvtD0ToKpipi0pi0::initProbMax ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 316 of file EvtD0ToKpipi0pi0.cc.

316{ setProbMax( 8060.0 ); }
void setProbMax(double prbmx)

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