BOSS 8.0.0
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 39 of file EvtDToKKpi.cc.

39{ return new EvtDToKKpi; }

◆ decay()

void EvtDToKKpi::decay ( EvtParticle * p)
virtual

Implements EvtDecayBase.

Definition at line 150 of file EvtDToKKpi.cc.

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

◆ init()

void EvtDToKKpi::init ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 41 of file EvtDToKKpi.cc.

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

146 {
147 setProbMax( 11700.0 ); // MAXprob = 11690.0512849074
148}
void setProbMax(double prbmx)

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