BOSS 8.0.0
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 12 of file EvtDToKmPipPipPi0.hh.

12{}

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 45 of file EvtDToKmPipPipPi0.cc.

45{ return new EvtDToKmPipPipPi0; }

◆ decay()

void EvtDToKmPipPipPi0::decay ( EvtParticle * p)
virtual

Implements EvtDecayBase.

Definition at line 1046 of file EvtDToKmPipPipPi0.cc.

1046 {
1047 //--------------max
1048 /*
1049 double maxprob=0,maxq1270;
1050 for(int ir=0;ir<=10000000;ir++){
1051 p->initializePhaseSpace(getNDaug(),getDaugs());
1052 EvtVector4R km = p->getDaug(0)->getP4();
1053 EvtVector4R pip1 = p->getDaug(1)->getP4();
1054 EvtVector4R pip2 = p->getDaug(2)->getP4();
1055 EvtVector4R pi0 = p->getDaug(3)->getP4();
1056 int num = EvtPDL::getStdHep(p->getId());
1057
1058 double Pip1[4],Pip2[4],Km[4],Pi0[4];
1059 Km[0] = km.get(0); Pip1[0] = pip1.get(0); Pip2[0] = pip2.get(0);Pi0[0] = pi0.get(0);
1060 Km[1] = km.get(1); Pip1[1] = pip1.get(1); Pip2[1] = pip2.get(1);Pi0[1] = pi0.get(1);
1061 Km[2] = km.get(2); Pip1[2] = pip1.get(2); Pip2[2] = pip2.get(2);Pi0[2] = pi0.get(2);
1062 Km[3] = km.get(3); Pip1[3] = pip1.get(3); Pip2[3] = pip2.get(3);Pi0[3] = pi0.get(3);
1063
1064 if(num>0){
1065 Km[0] = km.get(0); Pip1[0] = pip1.get(0); Pip2[0] = pip2.get(0);Pi0[0] = pi0.get(0);
1066 Km[1] = km.get(1); Pip1[1] = pip1.get(1); Pip2[1] = pip2.get(1);Pi0[1] = pi0.get(1);
1067 Km[2] = km.get(2); Pip1[2] = pip1.get(2); Pip2[2] = pip2.get(2);Pi0[2] = pi0.get(2);
1068 Km[3] = km.get(3); Pip1[3] = pip1.get(3); Pip2[3] = pip2.get(3);Pi0[3] = pi0.get(3);
1069 }
1070 if(num<0){
1071 Km[0] = km.get(0); Pip1[0] = pip1.get(0); Pip2[0] = pip2.get(0);Pi0[0] = pi0.get(0);
1072 Km[1] = -km.get(1); Pip1[1] = -pip1.get(1); Pip2[1] = -pip2.get(1);Pi0[1] =
1073 -pi0.get(1); Km[2] = -km.get(2); Pip1[2] = -pip1.get(2); Pip2[2] = -pip2.get(2);Pi0[2] =
1074 -pi0.get(2); Km[3] = -km.get(3); Pip1[3] = -pip1.get(3); Pip2[3] = -pip2.get(3);Pi0[3] =
1075 -pi0.get(3);
1076 }
1077
1078 double _prob;
1079 double value;
1080 int nstates=15;
1081 int modetype[15]= {1,1,8,4,4,12,11,17,13,12,8,4,9,13,1};
1082 int g0[15] = {1,1,1,1,1,1,1,1,0,0,1,1,1,0,0};
1083 int g1[15] = {1,1,1,1,1,1,1,1,1,1,0,0,0,0,1};
1084 int g2[15] = {0,1,0,0,2,1,1,0,1,1,2,0,0,0,0};
1085 double mass1[15] = {mKst0,mKst0,mrho, mKst0, mKst0, mKst0, mKst0, mKst0, mrho,
1086 mKst0, mrho, mKst0, mKst0, mrho,mKst0}; double mass2[15] = {mrho, mrho,
1087 mK1270,mK1400,mK1400,mK1460,mK1680, mrho, mK1460,mK1460,mK1270,mK1400,mK1270, mK1460,mrho};
1088 double width1[15] = {GKst0,GKst0,Grho, GKst0, GKst0, GKst0, GKst0, GKst0, Grho, GKst0,
1089 Grho, GKst0, GKst0, Grho,GKst0}; double width2[15] = {Grho, Grho,
1090 GK1270,GK1400,GK1400,GK1460,GK1680, Grho, GK1460,GK1460,GK1270,GK1400,GK1270, GK1460,Grho};
1091 calEvaMy(Km,Pip1,Pip2,Pi0,mass1,mass2,width1,width2,rho,phi,g0,g1,g2,modetype,nstates,_prob);
1092
1093 if(_prob>maxprob) {
1094 maxprob=_prob;
1095 }
1096 value = _prob;
1097 setProb(value);
1098 }
1099 printf("maxprob = %.10f\n", maxprob);
1100 return;
1101 */
1102 //--------------------main--------------
1103
1105 EvtVector4R km = p->getDaug( 0 )->getP4();
1106 EvtVector4R pip1 = p->getDaug( 1 )->getP4();
1107 EvtVector4R pip2 = p->getDaug( 2 )->getP4();
1108 EvtVector4R pi0 = p->getDaug( 3 )->getP4();
1109 int num = EvtPDL::getStdHep( p->getId() );
1110
1111 double Pip1[4], Pip2[4], Km[4], Pi0[4];
1112 //----------------------------------------------------------------------------------------
1113
1114 if ( num > 0 )
1115 {
1116 Km[0] = km.get( 0 );
1117 Pip1[0] = pip1.get( 0 );
1118 Pip2[0] = pip2.get( 0 );
1119 Pi0[0] = pi0.get( 0 );
1120 Km[1] = km.get( 1 );
1121 Pip1[1] = pip1.get( 1 );
1122 Pip2[1] = pip2.get( 1 );
1123 Pi0[1] = pi0.get( 1 );
1124 Km[2] = km.get( 2 );
1125 Pip1[2] = pip1.get( 2 );
1126 Pip2[2] = pip2.get( 2 );
1127 Pi0[2] = pi0.get( 2 );
1128 Km[3] = km.get( 3 );
1129 Pip1[3] = pip1.get( 3 );
1130 Pip2[3] = pip2.get( 3 );
1131 Pi0[3] = pi0.get( 3 );
1132 }
1133 if ( num < 0 )
1134 {
1135 Km[0] = km.get( 0 );
1136 Pip1[0] = pip1.get( 0 );
1137 Pip2[0] = pip2.get( 0 );
1138 Pi0[0] = pi0.get( 0 );
1139 Km[1] = -km.get( 1 );
1140 Pip1[1] = -pip1.get( 1 );
1141 Pip2[1] = -pip2.get( 1 );
1142 Pi0[1] = -pi0.get( 1 );
1143 Km[2] = -km.get( 2 );
1144 Pip1[2] = -pip1.get( 2 );
1145 Pip2[2] = -pip2.get( 2 );
1146 Pi0[2] = -pi0.get( 2 );
1147 Km[3] = -km.get( 3 );
1148 Pip1[3] = -pip1.get( 3 );
1149 Pip2[3] = -pip2.get( 3 );
1150 Pi0[3] = -pi0.get( 3 );
1151 }
1152
1153 double value;
1154 int nstates = 15;
1155 int modetype[15] = { 1, 1, 8, 4, 4, 12, 11, 17, 13, 12, 8, 4, 9, 13, 1 };
1156 int g0[15] = { 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0 };
1157 int g1[15] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1 };
1158 int g2[15] = { 0, 1, 0, 0, 2, 1, 1, 0, 1, 1, 2, 0, 0, 0, 0 };
1159 double mass1[15] = { mKst0, mKst0, mrho, mKst0, mKst0, mKst0, mKst0, mKst0,
1160 mrho, mKst0, mrho, mKst0, mKst0, mrho, mKst0 };
1161 double mass2[15] = { mrho, mrho, mK1270, mK1400, mK1400, mK1460, mK1680, mrho,
1162 mK1460, mK1460, mK1270, mK1400, mK1270, mK1460, mrho };
1163 double width1[15] = { GKst0, GKst0, Grho, GKst0, GKst0, GKst0, GKst0, GKst0,
1164 Grho, GKst0, Grho, GKst0, GKst0, Grho, GKst0 };
1165 double width2[15] = { Grho, Grho, GK1270, GK1400, GK1400, GK1460, GK1680, Grho,
1166 GK1460, GK1460, GK1270, GK1400, GK1270, GK1460, Grho };
1167
1168 calEvaMy( Km, Pip1, Pip2, Pi0, mass1, mass2, width1, width2, rho, phi, g0, g1, g2, modetype,
1169 nstates, value );
1170 setProb( value );
1171
1172 return;
1173}
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 EvtDToKmPipPipPi0::getName ( std::string & name)
virtual

