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

#include <EvtDsToKKpipi0.hh>

+ Inheritance diagram for EvtDsToKKpipi0:

Public Member Functions

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

Constructor & Destructor Documentation

◆ EvtDsToKKpipi0()

EvtDsToKKpipi0::EvtDsToKKpipi0 ( )
inline

Definition at line 12 of file EvtDsToKKpipi0.hh.

12{}

Referenced by clone().

◆ ~EvtDsToKKpipi0()

EvtDsToKKpipi0::~EvtDsToKKpipi0 ( )
virtual

Definition at line 34 of file EvtDsToKKpipi0.cc.

34{}

Member Function Documentation

◆ clone()

EvtDecayBase * EvtDsToKKpipi0::clone ( )
virtual

Implements EvtDecayBase.

Definition at line 40 of file EvtDsToKKpipi0.cc.

40 {
41 return new EvtDsToKKpipi0;
42}

◆ decay()

void EvtDsToKKpipi0::decay ( EvtParticle * p)
virtual

Implements EvtDecayBase.

Definition at line 253 of file EvtDsToKKpipi0.cc.

253 {
254/*
255 double maxprob = 0.0;
256 for(int ir=0;ir<=60000000;ir++){
257 p->initializePhaseSpace(getNDaug(),getDaugs());
258 EvtVector4R _km = p->getDaug(0)->getP4();
259 EvtVector4R _kp = p->getDaug(1)->getP4();
260 EvtVector4R _pip = p->getDaug(2)->getP4();
261 EvtVector4R _pi0 = p->getDaug(3)->getP4();
262
263 double _Km[4], _Kp[4], _Pip[4], _Pi0[4];
264 _Km[0] = _km.get(0); _Kp[0] = _kp.get(0); _Pip[0] = _pip.get(0); _Pi0[0] = _pi0.get(0);
265 _Km[1] = _km.get(1); _Kp[1] = _kp.get(1); _Pip[1] = _pip.get(1); _Pi0[1] = _pi0.get(1);
266 _Km[2] = _km.get(2); _Kp[2] = _kp.get(2); _Pip[2] = _pip.get(2); _Pi0[2] = _pi0.get(2);
267 _Km[3] = _km.get(3); _Kp[3] = _kp.get(3); _Pip[3] = _pip.get(3); _Pi0[3] = _pi0.get(3);
268
269 double _prob;
270 int g0[18]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
271 int g1[18]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
272 int g2[18]={0,1,2,0,1,2,0,0,0,0,1,0,0,1,0,0,2,2};
273 int nstates=18;
274 calEvaMy(_Km,_Kp,_Pip,_Pi0,mass1,mass2,width1,width2,rho,phi,g0,g1,g2,modetype,nstates,_prob);
275 if(_prob>maxprob) {
276 maxprob=_prob;
277 cout << "Max PDF = " << ir << " " << _prob << endl;
278 }
279 }
280 cout << "Max!!!!!!!!!!! " << maxprob<< endl;
281// setProbMax(maxprob);
282*/
284 EvtVector4R km = p->getDaug(0)->getP4();
285 EvtVector4R kp = p->getDaug(1)->getP4();
286 EvtVector4R pip = p->getDaug(2)->getP4();
287 EvtVector4R pi0 = p->getDaug(3)->getP4();
288
289 double Km[4],Kp[4], Pip[4],Pi0[4];
290 Km[0] = km.get(0); Kp[0] = kp.get(0); Pip[0] = pip.get(0); Pi0[0] = pi0.get(0);
291 Km[1] = km.get(1); Kp[1] = kp.get(1); Pip[1] = pip.get(1); Pi0[1] = pi0.get(1);
292 Km[2] = km.get(2); Kp[2] = kp.get(2); Pip[2] = pip.get(2); Pi0[2] = pi0.get(2);
293 Km[3] = km.get(3); Kp[3] = kp.get(3); Pip[3] = pip.get(3); Pi0[3] = pi0.get(3);
294
295 double prob;
296 int g0[18]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
297 int g1[18]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
298 int g2[18]={0,1,2,0,1,2,0,0,0,0,1,0,0,1,0,0,2,2};
299 int nstates=18;
300 calEvaMy(Km,Kp,Pip,Pi0,mass1,mass2,width1,width2,rho,phi,g0,g1,g2,modetype,nstates,prob);
301
302 setProb(prob);
303 return;
304}
TF1 * g1
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 EvtDsToKKpipi0::getName ( std::string & name)
virtual

