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

#include <EvtDsToKpPipPimPi0.hh>

Inheritance diagram for EvtDsToKpPipPimPi0:

Public Member Functions

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

Constructor & Destructor Documentation

◆ EvtDsToKpPipPimPi0()

EvtDsToKpPipPimPi0::EvtDsToKpPipPimPi0 ( )
inline

Definition at line 12 of file EvtDsToKpPipPimPi0.hh.

12{}

Referenced by clone().

◆ ~EvtDsToKpPipPimPi0()

EvtDsToKpPipPimPi0::~EvtDsToKpPipPimPi0 ( )
virtual

Definition at line 37 of file EvtDsToKpPipPimPi0.cc.

37{}

Member Function Documentation

◆ clone()

EvtDecayBase * EvtDsToKpPipPimPi0::clone ( )
virtual

Implements EvtDecayBase.

Definition at line 41 of file EvtDsToKpPipPimPi0.cc.

◆ decay()

void EvtDsToKpPipPimPi0::decay ( EvtParticle * p)
virtual

Implements EvtDecayBase.

Definition at line 155 of file EvtDsToKpPipPimPi0.cc.

155 {
156 //--------------max
157
158 /* double maxprob=0,maxq1270;
159 for(int ir=0;ir<=60000000;ir++){
160 p->initializePhaseSpace(getNDaug(),getDaugs());
161 EvtVector4R _kp = p->getDaug(0)->getP4();
162 EvtVector4R _pip = p->getDaug(1)->getP4();
163 EvtVector4R _pim = p->getDaug(2)->getP4();
164 EvtVector4R _pi0 = p->getDaug(3)->getP4();
165
166 double _Pip[4],_Pim[4],_Pi0[4],_Kp[4];
167 _Kp[0] = _kp.get(0); _Pip[0] = _pip.get(0); _Pim[0] = _pim.get(0); _Pi0[0] =
168 _pi0.get(0); _Kp[1] = _kp.get(1); _Pip[1] = _pip.get(1); _Pim[1] = _pim.get(1); _Pi0[1] =
169 _pi0.get(1); _Kp[2] = _kp.get(2); _Pip[2] = _pip.get(2); _Pim[2] = _pim.get(2); _Pi0[2] =
170 _pi0.get(2); _Kp[3] = _kp.get(3); _Pip[3] = _pip.get(3); _Pim[3] = _pim.get(3); _Pi0[3] =
171 _pi0.get(3);
172
173 double _prob;
174 double value,q1270;
175 int nstates=11;
176 int modetype[11]= {1,1,2,10,12,11,16,17,14,2,15};
177 int g0[11] = {1,1,1,1,1,1,1,1,1,0,0};
178 int g1[11] = {1,1,1,1,1,1,1,1,1,1,0};
179 int g2[11] = {0,1,1,0,0,0,0,0,1,0,0};
180 double mass1[11] = {mKst0,mKst0,mKstp,mK1270,mKstp,mKst0,mA1,mA1,mOmega,mKst0,mKst0};
181 double mass2[11] = {mrho,mrho,mrho0,mrho,mK1400,mK1400,mrho,mrho,mrho,mrho,mrho};
182 double width1[11] =
183 {GKst0,GKst0,GKstp,GK1270,GKstp,GKst0,GA1,GA1,GOmega,GKst0,GKst0}; double width2[11] =
184 {Grho,Grho,Grho0,Grho,GK1400,GK1400,Grho,Grho,Grho,mrho,mrho};
185
186 //
187 calEvaMy(_Kp,_Pip,_Pim,_Pi0,mass1,mass2,width1,width2,rho,phi,g0,g1,g2,modetype,nstates,_prob);
188 calEvaMy(_Kp,_Pip,_Pim,_Pi0,mass1,mass2,width1,width2,rho,phi,g0,g1,g2,modetype,nstates,_prob,q1270);
189
190 if(_prob>maxprob) {
191 maxprob=_prob;
192 maxq1270=q1270;
193 printf("ir = %d,maxprob = %.10f,prob = %.10f,q1270 =
194 %.10f\n\n",ir,maxprob,_prob,maxq1270);
195 // cout<<"mm: "<<_Kp[0]<<" "<<_Pip[0]<<" "<<_Pim[0]<<" "<<_Pi0[0]<<endl;
196 // cout<<"mm: "<<_Kp[1]<<" "<<_Pip[1]<<" "<<_Pim[1]<<" "<<_Pi0[1]<<endl;
197 // cout<<"mm: "<<_Kp[2]<<" "<<_Pip[2]<<" "<<_Pim[2]<<" "<<_Pi0[2]<<endl;
198 // cout<<"mm: "<<_Kp[3]<<" "<<_Pip[3]<<" "<<_Pim[3]<<" "<<_Pi0[3]<<endl;
199 }
200 }
201 printf("maxprob = %.10f\n", maxprob);
202 */
203
205 EvtVector4R kp = p->getDaug( 0 )->getP4();
206 EvtVector4R pip = p->getDaug( 1 )->getP4();
207 EvtVector4R pim = p->getDaug( 2 )->getP4();
208 EvtVector4R pi0 = p->getDaug( 3 )->getP4();
209
210 double Pip[4], Pim[4], Kp[4], Pi0[4];
211
212 //----------------------------------------------------------------------------------------
213 Kp[0] = kp.get( 0 );
214 Pip[0] = pip.get( 0 );
215 Pim[0] = pim.get( 0 );
216 Pi0[0] = pi0.get( 0 );
217 Kp[1] = kp.get( 1 );
218 Pip[1] = pip.get( 1 );
219 Pim[1] = pim.get( 1 );
220 Pi0[1] = pi0.get( 1 );
221 Kp[2] = kp.get( 2 );
222 Pip[2] = pip.get( 2 );
223 Pim[2] = pim.get( 2 );
224 Pi0[2] = pi0.get( 2 );
225 Kp[3] = kp.get( 3 );
226 Pip[3] = pip.get( 3 );
227 Pim[3] = pim.get( 3 );
228 Pi0[3] = pi0.get( 3 );
229 //---------------------------------------------------------------------------------------
230 double value, q1270;
231 int nstates = 11;
232 int modetype[11] = { 1, 1, 2, 10, 12, 11, 16, 17, 14, 2, 15 };
233 int g0[11] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0 };
234 int g1[11] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0 };
235 int g2[11] = { 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0 };
236 double mass1[11] = { mKst0, mKst0, mKstp, mK1270, mKstp, mKst0,
237 mA1, mA1, mOmega, mKst0, mKst0 };
238 double mass2[11] = { mrho, mrho, mrho0, mrho, mK1400, mK1400, mrho, mrho, mrho, mrho, mrho };
239 double width1[11] = { GKst0, GKst0, GKstp, GK1270, GKstp, GKst0,
240 GA1, GA1, GOmega, GKst0, GKst0 };
241 double width2[11] = { Grho, Grho, Grho0, Grho, GK1400, GK1400,
242 Grho, Grho, Grho, mrho, mrho };
243
244 calEvaMy( Kp, Pip, Pim, Pi0, mass1, mass2, width1, width2, rho, phi, g0, g1, g2, modetype,
245 nstates, value, q1270 );
246 setProb( value );
247 return;
248}
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 EvtDsToKpPipPimPi0::getName ( std::string & name)
virtual

