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

#include <EvtD0ToKSLKK.hh>

+ Inheritance diagram for EvtD0ToKSLKK:

Public Member Functions

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

Constructor & Destructor Documentation

◆ EvtD0ToKSLKK()

EvtD0ToKSLKK::EvtD0ToKSLKK ( )
inline

Definition at line 12 of file EvtD0ToKSLKK.hh.

12{}

Referenced by clone().

◆ ~EvtD0ToKSLKK()

EvtD0ToKSLKK::~EvtD0ToKSLKK ( )
virtual

Definition at line 36 of file EvtD0ToKSLKK.cc.

36{}

Member Function Documentation

◆ clone()

EvtDecayBase * EvtD0ToKSLKK::clone ( )
virtual

Implements EvtDecayBase.

Definition at line 42 of file EvtD0ToKSLKK.cc.

42 {
43 return new EvtD0ToKSLKK;
44}

◆ decay()

void EvtD0ToKSLKK::decay ( EvtParticle * p)
virtual

Implements EvtDecayBase.

Definition at line 148 of file EvtD0ToKSLKK.cc.

148 {
149/*
150 double maxprob = 0.0;
151 for(int ir=0;ir<=60000000;ir++){
152
153 p->initializePhaseSpace(getNDaug(),getDaugs());
154 EvtVector4R D1 = p->getDaug(0)->getP4();
155 EvtVector4R D2 = p->getDaug(1)->getP4();
156 EvtVector4R D3 = p->getDaug(2)->getP4();
157
158 //charge = EvtPDL::getStdHep(p->getId());
159
160 double P1[4], P2[4], P3[4];
161 P1[0] = D1.get(0); P1[1] = D1.get(1); P1[2] = D1.get(2); P1[3] = D1.get(3);
162 P2[0] = D2.get(0); P2[1] = D2.get(1); P2[2] = D2.get(2); P2[3] = D2.get(3);
163 P3[0] = D3.get(0); P3[1] = D3.get(1); P3[2] = D3.get(2); P3[3] = D3.get(3);
164
165 if(Daug0Id==310) SorL = true; else SorL = false;
166 double value;
167 int spin[5]={0,1,0,0,1};
168 if(SorL){
169 int g0[5]={5,1,3,1,5};
170 double r0[5] = {3,3,3,3,3};
171 double r1[5] = {5,5,5,5,5};
172 int nstates=5;
173 calEva(P1, P2, P3, mass, width, rho, phi, g0, spin, modetype, r0, r1, value, 0, nstates,charge,SorL);
174 }else if((!SorL)&&Uspin==1){
175 int g0[5]={5,1,3,1,5};
176 double r0[5] = {-1.566394443,-1.33043736,3,3,3};
177 double r1[5] = {0.1844175671,-1.397710917,5,5,5};
178 int nstates=5;
179 calEva(P1, P2, P3, mass, width, rho, phi, g0, spin, modetype, r0, r1, value, 0, nstates,charge,SorL);
180 }else{
181 int g0[5]={5,1,3,1,5};
182 double r0[5] = {3,3,3,3,3};
183 double r1[5] = {5,5,5,5,5};
184 int nstates=5;
185 calEva(P1, P2, P3, mass, width, rho, phi, g0, spin, modetype, r0, r1, value, 0, nstates,charge,SorL);
186 }
187
188 if (value<0) continue;
189 if(value>maxprob) {
190 maxprob=value;
191 cout << "ir= " << ir << endl;
192 cout << "double P1[4] = {" << P1[0] <<","<< P1[1] <<","<< P1[2] <<","<< P1[3] <<"};"<< endl;
193 cout << "double P2[4] = {" << P2[0] <<","<< P2[1] <<","<< P2[2] <<","<< P2[3] <<"};"<< endl;
194 cout << "double P3[4] = {" << P3[0] <<","<< P3[1] <<","<< P3[2] <<","<< P3[3] <<"};"<< endl;
195 cout << "MAX====> " << maxprob << endl;
196 }
197 }
198 printf("MAXprob = %.10f\n",maxprob);
199*/
200
201
203 EvtVector4R D1 = p->getDaug(0)->getP4();
204 EvtVector4R D2 = p->getDaug(1)->getP4();
205 EvtVector4R D3 = p->getDaug(2)->getP4();
206
207 //charge = EvtPDL::getStdHep(p->getId());
208
209 double P1[4], P2[4], P3[4];
210 P1[0] = D1.get(0); P1[1] = D1.get(1); P1[2] = D1.get(2); P1[3] = D1.get(3);
211 P2[0] = D2.get(0); P2[1] = D2.get(1); P2[2] = D2.get(2); P2[3] = D2.get(3);
212 P3[0] = D3.get(0); P3[1] = D3.get(1); P3[2] = D3.get(2); P3[3] = D3.get(3);
213
214 // P1[0] = 0.662259; P1[1] = -0.277017; P1[2] = 0.211748; P1[3] = -0.263429;
215 // P2[0] = 0.664422; P2[1] = 0.283792; P2[2] = -0.243945; P2[3] = 0.240194;
216 // P3[0] = 0.561591; P3[1] = 0.188743; P3[2] = -0.0572267;P3[3] = -0.181021;
217
218 // P1[0] = 0.663036; P1[1] = -0.188126; P1[2] = 0.265033; P1[3] = -0.293883;
219 // P2[0] = 0.694463; P2[1] = 0.201378; P2[2] = -0.399611; P2[3] = -0.195755;
220 // P3[0] = 0.530119; P3[1] = 0.122859; P3[2] = -0.123733; P3[3] = -0.083098;
221
222
223 if(Daug0Id==310) SorL = true; else SorL = false;
224 double value;
225 int spin[5]={0,1,0,0,1};
226 if(SorL){
227 int g0[5]={5,1,3,1,5};
228 double r0[5] = {3,3,3,3,3};
229 double r1[5] = {5,5,5,5,5};
230 int nstates=5;
231 calEva(P1, P2, P3, mass, width, rho, phi, g0, spin, modetype, r0, r1, value, 0, nstates,charge,SorL);
232 }else if((!SorL)&&Uspin==1){
233 int g0[5]={5,1,3,1,5};
234 double r0[5] = {-1.566394443,-1.33043736,3,3,3};
235 double r1[5] = {0.1844175671,-1.397710917,5,5,5};
236 int nstates=5;
237 calEva(P1, P2, P3, mass, width, rho, phi, g0, spin, modetype, r0, r1, value, 0, nstates,charge,SorL);
238 }else{
239 int g0[5]={5,1,3,1,5};
240 double r0[5] = {3,3,3,3,3};
241 double r1[5] = {5,5,5,5,5};
242 int nstates=5;
243 calEva(P1, P2, P3, mass, width, rho, phi, g0, spin, modetype, r0, r1, value, 0, nstates,charge,SorL);
244 }
245
246 setProb(value);
247
248 return ;
249}
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 EvtD0ToKSLKK::getName ( std::string & name)
virtual

