BOSS 8.0.0
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 37 of file EvtDToKSKSpi.cc.

37{ return new EvtDToKSKSpi; }

◆ decay()

void EvtDToKSKSpi::decay ( EvtParticle * p)
virtual

Implements EvtDecayBase.

Definition at line 78 of file EvtDToKSKSpi.cc.

78 { // phsp
79
80 //-------------------------------------------------begin-----------------------------------------
81 /*
82 //检查产生子正确后打开输出最大pdf
83 double maxprob = 0.0;
84 for(int ir=0;ir<=60000000;ir++){
85 p->initializePhaseSpace(getNDaug(),getDaugs());
86 EvtVector4R D1 = p->getDaug(0)->getP4();
87 EvtVector4R D2 = p->getDaug(1)->getP4();
88 EvtVector4R D3 = p->getDaug(2)->getP4();
89
90 double P1[4], P2[4], P3[4];
91 P1[0] = D1.get(0); P1[1] = D1.get(1); P1[2] = D1.get(2); P1[3] = D1.get(3);
92 P2[0] = D2.get(0); P2[1] = D2.get(1); P2[2] = D2.get(2); P2[3] = D2.get(3);
93 P3[0] = D3.get(0); P3[1] = D3.get(1); P3[2] = D3.get(2); P3[3] = D3.get(3);
94
95 double value;
96 // value = calDalEva(P1, P2, P3);
97 int g0[2]={12,1};
98 int spin[2]={0,1};
99 int nstates=2;
100 calEva(P1, P2, P3, mass, width, rho, phi, g0, spin, modetype, nstates, value);
101 if (value<0) continue;
102 if(value>maxprob) {
103 maxprob=value;
104 cout << "ir= " << ir << endl;
105 cout << "double P1[4] = {" << P1[0] <<","<< P1[1] <<","<< P1[2] <<","<< P1[3]
106 <<"};"<< endl; cout << "double P2[4] = {" << P2[0] <<","<< P2[1] <<","<< P2[2] <<","<< P2[3]
107 <<"};"<< endl; cout << "double P3[4] = {" << P3[0] <<","<< P3[1] <<","<< P3[2] <<","<< P3[3]
108 <<"};"<< endl; cout << "MAX====> " << maxprob << endl;
109 }
110 }
111 printf("MAXprob = %.10f\n",maxprob);
112 */
113 //---------------------------------------------endls-----------------------------------------------------
114
115 // 检验最大值关闭
117 EvtVector4R D1 = p->getDaug( 0 )->getP4();
118 EvtVector4R D2 = p->getDaug( 1 )->getP4();
119 EvtVector4R D3 = p->getDaug( 2 )->getP4();
120
121 double P1[4], P2[4], P3[4];
122 P1[0] = D1.get( 0 );
123 P1[1] = D1.get( 1 );
124 P1[2] = D1.get( 2 );
125 P1[3] = D1.get( 3 );
126 P2[0] = D2.get( 0 );
127 P2[1] = D2.get( 1 );
128 P2[2] = D2.get( 2 );
129 P2[3] = D2.get( 3 );
130 P3[0] = D3.get( 0 );
131 P3[1] = D3.get( 1 );
132 P3[2] = D3.get( 2 );
133 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{ model_name = "DToKSKSpi"; }

◆ init()

void EvtDToKSKSpi::init ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 39 of file EvtDToKSKSpi.cc.

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

74 {
75 setProbMax( 361.0 ); // max 353.68 2022/11/08
76}
void setProbMax(double prbmx)

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