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

#include <EvtDsTopipipipi0pi0.hh>

Inheritance diagram for EvtDsTopipipipi0pi0:

Public Member Functions

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

Constructor & Destructor Documentation

◆ EvtDsTopipipipi0pi0()

EvtDsTopipipipi0pi0::EvtDsTopipipipi0pi0 ( )
inline

Definition at line 12 of file EvtDsTopipipipi0pi0.hh.

12{}

Referenced by clone().

◆ ~EvtDsTopipipipi0pi0()

EvtDsTopipipipi0pi0::~EvtDsTopipipipi0pi0 ( )
virtual

Definition at line 33 of file EvtDsTopipipipi0pi0.cc.

33{}

Member Function Documentation

◆ clone()

EvtDecayBase * EvtDsTopipipipi0pi0::clone ( )
virtual

Implements EvtDecayBase.

Definition at line 39 of file EvtDsTopipipipi0pi0.cc.

◆ decay()

void EvtDsTopipipipi0pi0::decay ( EvtParticle * p)
virtual

Implements EvtDecayBase.

Definition at line 252 of file EvtDsTopipipipi0pi0.cc.

252 {
253
255 EvtVector4R D1 = p->getDaug( 0 )->getP4();
256 EvtVector4R D2 = p->getDaug( 1 )->getP4();
257 EvtVector4R D3 = p->getDaug( 2 )->getP4();
258 EvtVector4R D4 = p->getDaug( 3 )->getP4();
259 EvtVector4R D5 = p->getDaug( 4 )->getP4();
260
261 charge = EvtPDL::getStdHep( p->getId() );
262 double P1[4], P2[4], P3[4], P4[4], P5[4];
263 if ( charge > 0 )
264 {
265 P1[0] = D1.get( 0 );
266 P1[1] = D1.get( 1 );
267 P1[2] = D1.get( 2 );
268 P1[3] = D1.get( 3 );
269 P2[0] = D2.get( 0 );
270 P2[1] = D2.get( 1 );
271 P2[2] = D2.get( 2 );
272 P2[3] = D2.get( 3 );
273 P3[0] = D3.get( 0 );
274 P3[1] = D3.get( 1 );
275 P3[2] = D3.get( 2 );
276 P3[3] = D3.get( 3 );
277 P4[0] = D4.get( 0 );
278 P4[1] = D4.get( 1 );
279 P4[2] = D4.get( 2 );
280 P4[3] = D4.get( 3 );
281 P5[0] = D5.get( 0 );
282 P5[1] = D5.get( 1 );
283 P5[2] = D5.get( 2 );
284 P5[3] = D5.get( 3 );
285 }
286 else if ( charge < 0 )
287 {
288 P1[0] = D1.get( 0 );
289 P1[1] = ( -1.0 ) * D1.get( 1 );
290 P1[2] = ( -1.0 ) * D1.get( 2 );
291 P1[3] = ( -1.0 ) * D1.get( 3 );
292 P2[0] = D2.get( 0 );
293 P2[1] = ( -1.0 ) * D2.get( 1 );
294 P2[2] = ( -1.0 ) * D2.get( 2 );
295 P2[3] = ( -1.0 ) * D2.get( 3 );
296 P3[0] = D3.get( 0 );
297 P3[1] = ( -1.0 ) * D3.get( 1 );
298 P3[2] = ( -1.0 ) * D3.get( 2 );
299 P3[3] = ( -1.0 ) * D3.get( 3 );
300 P4[0] = D4.get( 0 );
301 P4[1] = ( -1.0 ) * D4.get( 1 );
302 P4[2] = ( -1.0 ) * D4.get( 2 );
303 P4[3] = ( -1.0 ) * D4.get( 3 );
304 P5[0] = D5.get( 0 );
305 P5[1] = ( -1.0 ) * D5.get( 1 );
306 P5[2] = ( -1.0 ) * D5.get( 2 );
307 P5[3] = ( -1.0 ) * D5.get( 3 );
308 }
309
310 double value;
311 int g0[50] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };
312 int g1[50] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };
313 int spin[50] = { 0, 1, 2, 0, 1, 1, 1020, 1120, 1020, 1120, 1020, 1120, 0, 0 };
314 int nstates = 14;
315 calEva( P1, P2, P3, P4, P5, mass1, mass2, width1, width2, rho, phi, g0, g1, spin, modetype,
316 nstates, value );
317
318 setProb( value );
319
320 return;
321}
EvtId * getDaugs()
void setProb(double prob)
static int getStdHep(EvtId id)
Definition EvtPDL.hh:61
EvtId getId() const
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 EvtDsTopipipipi0pi0::getName ( std::string & name)
virtual

