CGEM BOSS 6.6.5.h
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtJ2BB3 Class Reference

#include <EvtJ2BB3.hh>

+ Inheritance diagram for EvtJ2BB3:

Public Member Functions

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

Constructor & Destructor Documentation

◆ EvtJ2BB3()

EvtJ2BB3::EvtJ2BB3 ( )
inline

Definition at line 36 of file EvtJ2BB3.hh.

36{}

Referenced by clone().

◆ ~EvtJ2BB3()

EvtJ2BB3::~EvtJ2BB3 ( )
virtual

Definition at line 42 of file EvtJ2BB3.cc.

42{}

Member Function Documentation

◆ clone()

EvtDecayBase * EvtJ2BB3::clone ( )
virtual

Implements EvtDecayBase.

Definition at line 51 of file EvtJ2BB3.cc.

51 {
52
53 return new EvtJ2BB3;
54
55}

◆ decay()

void EvtJ2BB3::decay ( EvtParticle * p)
virtual

Implements EvtDecayBase.

Definition at line 74 of file EvtJ2BB3.cc.

74 {
75 loop:
77
78 EvtParticle *v,*s1;
79 EvtVector4R pv,ps,ppr;
80
81 v =p->getDaug(0);
82 s1=p->getDaug(1);
83 pv=v->getP4();
84 ps=s1->getP4();
85 ppr=p->getP4();
86// Put phase space results into the daughters.
87 EvtHelSys angles(ppr,pv); //using helicity sys. angles
88 double theta =angles.getHelAng(1);
89 double phi =angles.getHelAng(2);
90 double gamma=0;
91
92 double m_b0 = EvtPDL::getMass(getDaug(0)); //the mass of daughter1 is large than daughter0.
93 double m_b1 = EvtPDL::getMass(getDaug(1));
94
95
96 double m_M = EvtPDL::getMass(getParentId());
97 double M2=pow(m_M,2.0);double b2_p=pow((m_b0+m_b1),2.0);
98 double b2_m=pow((m_b1-m_b0),2.0);
99
100 if(M2-b2_p<=0) goto loop;
101
102 double P_c=sqrt((M2-b2_p)*(M2-b2_m)/(4.0*M2));
103 double Q=M2-b2_p;
104 double F1=-0.54/(m_b0*b2_p);
105 double F2=-0.54*(m_b1-m_b0)/(m_b0*(m_b0+m_b1));
106 double F3=-0.89/m_b0;
107 double H1,H0,Hm1;
108
109//OK. We have all tested these parameters.
110
111 if(getNArg()>0)
112 { alpha=getArg(0);
113 H0=1.0;H1=sqrt((1+alpha)/(1-alpha));Hm1=H1;
114 }
115 else{
116 H1=-1.15*P_c*m_M*(-M2*Q*F1-Q*F2+(M2-m_b0*(m_b0+m_b1))*F3)/(sqrt(Q)*m_b1);
117 H0=-0.82*P_c*M2*(-(m_b1-m_b0)*Q*F1/m_b1-Q*F2/(m_b1*(m_b1-m_b0))+2.0*F3)/sqrt(Q);
118 Hm1=2*P_c*m_M*(m_b0+m_b1)*F3/sqrt(Q);
119 alpha=(H1*H1+Hm1*Hm1-2*H0*H0)/(H1*H1+Hm1*Hm1+2*H0*H0);
120 }
121//cout<<"------alpha="<<alpha<<";H0="<<H0<<";H1="<<H1<<";Hm1="<<Hm1<<endl;
122
123// J/psi helicity =1 corresponding index=0
124 vertex(0,0,0,Djmn(1, 1, 0,phi,theta,gamma)*H0);
125 vertex(0,0,1,Djmn(1, 1,-1,phi,theta,gamma)*Hm1);
126 vertex(0,0,2,0.0);
127 vertex(0,0,3,Djmn(1, 1, 1,phi,theta,gamma)*H1);
128 vertex(0,1,0,Djmn(1, 1,-1,phi,theta,gamma)*H1);
129 vertex(0,1,1,0.0);
130 vertex(0,1,2,Djmn(1, 1, 1,phi,theta,gamma)*Hm1);
131 vertex(0,1,3,Djmn(1, 1, 0,phi,theta,gamma)*H0);
132// J/psi helicity =-1 corresponding index=1
133 vertex(1,0,0,Djmn(1,-1, 0,phi,theta,gamma)*H0);
134 vertex(1,0,1,Djmn(1,-1,-1,phi,theta,gamma)*Hm1);
135 vertex(1,0,2,0.0);
136 vertex(1,0,3,Djmn(1,-1, 1,phi,theta,gamma)*H1);
137 vertex(1,1,0,Djmn(1,-1,-1,phi,theta,gamma)*H1);
138 vertex(1,1,1,0.0);
139 vertex(1,1,2,Djmn(1,-1, 1,phi,theta,gamma)*Hm1);
140 vertex(1,1,3,Djmn(1,-1, 0,phi,theta,gamma)*H0);
141
142// J/psi helicity =0 corresponding index=2
143 vertex(2,0,0,Djmn(1, 0, 0,phi,theta,gamma)*H0);
144 vertex(2,0,1,Djmn(1, 0,-1,phi,theta,gamma)*Hm1);
145 vertex(2,0,2,0.0);
146 vertex(2,0,3,Djmn(1, 0, 1,phi,theta,gamma)*H1);
147 vertex(2,1,0,Djmn(1, 0,-1,phi,theta,gamma)*H1);
148 vertex(2,1,1,0.0);
149 vertex(2,1,2,Djmn(1, 0, 1,phi,theta,gamma)*Hm1);
150 vertex(2,1,3,Djmn(1, 0, 0,phi,theta,gamma)*H0);
151
152 return ;
153
154}
EvtComplex Djmn(int j, int m, int n, double phi, double theta, double gamma)
Definition EvtHelSys.cc:151
*********DOUBLE PRECISION m_pi INTEGER m_lenwt !max no of aux weights INTEGER m_phmax !maximum photon multiplicity ISR FSR *DOUBLE COMPLEX m_Pauli4 DOUBLE COMPLEX m_AmpBorn DOUBLE COMPLEX m_AmpBoxy DOUBLE COMPLEX m_AmpBorn1 DOUBLE COMPLEX m_AmpBorn2 DOUBLE COMPLEX m_AmpExpo2p DOUBLE COMPLEX m_Rmat DOUBLE COMPLEX m_BoxGZut !DOUBLE COMPLEX m_F1finPair2 !DOUBLE PRECISION m_Vcut DOUBLE PRECISION m_Alfinv DOUBLE PRECISION m_Lorin1 DOUBLE PRECISION m_Lorin2 DOUBLE PRECISION m_b1
Definition GPS.h:30
**********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()
EvtId getDaug(int i)
double alpha
Definition EvtJ2BB3.hh:47
static double getMass(EvtId i)
Definition EvtPDL.hh:46
const EvtVector4R & getP4() const
EvtParticle * getDaug(int i)
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)

◆ getName()

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

Implements EvtDecayBase.

Definition at line 44 of file EvtJ2BB3.cc.

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

◆ init() [1/2]

void EvtJ2BB3::init ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 57 of file EvtJ2BB3.cc.

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

◆ init() [2/2]

void EvtJ2BB3::init ( int ,
double *  )

Member Data Documentation

◆ alpha

double EvtJ2BB3::alpha

Definition at line 47 of file EvtJ2BB3.hh.

Referenced by decay().

◆ u

double EvtJ2BB3::u

Definition at line 48 of file EvtJ2BB3.hh.


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