CGEM BOSS 6.6.5.i
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtJ2BB2 Class Reference

#include <EvtJ2BB2.hh>

+ Inheritance diagram for EvtJ2BB2:

Public Member Functions

 EvtJ2BB2 ()
 
virtual ~EvtJ2BB2 ()
 
void getName (std::string &name)
 
EvtDecayBaseclone ()
 
void decay (EvtParticle *p)
 
void init ()
 
void init (int, double *)
 
- Public Member Functions inherited from EvtDecayAmp
void makeDecay (EvtParticle *p)
 
void setWeight (double weight)
 
void vertex (const EvtComplex &amp)
 
void vertex (int i1, const EvtComplex &amp)
 
void vertex (int i1, int i2, const EvtComplex &amp)
 
void vertex (int i1, int i2, int i3, const EvtComplex &amp)
 
void vertex (int *i1, const EvtComplex &amp)
 
virtual ~EvtDecayAmp ()
 
- Public Member Functions inherited from EvtDecayBase
virtual void initProbMax ()
 
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 ()
 

Public Attributes

double alpha
 
double u
 

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 EvtDecayAmp
EvtAmp _amp2
 
- Protected Attributes inherited from EvtDecayBase
bool _daugsDecayedByParentModel
 

Detailed Description

Definition at line 29 of file EvtJ2BB2.hh.

Constructor & Destructor Documentation

◆ EvtJ2BB2()

EvtJ2BB2::EvtJ2BB2 ( )
inline

Definition at line 33 of file EvtJ2BB2.hh.

33{}

Referenced by clone().

◆ ~EvtJ2BB2()

EvtJ2BB2::~EvtJ2BB2 ( )
virtual

Definition at line 42 of file EvtJ2BB2.cc.

42{}

Member Function Documentation

◆ clone()

EvtDecayBase * EvtJ2BB2::clone ( )
virtual

Implements EvtDecayBase.

Definition at line 51 of file EvtJ2BB2.cc.

51 {
52
53 return new EvtJ2BB2;
54
55}

◆ decay()

void EvtJ2BB2::decay ( EvtParticle * p)
virtual

Implements EvtDecayBase.

Definition at line 74 of file EvtJ2BB2.cc.