Implements EvtDecayBase.

Definition at line 39 of file EvtDsToKpPipPimPi0.cc.

39{ model_name = "DsToKpPipPimPi0"; }

◆ init()

void EvtDsToKpPipPimPi0::init ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 43 of file EvtDsToKpPipPimPi0.cc.

43 {
44 // check that there are 0 arguments
45 checkNArg( 0 );
46 checkNDaug( 4 );
47
53
54 int mode = 0;
55 phi[1] = -4.1936e+00;
56 phi[2] = 2.4056e+00;
57 phi[3] = 1.8102e+00;
58 phi[4] = -1.6106e+00;
59 phi[5] = -1.6106e+00;
60 phi[6] = 5.1214e+00;
61 phi[7] = 5.1214e+00;
62 phi[8] = 6.0675e-01;
63 phi[9] = -5.2450e+00;
64 phi[10] = -2.8735e+00;
65
66 rho[1] = 1.0981e+00;
67 rho[2] = 4.6322e-01;
68 rho[3] = 1.3138e+00;
69 rho[4] = 1.2709e+00;
70 rho[5] = 1.2709e+00;
71 rho[6] = 1.2953e+00;
72 rho[7] = 1.2953e+00;
73 rho[8] = 2.3583e+00;
74 rho[9] = 7.8907e+00;
75 rho[10] = 6.5982e-01;
76
77 phi[0] = 0;
78 rho[0] = 1;
79 mDsM = 1.9683;
80
81 //------------------------new----------------------
82 mKst0 = 0.89555;
83 mKstp = 0.89166;
84 mrho = 0.7751;
85 mrho0 = 0.7753;
86 mK1270 = 1.289;
87 mK1400 = 1.403;
88 mK1650 = 1.672;
89 mOmega = 0.78266;
90 mA1 = 1.230;
91
92 GKst0 = 0.0473;
93 GKstp = 0.0508;
94 Grho = 0.1491;
95 Grho0 = 0.1478;
96 GK1270 = 0.116;
97 GK1400 = 0.174;
98 GK1650 = 0.158;
99 GOmega = 0.00868;
100 GA1 = 0.42;
101
102 // cout << "DsToKpPipPimPi0 :" << endl;
103 // for (int i=0; i<10; i++) {
104 // cout << i << " rho= " << rho[i] << " phi= " << phi[i] << endl;
105 // }
106
107 mass_Pion = 0.13957;
108 mass_Pion_N = 0.134977;
109 mass_Eta = 0.547862;
110 mass_Kaon = 0.493677;
111 math_pi = 3.1415926;
112
113 rD2 = 5.0; // 5*5
114 rRes1 = 3.0; // 3*3
115 rRes2 = 9.0; // 3*3
116
117 GS1 = 0.636619783;
118 GS2 = 0.01860182466;
119 GS3 = 0.1591549458; // 1/(2*math_2pi)
120 GS4 = 0.00620060822; // mass_Pion2/math_pi
121
122 int GG[4][4] = { { 1, 0, 0, 0 }, { 0, -1, 0, 0 }, { 0, 0, -1, 0 }, { 0, 0, 0, -1 } };
123 int EE[4][4][4][4] = {
124 { { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
125 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 1 }, { 0, 0, -1, 0 } },
126 { { 0, 0, 0, 0 }, { 0, 0, 0, -1 }, { 0, 0, 0, 0 }, { 0, 1, 0, 0 } },
127 { { 0, 0, 0, 0 }, { 0, 0, 1, 0 }, { 0, -1, 0, 0 }, { 0, 0, 0, 0 } } },
128 { { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, -1 }, { 0, 0, 1, 0 } },
129 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
130 { { 0, 0, 0, 1 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { -1, 0, 0, 0 } },
131 { { 0, 0, -1, 0 }, { 0, 0, 0, 0 }, { 1, 0, 0, 0 }, { 0, 0, 0, 0 } } },
132 { { { 0, 0, 0, 0 }, { 0, 0, 0, 1 }, { 0, 0, 0, 0 }, { 0, -1, 0, 0 } },
133 { { 0, 0, 0, -1 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 1, 0, 0, 0 } },
134 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
135 { { 0, 1, 0, 0 }, { -1, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } } },
136 { { { 0, 0, 0, 0 }, { 0, 0, -1, 0 }, { 0, 1, 0, 0 }, { 0, 0, 0, 0 } },
137 { { 0, 0, 1, 0 }, { 0, 0, 0, 0 }, { -1, 0, 0, 0 }, { 0, 0, 0, 0 } },
138 { { 0, -1, 0, 0 }, { 1, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
139 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } } } };
140 for ( int i = 0; i < 4; i++ )
141 {
142 for ( int j = 0; j < 4; j++ )
143 {
144 G[i][j] = GG[i][j];
145 for ( int k = 0; k < 4; k++ )
146 {
147 for ( int l = 0; l < 4; l++ ) { E[i][j][k][l] = EE[i][j][k][l]; }
148 }
149 }
150 }
151}
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 EvtDsToKpPipPimPi0::initProbMax ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 153 of file EvtDsToKpPipPimPi0.cc.

153{ setProbMax( 130000 ); }
void setProbMax(double prbmx)

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