Implements EvtDecayBase.

Definition at line 36 of file EvtDsToKKpipi0.cc.

36 {
37 model_name="DsToKKpipi0";
38}

◆ init()

void EvtDsToKKpipi0::init ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 44 of file EvtDsToKKpipi0.cc.

44 {
45 // check that there are 0 arguments
46 checkNArg(0);
47 checkNDaug(4);
48
54
55 int mode = 0;
56//--------------------amp---------------
57 phi[1] = -1.45750737501177241029;
58 phi[2] = 1.45694587813248066510;
59 phi[3] = -2.14539596963664980223;
60 phi[4] = -0.51808334601975225553;
61 phi[5] = -1.56645961468228378521;
62 phi[6] = 1.87207969874086810336;
63 phi[7] = -0.92156758917410819265;
64 phi[8] = -0.92156758917410819265;
65 phi[9] = 0.61333399627627738226;
66 phi[10] = 2.95348100053888362737;
67 phi[11] = 2.12806871473955627749;
68 phi[12] = 2.12806871473955627749;
69
70 phi[13] = 2.14745266587422545257;
71 phi[14] = -0.25044816999225272269;
72 phi[15] = -0.25044816999225272269;
73 phi[16] = 1.52246676387907431405;
74 phi[17] = 1.52246676387907431405;
75//-------------------phase--------------
76 rho[1] = 0.14853586409145513869;
77 rho[2] = 0.06437581911225187525;
78 rho[3] = 0.63500586659756663721;
79 rho[4] = 0.11892962207932455954;
80 rho[5] = 0.06386739319734147102;
81 rho[6] = 1.72035932015034198628;
82 rho[7] = 0.84266300186759934832;
83 rho[8] = 0.84266300186759934832;
84 rho[9] = 5.52084783967448444741;
85 rho[10] = 1.18304173083694408319;
86 rho[11] = 0.37041606275538363491;
87 rho[12] = 0.37041606275538363491;
88
89 rho[13] = 1.99906320501213841112;
90 rho[14] = 0.28474658039299072243;
91 rho[15] = 0.28474658039299072243;
92 rho[16] = 0.10589240624900675414;
93 rho[17] = 0.10589240624900675414;
94//--------------------mass---------------------
95 mass1[0] = 1.019461;
96 mass1[1] = 1.019461;
97 mass1[2] = 1.019461;
98 mass2[0] = 0.77511;
99 mass2[1] = 0.77511;
100 mass2[2] = 0.77511;
101 mass2[6] = 0.77511;
102 mass2[13] = 0.77511;
103//---------------------
104 mass1[3] = 0.89555;
105 mass1[4] = 0.89555;
106 mass1[5] = 0.89555;
107 mass1[7] = 0.89555;
108 mass1[14] = 0.89555;
109 mass1[16] = 0.89555;
110 mass2[3] = 0.89166;
111 mass2[4] = 0.89166;
112 mass2[5] = 0.89166;
113 mass1[12] = 0.89166;
114//----------------------
115 mass1[6] = 1.272;
116 mass2[14] = 1.272;
117 mass2[15] = 1.272;
118 mass2[16] = 1.272;
119 mass2[17] = 1.272;
120//-----------------------
121 mass2[7] = 1.403;
122 mass2[8] = 1.403;
123 mass1[8] = 0.89166;
124 mass1[11] = 0.89166;
125 mass1[15] = 0.89166;
126 mass1[17] = 0.89166;
127//----------------------
128 mass2[9] = 1.475;
129 mass1[9] = 0.99;
130 mass1[10] = 0.99;
131 mass1[13] = 0.99;
132//---------------------
133 mass2[10] = 1.4263;
134 mass2[11] = 1.4263;
135 mass2[12] = 1.4263;
136//---------------------width---------------------
137 width1[0] = 0.004249;
138 width1[1] = 0.004249;
139 width1[2] = 0.004249;
140 width2[0] = 0.1491;
141 width2[1] = 0.1491;
142 width2[2] = 0.1491;
143 width2[6] = 0.1491;
144 width2[13]= 0.1491;
145//----------------------
146 width1[3] = 0.0473;
147 width1[4] = 0.0473;
148 width1[5] = 0.0473;
149 width1[7] = 0.0473;
150 width1[14]= 0.0473;
151 width1[16]= 0.0473;
152 width2[3] = 0.0508;
153 width2[4] = 0.0508;
154 width2[5] = 0.0508;
155 width1[12]= 0.0508;
156//----------------------
157 width1[6] = 0.087;
158 width2[14]= 0.087;
159 width2[15]= 0.087;
160 width2[16]= 0.087;
161 width2[17]= 0.087;
162//-----------------------
163 width2[7] = 0.174;
164 width2[8] = 0.174;
165 width1[8] = 0.0508;
166 width1[11]= 0.0508;
167 width1[15]= 0.0508;
168 width1[17]= 0.0508;
169//------------------------
170 width2[9] = 0.09;
171 width1[9] = 0.08;
172 width1[10]= 0.08;
173 width1[13]= 0.08;
174//---------------------
175 width2[10]= 0.0545;
176 width2[11]= 0.0545;
177 width2[12]= 0.0545;
178
179 modetype[0]= 1;
180 modetype[1]= 1;
181 modetype[2]= 1;
182 modetype[3]= 2;
183 modetype[4]= 2;
184 modetype[5]= 2;
185 modetype[6]= 4;
186 modetype[7]= 3;
187 modetype[8]= 333;
188 modetype[9]= 30;
189 modetype[10]= 31;
190 modetype[11]= 73;
191 modetype[12]= 731;
192 modetype[13]= 50;
193 modetype[14]= 3;
194 modetype[15]= 333;
195 modetype[16]= 3;
196 modetype[17]= 333;
197
198 phi[0] = 0;
199 rho[0] = 1;
200
201 //cout << "DsToKKpipi0 :" << endl;
202 //for (int i=0; i<18; i++) {
203 // cout << i << " rho= " << rho[i] << " phi= " << phi[i] << " m1= " << mass1[i] << " m2= " << mass2[i] << " w1= " << width1[i] << " w2= " << width2[i] << endl;
204 //}
205
206 mass_Pion = 0.13957;
207 mass_Pion_N = 0.134977;
208 mass_Eta = 0.547862;
209 math_pi = 3.1415926;
210 rD2 = 25.0; // 5*5
211 rRes2 = 9.0; // 3*3
212 GS1 = 0.636619783;
213 GS2 = 0.01860182466;
214 GS3 = 0.1591549458; // 1/(2*math_2pi)
215 GS4 = 0.00620060822; // mass_Pion2/math_pi
216
217 int GG[4][4] = { {1,0,0,0}, {0,-1,0,0}, {0,0,-1,0}, {0,0,0,-1} };
218 int EE[4][4][4][4] =
219 { { {{0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0} },
220 {{0,0,0,0}, {0,0,0,0}, {0,0,0,1}, {0,0,-1,0}},
221 {{0,0,0,0}, {0,0,0,-1}, {0,0,0,0}, {0,1,0,0} },
222 {{0,0,0,0}, {0,0,1,0}, {0,-1,0,0}, {0,0,0,0} } },
223 { {{0,0,0,0}, {0,0,0,0}, {0,0,0,-1}, {0,0,1,0} },
224 {{0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0} },
225 {{0,0,0,1}, {0,0,0,0}, {0,0,0,0}, {-1,0,0,0}},
226 {{0,0,-1,0}, {0,0,0,0}, {1,0,0,0}, {0,0,0,0} } },
227 { {{0,0,0,0}, {0,0,0,1}, {0,0,0,0}, {0,-1,0,0}},
228 {{0,0,0,-1}, {0,0,0,0}, {0,0,0,0}, {1,0,0,0} },
229 {{0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0} },
230 {{0,1,0,0}, {-1,0,0,0}, {0,0,0,0}, {0,0,0,0} } },
231 { {{0,0,0,0}, {0,0,-1,0}, {0,1,0,0}, {0,0,0,0} },
232 {{0,0,1,0}, {0,0,0,0}, {-1,0,0,0}, {0,0,0,0} },
233 {{0,-1,0,0}, {1,0,0,0}, {0,0,0,0}, {0,0,0,0} },
234 {{0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0} } } };
235 for (int i=0; i<4; i++) {
236 for (int j=0; j<4; j++) {
237 G[i][j] = GG[i][j];
238 for (int k=0; k<4; k++) {
239 for (int l=0; l<4; l++) {
240 E[i][j][k][l] = EE[i][j][k][l];
241 }
242 }
243 }
244 }
245
246}
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 EvtDsToKKpipi0::initProbMax ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 248 of file EvtDsToKKpipi0.cc.

248 {
249 // setProbMax(43874577.5);
250 setProbMax(44000000.0);
251}
void setProbMax(double prbmx)

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