BOSS 8.0.0
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 40 of file EvtD0ToKSLKK.cc.

40{ return new EvtD0ToKSLKK; }

◆ decay()

void EvtD0ToKSLKK::decay ( EvtParticle * p)
virtual

Implements EvtDecayBase.

Definition at line 140 of file EvtD0ToKSLKK.cc.

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

◆ init()

void EvtD0ToKSLKK::init ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 42 of file EvtD0ToKSLKK.cc.

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

◆ initProbMax()

void EvtD0ToKSLKK::initProbMax ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 133 of file EvtD0ToKSLKK.cc.

133 {
134 setProbMax( 1700.0 );
135 if ( Daug0Id == 310 ) setProbMax( 1700.0 );
136 else if ( Daug0Id == 130 && Uspin == 1 ) setProbMax( 1785.0 );
137 else setProbMax( 1700.0 );
138}
void setProbMax(double prbmx)

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