BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtDsToEta3pi Class Reference

#include <EvtDsToEta3pi.hh>

Inheritance diagram for EvtDsToEta3pi:

Public Member Functions

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

Constructor & Destructor Documentation

◆ EvtDsToEta3pi()

EvtDsToEta3pi::EvtDsToEta3pi ( )
inline

Definition at line 11 of file EvtDsToEta3pi.hh.

11{}

Referenced by clone().

◆ ~EvtDsToEta3pi()

EvtDsToEta3pi::~EvtDsToEta3pi ( )
virtual

Definition at line 33 of file EvtDsToEta3pi.cc.

33{}

Member Function Documentation

◆ clone()

EvtDecayBase * EvtDsToEta3pi::clone ( )
virtual

Implements EvtDecayBase.

Definition at line 37 of file EvtDsToEta3pi.cc.

37{ return new EvtDsToEta3pi; }

◆ decay()

void EvtDsToEta3pi::decay ( EvtParticle * p)
virtual

Implements EvtDecayBase.

Definition at line 188 of file EvtDsToEta3pi.cc.

188 {
189
190 // double maxprob = 0.0;
191 // for(int ir=0;ir<=60000000;ir++){
192 // p->initializePhaseSpace(getNDaug(),getDaugs());
193 // EvtVector4R _pip1 = p->getDaug(0)->getP4();
194 // EvtVector4R _pip2 = p->getDaug(1)->getP4();
195 // EvtVector4R _pim = p->getDaug(2)->getP4();
196 // EvtVector4R _eta = p->getDaug(3)->getP4();
197 //
198 // double _Pip1[4],_Pip2[4],_Pim[4],_Eta[4];
199 // _Pip1[1]=_pip1.get(1);_Pip1[2]=_pip1.get(2);_Pip1[3]=_pip1.get(3);
200 // _Pip2[1]=_pip2.get(1);_Pip2[2]=_pip2.get(2);_Pip2[3]=_pip2.get(3);
201 // _Pim[1] = _pim.get(1);_Pim[2] = _pim.get(2);_Pim[3] = _pim.get(3);
202 // _Eta[1] = _eta.get(1);_Eta[2] = _eta.get(2);_Eta[3] = _eta.get(3);
203 //
204 // double _prob;
205 // int g0[11]={1,1,1,1,1,1,1,1,1,1,1};
206 // int g1[11]={1,1,1,1,1,1,1,1,1,1,1};
207 // int g2[11]={0,0,0,0,0,0,0,0,0,0,0};
208 // int nstates=11;
209 // calEvaMy(_Pip1, _Pip2, _Pim, _Eta, mass1, mass2, width1, width2, rho, phi, g0,g1,g2,
210 // modetype, nstates, _prob); if(_prob>maxprob) {
211 // maxprob=_prob;
212 // printf("nrun = %d,maxprob = %.10f,prob = %.10f\n\n",ir,maxprob,_prob);
213 // }
214 // }
215
217 EvtVector4R pip1 = p->getDaug( 0 )->getP4();
218 EvtVector4R pip2 = p->getDaug( 1 )->getP4();
219 EvtVector4R pim = p->getDaug( 2 )->getP4();
220 EvtVector4R eta = p->getDaug( 3 )->getP4();
221
222 double Pip1[4], Pip2[4], Pim[4], Eta[4];
223 Pip1[1] = pip1.get( 1 );
224 Pip1[2] = pip1.get( 2 );
225 Pip1[3] = pip1.get( 3 );
226 Pip2[1] = pip2.get( 1 );
227 Pip2[2] = pip2.get( 2 );
228 Pip2[3] = pip2.get( 3 );
229 Pim[1] = pim.get( 1 );
230 Pim[2] = pim.get( 2 );
231 Pim[3] = pim.get( 3 );
232 Eta[1] = eta.get( 1 );
233 Eta[2] = eta.get( 2 );
234 Eta[3] = eta.get( 3 );
235
236 double prob;
237 int g0[11] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };
238 int g1[11] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };
239 int g2[11] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
240 int nstates = 11;
241
242 calEvaMy( Pip1, Pip2, Pim, Eta, mass1, mass2, width1, width2, rho, phi, g0, g1, g2, modetype,
243 nstates, prob );
244 setProb( prob );
245
246 return;
247}
TF1 * g1
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 EvtDsToEta3pi::getName ( std::string & name)
virtual

Implements EvtDecayBase.

Definition at line 35 of file EvtDsToEta3pi.cc.

35{ model_name = "DsToEta3pi"; }

◆ init()

void EvtDsToEta3pi::init ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 39 of file EvtDsToEta3pi.cc.

