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

#include <EvtDToKmPipPipPi0.hh>

+ Inheritance diagram for EvtDToKmPipPipPi0:

Public Member Functions

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

Constructor & Destructor Documentation

◆ EvtDToKmPipPipPi0()

EvtDToKmPipPipPi0::EvtDToKmPipPipPi0 ( )
inline

Definition at line 13 of file EvtDToKmPipPipPi0.hh.

13{}

Referenced by clone().

◆ ~EvtDToKmPipPipPi0()

EvtDToKmPipPipPi0::~EvtDToKmPipPipPi0 ( )
virtual

Definition at line 41 of file EvtDToKmPipPipPi0.cc.

41{}

Member Function Documentation

◆ clone()

EvtDecayBase * EvtDToKmPipPipPi0::clone ( )
virtual

Implements EvtDecayBase.

Definition at line 47 of file EvtDToKmPipPipPi0.cc.

47 {
48 return new EvtDToKmPipPipPi0;
49}

◆ decay()

void EvtDToKmPipPipPi0::decay ( EvtParticle * p)
virtual

Implements EvtDecayBase.

Definition at line 1216 of file EvtDToKmPipPipPi0.cc.

1216 {
1217//--------------max
1218/*
1219 double maxprob=0,maxq1270;
1220 for(int ir=0;ir<=10000000;ir++){
1221 p->initializePhaseSpace(getNDaug(),getDaugs());
1222 EvtVector4R km = p->getDaug(0)->getP4();
1223 EvtVector4R pip1 = p->getDaug(1)->getP4();
1224 EvtVector4R pip2 = p->getDaug(2)->getP4();
1225 EvtVector4R pi0 = p->getDaug(3)->getP4();
1226 int num = EvtPDL::getStdHep(p->getId());
1227
1228 double Pip1[4],Pip2[4],Km[4],Pi0[4];
1229 Km[0] = km.get(0); Pip1[0] = pip1.get(0); Pip2[0] = pip2.get(0);Pi0[0] = pi0.get(0);
1230 Km[1] = km.get(1); Pip1[1] = pip1.get(1); Pip2[1] = pip2.get(1);Pi0[1] = pi0.get(1);
1231 Km[2] = km.get(2); Pip1[2] = pip1.get(2); Pip2[2] = pip2.get(2);Pi0[2] = pi0.get(2);
1232 Km[3] = km.get(3); Pip1[3] = pip1.get(3); Pip2[3] = pip2.get(3);Pi0[3] = pi0.get(3);
1233
1234 if(num>0){
1235 Km[0] = km.get(0); Pip1[0] = pip1.get(0); Pip2[0] = pip2.get(0);Pi0[0] = pi0.get(0);
1236 Km[1] = km.get(1); Pip1[1] = pip1.get(1); Pip2[1] = pip2.get(1);Pi0[1] = pi0.get(1);
1237 Km[2] = km.get(2); Pip1[2] = pip1.get(2); Pip2[2] = pip2.get(2);Pi0[2] = pi0.get(2);
1238 Km[3] = km.get(3); Pip1[3] = pip1.get(3); Pip2[3] = pip2.get(3);Pi0[3] = pi0.get(3);
1239}
1240 if(num<0){
1241 Km[0] = km.get(0); Pip1[0] = pip1.get(0); Pip2[0] = pip2.get(0);Pi0[0] = pi0.get(0);
1242 Km[1] = -km.get(1); Pip1[1] = -pip1.get(1); Pip2[1] = -pip2.get(1);Pi0[1] = -pi0.get(1);
1243 Km[2] = -km.get(2); Pip1[2] = -pip1.get(2); Pip2[2] = -pip2.get(2);Pi0[2] = -pi0.get(2);
1244 Km[3] = -km.get(3); Pip1[3] = -pip1.get(3); Pip2[3] = -pip2.get(3);Pi0[3] = -pi0.get(3);
1245}
1246
1247 double _prob;
1248 double value;
1249 int nstates=15;
1250 int modetype[15]= {1,1,8,4,4,12,11,17,13,12,8,4,9,13,1};
1251 int g0[15] = {1,1,1,1,1,1,1,1,0,0,1,1,1,0,0};
1252 int g1[15] = {1,1,1,1,1,1,1,1,1,1,0,0,0,0,1};
1253 int g2[15] = {0,1,0,0,2,1,1,0,1,1,2,0,0,0,0};
1254 double mass1[15] = {mKst0,mKst0,mrho, mKst0, mKst0, mKst0, mKst0, mKst0, mrho, mKst0, mrho, mKst0, mKst0, mrho,mKst0};
1255 double mass2[15] = {mrho, mrho, mK1270,mK1400,mK1400,mK1460,mK1680, mrho, mK1460,mK1460,mK1270,mK1400,mK1270, mK1460,mrho};
1256 double width1[15] = {GKst0,GKst0,Grho, GKst0, GKst0, GKst0, GKst0, GKst0, Grho, GKst0, Grho, GKst0, GKst0, Grho,GKst0};
1257 double width2[15] = {Grho, Grho, GK1270,GK1400,GK1400,GK1460,GK1680, Grho, GK1460,GK1460,GK1270,GK1400,GK1270, GK1460,Grho};
1258 calEvaMy(Km,Pip1,Pip2,Pi0,mass1,mass2,width1,width2,rho,phi,g0,g1,g2,modetype,nstates,_prob);
1259
1260 if(_prob>maxprob) {
1261 maxprob=_prob;
1262 }
1263 value = _prob;
1264 setProb(value);
1265 }
1266 printf("maxprob = %.10f\n", maxprob);
1267 return;
1268*/
1269//--------------------main--------------
1270
1272 EvtVector4R km = p->getDaug(0)->getP4();
1273 EvtVector4R pip1 = p->getDaug(1)->getP4();
1274 EvtVector4R pip2 = p->getDaug(2)->getP4();
1275 EvtVector4R pi0 = p->getDaug(3)->getP4();
1276 int num = EvtPDL::getStdHep(p->getId());
1277
1278 double Pip1[4],Pip2[4],Km[4],Pi0[4];
1279 //----------------------------------------------------------------------------------------
1280
1281 if(num>0){
1282 Km[0] = km.get(0); Pip1[0] = pip1.get(0); Pip2[0] = pip2.get(0);Pi0[0] = pi0.get(0);
1283 Km[1] = km.get(1); Pip1[1] = pip1.get(1); Pip2[1] = pip2.get(1);Pi0[1] = pi0.get(1);
1284 Km[2] = km.get(2); Pip1[2] = pip1.get(2); Pip2[2] = pip2.get(2);Pi0[2] = pi0.get(2);
1285 Km[3] = km.get(3); Pip1[3] = pip1.get(3); Pip2[3] = pip2.get(3);Pi0[3] = pi0.get(3);
1286}
1287 if(num<0){
1288 Km[0] = km.get(0); Pip1[0] = pip1.get(0); Pip2[0] = pip2.get(0);Pi0[0] = pi0.get(0);
1289 Km[1] = -km.get(1); Pip1[1] = -pip1.get(1); Pip2[1] = -pip2.get(1);Pi0[1] = -pi0.get(1);
1290 Km[2] = -km.get(2); Pip1[2] = -pip1.get(2); Pip2[2] = -pip2.get(2);Pi0[2] = -pi0.get(2);
1291 Km[3] = -km.get(3); Pip1[3] = -pip1.get(3); Pip2[3] = -pip2.get(3);Pi0[3] = -pi0.get(3);
1292}
1293
1294
1295 double value;
1296 int nstates=15;
1297 int modetype[15]= {1,1,8,4,4,12,11,17,13,12,8,4,9,13,1};
1298 int g0[15] = {1,1,1,1,1,1,1,1,0,0,1,1,1,0,0};
1299 int g1[15] = {1,1,1,1,1,1,1,1,1,1,0,0,0,0,1};
1300 int g2[15] = {0,1,0,0,2,1,1,0,1,1,2,0,0,0,0};
1301 double mass1[15] = {mKst0,mKst0,mrho, mKst0, mKst0, mKst0, mKst0, mKst0, mrho, mKst0, mrho, mKst0, mKst0, mrho,mKst0};
1302 double mass2[15] = {mrho, mrho, mK1270,mK1400,mK1400,mK1460,mK1680, mrho, mK1460,mK1460,mK1270,mK1400,mK1270, mK1460,mrho};
1303 double width1[15] = {GKst0,GKst0,Grho, GKst0, GKst0, GKst0, GKst0, GKst0, Grho, GKst0, Grho, GKst0, GKst0, Grho,GKst0};
1304 double width2[15] = {Grho, Grho, GK1270,GK1400,GK1400,GK1460,GK1680, Grho, GK1460,GK1460,GK1270,GK1400,GK1270, GK1460,Grho};
1305
1306 calEvaMy(Km,Pip1,Pip2,Pi0,mass1,mass2,width1,width2,rho,phi,g0,g1,g2,modetype,nstates,value);
1307 setProb(value);
1308
1309 return;
1310
1311}
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
const double Grho
Definition TConstant.h:12

