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

#include <EvtDToKSpipi0pi0.hh>

+ Inheritance diagram for EvtDToKSpipi0pi0:

Public Member Functions

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

Constructor & Destructor Documentation

◆ EvtDToKSpipi0pi0()

EvtDToKSpipi0pi0::EvtDToKSpipi0pi0 ( )
inline

Definition at line 11 of file EvtDToKSpipi0pi0.hh.

11{}

Referenced by clone().

◆ ~EvtDToKSpipi0pi0()

EvtDToKSpipi0pi0::~EvtDToKSpipi0pi0 ( )
virtual

Definition at line 34 of file EvtDToKSpipi0pi0.cc.

34{}

Member Function Documentation

◆ clone()

EvtDecayBase * EvtDToKSpipi0pi0::clone ( )
virtual

Implements EvtDecayBase.

Definition at line 40 of file EvtDToKSpipi0pi0.cc.

40 {
41 return new EvtDToKSpipi0pi0;
42}

◆ decay()

void EvtDToKSpipi0pi0::decay ( EvtParticle * p)
virtual

Implements EvtDecayBase.

Definition at line 131 of file EvtDToKSpipi0pi0.cc.

131 {
132 //-----------for max value------------------
133 /* double maxprob = 0.0;
134 for(int ir=0;ir<=60000000;ir++){
135 p->initializePhaseSpace(getNDaug(),getDaugs());
136 EvtVector4R Ks0 = p->getDaug(0)->getP4();
137 EvtVector4R pi1 = p->getDaug(1)->getP4();
138 EvtVector4R pi2 = p->getDaug(2)->getP4();
139 EvtVector4R pi3 = p->getDaug(3)->getP4();
140 double value;
141 double Ks[4],Pip[4],Pi01[4],Pi02[4];
142 mother_c=EvtPDL::getStdHep(p->getId());
143 //cout<<"mother: "<<mother_c<<endl;
144 if(mother_c==411){
145 Ks[0] = Ks0.get(0); Pip[0] = pi1.get(0); Pi01[0] = pi2.get(0); Pi02[0] = pi3.get(0);
146 Ks[1] = Ks0.get(1); Pip[1] = pi1.get(1); Pi01[1] = pi2.get(1); Pi02[1] = pi3.get(1);
147 Ks[2] = Ks0.get(2); Pip[2] = pi1.get(2); Pi01[2] = pi2.get(2); Pi02[2] = pi3.get(2);
148 Ks[3] = Ks0.get(3); Pip[3] = pi1.get(3); Pi01[3] = pi2.get(3); Pi02[3] = pi3.get(3);
149 }else if(mother_c==-411){
150 Ks[0] = Ks0.get(0); Pip[0] = pi1.get(0); Pi01[0] = pi2.get(0); Pi02[0] = pi3.get(0);
151 Ks[1] = -1.0*Ks0.get(1); Pip[1] = -1.0*pi1.get(1); Pi01[1] = -1.0*pi2.get(1); Pi02[1] = -1.0*pi3.get(1);
152 Ks[2] = -1.0*Ks0.get(2); Pip[2] = -1.0*pi1.get(2); Pi01[2] = -1.0*pi2.get(2); Pi02[2] = -1.0*pi3.get(2);
153 Ks[3] = -1.0*Ks0.get(3); Pip[3] = -1.0*pi1.get(3); Pi01[3] = -1.0*pi2.get(3); Pi02[3] = -1.0*pi3.get(3);}
154 calPDF(Ks, Pip, Pi01, Pi02, value);
155 if(value>maxprob) {
156 maxprob=value;
157 std::cout << "Max PDF = " << ir << " prob= " << value << std::endl;
158 }
159 }
160 std::cout << "Max!!!!!!!!!!! " << maxprob<< std::endl;
161 return;*/
162 //-----------------------------------------------
164 EvtVector4R Ks0 = p->getDaug(0)->getP4();
165 EvtVector4R pip = p->getDaug(1)->getP4();
166 EvtVector4R pi01 = p->getDaug(2)->getP4();
167 EvtVector4R pi02 = p->getDaug(3)->getP4();
168
169 mother_c=EvtPDL::getStdHep(p->getId());
170 double Ks[4],Pip[4],Pi01[4],Pi02[4];
171 if(mother_c==411){
172 Ks[0] = Ks0.get(0); Pip[0] = pip.get(0); Pi01[0] = pi01.get(0); Pi02[0] = pi02.get(0);
173 Ks[1] = Ks0.get(1); Pip[1] = pip.get(1); Pi01[1] = pi01.get(1); Pi02[1] = pi02.get(1);
174 Ks[2] = Ks0.get(2); Pip[2] = pip.get(2); Pi01[2] = pi01.get(2); Pi02[2] = pi02.get(2);
175 Ks[3] = Ks0.get(3); Pip[3] = pip.get(3); Pi01[3] = pi01.get(3); Pi02[3] = pi02.get(3);
176 }else if(mother_c==-411){
177 Ks[0] = Ks0.get(0); Pip[0] = pip.get(0); Pi01[0] = pi01.get(0); Pi02[0] = pi02.get(0);
178 Ks[1] = -1.0*Ks0.get(1); Pip[1] = -1.0*pip.get(1); Pi01[1] = -1.0*pi01.get(1); Pi02[1] = -1.0*pi02.get(1);
179 Ks[2] = -1.0*Ks0.get(2); Pip[2] = -1.0*pip.get(2); Pi01[2] = -1.0*pi01.get(2); Pi02[2] = -1.0*pi02.get(2);
180 Ks[3] = -1.0*Ks0.get(3); Pip[3] = -1.0*pip.get(3); Pi01[3] = -1.0*pi01.get(3); Pi02[3] = -1.0*pi02.get(3);}
181
182 //Ks[0] = 0.656878382777544; Pip[0] = 0.465468253141211; Pi01[0] = 0.364737466814715; Pi02[0] = 0.399546086976042;
183 //Ks[1] = -0.426050514556759; Pip[1] = 0.440786345532845; Pi01[1] = -0.195437195063332; Pi02[1] = 0.352799494203111;
184 //Ks[2] = -0.015331547333183; Pip[2] = -0.003143271463748; Pi01[2] = 0.195716648451034; Pi02[2] = -0.106603408016079;
185 //Ks[3] = -0.046026135420350; Pip[3] = -0.053650975933667; Pi01[3] = 0.195739708428659; Pi02[3] = 0.074743717862502;
186
187 double value;
188 calPDF(Ks, Pip, Pi01, Pi02, value);
189 //std::cout<<"Prob: "<<value<<std::endl;
190 setProb(value);
191 return;
192}
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 EvtDToKSpipi0pi0::getName ( std::string & name)
virtual

