BOSS 7.1.2
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 11 of file EvtDToKSKmpippip.hh.

11{}

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 40 of file EvtDToKSKmpippip.cc.

40 {
41 return new EvtDToKSKmpippip;
42}

◆ decay()

void EvtDToKSKmpippip::decay ( EvtParticle * p)
virtual

/

Implements EvtDecayBase.

Definition at line 135 of file EvtDToKSKmpippip.cc.

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

◆ init()

void EvtDToKSKmpippip::init ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 44 of file EvtDToKSKmpippip.cc.

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

131 {
132 setProbMax(97200);
133}
void setProbMax(double prbmx)

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