Implements EvtDecayBase.

Definition at line 35 of file EvtDsTopipipipi0pi0.cc.

35 {
36 model_name = "DsTopipipipi0pi0";
37}

◆ init()

void EvtDsTopipipipi0pi0::init ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 41 of file EvtDsTopipipipi0pi0.cc.

41 {
42 // check that there are 0 arguments
43 checkNArg( 0 );
44 checkNDaug( 5 );
51
52 string name;
53 Double_t mean_v;
54 phi[0] = 0;
55 rho[0] = 1;
56 phi[1] = 0;
57 rho[1] = 0;
58 phi[2] = 0;
59 rho[2] = 0;
60 phi[3] = 0;
61 rho[3] = 0;
62 phi[4] = 0;
63 rho[4] = 0;
64 phi[5] = 0;
65 rho[5] = 0;
66 phi[6] = 0;
67 rho[6] = 0;
68 phi[7] = 0;
69 rho[7] = 0;
70 phi[8] = 0;
71 rho[8] = 0;
72 phi[9] = 0;
73 rho[9] = 0;
74 phi[10] = 0;
75 rho[10] = 0;
76 phi[11] = 0;
77 rho[11] = 0;
78 phi[12] = 0;
79 rho[12] = 0;
80 phi[13] = 0;
81 rho[13] = 0;
82
83 phi[0] = 0.0;
84 phi[1] = -0.2221550738;
85 phi[2] = 4.908682264;
86 phi[3] = 3.808080671;
87 phi[4] = 1.403674727;
88 phi[5] = -4.73279708;
89 phi[6] = -1.674922065;
90 phi[7] = 0.04954744732;
91 phi[8] = 1.837736271;
92 phi[9] = -2.762453694;
93 phi[10] = -1.674922065;
94 phi[11] = 0.04954744732;
95 phi[12] = -2.007113109;
96 phi[13] = -5.064013727;
97
98 rho[0] = 1.0;
99 rho[1] = -0.6906182923;
100 rho[2] = 1.919575948;
101 rho[3] = -0.3131096951;
102 rho[4] = 0.1208536009;
103 rho[5] = 3.481521946;
104 rho[6] = 2.65694721;
105 rho[7] = 3.511231977;
106 rho[8] = 4.390468499;
107 rho[9] = 4.263839405;
108 rho[10] = 2.65694721;
109 rho[11] = 3.511231977;
110 rho[12] = 1.763183137;
111 rho[13] = 5.382286502;
112
113 modetype[0] = 1;
114 modetype[1] = 1;
115 modetype[2] = 1;
116 modetype[3] = 8;
117 modetype[4] = 8;
118 modetype[5] = 11;
119 modetype[6] = 17;
120 modetype[7] = 17;
121 modetype[8] = 18;
122 modetype[9] = 18;
123 modetype[10] = 19;
124 modetype[11] = 19;
125 modetype[12] = 4;
126 modetype[13] = 6;
127
128 /*
129 for (int i=0; i<12; i++) {
130 cout << i << " rho= " << rho[i] << " phi= " << phi[i] << endl;
131 }
132 */
133 width1[0] = 0.00868;
134 width1[1] = 0.00868;
135 width1[2] = 0.00868;
136 width1[3] = 0.004249;
137 width1[4] = 0.004249;
138 width1[5] = 0.400;
139 width1[6] = 0.420;
140 width1[7] = 0.420;
141 width1[8] = 0.420;
142 width1[9] = 0.420;
143 width1[10] = 0.420;
144 width1[11] = 0.420;
145 width1[12] = 0.142;
146 width1[13] = 0.142;
147
148 width2[0] = 0.1478;
149 width2[1] = 0.1478;
150 width2[2] = 0.1478;
151 width2[3] = 0.1478;
152 width2[4] = 0.1478;
153 width2[5] = 0.00868;
154 width2[6] = 0.1478;
155 width2[7] = 0.1478;
156 width2[8] = 0.1478;
157 width2[9] = 0.1478;
158 width2[10] = 0.1478;
159 width2[11] = 0.1478;
160 width2[12] = 0.00868;
161 width2[13] = 0.00868;
162
163 mass1[0] = 0.78266;
164 mass1[1] = 0.78266;
165 mass1[2] = 0.78266;
166 mass1[3] = 1.019461;
167 mass1[4] = 1.019461;
168 mass1[5] = 1.465;
169 mass1[6] = 1.230;
170 mass1[7] = 1.230;
171 mass1[8] = 1.230;
172 mass1[9] = 1.230;
173 mass1[10] = 1.230;
174 mass1[11] = 1.230;
175 mass1[12] = 1.2295;
176 mass1[13] = 1.2295;
177
178 mass2[0] = 0.77526;
179 mass2[1] = 0.77526;
180 mass2[2] = 0.77526;
181 mass2[3] = 0.77526;
182 mass2[4] = 0.77526;
183 mass2[5] = 0.78266;
184 mass2[6] = 0.77526;
185 mass2[7] = 0.77526;
186 mass2[8] = 0.77526;
187 mass2[9] = 0.77526;
188 mass2[10] = 0.77526;
189 mass2[11] = 0.77526;
190 mass2[12] = 0.78266;
191 mass2[13] = 0.78266;
192
193 mDsM = 1.9683;
194 mD = 1.86486;
195 metap = 0.95778;
196 mkstr = 0.89594;
197 mk0 = 0.497614;
198 mass_Kaon = 0.49368;
199 mass_Pion = 0.13957;
200 // math_pi = 3.1415926;
201 mass_Pion2 = 0.0194797849;
202 mass_2Pion = 0.27914;
203 math_2pi = 6.2831852;
204 rD2 = 25.0; // 5*5
205 rDs2 = 25.0; // 5*5
206 rRes2 = 9.0; // 3*3
207 gg1 = 0.5468;
208 gg2 = 0.23; // K*0(1430)
209 GS1 = 0.636619783;
210 GS2 = 0.01860182466;
211 GS3 = 0.1591549458; // 1/(2*math_2pi)
212 GS4 = 0.00620060822;
213
214 int GG[4][4] = { { 1, 0, 0, 0 }, { 0, -1, 0, 0 }, { 0, 0, -1, 0 }, { 0, 0, 0, -1 } };
215 for ( int i = 0; i < 4; i++ )
216 {
217 for ( int j = 0; j < 4; j++ ) { G[i][j] = GG[i][j]; }
218 }
219
220 double EE[4][4][4][4] = {
221 { { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
222 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 1 }, { 0, 0, -1, 0 } },
223 { { 0, 0, 0, 0 }, { 0, 0, 0, -1 }, { 0, 0, 0, 0 }, { 0, 1, 0, 0 } },
224 { { 0, 0, 0, 0 }, { 0, 0, 1, 0 }, { 0, -1, 0, 0 }, { 0, 0, 0, 0 } } },
225 { { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, -1 }, { 0, 0, 1, 0 } },
226 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
227 { { 0, 0, 0, 1 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { -1, 0, 0, 0 } },
228 { { 0, 0, -1, 0 }, { 0, 0, 0, 0 }, { 1, 0, 0, 0 }, { 0, 0, 0, 0 } } },
229 { { { 0, 0, 0, 0 }, { 0, 0, 0, 1 }, { 0, 0, 0, 0 }, { 0, -1, 0, 0 } },
230 { { 0, 0, 0, -1 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 1, 0, 0, 0 } },
231 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
232 { { 0, 1, 0, 0 }, { -1, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } } },
233 { { { 0, 0, 0, 0 }, { 0, 0, -1, 0 }, { 0, 1, 0, 0 }, { 0, 0, 0, 0 } },
234 { { 0, 0, 1, 0 }, { 0, 0, 0, 0 }, { -1, 0, 0, 0 }, { 0, 0, 0, 0 } },
235 { { 0, -1, 0, 0 }, { 1, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
236 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } } } };
237
238 for ( int i = 0; i < 4; i++ )
239 {
240 for ( int j = 0; j < 4; j++ )
241 {
242 for ( int k = 0; k < 4; k++ )
243 {
244 for ( int l = 0; l < 4; l++ ) { E[i][j][k][l] = EE[i][j][k][l]; }
245 }
246 }
247 }
248}
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 EvtDsTopipipipi0pi0::initProbMax ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 250 of file EvtDsTopipipipi0pi0.cc.

250{ setProbMax( 87000000.0 ); }
void setProbMax(double prbmx)

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