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

#include <EvtDToKSKSpi.hh>

+ Inheritance diagram for EvtDToKSKSpi:

Public Member Functions

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

Constructor & Destructor Documentation

◆ EvtDToKSKSpi()

EvtDToKSKSpi::EvtDToKSKSpi ( )
inline

Definition at line 12 of file EvtDToKSKSpi.hh.

12{}

Referenced by clone().

◆ ~EvtDToKSKSpi()

EvtDToKSKSpi::~EvtDToKSKSpi ( )
virtual

Definition at line 33 of file EvtDToKSKSpi.cc.

33{}

Member Function Documentation

◆ clone()

EvtDecayBase * EvtDToKSKSpi::clone ( )
virtual

Implements EvtDecayBase.

Definition at line 39 of file EvtDToKSKSpi.cc.

39 {
40 return new EvtDToKSKSpi;
41}

◆ decay()

void EvtDToKSKSpi::decay ( EvtParticle * p)
virtual

Implements EvtDecayBase.

Definition at line 87 of file EvtDToKSKSpi.cc.

87 { //phsp
88
89//-------------------------------------------------begin-----------------------------------------
90/*
91//检查产生子正确后打开输出最大pdf
92 double maxprob = 0.0;
93 for(int ir=0;ir<=60000000;ir++){
94 p->initializePhaseSpace(getNDaug(),getDaugs());
95 EvtVector4R D1 = p->getDaug(0)->getP4();
96 EvtVector4R D2 = p->getDaug(1)->getP4();
97 EvtVector4R D3 = p->getDaug(2)->getP4();
98
99 double P1[4], P2[4], P3[4];
100 P1[0] = D1.get(0); P1[1] = D1.get(1); P1[2] = D1.get(2); P1[3] = D1.get(3);
101 P2[0] = D2.get(0); P2[1] = D2.get(1); P2[2] = D2.get(2); P2[3] = D2.get(3);
102 P3[0] = D3.get(0); P3[1] = D3.get(1); P3[2] = D3.get(2); P3[3] = D3.get(3);
103
104 double value;
105 // value = calDalEva(P1, P2, P3);
106 int g0[2]={12,1};
107 int spin[2]={0,1};
108 int nstates=2;
109 calEva(P1, P2, P3, mass, width, rho, phi, g0, spin, modetype, nstates, value);
110 if (value<0) continue;
111 if(value>maxprob) {
112 maxprob=value;
113 cout << "ir= " << ir << endl;
114 cout << "double P1[4] = {" << P1[0] <<","<< P1[1] <<","<< P1[2] <<","<< P1[3] <<"};"<< endl;
115 cout << "double P2[4] = {" << P2[0] <<","<< P2[1] <<","<< P2[2] <<","<< P2[3] <<"};"<< endl;
116 cout << "double P3[4] = {" << P3[0] <<","<< P3[1] <<","<< P3[2] <<","<< P3[3] <<"};"<< endl;
117 cout << "MAX====> " << maxprob << endl;
118 }
119 }
120 printf("MAXprob = %.10f\n",maxprob);
121*/
122//---------------------------------------------endls-----------------------------------------------------
123
124 //检验最大值关闭
126 EvtVector4R D1 = p->getDaug(0)->getP4();
127 EvtVector4R D2 = p->getDaug(1)->getP4();
128 EvtVector4R D3 = p->getDaug(2)->getP4();
129
130 double P1[4], P2[4], P3[4];
131 P1[0] = D1.get(0); P1[1] = D1.get(1); P1[2] = D1.get(2); P1[3] = D1.get(3);
132 P2[0] = D2.get(0); P2[1] = D2.get(1); P2[2] = D2.get(2); P2[3] = D2.get(3);
133 P3[0] = D3.get(0); P3[1] = D3.get(1); P3[2] = D3.get(2); P3[3] = D3.get(3);
134 //Check
135 //P1[0] = 0.817527;P1[1] = -0.0302783; P1[2] = 0.535352; P1[3] = -0.364866;
136 //P2[0] = 0.660657;P2[1] = 0.132324; P2[2] = -0.368085; P2[3] = 0.18912 ;
137 //P3[0] = 0.40678; P3[1] = 0.0991563 ; P3[2] = -0.281318; P3[3] = 0.238786;
138
139 double value;
140 int g0[2]={12,1};
141 int spin[2]={0,1};
142 int nstates=2;
143 calEva(P1, P2, P3, mass, width, rho, phi, g0, spin, modetype, nstates, value);
144 setProb(value); //检验最大值关闭
145
146 return ;
147}
EvtId * getDaugs()
void setProb(double prob)
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 EvtDToKSKSpi::getName ( std::string & name)
virtual

Implements EvtDecayBase.

Definition at line 35 of file EvtDToKSKSpi.cc.

35 {
36 model_name="DToKSKSpi";
37}

◆ init()

void EvtDToKSKSpi::init ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 43 of file EvtDToKSKSpi.cc.

43 {
44 checkNArg(0);
45 checkNDaug(3);
47
48 mass[0] = 0.89167;//KpiSW
49 mass[1] = 0.89167;//K*892
50 width[0] = 0.05140;//KpiSW
51 width[1] = 0.05140;//K*892
52
53 rho[0] = 0.680648291453;//KpiSW
54 rho[1] = 1;//K*892
55 phi[0] = 1.837253259522;//KpiSW
56 phi[1] = 0;//K*892
57
58 spin[0] = 0; //KpiSW
59 spin[1] = 1; //K*892
60 modetype[0] = 13;//KpiSW
61 modetype[1] = 13;//K*892
62
63/*
64 std::cout << "EvtDToKSKSpi (May 01, 2023) ==> Initialization" << std::endl;
65 for (int i=0; i<2; i++) {
66 cout << i << "rho,phi = " << rho[i] << ", "<< phi[i] << endl;
67 }
68*/
69 math_pi = 3.1415926;
70 GS1 = 0.636619783;
71 GS2 = 0.01860182466;
72 GS3 = 0.1591549458; // 1/(2*math_2pi)
73 GS4 = 0.00620060822; // mass_Pion2/math_pi
74
75 int G[4][4] = { {1,0,0,0}, {0,-1,0,0}, {0,0,-1,0}, {0,0,0,-1} };
76
77
78}
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 EvtDToKSKSpi::initProbMax ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 81 of file EvtDToKSKSpi.cc.

81 {
82 setProbMax(361.0); // max 353.68 2022/11/08
83}
void setProbMax(double prbmx)

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