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

#include <EvtDToKSKmpippip.hh>

Inheritance diagram for EvtDToKSKmpippip:

Public Member Functions

 EvtDToKSKmpippip ()
virtual ~EvtDToKSKmpippip ()
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 7 of file EvtDToKSKmpippip.hh.

Constructor & Destructor Documentation

◆ EvtDToKSKmpippip()

EvtDToKSKmpippip::EvtDToKSKmpippip ( )
inline

Definition at line 10 of file EvtDToKSKmpippip.hh.

10{}

Referenced by clone().

◆ ~EvtDToKSKmpippip()

EvtDToKSKmpippip::~EvtDToKSKmpippip ( )
virtual

Definition at line 34 of file EvtDToKSKmpippip.cc.

34{}

Member Function Documentation

◆ clone()

EvtDecayBase * EvtDToKSKmpippip::clone ( )
virtual

Implements EvtDecayBase.

Definition at line 38 of file EvtDToKSKmpippip.cc.

38{ return new EvtDToKSKmpippip; }

◆ decay()

void EvtDToKSKmpippip::decay ( EvtParticle * p)
virtual

/

Implements EvtDecayBase.

Definition at line 139 of file EvtDToKSKmpippip.cc.

139 {
140 //-----------for max value------------------
141 ///
142 ////
143 /*
144 double maxprob = 0.0;
145 for(int ir=0;ir<=60000000;ir++){
146 p->initializePhaseSpace(getNDaug(),getDaugs());
147 EvtVector4R ks = p->getDaug(0)->getP4();
148 EvtVector4R km = p->getDaug(1)->getP4();
149 EvtVector4R pip1 = p->getDaug(2)->getP4();
150 EvtVector4R pip2 = p->getDaug(3)->getP4();
151 mother_c=EvtPDL::getStdHep(p->getId());
152 int cc;
153 if(mother_c==411){
154 cc=1;
155 } else if(mother_c==-411){
156 cc=-1;
157 }
158 double value;
159 double KS[4],Km[4],Pip1[4],Pip2[4];
160
161 KS[0] = ks.get(0); Km[0] = km.get(0); Pip1[0] = pip1.get(0); Pip2[0]
162 = pip2.get(0); KS[1] = cc*ks.get(1); Km[1] = cc*km.get(1); Pip1[1] = cc*pip1.get(1);
163 Pip2[1] = cc*pip2.get(1); KS[2] = cc*ks.get(2); Km[2] = cc*km.get(2); Pip1[2] =
164 cc*pip1.get(2); Pip2[2] = cc*pip2.get(2); KS[3] = cc*ks.get(3); Km[3] = cc*km.get(3);
165 Pip1[3] = cc*pip1.get(3); Pip2[3] = cc*pip2.get(3); double mass1[9] ={ mKstp, mKstp,
166 mKstp, mf1285, m1510, m1510, m1510, meta1405, meta1475}; double mass2[9] ={
167 mKst0, mKst0, mKst0, ma0_980, ma0_980, mKst0, mKstp, ma0_980, mKstp };
168 double width1[9]={ GKstp, GKstp, GKstp, Gf1285, G1510, G1510, G1510,
169 Geta1405, Geta1475}; double width2[9]={ GKst0, GKst0, GKst0, Ga0_980, Ga0_980,
170 GKst0, GKstp, Ga0_980, GKstp }; int g0[9] ={ 1, 1, 1, 1, 1,
171 1, 1, 1, 1 }; int g1[9] ={ 1, 1, 1, 1,
172 1, 1, 1, 1, 1 }; int g2[9] ={ 0, 1, 2,
173 0, 1, 0, 0, 0, 0 };
174
175 value=calEva(KS,Km,Pip1,Pip2,mass1,mass2,width1,width2,rho,phi,g0,g1,g2,modetype,value);
176 if(value>maxprob) {
177 maxprob=value;
178 std::cout << "Max PDF = " << ir << " prob= " << value << std::endl;
179 }
180 }
181 std::cout << "Max!!!!!!!!!!! " << maxprob<< std::endl;
182 return;
183 //-----------------------------------------------
184 */
186 EvtVector4R ks = p->getDaug( 0 )->getP4();
187 EvtVector4R km = p->getDaug( 1 )->getP4();
188 EvtVector4R pip1 = p->getDaug( 2 )->getP4();
189 EvtVector4R pip2 = p->getDaug( 3 )->getP4();
190
191 mother_c = EvtPDL::getStdHep( p->getId() );
192 int cc;
193 if ( mother_c == 411 ) { cc = 1; }
194 else if ( mother_c == -411 ) { cc = -1; }
195
196 double KS[4], Km[4], Pip1[4], Pip2[4];
197
198 KS[0] = ks.get( 0 );
199 Km[0] = km.get( 0 );
200 Pip1[0] = pip1.get( 0 );
201 Pip2[0] = pip2.get( 0 );
202 KS[1] = cc * ks.get( 1 );
203 Km[1] = cc * km.get( 1 );
204 Pip1[1] = cc * pip1.get( 1 );
205 Pip2[1] = cc * pip2.get( 1 );
206 KS[2] = cc * ks.get( 2 );
207 Km[2] = cc * km.get( 2 );
208 Pip1[2] = cc * pip1.get( 2 );
209 Pip2[2] = cc * pip2.get( 2 );
210 KS[3] = cc * ks.get( 3 );
211 Km[3] = cc * km.get( 3 );
212 Pip1[3] = cc * pip1.get( 3 );
213 Pip2[3] = cc * pip2.get( 3 );
214
215 // KS[0] = 0.5844057460 ; Km[0] = 0.6644209662 ; Pip1[0] = 0.3998331690 ; Pip2[0] =
216 // 0.2369772689 ; KS[1] =-0.0451579928 ; Km[1] =-0.1621486835 ; Pip1[1] =
217 // 0.2182356619 ; Pip2[1] = 0.0516153672 ; KS[2] =-0.2455917598 ; Km[2] = 0.3728754865 ;
218 // Pip1[2]
219 //=-0.1884855750 ; Pip2[2] =-0.1706218636 ; KS[3] =-0.1776479997 ; Km[3]
220 //=-0.1800275423 ; Pip1[3] = 0.2392343060 ; Pip2[3] = 0.0700168961 ;
221
222 double value;
223 double mass1[9] = { mKstp, mKstp, mKstp, mf1285, m1510, m1510, m1510, meta1405, meta1475 };
224 double mass2[9] = { mKst0, mKst0, mKst0, ma0_980, ma0_980, mKst0, mKstp, ma0_980, mKstp };
225 double width1[9] = { GKstp, GKstp, GKstp, Gf1285, G1510, G1510, G1510, Geta1405, Geta1475 };
226 double width2[9] = { GKst0, GKst0, GKst0, Ga0_980, Ga0_980, GKst0, GKstp, Ga0_980, GKstp };
227 int g0[9] = { 1, 1, 1, 1, 1, 1, 1, 1, 1 };
228 int g1[9] = { 1, 1, 1, 1, 1, 1, 1, 1, 1 };
229 int g2[9] = { 0, 1, 2, 0, 1, 0, 0, 0, 0 };
230
231 value = calEva( KS, Km, Pip1, Pip2, mass1, mass2, width1, width2, rho, phi, g0, g1, g2,
232 modetype, value );
233 setProb( value );
234
235 return;
236}
TF1 * g1
EvtId * getDaugs()
void setProb(double prob)
static int getStdHep(EvtId id)
Definition EvtPDL.hh:61
EvtId getId() const
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 EvtDToKSKmpippip::getName ( std::string & name)
virtual

