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

#include <EvtDsTof0enu.hh>

Inheritance diagram for EvtDsTof0enu:

Public Member Functions

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

Constructor & Destructor Documentation

◆ EvtDsTof0enu()

EvtDsTof0enu::EvtDsTof0enu ( )
inline

Definition at line 10 of file EvtDsTof0enu.hh.

10{}

Referenced by clone().

◆ ~EvtDsTof0enu()

EvtDsTof0enu::~EvtDsTof0enu ( )
virtual

Definition at line 28 of file EvtDsTof0enu.cc.

28{}

Member Function Documentation

◆ clone()

EvtDecayBase * EvtDsTof0enu::clone ( )
virtual

Implements EvtDecayBase.

Definition at line 32 of file EvtDsTof0enu.cc.

32{ return new EvtDsTof0enu; }

◆ decay()

void EvtDsTof0enu::decay ( EvtParticle * p)
virtual

Implements EvtDecayBase.

Definition at line 159 of file EvtDsTof0enu.cc.

159 {
160 /*
161 double maxprob = 0.0;
162 for(int ir=0;ir<=60000000;ir++){
163 p->initializePhaseSpace(getNDaug(),getDaugs());
164 EvtVector4R _pi1 = p->getDaug(0)->getP4();
165 EvtVector4R _pi2 = p->getDaug(1)->getP4();
166 EvtVector4R _e = p->getDaug(2)->getP4();
167 EvtVector4R _nu = p->getDaug(3)->getP4();
168
169 int pid = EvtPDL::getStdHep(p->getDaug(2)->getId());
170 int charm;
171 if(pid == 11) charm = -1;
172 else charm = 1;
173 double m2, q2, cosV, cosL, chi;
174 KinVGen(_pi1, _pi2, _e, _nu, charm, m2, q2, cosV, cosL, chi);
175 double _prob = calPDF(m2, q2, cosV, cosL, chi);
176 if(_prob>maxprob) {
177 maxprob=_prob;
178 cout << "1 = " << _pi1 << endl;
179 cout << "2 = " << _pi2 << endl;
180 cout << "3 = " << _e << endl;
181 cout << "4 = " << _nu << endl;
182 std::cout << "Max PDF = " << ir << " charm= " << charm << " prob= " << _prob <<
183 std::endl;
184 }
185 }
186 std::cout << "Max!!!!!!!!!!! " << maxprob<< std::endl;
187 */
189 EvtVector4R pi1 = p->getDaug( 0 )->getP4();
190 EvtVector4R pi2 = p->getDaug( 1 )->getP4();
191 EvtVector4R e = p->getDaug( 2 )->getP4();
192 EvtVector4R nu = p->getDaug( 3 )->getP4();
193
194 int pid = EvtPDL::getStdHep( p->getDaug( 2 )->getId() );
195 int charm;
196 if ( pid == 11 || pid == 13 ) charm = -1;
197 else charm = 1;
198 double m2, q2, cosV, cosL, chi;
199 KinVGen( pi1, pi2, e, nu, charm, m2, q2, cosV, cosL, chi );
200 double prob = calPDF( m2, q2, cosV, cosL, chi );
201 setProb( prob );
202 return;
203}
character *LEPTONflag integer iresonances real pi2
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 double * m2
Definition qcdloop1.h:83

◆ getName()

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

Implements EvtDecayBase.

Definition at line 30 of file EvtDsTof0enu.cc.

30{ model_name = "DsTof0enu"; }

◆ init()

void EvtDsTof0enu::init ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 34 of file EvtDsTof0enu.cc.

