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

#include <EvtD0ToKSpipipi0pi0.hh>

Inheritance diagram for EvtD0ToKSpipipi0pi0:

Public Member Functions

 EvtD0ToKSpipipi0pi0 ()
virtual ~EvtD0ToKSpipipi0pi0 ()
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 9 of file EvtD0ToKSpipipi0pi0.hh.

Constructor & Destructor Documentation

◆ EvtD0ToKSpipipi0pi0()

EvtD0ToKSpipipi0pi0::EvtD0ToKSpipipi0pi0 ( )
inline

Definition at line 12 of file EvtD0ToKSpipipi0pi0.hh.

12{}

Referenced by clone().

◆ ~EvtD0ToKSpipipi0pi0()

EvtD0ToKSpipipi0pi0::~EvtD0ToKSpipipi0pi0 ( )
virtual

Definition at line 36 of file EvtD0ToKSpipipi0pi0.cc.

36{}

Member Function Documentation

◆ clone()

EvtDecayBase * EvtD0ToKSpipipi0pi0::clone ( )
virtual

Implements EvtDecayBase.

Definition at line 42 of file EvtD0ToKSpipipi0pi0.cc.

◆ decay()

void EvtD0ToKSpipipi0pi0::decay ( EvtParticle * p)
virtual

Implements EvtDecayBase.

Definition at line 260 of file EvtD0ToKSpipipi0pi0.cc.