◆ getName()

void EvtDToKmPipPipPi0::getName ( std::string & name)
virtual

Implements EvtDecayBase.

Definition at line 43 of file EvtDToKmPipPipPi0.cc.

43 {
44 model_name="DToKmPipPipPi0";
45}

◆ init()

void EvtDToKmPipPipPi0::init ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 1117 of file EvtDToKmPipPipPi0.cc.

1117 {
1118 // check that there are 0 arguments
1119 checkNArg(0);
1120 checkNDaug(4);
1121
1127
1128//------------------parameters-----------------
1129 rho[0] = 1.00; phi[0] = 0.00;
1130 rho[1] = 1.6407e-01; phi[1] = 1.4629e+00;
1131 rho[2] = 5.3805e-01; phi[2] = 5.6802e-02;
1132 rho[3] = 9.8491e-01; phi[3] = 4.5297e-01;
1133 rho[4] = -7.5361e-01; phi[4] = 3.9923e+00;
1134 rho[5] = 7.2022e-01; phi[5] = 3.6276e-01;
1135 rho[6] = 1.5187e+00; phi[6] = 1.1700e+00;
1136 rho[7] = 3.0364e+00; phi[7] = 2.9164e+00;
1137 rho[8] = 5.2613e+00; phi[8] = 5.0168e+00;
1138 rho[9] = 1.1521e+01; phi[9] = 3.8225e+00;
1139 rho[10]= -7.3292e+00; phi[10]= 4.8851e+00;
1140 rho[11]= -8.9717e-01; phi[11]= -2.7156e+00;
1141 rho[12]= 7.9479e-01; phi[12]= -1.9858e+00;
1142 rho[13]= 4.6589e+00; phi[13]= -8.5107e-01;
1143 rho[14]= 6.8280e-01; phi[14]= -2.1226e+00;
1144 mD = 1.86486;
1145//------------------------new----------------------
1146 mKst0 = 0.89555;
1147 mrho = 0.77511;
1148 mrho1450 = 1.465;
1149 mK1270 = 1.289;
1150 mK1400 = 1.403;
1151 mK1460 = 1.482;
1152 mK1650 = 1.672;
1153 mK1680 = 1.718;
1154
1155 GKst0 = 0.0473;
1156 Grho = 0.1491;
1157 Grho1450 = 0.400;
1158 GK1270 = 0.116;
1159 GK1400 = 0.174;
1160 GK1460 = 0.3356;
1161 GK1650 = 0.158;
1162 GK1680 = 0.322;
1163
1164 mass_Pion = 0.13957;
1165 mass_Pion_N = 0.134977;
1166 mass_Eta = 0.547862;
1167 mass_Kaon = 0.493677;
1168 math_pi = 3.1415926;
1169
1170 rD2 = 5.0; // 5*5
1171 rRes1 = 3.0; // 3*3
1172 rRes2 = 3.0; // 3*3
1173
1174 GS1 = 0.636619783;
1175 GS2 = 0.01860182466;
1176 GS3 = 0.1591549458; // 1/(2*math_2pi)
1177 GS4 = 0.00620060822; // mass_Pion2/math_pi
1178
1179 int GG[4][4] = { {1,0,0,0}, {0,-1,0,0}, {0,0,-1,0}, {0,0,0,-1} };
1180 int EE[4][4][4][4] =
1181 { { {{0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0} },
1182 {{0,0,0,0}, {0,0,0,0}, {0,0,0,1}, {0,0,-1,0}},
1183 {{0,0,0,0}, {0,0,0,-1}, {0,0,0,0}, {0,1,0,0} },
1184 {{0,0,0,0}, {0,0,1,0}, {0,-1,0,0}, {0,0,0,0} } },
1185 { {{0,0,0,0}, {0,0,0,0}, {0,0,0,-1}, {0,0,1,0} },
1186 {{0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0} },
1187 {{0,0,0,1}, {0,0,0,0}, {0,0,0,0}, {-1,0,0,0}},
1188 {{0,0,-1,0}, {0,0,0,0}, {1,0,0,0}, {0,0,0,0} } },
1189 { {{0,0,0,0}, {0,0,0,1}, {0,0,0,0}, {0,-1,0,0}},
1190 {{0,0,0,-1}, {0,0,0,0}, {0,0,0,0}, {1,0,0,0} },
1191 {{0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0} },
1192 {{0,1,0,0}, {-1,0,0,0}, {0,0,0,0}, {0,0,0,0} } },
1193 { {{0,0,0,0}, {0,0,-1,0}, {0,1,0,0}, {0,0,0,0} },
1194 {{0,0,1,0}, {0,0,0,0}, {-1,0,0,0}, {0,0,0,0} },
1195 {{0,-1,0,0}, {1,0,0,0}, {0,0,0,0}, {0,0,0,0} },
1196 {{0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0} } } };
1197 for (int i=0; i<4; i++) {
1198 for (int j=0; j<4; j++) {
1199 G[i][j] = GG[i][j];
1200 for (int k=0; k<4; k++) {
1201 for (int l=0; l<4; l++) {
1202 E[i][j][k][l] = EE[i][j][k][l];
1203 }
1204 }
1205 }
1206 }
1207}
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 EvtDToKmPipPipPi0::initProbMax ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 1212 of file EvtDToKmPipPipPi0.cc.

1212 {
1213 setProbMax(40000);
1214}
void setProbMax(double prbmx)

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