Implements EvtDecayBase.

Definition at line 43 of file EvtDToKmPipPipPi0.cc.

43{ model_name = "DToKmPipPipPi0"; }

◆ init()

void EvtDToKmPipPipPi0::init ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 936 of file EvtDToKmPipPipPi0.cc.

936 {
937 // check that there are 0 arguments
938 checkNArg( 0 );
939 checkNDaug( 4 );
940
946
947 //------------------parameters-----------------
948 rho[0] = 1.00;
949 phi[0] = 0.00;
950 rho[1] = 1.6407e-01;
951 phi[1] = 1.4629e+00;
952 rho[2] = 5.3805e-01;
953 phi[2] = 5.6802e-02;
954 rho[3] = 9.8491e-01;
955 phi[3] = 4.5297e-01;
956 rho[4] = -7.5361e-01;
957 phi[4] = 3.9923e+00;
958 rho[5] = 7.2022e-01;
959 phi[5] = 3.6276e-01;
960 rho[6] = 1.5187e+00;
961 phi[6] = 1.1700e+00;
962 rho[7] = 3.0364e+00;
963 phi[7] = 2.9164e+00;
964 rho[8] = 5.2613e+00;
965 phi[8] = 5.0168e+00;
966 rho[9] = 1.1521e+01;
967 phi[9] = 3.8225e+00;
968 rho[10] = -7.3292e+00;
969 phi[10] = 4.8851e+00;
970 rho[11] = -8.9717e-01;
971 phi[11] = -2.7156e+00;
972 rho[12] = 7.9479e-01;
973 phi[12] = -1.9858e+00;
974 rho[13] = 4.6589e+00;
975 phi[13] = -8.5107e-01;
976 rho[14] = 6.8280e-01;
977 phi[14] = -2.1226e+00;
978 mD = 1.86486;
979 //------------------------new----------------------
980 mKst0 = 0.89555;
981 mrho = 0.77511;
982 mrho1450 = 1.465;
983 mK1270 = 1.289;
984 mK1400 = 1.403;
985 mK1460 = 1.482;
986 mK1650 = 1.672;
987 mK1680 = 1.718;
988
989 GKst0 = 0.0473;
990 Grho = 0.1491;
991 Grho1450 = 0.400;
992 GK1270 = 0.116;
993 GK1400 = 0.174;
994 GK1460 = 0.3356;
995 GK1650 = 0.158;
996 GK1680 = 0.322;
997
998 mass_Pion = 0.13957;
999 mass_Pion_N = 0.134977;
1000 mass_Eta = 0.547862;
1001 mass_Kaon = 0.493677;
1002 math_pi = 3.1415926;
1003
1004 rD2 = 5.0; // 5*5
1005 rRes1 = 3.0; // 3*3
1006 rRes2 = 3.0; // 3*3
1007
1008 GS1 = 0.636619783;
1009 GS2 = 0.01860182466;
1010 GS3 = 0.1591549458; // 1/(2*math_2pi)
1011 GS4 = 0.00620060822; // mass_Pion2/math_pi
1012
1013 int GG[4][4] = { { 1, 0, 0, 0 }, { 0, -1, 0, 0 }, { 0, 0, -1, 0 }, { 0, 0, 0, -1 } };
1014 int EE[4][4][4][4] = {
1015 { { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
1016 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 1 }, { 0, 0, -1, 0 } },
1017 { { 0, 0, 0, 0 }, { 0, 0, 0, -1 }, { 0, 0, 0, 0 }, { 0, 1, 0, 0 } },
1018 { { 0, 0, 0, 0 }, { 0, 0, 1, 0 }, { 0, -1, 0, 0 }, { 0, 0, 0, 0 } } },
1019 { { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, -1 }, { 0, 0, 1, 0 } },
1020 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
1021 { { 0, 0, 0, 1 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { -1, 0, 0, 0 } },
1022 { { 0, 0, -1, 0 }, { 0, 0, 0, 0 }, { 1, 0, 0, 0 }, { 0, 0, 0, 0 } } },
1023 { { { 0, 0, 0, 0 }, { 0, 0, 0, 1 }, { 0, 0, 0, 0 }, { 0, -1, 0, 0 } },
1024 { { 0, 0, 0, -1 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 1, 0, 0, 0 } },
1025 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
1026 { { 0, 1, 0, 0 }, { -1, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } } },
1027 { { { 0, 0, 0, 0 }, { 0, 0, -1, 0 }, { 0, 1, 0, 0 }, { 0, 0, 0, 0 } },
1028 { { 0, 0, 1, 0 }, { 0, 0, 0, 0 }, { -1, 0, 0, 0 }, { 0, 0, 0, 0 } },
1029 { { 0, -1, 0, 0 }, { 1, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
1030 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } } } };
1031 for ( int i = 0; i < 4; i++ )
1032 {
1033 for ( int j = 0; j < 4; j++ )
1034 {
1035 G[i][j] = GG[i][j];
1036 for ( int k = 0; k < 4; k++ )
1037 {
1038 for ( int l = 0; l < 4; l++ ) { E[i][j][k][l] = EE[i][j][k][l]; }
1039 }
1040 }
1041 }
1042}
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 1044 of file EvtDToKmPipPipPi0.cc.

1044{ setProbMax( 40000 ); }
void setProbMax(double prbmx)

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