Implements EvtDecayBase.

Definition at line 36 of file EvtDToKSKmpippip.cc.

36{ model_name = "DToKSKmpippip"; }

◆ init()

void EvtDToKSKmpippip::init ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 40 of file EvtDToKSKmpippip.cc.

40 {
41 checkNArg( 0 );
42 checkNDaug( 4 );
44 // cout << "Initializing EvtD0ToKSKppimpi0" << endl;
45 mass_Pion = 0.13957;
46 mass_Pion_N = 0.134977;
47 mass_Eta = 0.547862;
48 mD = 1.86966;
49 mPi = 0.13957;
50 mKa = 0.493677;
51 math_pi = 3.1415926;
52 rD2 = 25.0;
53 rRes2 = 9.0;
54 GS1 = 0.636619783;
55 GS2 = 0.01860182466;
56 GS3 = 0.1591549458;
57 GS4 = 0.00620060822;
58
59 mK1400 = 1.403;
60 GK1400 = 0.174;
61 m1510 = 1.518;
62 G1510 = 0.073;
63 meta1405 = 1.4139;
64 Geta1405 = 0.048;
65 meta1475 = 1.475;
66 Geta1475 = 0.09;
67 mf1285 = 1.2819;
68 Gf1285 = 0.0227;
69 mKstp = 0.89176;
70 GKstp = 0.0514;
71 mKst0 = 0.89555;
72 GKst0 = 0.0473;
73 ma0_980 = 0.990;
74 Ga0_980 = 0.05;
75
76 rho[0] = 1.0; // 2S
77 phi[0] = 0.0;
78
79 phi[1] = 4.1350e-02;
80 phi[2] = -8.3438e-01;
81 phi[3] = -7.9307e-01;
82 phi[4] = -2.2340e+00;
83 phi[5] = -3.5357e-01;
84 phi[6] = -3.5357e-01;
85 phi[7] = 9.1698e+00;
86 phi[8] = 2.1065e+00;
87 rho[1] = 5.5001e-01; // 1S
88 rho[2] = 8.9374e-01; // 2P
89 rho[3] = 1.8706e+00; // 16S
90 rho[4] = 1.2629e+01; // 201
91 rho[5] = 3.7866e+00; // 201
92 rho[6] = 3.7866e+00; // 101
93 rho[7] = 8.6436e-01; // 101
94 rho[8] = 2.1213e+00; // 101
95
96 modetype[0] = 2;
97 modetype[1] = 2;
98 modetype[2] = 2;
99 modetype[3] = 15;
100 modetype[4] = 1500;
101 modetype[5] = 1200;
102 modetype[6] = 1100;
103 modetype[7] = 9;
104 modetype[8] = 20;
105
106 int GG[4][4] = { { 1, 0, 0, 0 }, { 0, -1, 0, 0 }, { 0, 0, -1, 0 }, { 0, 0, 0, -1 } };
107 int EE[4][4][4][4] = {
108 { { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
109 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 1 }, { 0, 0, -1, 0 } },
110 { { 0, 0, 0, 0 }, { 0, 0, 0, -1 }, { 0, 0, 0, 0 }, { 0, 1, 0, 0 } },
111 { { 0, 0, 0, 0 }, { 0, 0, 1, 0 }, { 0, -1, 0, 0 }, { 0, 0, 0, 0 } } },
112 { { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, -1 }, { 0, 0, 1, 0 } },
113 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
114 { { 0, 0, 0, 1 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { -1, 0, 0, 0 } },
115 { { 0, 0, -1, 0 }, { 0, 0, 0, 0 }, { 1, 0, 0, 0 }, { 0, 0, 0, 0 } } },
116 { { { 0, 0, 0, 0 }, { 0, 0, 0, 1 }, { 0, 0, 0, 0 }, { 0, -1, 0, 0 } },
117 { { 0, 0, 0, -1 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 1, 0, 0, 0 } },
118 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
119 { { 0, 1, 0, 0 }, { -1, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } } },
120 { { { 0, 0, 0, 0 }, { 0, 0, -1, 0 }, { 0, 1, 0, 0 }, { 0, 0, 0, 0 } },
121 { { 0, 0, 1, 0 }, { 0, 0, 0, 0 }, { -1, 0, 0, 0 }, { 0, 0, 0, 0 } },
122 { { 0, -1, 0, 0 }, { 1, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
123 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } } } };
124 for ( int i = 0; i < 4; i++ )
125 {
126 for ( int j = 0; j < 4; j++ )
127 {
128 G[i][j] = GG[i][j];
129 for ( int k = 0; k < 4; k++ )
130 {
131 for ( int l = 0; l < 4; l++ ) { E[i][j][k][l] = EE[i][j][k][l]; }
132 }
133 }
134 }
135}
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 EvtDToKSKmpippip::initProbMax ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 137 of file EvtDToKSKmpippip.cc.

137{ setProbMax( 97200 ); }
void setProbMax(double prbmx)

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