74 {
75
76 static EvtId DZP=EvtPDL::getId("Delta0");
77 static EvtId DZM=EvtPDL::getId("anti-Delta0");
78 static EvtId DPP=EvtPDL::getId("Delta+");
79 static EvtId DPM=EvtPDL::getId("anti-Delta-");
80 static EvtId DMP=EvtPDL::getId("Delta-");
81 static EvtId DMM=EvtPDL::getId("anti-Delta+");
82 static EvtId DPPP=EvtPDL::getId("Delta++");
83 static EvtId DPPM=EvtPDL::getId("anti-Delta--");
84
85 static EvtId SZP=EvtPDL::getId("Sigma*0");
86 static EvtId SZM=EvtPDL::getId("anti-Sigma*0");
87 static EvtId SPP=EvtPDL::getId("Sigma*+");
88 static EvtId SPM=EvtPDL::getId("anti-Sigma*-");
89 static EvtId SMP=EvtPDL::getId("Sigma*-");
90 static EvtId SMM=EvtPDL::getId("anti-Sigma*+");
91
92 static EvtId XP=EvtPDL::getId("Xi*-");
93 static EvtId XM=EvtPDL::getId("anti-Xi*+");
94 static EvtId XZP=EvtPDL::getId("Xi*0");
95 static EvtId XZM=EvtPDL::getId("anti-Xi*0");
96
97 static EvtId OP=EvtPDL::getId("Omega-");
98 static EvtId OM=EvtPDL::getId("anti-Omega+");
99
101
102 EvtParticle *v,*s1;
103 EvtVector4R pv,ps,ppr;
104
105 v =p->getDaug(0);
106 s1=p->getDaug(1);
107 pv=v->getP4();
108 ps=s1->getP4();
109 ppr=p->getP4();
110// Put phase space results into the daughters.
111 EvtHelSys angles(ppr,pv); //using helicity sys. angles
112 double theta =angles.getHelAng(1);
113 double phi =angles.getHelAng(2);
114 double gamma=0;
115/* double costheta=cos(theta);
116 double sintheta=sqrt(1-costheta*costheta);
117 double d11=(1+costheta)/2.;
118 double d1m1=(1-costheta)/2.;
119 double d10=-sintheta/sqrt(2.);
120 double dm10=-d10;
121 double dm11=d1m1,dm1m1=d11;
122 double d0m1=d10,d01=-d10,d00=costheta;
123*/
124// double mass_b1 = EvtPDL::getMass(getDaug(0));
125// double mass_b2 = EvtPDL::getMass(getDaug(1));
126 double mass_b1,mass_b2;
127 EvtId d1;
128 d1=v->getId();
129
130// the mass of daughters are defined in our model. Because the distribution of Delta BreitWigner mass is very large.
131
132 if((d1==XP)||(d1==XM)||(d1==XZP)||(d1==XZM)) {mass_b1=1.532;}
133 else if((d1==SPP)||(d1==SPM)||(d1==SMP)||(d1==SMM)||(d1==SZP)||(d1==SZM)){mass_b1=1.383;}
134 else if((d1==DZP)||(d1==DZM)||(d1==DPP)||(d1==DPM)||(d1==DMP)||(d1==DMM)||(d1==DPPP)||(d1==DPPM)){mass_b1=1.232;}
135 else if((d1==OP)||d1==OM){mass_b1=1.67245;}
136 else{cout<<"The decay is not the process: J/psi->B10 B10bar(decuplet baryon) ."<<endl;}
137
138 mass_b2=mass_b1;
139 double mass_M = EvtPDL::getMass(getParentId());
140
141// double c1=pow(pv.d3mag(),2.0);
142// double R=(mass_b1+pv.get(0))*(mass_b2+ps.get(0));
143
144 double R=pow(mass_b1+mass_M/2.0,2.0);
145 double c1=mass_M*mass_M/4.0-mass_b1*mass_b1;
146 double u=pow((R-c1)/(R+c1),2.0);
147
148 if(getNArg()>0){ alpha=getArg(0);}
149 else{
150 alpha=(-9*u*u*u+17*u*u-16*u+8)/(9*u*u*u-7*u*u+8);
151 }
152
153 double F00,F01,F03,F10,F11,F22,F23,F30,F32,F33;
154 double scale1=sqrt(3.0)*u/(u-2.0); //scale1=F01:F03.
155 double scale2=3.0*u/(3.0*u-4); //scale2=F11:F00.
156
157// F00=1.0; F01=scale1*F03;F11=scale2*F00;
158// F03=sqrt(2.0*(1.0+scale2*scale2)*(1.0+alpha)/((1.0-alpha)*(1.0+2.0*scale1*scale1)));
159
160 F00=sqrt((1-alpha)/(4.0*(1.0+scale2*scale2)));
161 F03=sqrt((1+alpha)/(2.0*(1.0+2.0*scale1*scale1)));
162 F01=scale1*F03;F11=scale2*F00;
163 F22=F11;F32=F01;F33=F00;F30=F03;F10=F01;F23=F32; //07.2
164
165// J/psi helicity =1,-1,0 corresponding index=0,1,2
166//decuplt baryon helicity =1/2,3/2,-3/2,-1/2 corresponding index=0,1,2,3
167 vertex(0,0,0,Djmn(1, 1, 0,phi,theta,gamma)*F00);
168 vertex(0,0,1,Djmn(1, 1,-1,phi,theta,gamma)*F01);
169 vertex(0,0,2,0.0);
170 vertex(0,0,3,Djmn(1, 1, 1,phi,theta,gamma)*F03);
171 vertex(0,1,0,Djmn(1, 1, 1,phi,theta,gamma)*F10);
172 vertex(0,1,1,Djmn(1, 1, 0,phi,theta,gamma)*F11);
173 vertex(0,1,2,0.0);
174 vertex(0,1,3,0.0);
175 vertex(0,2,0,0.0);
176 vertex(0,2,1,0.0);
177 vertex(0,2,2,Djmn(1, 1, 0,phi,theta,gamma)*F22);
178 vertex(0,2,3,Djmn(1, 1,-1,phi,theta,gamma)*F23);
179 vertex(0,3,0,Djmn(1, 1,-1,phi,theta,gamma)*F30);
180 vertex(0,3,1,0.0);
181 vertex(0,3,2,Djmn(1, 1, 1,phi,theta,gamma)*F32);
182 vertex(0,3,3,Djmn(1, 1, 0,phi,theta,gamma)*F33);
183
184 vertex(1,0,0,Djmn(1,-1, 0,phi,theta,gamma)*F00);
185 vertex(1,0,1,Djmn(1,-1,-1,phi,theta,gamma)*F01);
186 vertex(1,0,2,0.0);
187 vertex(1,0,3,Djmn(1,-1, 1,phi,theta,gamma)*F03);
188 vertex(1,1,0,Djmn(1,-1, 1,phi,theta,gamma)*F10);
189 vertex(1,1,1,Djmn(1,-1, 0,phi,theta,gamma)*F11);
190 vertex(1,1,2,0.0);
191 vertex(1,1,3,0.0);
192 vertex(1,2,0,0.0);
193 vertex(1,2,1,0.0);
194 vertex(1,2,2,Djmn(1,-1, 0,phi,theta,gamma)*F22);
195 vertex(1,2,3,Djmn(1,-1,-1,phi,theta,gamma)*F23);
196 vertex(1,3,0,Djmn(1,-1,-1,phi,theta,gamma)*F30);
197 vertex(1,3,1,0.0);
198 vertex(1,3,2,Djmn(1,-1, 1,phi,theta,gamma)*F32);
199 vertex(1,3,3,Djmn(1,-1, 0,phi,theta,gamma)*F33);
200
201 vertex(2,0,0,Djmn(1, 0, 0,phi,theta,gamma)*F00);
202 vertex(2,0,1,Djmn(1, 0,-1,phi,theta,gamma)*F01);
203 vertex(2,0,2,0.0);
204 vertex(2,0,3,Djmn(1, 0, 1,phi,theta,gamma)*F03);
205 vertex(2,1,0,Djmn(1, 0, 1,phi,theta,gamma)*F10);
206 vertex(2,1,1,Djmn(1, 0, 0,phi,theta,gamma)*F11);
207 vertex(2,1,2,0.0);
208 vertex(2,1,3,0.0);
209 vertex(2,2,0,0.0);
210 vertex(2,2,1,0.0);
211 vertex(2,2,2,Djmn(1, 0, 0,phi,theta,gamma)*F22);
212 vertex(2,2,3,Djmn(1, 0,-1,phi,theta,gamma)*F23);
213 vertex(2,3,0,Djmn(1, 0,-1,phi,theta,gamma)*F30);
214 vertex(2,3,1,0.0);
215 vertex(2,3,2,Djmn(1, 0, 1,phi,theta,gamma)*F32);
216 vertex(2,3,3,Djmn(1, 0, 0,phi,theta,gamma)*F33);
217
218 return ;
219
220}
TCanvas * c1
EvtComplex Djmn(int j, int m, int n, double phi, double theta, double gamma)
Definition EvtHelSys.cc:151
**********Class see also m_nmax DOUBLE PRECISION m_amel DOUBLE PRECISION m_x2 DOUBLE PRECISION m_alfinv DOUBLE PRECISION m_Xenph INTEGER m_KeyWtm INTEGER m_idyfs DOUBLE PRECISION m_zini DOUBLE PRECISION m_q2 DOUBLE PRECISION m_Wt_KF DOUBLE PRECISION m_WtCut INTEGER m_KFfin *COMMON c_KarLud $ !Input CMS energy[GeV] $ !CMS energy after beam spread beam strahlung[GeV] $ !Beam energy spread[GeV] $ !z boost due to beam spread $ !electron beam mass *ff pair spectrum $ !minimum v
Definition KarLud.h:35
void vertex(const EvtComplex &amp)
double getArg(int j)
EvtId getParentId()
EvtId * getDaugs()
Definition EvtId.hh:27
int getId() const
Definition EvtId.hh:41
double alpha
Definition EvtJ2BB2.hh:44
double u
Definition EvtJ2BB2.hh:45
static double getMass(EvtId i)
Definition EvtPDL.hh:46
static EvtId getId(const std::string &name)
Definition EvtPDL.cc:287
const EvtVector4R & getP4() const
EvtParticle * getDaug(int i)
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
complex_t R(double Q2, double M2, double G, double Mp2, double Mm2)
Definition TUtil.h:27

◆ getName()

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

Implements EvtDecayBase.

Definition at line 44 of file EvtJ2BB2.cc.

44 {
45
46 model_name="J2BB2";
47
48}

◆ init() [1/2]

void EvtJ2BB2::init ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 57 of file EvtJ2BB2.cc.

57 {
58// checkNArg(1);
59 checkNDaug(2);
63
64 }
void checkSpinDaughter(int d1, EvtSpinType::spintype sp)
void checkSpinParent(EvtSpinType::spintype sp)
void checkNDaug(int d1, int d2=-1)

◆ init() [2/2]

void EvtJ2BB2::init ( int ,
double *  )

Member Data Documentation

◆ alpha

double EvtJ2BB2::alpha

Definition at line 44 of file EvtJ2BB2.hh.

Referenced by decay().

◆ u

double EvtJ2BB2::u

Definition at line 45 of file EvtJ2BB2.hh.

Referenced by decay().


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