EvtHelSys Class Reference

#include <EvtHelSys.hh>

List of all members.

Public Member Functions

virtual ~EvtHelSys ()
 EvtHelSys ()
 EvtHelSys (const EvtVector4R &p4p, const EvtVector4R &p4d)
double getHelAng (int i)
double Angles (EvtVector4R, int)
EvtVector4R checkparent ()
EvtVector4R checkdaug ()
EvtVector4R checkst (int i)
EvtVector4R Helrotate (EvtVector4R p1, double phi, double theta)

Private Attributes

EvtVector4R _p4parent
EvtVector4R _p4daug
EvtVector4R _bp4p
EvtVector4R _rotatep4p
EvtVector4R _rotatep4d
EvtVector4R _bst

Friends

double djmn (int j, int m, int n, double theta)
double djmn (double j, double m, double n, double theta)
EvtComplex Djmn (int j, int m, int n, double phi, double theta, double gamma)
EvtComplex Djmn (double j, double m, double n, double phi, double theta, double gamma)


Detailed Description

Definition at line 43 of file EvtHelSys.hh.


Constructor & Destructor Documentation

EvtHelSys::~EvtHelSys (  )  [virtual]

Definition at line 43 of file EvtHelSys.cc.

00043                       {
00044 }

EvtHelSys::EvtHelSys (  ) 

Definition at line 51 of file EvtHelSys.cc.

00051                        {
00052  }

EvtHelSys::EvtHelSys ( const EvtVector4R p4p,
const EvtVector4R p4d 
)

Definition at line 46 of file EvtHelSys.cc.

References _p4daug, and _p4parent.

00046                                                                      {
00047    _p4parent=p4p;   // parent momentum in its parent CM system
00048    _p4daug  =p4d;   // daughter momentum in its parent CM system
00049  }


Member Function Documentation

double EvtHelSys::Angles ( EvtVector4R  ,
int   
)

Definition at line 108 of file EvtHelSys.cc.

References EvtVector4R::d3mag(), EvtVector4R::get(), and sin().

Referenced by rhopifull::amps1(), rhopi::amps1(), VVS::amps1(), and getHelAng().

00108                                               {
00109 
00110 double rxy=sqrt(pow(bbst.get(1),2.)+pow(bbst.get(2),2.));
00111   if(bbst.d3mag()<=1e-10) {
00112       if(i==0) return 0.;
00113       else if (i==1) return 0.;
00114       else if (i==2) return 0.;
00115       else {cout<<"Angles(i): i<=2"<<endl;abort();}
00116    }
00117   else if(rxy<=1e-10){
00118       if(i==0) return bbst.d3mag();
00119       if(i==1) return 0.;
00120       if(i==2) return 0.;
00121       else {cout<<"Angles(i): i<=2"<<endl;abort();}
00122    }
00123    else {
00124    double theta=acos(bbst.get(3)/bbst.d3mag());
00125    double csphi=bbst.get(1)/bbst.d3mag()/sin(theta);
00126    if(fabs(csphi)>1.0) csphi=csphi/fabs(csphi);
00127    double phi=acos(csphi);
00128    if(bbst.get(2)<0.0) phi=2*3.1415926-phi;
00129       if(i==0) return bbst.d3mag();
00130       else if (i==1) return theta;
00131       else if (i==2) return phi;
00132       else {cout<<"Angles(i): i<=2"<<endl;abort();}
00133     }
00134     
00135 } 

EvtVector4R EvtHelSys::checkdaug (  ) 

Definition at line 86 of file EvtHelSys.cc.

References _p4daug.

00086 { return _p4daug;}

EvtVector4R EvtHelSys::checkparent (  ) 

Definition at line 85 of file EvtHelSys.cc.

References _p4parent.

00085 { return _p4parent;}

EvtVector4R EvtHelSys::checkst ( int  i  ) 

Definition at line 87 of file EvtHelSys.cc.

References _bp4p, _bst, _rotatep4d, _rotatep4p, and getHelAng().

00087                                    {
00088 getHelAng(1);
00089 if(i==0) return _bp4p;      //parent momentum used to boost the daughter to the CM sys.  
00090 if(i==1) return _rotatep4p; //the parent momentum in Hel system by rotation
00091 if(i==2) return _rotatep4d; //the daughter momentum in Hel. system by rotation
00092 if(i==3) return _bst;       //_bst:daughter momentum in helicity system
00093 }

double EvtHelSys::getHelAng ( int  i  ) 

Definition at line 54 of file EvtHelSys.cc.

References _bst, _p4daug, _p4parent, _rotatep4d, _rotatep4p, Angles(), EvtVector4R::d3mag(), and Helrotate().

Referenced by EvtPsi3Sdecay::AngSam(), EvtConExc::baryon_sampling(), checkst(), EvtTauGamMu::decay(), EvtT2GV::decay(), EvtSPL::decay(), EvtP2GC2::decay(), EvtP2GC1::decay(), EvtP2GC0::decay(), EvtJPE::decay(), EvtJ2BB3::decay(), EvtJ2BB2::decay(), EvtJ2BB1::decay(), EvtHypWK::decay(), EvtHelPPJ::decay(), EvtDeBD::decay(), EvtChi2BB2::decay(), EvtChi2BB1::decay(), EvtChi1BB2::decay(), EvtChi1BB1::decay(), EvtChi0BB2::decay(), EvtChi0BB1::decay(), EvtAV2GV::decay(), EvtAngSamX::decay(), EvtAngSam::decay(), EvtEvalHelAmp::evalAmp(), EvtConExc::meson_sampling(), and EvtConExc::VP_sampling().

