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

#include <EvtDToKKpi.hh>

+ Inheritance diagram for EvtDToKKpi:

Public Member Functions

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

Constructor & Destructor Documentation

◆ EvtDToKKpi()

EvtDToKKpi::EvtDToKKpi ( )
inline

Definition at line 11 of file EvtDToKKpi.hh.

11{}

Referenced by clone().

◆ ~EvtDToKKpi()

EvtDToKKpi::~EvtDToKKpi ( )
virtual

Definition at line 35 of file EvtDToKKpi.cc.

35{}

Member Function Documentation

◆ clone()

EvtDecayBase * EvtDToKKpi::clone ( )
virtual

Implements EvtDecayBase.

Definition at line 41 of file EvtDToKKpi.cc.

41 {
42 return new EvtDToKKpi;
43}

◆ decay()

void EvtDToKKpi::decay ( EvtParticle * p)
virtual

Implements EvtDecayBase.

Definition at line 157 of file EvtDToKKpi.cc.

157 {
158//==================================================get max============================================
159/*
160 double maxprob = 0.0;
161 for(int ir=0;ir<=60000000;ir++){
162 p->initializePhaseSpace(getNDaug(),getDaugs());
163 EvtVector4R D1 = p->getDaug(0)->getP4();
164 EvtVector4R D2 = p->getDaug(1)->getP4();
165 EvtVector4R D3 = p->getDaug(2)->getP4();
166
167 double P1[4], P2[4], P3[4];
168 P1[0] = D1.get(0); P1[1] = D1.get(1); P1[2] = D1.get(2); P1[3] = D1.get(3);
169 P2[0] = D2.get(0); P2[1] = D2.get(1); P2[2] = D2.get(2); P2[3] = D2.get(3);
170 P3[0] = D3.get(0); P3[1] = D3.get(1); P3[2] = D3.get(2); P3[3] = D3.get(3);
171
172 double value;
173 int nstates=8;
174 int g0[8]={1,1,4,1,1,1,3,1};
175 double r0[8]={3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0};
176 double r1[8]={5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0};
177
178 calEva(P1, P2, P3, mass, width, rho, phi, g0, spin, modetype, nstates, value,r0,r1);
179
180 if (value<0) continue;
181 if(value>maxprob) {
182 maxprob=value;
183 cout << "ir= " << ir << endl;
184 cout << "MAX====> " << maxprob << endl;
185 }
186 }
187 printf("MAXprob = %.10f\n",maxprob);
188*/
189//==================================================get max============================================
190
191
193 EvtVector4R D1 = p->getDaug(0)->getP4();
194 EvtVector4R D2 = p->getDaug(1)->getP4();
195 EvtVector4R D3 = p->getDaug(2)->getP4();
196
197 double P1[4], P2[4], P3[4];
198 P1[0] = D1.get(0); P1[1] = D1.get(1); P1[2] = D1.get(2); P1[3] = D1.get(3);
199 P2[0] = D2.get(0); P2[1] = D2.get(1); P2[2] = D2.get(2); P2[3] = D2.get(3);
200 P3[0] = D3.get(0); P3[1] = D3.get(1); P3[2] = D3.get(2); P3[3] = D3.get(3);
201
202 //Check
203 //P1[0] = 0.694086; P1[1] = 0.343301; P1[2] = 0.263795; P1[3] = -0.224934;
204 //P2[0] = 0.719665; P2[1] = -0.165392; P2[2] = -0.495843; P2[3] = -0.0314011;
205 //P3[0] = 0.474568; P3[1] = 0.0149532 ; P3[2] = 0.405429; P3[3] = 0.202826;
206
207 double value;
208 int nstates=8;
209 int g0[8]={1,1,4,1,1,1,3,1};
210 double r0[8]={3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0};
211 double r1[8]={5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0};
212
213 calEva(P1, P2, P3, mass, width, rho, phi, g0, spin, modetype, nstates, value,r0,r1);
214 setProb(value);
215 return ;
216
217}
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 EvtDToKKpi::getName ( std::string & name)
virtual

Implements EvtDecayBase.

Definition at line 37 of file EvtDToKKpi.cc.

