BOSS 8.0.0
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 28 of file EvtJ2BB2.hh.

Constructor & Destructor Documentation

◆ EvtJ2BB2()

EvtJ2BB2::EvtJ2BB2 ( )
inline

Definition at line 31 of file EvtJ2BB2.hh.

31{}

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 46 of file EvtJ2BB2.cc.

46{ return new EvtJ2BB2; }

◆ decay()

void EvtJ2BB2::decay ( EvtParticle * p)
virtual

Implements EvtDecayBase.

Definition at line 64 of file EvtJ2BB2.cc.

64 {
65
66 static EvtId DZP = EvtPDL::getId( "Delta0" );
67 static EvtId DZM = EvtPDL::getId( "anti-Delta0" );
68 static EvtId DPP = EvtPDL::getId( "Delta+" );
69 static EvtId DPM = EvtPDL::getId( "anti-Delta-" );
70 static EvtId DMP = EvtPDL::getId( "Delta-" );
71 static EvtId DMM = EvtPDL::getId( "anti-Delta+" );
72 static EvtId DPPP = EvtPDL::getId( "Delta++" );
73 static EvtId DPPM = EvtPDL::getId( "anti-Delta--" );
74
75 static EvtId SZP = EvtPDL::getId( "Sigma*0" );
76 static EvtId SZM = EvtPDL::getId( "anti-Sigma*0" );
77 static EvtId SPP = EvtPDL::getId( "Sigma*+" );
78 static EvtId SPM = EvtPDL::getId( "anti-Sigma*-" );
79 static EvtId SMP = EvtPDL::getId( "Sigma*-" );
80 static EvtId SMM = EvtPDL::getId( "anti-Sigma*+" );
81
82 static EvtId XP = EvtPDL::getId( "Xi*-" );
83 static EvtId XM = EvtPDL::getId( "anti-Xi*+" );
84 static EvtId XZP = EvtPDL::getId( "Xi*0" );
85 static EvtId XZM = EvtPDL::getId( "anti-Xi*0" );
86
87 static EvtId OP = EvtPDL::getId( "Omega-" );
88 static EvtId OM = EvtPDL::getId( "anti-Omega+" );
89
91
92 EvtParticle *v, *s1;
93 EvtVector4R pv, ps, ppr;
94
95 v = p->getDaug( 0 );
96 s1 = p->getDaug( 1 );
97 pv = v->getP4();
98 ps = s1->getP4();
99 ppr = p->getP4();
100 // Put phase space results into the daughters.
101 EvtHelSys angles( ppr, pv ); // using helicity sys. angles
102 double theta = angles.getHelAng( 1 );
103 double phi = angles.getHelAng( 2 );
104 double gamma = 0;
105 /* double costheta=cos(theta);
106 double sintheta=sqrt(1-costheta*costheta);
107 double d11=(1+costheta)/2.;
108 double d1m1=(1-costheta)/2.;
109 double d10=-sintheta/sqrt(2.);
110 double dm10=-d10;
111 double dm11=d1m1,dm1m1=d11;
112 double d0m1=d10,d01=-d10,d00=costheta;
113 */
114 // double mass_b1 = EvtPDL::getMass(getDaug(0));
115 // double mass_b2 = EvtPDL::getMass(getDaug(1));
116 double mass_b1, mass_b2;
117 EvtId d1;
118 d1 = v->getId();
119
120 // the mass of daughters are defined in our model. Because the distribution of Delta
121 // BreitWigner mass is very large.
122
123 if ( ( d1 == XP ) || ( d1 == XM ) || ( d1 == XZP ) || ( d1 == XZM ) ) { mass_b1 = 1.532; }
124 else if ( ( d1 == SPP ) || ( d1 == SPM ) || ( d1 == SMP ) || ( d1 == SMM ) ||
125 ( d1 == SZP ) || ( d1 == SZM ) )
126 { mass_b1 = 1.383; }
127 else if ( ( d1 == DZP ) || ( d1 == DZM ) || ( d1 == DPP ) || ( d1 == DPM ) ||
128 ( d1 == DMP ) || ( d1 == DMM ) || ( d1 == DPPP ) || ( d1 == DPPM ) )
129 { mass_b1 = 1.232; }
130 else if ( ( d1 == OP ) || d1 == OM ) { mass_b1 = 1.67245; }
131 else
132 { cout << "The decay is not the process: J/psi->B10 B10bar(decuplet baryon) ." << endl; }
133
134 mass_b2 = mass_b1;
135 double mass_M = EvtPDL::getMass( getParentId() );
136
137 // double c1=pow(pv.d3mag(),2.0);
138 // double R=(mass_b1+pv.get(0))*(mass_b2+ps.get(0));
139
140 double R = pow( mass_b1 + mass_M / 2.0, 2.0 );
141 double c1 = mass_M * mass_M / 4.0 - mass_b1 * mass_b1;
142 double u = pow( ( R - c1 ) / ( R + c1 ), 2.0 );
143
144 if ( getNArg() > 0 ) { alpha = getArg( 0 ); }
145 else
146 { alpha = ( -9 * u * u * u + 17 * u * u - 16 * u + 8 ) / ( 9 * u * u * u - 7 * u * u + 8 ); }
147
148 double F00, F01, F03, F10, F11, F22, F23, F30, F32, F33;
149 double scale1 = sqrt( 3.0 ) * u / ( u - 2.0 ); // scale1=F01:F03.
150 double scale2 = 3.0 * u / ( 3.0 * u - 4 ); // scale2=F11:F00.
151
152 // F00=1.0; F01=scale1*F03;F11=scale2*F00;
153 // F03=sqrt(2.0*(1.0+scale2*scale2)*(1.0+alpha)/((1.0-alpha)*(1.0+2.0*scale1*scale1)));
154
155 F00 = sqrt( ( 1 - alpha ) / ( 4.0 * ( 1.0 + scale2 * scale2 ) ) );
156 F03 = sqrt( ( 1 + alpha ) / ( 2.0 * ( 1.0 + 2.0 * scale1 * scale1 ) ) );
157 F01 = scale1 * F03;
158 F11 = scale2 * F00;
159 F22 = F11;
160 F32 = F01;
161 F33 = F00;
162 F30 = F03;
163 F10 = F01;
164 F23 = F32; // 07.2
165
166 // J/psi helicity =1,-1,0 corresponding index=0,1,2
167 // decuplt baryon helicity =1/2,3/2,-3/2,-1/2 corresponding index=0,1,2,3
168 vertex( 0, 0, 0, Djmn( 1, 1, 0, phi, theta, gamma ) * F00 );
169 vertex( 0, 0, 1, Djmn( 1, 1, -1, phi, theta, gamma ) * F01 );
170 vertex( 0, 0, 2, 0.0 );
171 vertex( 0, 0, 3, Djmn( 1, 1, 1, phi, theta, gamma ) * F03 );
172 vertex( 0, 1, 0, Djmn( 1, 1, 1, phi, theta, gamma ) * F10 );
173 vertex( 0, 1, 1, Djmn( 1, 1, 0, phi, theta, gamma ) * F11 );
174 vertex( 0, 1, 2, 0.0 );
175 vertex( 0, 1, 3, 0.0 );
176 vertex( 0, 2, 0, 0.0 );
177 vertex( 0, 2, 1, 0.0 );
178 vertex( 0, 2, 2, Djmn( 1, 1, 0, phi, theta, gamma ) * F22 );
179 vertex( 0, 2, 3, Djmn( 1, 1, -1, phi, theta, gamma ) * F23 );
180 vertex( 0, 3, 0, Djmn( 1, 1, -1, phi, theta, gamma ) * F30 );
181 vertex( 0, 3, 1, 0.0 );
182 vertex( 0, 3, 2, Djmn( 1, 1, 1, phi, theta, gamma ) * F32 );
183 vertex( 0, 3, 3, Djmn( 1, 1, 0, phi, theta, gamma ) * F33 );
184
185 vertex( 1, 0, 0, Djmn( 1, -1, 0, phi, theta, gamma ) * F00 );
186 vertex( 1, 0, 1, Djmn( 1, -1, -1, phi, theta, gamma ) * F01 );
187 vertex( 1, 0, 2, 0.0 );
188 vertex( 1, 0, 3, Djmn( 1, -1, 1, phi, theta, gamma ) * F03 );
189 vertex( 1, 1, 0, Djmn( 1, -1, 1, phi, theta, gamma ) * F10 );
190 vertex( 1, 1, 1, Djmn( 1, -1, 0, phi, theta, gamma ) * F11 );
191 vertex( 1, 1, 2, 0.0 );
192 vertex( 1, 1, 3, 0.0 );
193 vertex( 1, 2, 0, 0.0 );
194 vertex( 1, 2, 1, 0.0 );
195 vertex( 1, 2, 2, Djmn( 1, -1, 0, phi, theta, gamma ) * F22 );
196 vertex( 1, 2, 3, Djmn( 1, -1, -1, phi, theta, gamma ) * F23 );
197 vertex( 1, 3, 0, Djmn( 1, -1, -1, phi, theta, gamma ) * F30 );
198 vertex( 1, 3, 1, 0.0 );
199 vertex( 1, 3, 2, Djmn( 1, -1, 1, phi, theta, gamma ) * F32 );
200 vertex( 1, 3, 3, Djmn( 1, -1, 0, phi, theta, gamma ) * F33 );
201
202 vertex( 2, 0, 0, Djmn( 1, 0, 0, phi, theta, gamma ) * F00 );
203 vertex( 2, 0, 1, Djmn( 1, 0, -1, phi, theta, gamma ) * F01 );
204 vertex( 2, 0, 2, 0.0 );
205 vertex( 2, 0, 3, Djmn( 1, 0, 1, phi, theta, gamma ) * F03 );
206 vertex( 2, 1, 0, Djmn( 1, 0, 1, phi, theta, gamma ) * F10 );
207 vertex( 2, 1, 1, Djmn( 1, 0, 0, phi, theta, gamma ) * F11 );
208 vertex( 2, 1, 2, 0.0 );
209 vertex( 2, 1, 3, 0.0 );
210 vertex( 2, 2, 0, 0.0 );
211 vertex( 2, 2, 1, 0.0 );
212 vertex( 2, 2, 2, Djmn( 1, 0, 0, phi, theta, gamma ) * F22 );
213 vertex( 2, 2, 3, Djmn( 1, 0, -1, phi, theta, gamma ) * F23 );
214 vertex( 2, 3, 0, Djmn( 1, 0, -1, phi, theta, gamma ) * F30 );
215 vertex( 2, 3, 1, 0.0 );
216 vertex( 2, 3, 2, Djmn( 1, 0, 1, phi, theta, gamma ) * F32 );
217 vertex( 2, 3, 3, Djmn( 1, 0, 0, phi, theta, gamma ) * F33 );
218
219 return;
220}
EvtComplex Djmn(int j, int m, int n, double phi, double theta, double gamma)
Definition EvtHelSys.cc:165
**********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()
double alpha
Definition EvtJ2BB2.hh:42
double u
Definition EvtJ2BB2.hh:43
static double getMass(EvtId i)
Definition EvtPDL.hh:44
static EvtId getId(const std::string &name)
Definition EvtPDL.cc:272
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:22

◆ getName()

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

Implements EvtDecayBase.

Definition at line 44 of file EvtJ2BB2.cc.

44{ model_name = "J2BB2"; }

◆ init() [1/2]

void EvtJ2BB2::init ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 48 of file EvtJ2BB2.cc.

48 {
49 // checkNArg(1);
50 checkNDaug( 2 );
54}
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 42 of file EvtJ2BB2.hh.

Referenced by decay().

◆ u

double EvtJ2BB2::u

Definition at line 43 of file EvtJ2BB2.hh.

Referenced by decay().


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