Implements EvtDecayBase.

Definition at line 38 of file EvtD0ToKSLKK.cc.

38 {
39 model_name="D0ToKSLKK";
40}

◆ init()

void EvtD0ToKSLKK::init ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 46 of file EvtD0ToKSLKK.cc.

46 {
47// checkNArg(1);
48 Narg = getNArg();
49 if(Narg == 0){
50 Uspin = 0;
51 }else{
52 Uspin = getArg(0);
53 }
55 Daug0Id = EvtPDL::getStdHep(getDaug(0));
56 checkNDaug(3);
61
62 phi[0] = 0;
63 rho[0] = 1;
64 phi[1] = 3.367900972;
65 rho[1] = 0.5567227875;
66 phi[2] = 3.568151995;
67 rho[2] = 1.122904371;
68 phi[3] = 3.353326851;
69 rho[3] = 1.414616255;
70 phi[4] = -0.7616302559;
71 rho[4] = 1.623197367;
72
73 modetype[0]= 23;
74 modetype[1]= 23;
75 modetype[2]= 13;
76 modetype[3]= 13;
77 modetype[4]= 13;
78
79 if(Uspin==1&&Daug0Id==130){
80 modetype[0]= 232;
81 modetype[1]= 232;
82 modetype[2]= 13;
83 modetype[3]= 13;
84 modetype[4]= 13;
85 }
86
87/*
88 for (int i=0; i<5; i++) {
89 cout << i << " rho= " << rho[i] << " phi= " << phi[i] << endl;
90 }
91*/
92 width[0] = 0.272;
93 width[1] = 0.004249;
94 width[2] = 0.272;
95 width[3] = 0.258;
96 width[4] = 0.4;
97
98 mass[0] = 0.919;
99 mass[1] = 1.019461;
100 mass[2] = 0.919;
101 mass[3] = 1.439;
102 mass[4] = 1.439;
103
104 mDM = 1.86484;
105 mK0 = 0.497614;
106 mKa = 0.49368;
107 mPi = 0.13957;
108 mEta = 0.547862;
109 mKa2 = 0.24371994;//0.49368^2;
110 mPi2 = 0.01947978;//0.13957^2;
111 mEta2 = 0.30015277;//0.547862^2;
112 mass_EtaP = 0.95778;
113 mass_Kaon = 0.49368;
114 mass_KS = 0.4976;
115
116 math_pi = 3.1415926;
117 mass_Pion2 = 0.0194797849;
118 mass_2Pion = 0.27914;
119 math_2pi = 6.2831852;
120 rD2 = 25.0; // 5*5
121 rRes2 = 9.0; // 3*3
122 g2 = 0.23; //K*0(1430)
123
124
125 GS1 = 0.636619783;
126 GS2 = 0.01860182466;
127 GS3 = 0.1591549458; // 1/(2*math_2pi)
128 GS4 = 0.00620060822; // mass_Pion2/math_pi
129
130 rho_omega = 0.00294;
131 phi_omega = -0.02;
132
133 int GG[4][4] = { {1,0,0,0}, {0,-1,0,0}, {0,0,-1,0}, {0,0,0,-1} };
134 for (int i=0; i<4; i++) {
135 for (int j=0; j<4; j++) {
136 G[i][j] = GG[i][j];
137 }
138 }
139}
void checkSpinDaughter(int d1, EvtSpinType::spintype sp)
void checkSpinParent(EvtSpinType::spintype sp)
double getArg(int j)
EvtId getParentId()
void checkNDaug(int d1, int d2=-1)
EvtId getDaug(int i)
static int getStdHep(EvtId id)
Definition EvtPDL.hh:56

◆ initProbMax()

void EvtD0ToKSLKK::initProbMax ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 141 of file EvtD0ToKSLKK.cc.

141 {
142 setProbMax(1700.0);
143 if(Daug0Id==310) setProbMax(1700.0);
144 else if(Daug0Id==130&&Uspin==1) setProbMax(1785.0);
145 else setProbMax(1700.0);
146}
void setProbMax(double prbmx)

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