260 {
261 /*
262 double maxprob = 0.0;
263 for(int ir=0;ir<=60000000;ir++){
264
265 p->initializePhaseSpace(getNDaug(),getDaugs());
266 EvtVector4R D1 = p->getDaug(0)->getP4();
267 EvtVector4R D2 = p->getDaug(1)->getP4();
268 EvtVector4R D3 = p->getDaug(2)->getP4();
269 EvtVector4R D4 = p->getDaug(3)->getP4();
270 EvtVector4R D5 = p->getDaug(4)->getP4();
271
272 double P1[4], P2[4], P3[4], P4[4], P5[4];
273 P1[0] = D1.get(0); P1[1] = D1.get(1); P1[2] = D1.get(2); P1[3] = D1.get(3);
274 P2[0] = D2.get(0); P2[1] = D2.get(1); P2[2] = D2.get(2); P2[3] = D2.get(3);
275 P3[0] = D3.get(0); P3[1] = D3.get(1); P3[2] = D3.get(2); P3[3] = D3.get(3);
276 P4[0] = D4.get(0); P4[1] = D4.get(1); P4[2] = D4.get(2); P4[3] = D4.get(3);
277 P5[0] = D5.get(0); P5[1] = D5.get(1); P5[2] = D5.get(2); P5[3] = D5.get(3);
278
279 double value;
280 int g0[8]={1,1,1,0,1,1,1,1};
281 int g1[8]={1,1,1,0,1,1,1,1};
282 double r0[8]={1,1,1,0,1,1,1,1};
283 double r1[8]={1,1,1,0,1,1,1,1};
284 int spin[8]={0,1,2,0,1020,1020,0,1};
285
286 int nstates=8;
287 calEva(P1, P4, P2, P3, P5, mass1, mass2, width1, width2, rho, phi, r0, r1, g0, g1, spin,
288 modetype, nstates, value);
289
290 if (value<0) continue;
291 if(value>maxprob) {
292 maxprob=value;
293 cout << "ir= " << ir << endl;
294 cout << "double P1[4] = {" << P1[0] <<","<< P1[1] <<","<< P1[2] <<","<< P1[3]
295 <<"};"<< endl; cout << "double P2[4] = {" << P2[0] <<","<< P2[1] <<","<< P2[2] <<","<< P2[3]
296 <<"};"<< endl; cout << "double P3[4] = {" << P3[0] <<","<< P3[1] <<","<< P3[2] <<","<< P3[3]
297 <<"};"<< endl; cout << "double P4[4] = {" << P4[0] <<","<< P4[1] <<","<< P4[2] <<","<< P4[3]
298 <<"};"<< endl; cout << "double P5[4] = {" << P5[0] <<","<< P5[1] <<","<< P5[2] <<","<< P5[3]
299 <<"};"<< endl; cout << "MAX====> " << maxprob << endl;
300
301 }
302 }
303 printf("MAXprob = %.10f\n",maxprob);
304 */
305
307 EvtVector4R D1 = p->getDaug( 0 )->getP4();
308 EvtVector4R D2 = p->getDaug( 1 )->getP4();
309 EvtVector4R D3 = p->getDaug( 2 )->getP4();
310 EvtVector4R D4 = p->getDaug( 3 )->getP4();
311 EvtVector4R D5 = p->getDaug( 4 )->getP4();
312
313 double P1[4], P2[4], P3[4], P4[4], P5[4];
314 if ( getParentId() == EvtPDL::getId( "D0" ) )
315 {
316 P1[0] = D1.get( 0 );
317 P1[1] = D1.get( 1 );
318 P1[2] = D1.get( 2 );
319 P1[3] = D1.get( 3 );
320 P2[0] = D2.get( 0 );
321 P2[1] = D2.get( 1 );
322 P2[2] = D2.get( 2 );
323 P2[3] = D2.get( 3 );
324 P3[0] = D3.get( 0 );
325 P3[1] = D3.get( 1 );
326 P3[2] = D3.get( 2 );
327 P3[3] = D3.get( 3 );
328 P4[0] = D4.get( 0 );
329 P4[1] = D4.get( 1 );
330 P4[2] = D4.get( 2 );
331 P4[3] = D4.get( 3 );
332 P5[0] = D5.get( 0 );
333 P5[1] = D5.get( 1 );
334 P5[2] = D5.get( 2 );
335 P5[3] = D5.get( 3 );
336 }
337 else
338 {
339 P1[0] = D1.get( 0 );
340 P1[1] = -( D1.get( 1 ) );
341 P1[2] = -( D1.get( 2 ) );
342 P1[3] = -( D1.get( 3 ) );
343 P2[0] = D2.get( 0 );
344 P2[1] = -( D2.get( 1 ) );
345 P2[2] = -( D2.get( 2 ) );
346 P2[3] = -( D2.get( 3 ) );
347 P3[0] = D3.get( 0 );
348 P3[1] = -( D3.get( 1 ) );
349 P3[2] = -( D3.get( 2 ) );
350 P3[3] = -( D3.get( 3 ) );
351 P4[0] = D4.get( 0 );
352 P4[1] = -( D4.get( 1 ) );
353 P4[2] = -( D4.get( 2 ) );
354 P4[3] = -( D4.get( 3 ) );
355 P5[0] = D5.get( 0 );
356 P5[1] = -( D5.get( 1 ) );
357 P5[2] = -( D5.get( 2 ) );
358 P5[3] = -( D5.get( 3 ) );
359 }
360
361 double value;
362 int g0[20] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };
363 int g1[20] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };
364 int spin[20] = { 0, 1, 2, 1020, 1120, 1020, 1120, 1020, 1120, 1220,
365 0, 2, 1, 1020, 1120, 1220, 1, 1020, 1120, 1020 };
366
367 int nstates = 20;
368 calEva( P1, P2, P3, P4, P5, mass1, mass2, width1, width2, rho, phi, r0, r1, g0, g1, spin,
369 modetype, nstates, value );
370 setProb( value );
371
372 return;
373}
EvtId getParentId()
EvtId * getDaugs()
void setProb(double prob)
static EvtId getId(const std::string &name)
Definition EvtPDL.cc:272
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 EvtD0ToKSpipipi0pi0::getName ( std::string & name)
virtual

Implements EvtDecayBase.

Definition at line 38 of file EvtD0ToKSpipipi0pi0.cc.

38 {
39 model_name = "D0ToKSpipipi0pi0";
40}

◆ init()

void EvtD0ToKSpipipi0pi0::init ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 44 of file EvtD0ToKSpipipi0pi0.cc.

