BOSS 7.1.2
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 10 of file EvtD0ToKSpipipi0pi0.hh.

Constructor & Destructor Documentation

◆ EvtD0ToKSpipipi0pi0()

EvtD0ToKSpipipi0pi0::EvtD0ToKSpipipi0pi0 ( )
inline

Definition at line 13 of file EvtD0ToKSpipipi0pi0.hh.

13{}

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.

42 {
43 return new EvtD0ToKSpipipi0pi0;
44}

◆ decay()

void EvtD0ToKSpipipi0pi0::decay ( EvtParticle * p)
virtual

Implements EvtDecayBase.

Definition at line 269 of file EvtD0ToKSpipipi0pi0.cc.

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

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

265 {
266 setProbMax(21000000);
267}
void setProbMax(double prbmx)

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