00054                                     {
00055   EvtVector4R b_p4p,rp4p, rp4d,boostdaug; 
00056   EvtVector3R GetHelAng;
00057   while (_p4parent.d3mag()!=0) {
00058 
00059     //  b_p4p=-1 * _p4parent;   //boost from Lab to HEL sys. required to reverse mom.Vec.
00060     //  b_p4p.set(0,_p4parent.get(0));  
00061     //  _bp4p=b_p4p;
00062 
00063 // first to rotate the mother and daugher momentum to the helicity system
00064   double theta=Angles(_p4parent,1);
00065   double phi=Angles(_p4parent,2);
00066 
00067 
00068   rp4p=Helrotate(_p4parent,phi,theta);
00069   rp4d=Helrotate(_p4daug,  phi,theta);
00070 
00071 // then boos to the CM system
00072 //  EvtVector4R r_p4p=-1*rp4p;  //boost from Lab to HEL sys. required to reverse mom.Vec.
00073 //  r_p4p.set(0,rp4p.get(0));
00074 //  boostdaug=boostTo(rp4d,r_p4p);
00075 
00076   _rotatep4p=rp4p;
00077   _rotatep4d=rp4d;
00078   _bst=rp4d;
00079   //  _bp4p=r_p4p;
00080   return Angles(_bst,i);  //_bst:daughter momentum in helicity system, i=0==>|_bst|;i=1,2==>(theta,phi)
00081   }
00082  return Angles(_p4daug,i);
00083 }

EvtVector4R EvtHelSys::Helrotate ( EvtVector4R  p1,
double  phi,
double  theta 
)

Definition at line 96 of file EvtHelSys.cc.

References cos(), EvtVector4R::get(), EvtVector4R::set(), sin(), t(), and x.

Referenced by getHelAng().

00096                                                                         {
00097 EvtVector4R Rp;
00098 double cp=cos(phi);
00099 double sp=sin(phi);
00100 double ct=cos(theta);
00101 double st=sin(theta);
00102 double t=p1.get(0),x=p1.get(1), y=p1.get(2),   z=p1.get(3);
00103 double xp=x*cp*ct+y*sp*ct-z*st,yp= -x*sp+y*cp,zp=x*cp*st+y*sp*st+z*ct;
00104       Rp.set(t,xp,yp,zp);
00105  return Rp;
00106 }


Friends And Related Function Documentation

EvtComplex Djmn ( double  j,
double  m,
double  n,
double  phi,
double  theta,
double  gamma 
) [friend]

Definition at line 165 of file EvtHelSys.cc.

00165                                                                                     {
00166 int j2=(int)(j*2*1.1),m2=(int)(m*2*1.1),n2=(int)(n*2*1.1);
00167 EvtComplex gp(cos(-phi*m  ), -sin(phi*m));
00168 EvtComplex gm(cos(-gamma*n), -sin(gamma*n)); 
00169 double  tp3=EvtdFunction::d(j2,m2,n2,theta);
00170 EvtComplex temp=gp * tp3 * gm;
00171 return temp;
00172 }

EvtComplex Djmn ( int  j,
int  m,
int  n,
double  phi,
double  theta,
double  gamma 
) [friend]

Definition at line 151 of file EvtHelSys.cc.

00151                                                                            {
00152 int j2=j*2,m2=m*2,n2=n*2;
00153 EvtComplex gp(cos(-phi*m  ), -sin(phi*m));
00154 EvtComplex gm(cos(-gamma*n), -sin(gamma*n));
00155 double  tp3=EvtdFunction::d(j2,m2,n2,theta);
00156 
00157 //EvtComplex temp=wignerD(j2,m2,n2,phi,theta,gamma); //wignerD is corrected by pingrg, 2007,04,28, it gives the same result as this definition
00158 
00159 EvtComplex temp=gp * tp3 * gm;
00160 
00161 return temp;
00162 }

double djmn ( double  j,
double  m,
double  n,
double  theta 
) [friend]

Definition at line 144 of file EvtHelSys.cc.

00144                                                        {  
00145 int j2=(int)(j*2*1.1),m2=(int)(m*2*1.1),n2=(int)(n*2*1.1);
00146 double temp=EvtdFunction::d(j2,m2,n2,theta);
00147 return temp;
00148 } 

double djmn ( int  j,
int  m,
int  n,
double  theta 
) [friend]

Definition at line 138 of file EvtHelSys.cc.

00138                                               {  
00139 int j2=j*2,m2=m*2,n2=n*2;
00140 double temp=EvtdFunction::d(j2,m2,n2,theta);
00141 return temp;
00142 }


Member Data Documentation

EvtVector4R EvtHelSys::_bp4p [private]

Definition at line 65 of file EvtHelSys.hh.

Referenced by checkst().

EvtVector4R EvtHelSys::_bst [private]

Definition at line 65 of file EvtHelSys.hh.

Referenced by checkst(), and getHelAng().

EvtVector4R EvtHelSys::_p4daug [private]

Definition at line 65 of file EvtHelSys.hh.

Referenced by checkdaug(), EvtHelSys(), and getHelAng().

EvtVector4R EvtHelSys::_p4parent [private]

Definition at line 65 of file EvtHelSys.hh.

Referenced by checkparent(), EvtHelSys(), and getHelAng().

EvtVector4R EvtHelSys::_rotatep4d [private]

Definition at line 65 of file EvtHelSys.hh.

Referenced by checkst(), and getHelAng().

EvtVector4R EvtHelSys::_rotatep4p [private]

Definition at line 65 of file EvtHelSys.hh.

Referenced by checkst(), and getHelAng().


Generated on Tue Nov 29 23:19:01 2016 for BOSS_7.0.2 by  doxygen 1.4.7