37 {
38 model_name="DToKKpi";
39}

◆ init()

void EvtDToKKpi::init ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 45 of file EvtDToKKpi.cc.

45 {
46 // check that there are 0 arguments
47 checkNArg(0);
48 checkNDaug(3);
53
54 mass[0] = 0.89581;//Ksta0
55 mass[1] = 1.019461;//phi1020
56 mass[2] = 0.965;//f0(980)
57 mass[3] = 1.474;//a0(1450)
58 mass[4] = 1.68;//phi1680
59 mass[5] = 1.4324;//K21430
60 mass[6] = 0.89581;//KPi Swave
61 mass[7] = 1.3183;//a21320
62 width[0] = 0.0474;//Ksta0
63 width[1] = 0.004266;//phi1020
64 width[2] = 0.0400;//f0(980)
65 width[3] = 0.265;//a01450
66 width[4] = 0.15;//phi1680
67 width[5] = 0.109;//K21430
68 width[6] = 0.0474;//KPi Swave
69 width[7] = 0.107;//a01320
70
71 rho[0] = 1;//K*892
72 phi[0] = 0;//
73
74 rho[1] = 1.121155232058;// phi1020
75 phi[1] = 3.322105212534;//
76
77 rho[2] = 1.214264427529;// f0980
78 phi[2] = -5.321965906572;
79
80 rho[3] = 1.086952630367;// a01450
81 phi[3] = -4.213398459878;
82
83 rho[4] = 1.121071578335;// phi1680
84 phi[4] =-1.055595448689;//
85
86 rho[5] =-1.473195648049;// K21430
87 phi[5] =5.841826108667;
88
89 rho[6] = 5.396864431453;// KPISW
90 phi[6] =-0.360227442474;
91
92 rho[7] = 0.436480711396;// a21320
93 phi[7] = 0.778423040673;
94
95 spin[0] = 1; //K*892
96 spin[1] = 1; //phi1020
97 spin[2] = 0; //f0980
98 spin[3] = 0; //a01450
99 spin[4] = 1; //phi1680
100 spin[5] = 2; //K21430
101 spin[6] = 0; //KPISW
102 spin[7] = 2; //a21320
103
104 modetype[0] = 13;// K*892
105 modetype[1] = 12;// phi1020
106 modetype[2] = 12;// f0980
107 modetype[3] = 12;// a01450
108 modetype[4] = 12;// phi1680
109 modetype[5] = 13;// K21430 error
110 modetype[6] = 13;// KPiSW
111 modetype[7] = 12;// a21320 error
112
113/*
114 std::cout << "EvtDToKKpi (May 01, 2023) ==> Initialization" << std::endl;
115 for (int i=0; i<8; i++) {
116 cout << i << " rho= " << rho[i] << " phi= " << phi[i] << endl;
117 }
118*/
119
120 mDp = 1.86966;
121 mK0 = 0.497611;
122 mKa = 0.49368;
123 mPi = 0.13957;
124 mK02 = 0.237616707;
125 mPi2 = 0.01947978;
126 mass_EtaP = 0.95778;
127 mass_Kaon = 0.49368;
128
129 math_pi = 3.1415926;
130 mass_Pion = 0.13957;
131 mass_Pion2 = 0.0194797849;
132 mass_2Pion = 0.27914;
133 math_2pi = 6.2831852;
134 rD2 = 25.0; // 5*5
135 rRes2 = 9.0; // 3*3
136 //g1 = 0.5468;
137 g2 = 0.23;
138 GS1 = 0.636619783;
139 GS2 = 0.01860182466;
140 GS3 = 0.1591549458;
141 GS4 = 0.00620060822;
142
143
144 int GG[4][4] = { {1,0,0,0}, {0,-1,0,0}, {0,0,-1,0}, {0,0,0,-1} };
145 for (int i=0; i<4; i++) {
146 for (int j=0; j<4; j++) {
147 G[i][j] = GG[i][j];
148 }
149 }
150}
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 EvtDToKKpi::initProbMax ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 152 of file EvtDToKKpi.cc.

152 {
153 setProbMax(11700.0);//MAXprob = 11690.0512849074
154}
void setProbMax(double prbmx)

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