Implements EvtDecayBase.

Definition at line 36 of file EvtDToKSpipi0pi0.cc.

36 {
37 model_name="DToKSpipi0pi0";
38}

◆ init()

void EvtDToKSpipi0pi0::init ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 44 of file EvtDToKSpipi0pi0.cc.

44 {
45
46 checkNArg(0);
47 checkNDaug(4);
49
50 mK1270 = 1.272; mK1400 = 1.403;
51 GK1270 = 0.09; GK1400 = 0.174;
52 mKstr0 = 0.89555; mrho = 0.77511;
53 GKstr0 = 0.0473; Grho = 0.1485;
54 msigma = 0.526; ma1 = 1.230;
55 Gsigma = 0.535; Ga1 = 0.420;
56 mD = 1.86965;
57 math_pi = 3.1415926;
58
59 rho[0] = 3.0177e+00;//5
60 phi[0] = 7.5497e-01;
61
62 rho[1] = 1;//a1(1260)
63 phi[1] = 0;
64
65 rho[2] = 2.3527e-01;//7S_1400
66 phi[2] = -2.9985e+00;
67
68 rho[3] = 5.5731e-01;//7D_1400
69 phi[3] = 4.2940e+00;
70
71 rho[4] = 9.0803e-01;//11_sigma
72 phi[4] = 4.7731e+00;
73
74 rho[5] = 2.5345e-01;//23S
75 phi[5] = -3.3205e+00;
76
77 rho[6] = 6.0504e-02;//23P
78 phi[6] = -1.6803e+00;
79
80 rho[7] = 7.6978e-01;//25S
81 phi[7] = -5.5937e+00;
82
83 modetype[0]=403;
84 modetype[1]=100;
85 modetype[2]=200;
86 modetype[3]=200;
87 modetype[4]=204;
88 modetype[5]=2;
89 modetype[6]=2;
90 modetype[7]=2;
91
92 //cout << "Initializing DToKSpipi0pi0" << endl;
93 //for (int i=0; i<8; i++) {
94 // cout << i << " rho,phi = " << rho[i] << ", "<< phi[i] << endl;
95 //}
96
97 int GG[4][4] = { {1,0,0,0}, {0,-1,0,0}, {0,0,-1,0}, {0,0,0,-1} };
98 int EE[4][4][4][4] =
99 { { {{0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0} },
100 {{0,0,0,0}, {0,0,0,0}, {0,0,0,1}, {0,0,-1,0}},
101 {{0,0,0,0}, {0,0,0,-1}, {0,0,0,0}, {0,1,0,0} },
102 {{0,0,0,0}, {0,0,1,0}, {0,-1,0,0}, {0,0,0,0} } },
103 { {{0,0,0,0}, {0,0,0,0}, {0,0,0,-1}, {0,0,1,0} },
104 {{0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0} },
105 {{0,0,0,1}, {0,0,0,0}, {0,0,0,0}, {-1,0,0,0}},
106 {{0,0,-1,0}, {0,0,0,0}, {1,0,0,0}, {0,0,0,0} } },
107 { {{0,0,0,0}, {0,0,0,1}, {0,0,0,0}, {0,-1,0,0}},
108 {{0,0,0,-1}, {0,0,0,0}, {0,0,0,0}, {1,0,0,0} },
109 {{0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0} },
110 {{0,1,0,0}, {-1,0,0,0}, {0,0,0,0}, {0,0,0,0} } },
111 { {{0,0,0,0}, {0,0,-1,0}, {0,1,0,0}, {0,0,0,0} },
112 {{0,0,1,0}, {0,0,0,0}, {-1,0,0,0}, {0,0,0,0} },
113 {{0,-1,0,0}, {1,0,0,0}, {0,0,0,0}, {0,0,0,0} },
114 {{0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0} } } };
115 for (int i=0; i<4; i++) {
116 for (int j=0; j<4; j++) {
117 G[i][j] = GG[i][j];
118 for (int k=0; k<4; k++) {
119 for (int l=0; l<4; l++) {
120 E[i][j][k][l] = EE[i][j][k][l];
121 }
122 }
123 }
124 }
125}
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 EvtDToKSpipi0pi0::initProbMax ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 127 of file EvtDToKSpipi0pi0.cc.

127 {
128 setProbMax(2325.0);
129}
void setProbMax(double prbmx)

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