44 {
45 checkNArg( 0 );
46 checkNDaug( 5 );
53
54 string name;
55 Double_t mean_v;
56
57 phi[0] = 0.0;
58 phi[1] = 1.5612285999617681043;
59 phi[2] = -1.0015624327720500375;
60 phi[3] = -0.76621511153827803753;
61 phi[4] = -1.7149726868246268907;
62 phi[5] = -0.76621511153827803753;
63 phi[6] = -1.7149726868246268907;
64 phi[7] = 1.3433768070347928969;
65 phi[8] = -0.69920457434816896125;
66 phi[9] = 0.29332928559239412891;
67 phi[10] = -0.11777754591498723613;
68 phi[11] = 0.95414772564220218243;
69 phi[12] = 1.7265019027073140734;
70 phi[13] = 0.061783461047396848187;
71 phi[14] = -1.8419695358887526737;
72 phi[15] = 5.0888716346195170814;
73 phi[16] = -2.4168727599993782285;
74 phi[17] = -0.59691363426268839731;
75 phi[18] = 2.2592819896596747498;
76 phi[19] = 1.4782518327546174675;
77
78 rho[0] = 1.0;
79 rho[1] = 0.4670656486078839098;
80 rho[2] = 1.2052085503722942406;
81 rho[3] = 2.3308692263403596456;
82 rho[4] = 3.5452858240068554352;
83 rho[5] = 2.3308692263403596456;
84 rho[6] = 3.5452858240068554352;
85 rho[7] = 3.909705435313104438;
86 rho[8] = 6.0375678543742763438;
87 rho[9] = 6.1054348075021245279;
88 rho[10] = 2.6074861273503890935;
89 rho[11] = 5.1506130168844084238;
90 rho[12] = 7.3338519702057851646;
91 rho[13] = 8.2495540430632239293;
92 rho[14] = 4.7408822820806992837;
93 rho[15] = 19.078674398257916778;
94 rho[16] = 5.8341821209677622306;
95 rho[17] = 3.370421146056012951;
96 rho[18] = 1.3283777517325123796;
97 rho[19] = 5.2468133147457907128;
98
99 modetype[0] = 1;
100 modetype[1] = 1;
101 modetype[2] = 1;
102 modetype[3] = 20;
103 modetype[4] = 20;
104 modetype[5] = 33;
105 modetype[6] = 33;
106 modetype[7] = 18;
107 modetype[8] = 18;
108 modetype[9] = 18;
109 modetype[10] = 4;
110 modetype[11] = 4;
111 modetype[12] = 23;
112 modetype[13] = 45;
113 modetype[14] = 45;
114 modetype[15] = 45;
115 modetype[16] = 46;
116 modetype[17] = 31;
117 modetype[18] = 31;
118 modetype[19] = 42;
119
120 width1[0] = 0.00868;
121 width1[1] = 0.00868;
122 width1[2] = 0.00868;
123 width1[3] = 0.420;
124 width1[4] = 0.420;
125 width1[5] = 0.420;
126 width1[6] = 0.420;
127 width1[7] = 0.420;
128 width1[8] = 0.420;
129 width1[9] = 0.420;
130 width1[10] = 0.142;
131 width1[11] = 0.142;
132 width1[12] = 0.0227;
133 width1[13] = 0.116;
134 width1[14] = 0.116;
135 width1[15] = 0.116;
136 width1[16] = 0.116;
137 width1[17] = 0.174;
138 width1[18] = 0.174;
139 width1[19] = 0.174;
140
141 width2[0] = 0.0473;
142 width2[1] = 0.0473;
143 width2[2] = 0.0473;
144 width2[3] = 0.0473;
145 width2[4] = 0.0473;
146 width2[5] = 0.0473;
147 width2[6] = 0.0473;
148 width2[7] = 0.0467;
149 width2[8] = 0.0467;
150 width2[9] = 0.0467;
151 width2[10] = 0.00868;
152 width2[11] = 0.00868;
153 width2[12] = 0.1478;
154 width2[13] = 0.1478;
155 width2[14] = 0.1478;
156 width2[15] = 0.1478;
157 width2[16] = 0.1478;
158 width2[17] = 0.1478;
159 width2[18] = 0.1478;
160 width2[19] = 0.1478;
161
162 mass1[0] = 0.78265;
163 mass1[1] = 0.78265;
164 mass1[2] = 0.78265;
165 mass1[3] = 1.230;
166 mass1[4] = 1.230;
167 mass1[5] = 1.230;
168 mass1[6] = 1.230;
169 mass1[7] = 1.230;
170 mass1[8] = 1.230;
171 mass1[9] = 1.230;
172 mass1[10] = 1.2295;
173 mass1[11] = 1.2295;
174 mass1[12] = 1.2819;
175 mass1[13] = 1.289;
176 mass1[14] = 1.289;
177 mass1[15] = 1.289;
178 mass1[16] = 1.289;
179 mass1[17] = 1.403;
180 mass1[18] = 1.403;
181 mass1[19] = 1.403;
182
183 mass2[0] = 0.89555;
184 mass2[1] = 0.89555;
185 mass2[2] = 0.89555;
186 mass2[3] = 0.89555;
187 mass2[4] = 0.89555;
188 mass2[5] = 0.89555;
189 mass2[6] = 0.89555;
190 mass2[7] = 0.89166;
191 mass2[8] = 0.89166;
192 mass2[9] = 0.89166;
193 mass2[10] = 0.78265;
194 mass2[11] = 0.78265;
195 mass2[12] = 0.77526;
196 mass2[13] = 0.77526;
197 mass2[14] = 0.77526;
198 mass2[15] = 0.77526;
199 mass2[16] = 0.77526;
200 mass2[17] = 0.77526;
201 mass2[18] = 0.77526;
202 mass2[19] = 0.77526;
203
204 mD0M = 1.86486;
205 mD = 1.86486;
206 metap = 0.95778;
207 mk0 = 0.497614;
208 mass_Kaon = 0.49368;
209 mass_Pion = 0.13957;
210 mass_Pion2 = 0.0194797849;
211 mass_2Pion = 0.27914;
212 math_2pi = 6.2831852;
213 rD2 = 25.0; // 5*5
214 rDs2 = 25.0; // 5*5
215 rRes2 = 9.0; // 3*3
216 gg1 = 0.5468;
217 gg2 = 0.23; // K*0(1430)
218 GS1 = 0.636619783;
219 GS2 = 0.01860182466;
220 GS3 = 0.1591549458; // 1/(2*math_2pi)
221 GS4 = 0.00620060822;
222
223 int GG[4][4] = { { 1, 0, 0, 0 }, { 0, -1, 0, 0 }, { 0, 0, -1, 0 }, { 0, 0, 0, -1 } };
224 for ( int i = 0; i < 4; i++ )
225 {
226 for ( int j = 0; j < 4; j++ ) { G[i][j] = GG[i][j]; }
227 }
228 double EE[4][4][4][4] = {
229 { { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
230 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 1 }, { 0, 0, -1, 0 } },
231 { { 0, 0, 0, 0 }, { 0, 0, 0, -1 }, { 0, 0, 0, 0 }, { 0, 1, 0, 0 } },
232 { { 0, 0, 0, 0 }, { 0, 0, 1, 0 }, { 0, -1, 0, 0 }, { 0, 0, 0, 0 } } },
233 { { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, -1 }, { 0, 0, 1, 0 } },
234 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
235 { { 0, 0, 0, 1 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { -1, 0, 0, 0 } },
236 { { 0, 0, -1, 0 }, { 0, 0, 0, 0 }, { 1, 0, 0, 0 }, { 0, 0, 0, 0 } } },
237 { { { 0, 0, 0, 0 }, { 0, 0, 0, 1 }, { 0, 0, 0, 0 }, { 0, -1, 0, 0 } },
238 { { 0, 0, 0, -1 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 1, 0, 0, 0 } },
239 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
240 { { 0, 1, 0, 0 }, { -1, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } } },
241 { { { 0, 0, 0, 0 }, { 0, 0, -1, 0 }, { 0, 1, 0, 0 }, { 0, 0, 0, 0 } },
242 { { 0, 0, 1, 0 }, { 0, 0, 0, 0 }, { -1, 0, 0, 0 }, { 0, 0, 0, 0 } },
243 { { 0, -1, 0, 0 }, { 1, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
244 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } } } };
245
246 for ( int i = 0; i < 4; i++ )
247 {
248 for ( int j = 0; j < 4; j++ )
249 {
250 for ( int k = 0; k < 4; k++ )
251 {
252 for ( int l = 0; l < 4; l++ ) { E[i][j][k][l] = EE[i][j][k][l]; }
253 }
254 }
255 }
256}
void checkSpinDaughter(int d1, EvtSpinType::spintype sp)
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 EvtD0ToKSpipipi0pi0::initProbMax ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 258 of file EvtD0ToKSpipipi0pi0.cc.

258{ setProbMax( 21000000 ); }
void setProbMax(double prbmx)

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