39 {
40
41 // check that there are 0 arguments
42 checkNArg( 0 );
43 checkNDaug( 4 );
44
50
51 int mode = 0;
52 phi[0] = 2.4600e+00;
53 modetype[0] = 1;
54 phi[1] = 0.0000e+00;
55 modetype[1] = 2;
56 phi[2] = -1.5394e+00;
57 modetype[2] = 3;
58 phi[3] = -6.0185e+00;
59 modetype[3] = 4;
60 phi[4] = -6.0185e+00;
61 modetype[4] = 5;
62 phi[5] = -6.1365e+00;
63 modetype[5] = 6;
64 phi[6] = -6.1365e+00;
65 modetype[6] = 7;
66 phi[7] = 1.3514e+00;
67 modetype[7] = 8;
68 phi[8] = 2.4527e+00;
69 modetype[8] = 9;
70 phi[9] = -2.0956e+00;
71 modetype[9] = 10;
72 phi[10] = -2.0956e+00;
73 modetype[10] = 11;
74
75 rho[0] = -1.5823e+00;
76 rho[1] = 10.000e+00;
77 rho[2] = 1.3750e+01;
78 rho[3] = -3.7257e-01;
79 rho[4] = -3.7257e-01;
80 rho[5] = -3.6293e+00;
81 rho[6] = -3.6293e+00;
82 rho[7] = -8.9184e+00;
83 rho[8] = -1.4292e+01;
84 rho[9] = 1.2518e+00;
85 rho[10] = 1.2518e+00;
86
87 mass1[0] = 9.9000e-01;
88 mass1[1] = 7.7526e-01;
89 mass1[2] = 5.2600e-01;
90 mass1[3] = 9.9000e-01;
91 mass1[4] = 9.9000e-01;
92 mass1[5] = 9.9000e-01;
93 mass1[6] = 9.9000e-01;
94 mass1[7] = 9.6500e-01;
95 mass1[8] = 5.2600e-01;
96 mass1[9] = 9.9000e-01;
97 mass1[10] = 9.9000e-01;
98
99 mass2[0] = 7.7526e-01;
100 mass2[1] = 1.3462e+00;
101 mass2[2] = 1.3462e+00;
102 mass2[3] = 1.4050e+00;
103 mass2[4] = 1.4050e+00;
104 mass2[5] = 1.8000e+00;
105 mass2[6] = 1.8000e+00;
106 mass2[7] = 1.8000e+00;
107 mass2[8] = 1.8000e+00;
108 mass2[9] = 1.4502e+00;
109 mass2[10] = 1.4502e+00;
110
111 width1[0] = 7.5000e-02;
112 width1[1] = 1.4910e-01;
113 width1[2] = 5.0000e-01;
114 width1[3] = 7.5000e-02;
115 width1[4] = 7.5000e-02;
116 width1[5] = 7.5000e-02;
117 width1[6] = 7.5000e-02;
118 width1[7] = 7.5000e-02;
119 width1[8] = 5.0000e-01;
120 width1[9] = 7.5000e-02;
121 width1[10] = 7.5000e-02;
122
123 width2[0] = 1.4910e-01;
124 width2[1] = 3.6900e-01;
125 width2[2] = 3.6900e-01;
126 width2[3] = 5.1000e-02;
127 width2[4] = 5.1000e-02;
128 width2[5] = 3.8600e-01;
129 width2[6] = 3.8600e-01;
130 width2[7] = 3.8600e-01;
131 width2[8] = 3.8600e-01;
132 width2[9] = 5.4000e-02;
133 width2[10] = 5.4000e-02;
134
135 // cout << "DsToEta3pi :"<< endl;
136 // for (int i=0; i<11; i++) {
137 // cout << i << " rho= " << rho[i] << " phi= " << phi[i] << " m1= " << mass1[i] << " m2= "
138 // << mass2[i] << " w1= "
139 // << width1[i] << " w2= " << width2[i] << endl;
140 // }
141
142 rRes = 3.0;
143 rRes2 = 9.0;
144 rD = 5.0;
145 rD2 = 25.0;
146 mass_Ks = 0.497611;
147 mass_Kaon = 0.49368;
148 mass_Pion = 0.13957;
149 mass_Pi0 = 0.1349766;
150 meta = 0.547862;
151 GS1 = 0.636619783;
152 GS2 = 0.01860182466;
153 GS3 = 0.1591549458; // 1/(2*math_2pi)
154 GS4 = 0.00620060822;
155 int GG[4][4] = { { 1, 0, 0, 0 }, { 0, -1, 0, 0 }, { 0, 0, -1, 0 }, { 0, 0, 0, -1 } };
156 int EE[4][4][4][4] = {
157 { { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
158 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 1 }, { 0, 0, -1, 0 } },
159 { { 0, 0, 0, 0 }, { 0, 0, 0, -1 }, { 0, 0, 0, 0 }, { 0, 1, 0, 0 } },
160 { { 0, 0, 0, 0 }, { 0, 0, 1, 0 }, { 0, -1, 0, 0 }, { 0, 0, 0, 0 } } },
161 { { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, -1 }, { 0, 0, 1, 0 } },
162 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
163 { { 0, 0, 0, 1 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { -1, 0, 0, 0 } },
164 { { 0, 0, -1, 0 }, { 0, 0, 0, 0 }, { 1, 0, 0, 0 }, { 0, 0, 0, 0 } } },
165 { { { 0, 0, 0, 0 }, { 0, 0, 0, 1 }, { 0, 0, 0, 0 }, { 0, -1, 0, 0 } },
166 { { 0, 0, 0, -1 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 1, 0, 0, 0 } },
167 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
168 { { 0, 1, 0, 0 }, { -1, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } } },
169 { { { 0, 0, 0, 0 }, { 0, 0, -1, 0 }, { 0, 1, 0, 0 }, { 0, 0, 0, 0 } },
170 { { 0, 0, 1, 0 }, { 0, 0, 0, 0 }, { -1, 0, 0, 0 }, { 0, 0, 0, 0 } },
171 { { 0, -1, 0, 0 }, { 1, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } },
172 { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } } } };
173 for ( int i = 0; i < 4; i++ )
174 {
175 for ( int j = 0; j < 4; j++ )
176 {
177 G[i][j] = GG[i][j];
178 for ( int k = 0; k < 4; k++ )
179 {
180 for ( int l = 0; l < 4; l++ ) { E[i][j][k][l] = EE[i][j][k][l]; }
181 }
182 }
183 }
184}
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 EvtDsToEta3pi::initProbMax ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 186 of file EvtDsToEta3pi.cc.

186{ setProbMax( 108000.0 ); }
void setProbMax(double prbmx)

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