34 {
35 static EvtId DsP = EvtPDL::getId( "D_s+" );
36 static EvtId DsM = EvtPDL::getId( "D_s-" );
37 static EvtId PIM = EvtPDL::getId( "pi-" );
38 static EvtId PIP = EvtPDL::getId( "pi+" );
39 static EvtId PI0 = EvtPDL::getId( "pi0" );
40 static EvtId KM = EvtPDL::getId( "K-" );
41 static EvtId KP = EvtPDL::getId( "K+" );
42 static EvtId KL = EvtPDL::getId( "K_L0" );
43 static EvtId KS = EvtPDL::getId( "K_S0" );
44 static EvtId EP = EvtPDL::getId( "e+" );
45 static EvtId EM = EvtPDL::getId( "e-" );
46 static EvtId MUP = EvtPDL::getId( "mu+" );
47 static EvtId MUM = EvtPDL::getId( "mu-" );
48
49 checkNArg( 0 );
50 checkNDaug( 4 );
54
55 // std::cout << "EvtDsTof0enu ==> Initialization !" << std::endl;
56
57 EvtId parnum = getParentId();
58 EvtId d1 = getDaug( 0 );
59 EvtId d2 = getDaug( 1 );
60 EvtId d3 = getDaug( 2 );
61 if ( d3 == EP || d3 == EM )
62 {
63 if ( parnum == DsP || parnum == DsM )
64 {
65 if ( d1 == PI0 )
66 {
67 ProbMax = 33.0;
68 // std::cout << "EvtDsTof0enu ==> Ds -> f0 (pi0pi0) e+ nu : ProMax = " << ProbMax <<
69 // std::endl;
70 }
71 else if ( d1 == PIP || d2 == PIP )
72 {
73 ProbMax = 33.0;
74 // std::cout << "EvtDsTof0enu ==> Ds -> f0 (pi-pi+) e+ nu : ProMax = " << ProbMax <<
75 // std::endl;
76 }
77 else if ( d1 == KP || d2 == KP )
78 {
79 ProbMax = 29.0;
80 // std::cout << "EvtDsTof0enu ==> Ds -> f0 (K-K+) e+ nu : ProMax = " << ProbMax <<
81 // std::endl;
82 }
83 else if ( d1 == KS )
84 {
85 ProbMax = 18.0;
86 // std::cout << "EvtDsTof0enu ==> Ds -> f0 (KS0KS0) e+ nu : ProMax = " << ProbMax <<
87 // std::endl;
88 }
89 else if ( d1 == KL )
90 {
91 ProbMax = 18.0;
92 // std::cout << "EvtDsTof0enu ==> Ds -> f0 (KL0KL0) e+ nu : ProMax = " << ProbMax <<
93 // std::endl;
94 }
95 }
96 }
97 if ( d3 == MUP || d3 == MUM )
98 {
99 if ( parnum == DsP || parnum == DsM )
100 {
101 if ( d1 == PI0 )
102 {
103 ProbMax = 33.0;
104 // std::cout << "EvtDsTof0enu ==> Ds -> f0 (pi0pi0) mu+ nu : ProMax = " << ProbMax <<
105 // std::endl;
106 }
107 else if ( d1 == PIP || d2 == PIP )
108 {
109 ProbMax = 33.0;
110 // std::cout << "EvtDsTof0enu ==> Ds -> f0 (pi-pi+) mu+ nu : ProMax = " << ProbMax <<
111 // std::endl;
112 }
113 else if ( d1 == KP || d2 == KP )
114 {
115 ProbMax = 29.0;
116 // std::cout << "EvtDsTof0enu ==> Ds -> f0 (K-K+) mu+ nu : ProMax = " << ProbMax <<
117 // std::endl;
118 }
119 else if ( d1 == KS )
120 {
121 ProbMax = 18.0;
122 // std::cout << "EvtDsTof0enu ==> Ds -> f0 (KS0KS0) mu+ nu : ProMax = " << ProbMax <<
123 // std::endl;
124 }
125 else if ( d1 == KL )
126 {
127 ProbMax = 18.0;
128 // std::cout << "EvtDsTof0enu ==> Ds -> f0 (KL0KL0) mu+ nu : ProMax = " << ProbMax <<
129 // std::endl;
130 }
131 }
132 }
133
134 ciR = EvtComplex( 1.0, 0.0 );
135 ciM = EvtComplex( 0.0, 1.0 );
136
137 mPi = 0.13957;
138 mPi0 = 0.1349766;
139 mK0 = 0.497611;
140 mKa = 0.493677;
141 mEt = 0.547853;
142
143 ///////////// for Ds to f0 e nu
144 double mADs = 2.5;
145 m2ADs = mADs * mADs;
146 mf0 = 0.9399;
147 m2f0 = mf0 * mf0;
148 flatte_g1 = 0.199 * mf0;
149 flatte_g2 = 3.01 * 0.199 * mf0;
150 mDs = 1.96834;
151 m2Ds = mDs * mDs;
152}
void checkSpinDaughter(int d1, EvtSpinType::spintype sp)
void checkSpinParent(EvtSpinType::spintype sp)
EvtId getParentId()
void checkNDaug(int d1, int d2=-1)
void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)
EvtId getDaug(int i)
static EvtId getId(const std::string &name)
Definition EvtPDL.cc:272

◆ initProbMax()

void EvtDsTof0enu::initProbMax ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 154 of file EvtDsTof0enu.cc.

154 {
155 // cout << "EvtDsTof0enu: setProbMax = " << ProbMax << endl;
156 setProbMax( ProbMax );
157}
void setProbMax(double prbmx)

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