GRSISort
Created by P.C. Bender
Developement Team: P.C. Bender, R. Dunlop, V. Bildstein
An extension of the ROOT analysis Framework
TKinematics Class Reference

This class calculates 2 body kinematics from a beam, target, recoil, ejectile, and beam energy.

Definition at line 33 of file TKinematics.h.

Public Member Functions

 TKinematics (double beame, const char *beam, const char *targ, const char *ejec=nullptr, const char *reco=nullptr, const char *name="")
 
 TKinematics (const char *beam, const char *targ, const char *ejec, const char *reco, double ebeam, double ex3=0.0, const char *name="")
 
 TKinematics (TNucleus *projectile, TNucleus *target, double ebeam, const char *name="")
 
 TKinematics (TNucleus *projectile, TNucleus *target, TNucleus *recoil, TNucleus *ejectile, double ebeam, const char *name="")
 
 TKinematics (TNucleus *projectile, TNucleus *target, TNucleus *recoil, TNucleus *ejectile, double ebeam, double ex3, const char *name="")
 
double Angle_cm2lab (double vcm, double angle_cm)
 
double Angle_lab2cm (double vcm, double angle_lab)
 
double Angle_lab2cminverse (double vcm, double angle_lab, bool upper=true)
 
void AngleErr_lab2cm (double angle, double &err)
 
bool CheckMaxAngle (double angle, int part)
 
TSpline3 * cmvslab (double thmin, double thmax, double size, int part=2)
 
double ELab (double angle_lab, int part)
 
TSpline3 * Evscm (double thmin, double thmax, double size, int part=2)
 
TSpline3 * Evslab (double thmin, double thmax, double size, int part=2)
 
TGraph * Evslab_graph (double thmin, double thmax, double size, int part=2)
 
void Final (double angle, int part)
 
void FinalCm ()
 
double GetBeamEnergy (double LabAngle, double LabEnergy)
 
double GetBetacm ()
 
double GetBetacm (int i)
 
double GetCmEnergy (double ebeam)
 
double GetCmEnergy ()
 
double GetEcm (int i)
 
double GetElab (int i)
 
double GetExcEnergy (TLorentzVector recoil)
 
double GetExcEnergy (TVector3 position, double KinE)
 
double GetExcEnergy (double theta, double KinE)
 
double GetGammacm ()
 
double GetM (int i)
 
double GetMaxAngle (double vcm)
 
double GetMaxAngle (int part)
 
double GetQValue ()
 
double GetTcm (int i)
 
double GetThetacm (int i)
 
double GetThetalab (int i)
 
double GetTlab (int i)
 
double GetV (int i)
 
double GetVcm (int i)
 
void Initial ()
 
TSpline3 * labvscm (double thmin, double thmax, double size, int part=2)
 
double NormalkinEnergy ()
 
double Rutherford (double angle_cm)
 
TSpline3 * Ruthvscm (double thmin, double thmax, double size)
 
TSpline3 * Ruthvslab (double thmin, double thmax, double size, int part)
 
void SetAngles (double angle, int part, bool upper=false)
 
double Sigma_cm2lab (double angle_cm, double sigma_cm)
 
double Sigma_lab2cm (double angle_cm, double sigma_lab)
 
void SigmaErr_lab2cm (double angle, double err, double &sigma, double &errsigma)
 
double Steffen_cm2labinverse (double theta_cm, int part=2)
 
double Steffen_lab2cminverse (double theta_lab)
 
TSpline3 * Steffen_labvscminverse (double thmin, double thmax, double size, int part=2)
 
void Transform2cm (double &angle, double &sigma)
 
void Transform2cm (double &angle, double &errangle, double &sigma, double &errsigma)
 

Private Member Functions

double betacm_tm (double, double)
 
double E_final (int)
 
double E_tm (double, double)
 
void InitKin ()
 
double P_tm (double, double)
 
double Pcm_em (double, double)
 
double T_em (double, double)
 
double T_final (int)
 
double V_pe (double, double)
 

Private Attributes

TSpline3 * Cm2LabSpline
 
double fBeta_cm {0.}
 
double fBetacm [4] {0.}
 
double fE [4] {0.}
 
double fEBeam
 
double fEcm [4] {0.}
 
double fGamma_cm {0.}
 
double fM [4] {0.}
 
double fP [4] {0.}
 
TNucleusfParticle [4] {nullptr}
 
double fPcm [4] {0.}
 
double fQValue
 
double fT [4] {0.}
 
double fTcm [4] {0.}
 
double fTCm_f {0.}
 
double fTCm_i {0.}
 
double fTheta [4] {0.}
 
double fThetacm [4] {0.}
 
double fV [4] {0.}
 
double fVcm [4] {0.}
 

#include <TKinematics.h>

+ Inheritance diagram for TKinematics:
+ Collaboration diagram for TKinematics:

Constructor & Destructor Documentation

◆ TKinematics() [1/5]

TKinematics::TKinematics ( double  beame,
const char *  beam,
const char *  targ,
const char *  ejec = nullptr,
const char *  reco = nullptr,
const char *  name = "" 
)

Definition at line 10 of file TKinematics.cxx.

References TNucleus::GetMass().

◆ TKinematics() [2/5]

TKinematics::TKinematics ( const char *  beam,
const char *  targ,
const char *  ejec,
const char *  reco,
double  ebeam,
double  ex3 = 0.0,
const char *  name = "" 
)

◆ TKinematics() [3/5]

TKinematics::TKinematics ( TNucleus projectile,
TNucleus target,
double  ebeam,
const char *  name = "" 
)

◆ TKinematics() [4/5]

TKinematics::TKinematics ( TNucleus projectile,
TNucleus target,
TNucleus recoil,
TNucleus ejectile,
double  ebeam,
const char *  name = "" 
)

◆ TKinematics() [5/5]

TKinematics::TKinematics ( TNucleus projectile,
TNucleus target,
TNucleus recoil,
TNucleus ejectile,
double  ebeam,
double  ex3,
const char *  name = "" 
)

Member Function Documentation

◆ Angle_cm2lab()

double TKinematics::Angle_cm2lab ( double  vcm,
double  angle_cm 
)

Definition at line 583 of file TKinematics.cxx.

References fBeta_cm, and fGamma_cm.

Referenced by cmvslab(), labvscm(), Ruthvslab(), and SetAngles().

◆ Angle_lab2cm()

double TKinematics::Angle_lab2cm ( double  vcm,
double  angle_lab 
)

Definition at line 504 of file TKinematics.cxx.

References fBeta_cm, and fGamma_cm.

Referenced by AngleErr_lab2cm(), SetAngles(), and Transform2cm().

◆ Angle_lab2cminverse()

double TKinematics::Angle_lab2cminverse ( double  vcm,
double  angle_lab,
bool  upper = true 
)

Definition at line 517 of file TKinematics.cxx.

References fBeta_cm, and fGamma_cm.

Referenced by SetAngles().

◆ AngleErr_lab2cm()

void TKinematics::AngleErr_lab2cm ( double  angle,
double &  err 
)

Definition at line 554 of file TKinematics.cxx.

References Angle_lab2cm(), and fVcm.

Referenced by Transform2cm().

◆ betacm_tm()

double TKinematics::betacm_tm ( double  t,
double  m 
)
private

Definition at line 848 of file TKinematics.cxx.

Referenced by FinalCm(), and Initial().

◆ CheckMaxAngle()

bool TKinematics::CheckMaxAngle ( double  angle,
int  part 
)

Definition at line 499 of file TKinematics.cxx.

References fVcm, and GetMaxAngle().

◆ cmvslab()

TSpline3 * TKinematics::cmvslab ( double  thmin,
double  thmax,
double  size,
int  part = 2 
)

Definition at line 628 of file TKinematics.cxx.

References Angle_cm2lab(), fVcm, and PI.

◆ E_final()

double TKinematics::E_final ( int  i)
private

Definition at line 856 of file TKinematics.cxx.

References fBeta_cm, fEcm, fGamma_cm, and fPcm.

Referenced by Final().

◆ E_tm()

double TKinematics::E_tm ( double  t,
double  m 
)
private

Definition at line 840 of file TKinematics.cxx.

Referenced by FinalCm(), and Initial().

◆ ELab()

double TKinematics::ELab ( double  angle_lab,
int  part 
)

Definition at line 421 of file TKinematics.cxx.

References Final(), and GetTlab().

◆ Evscm()

TSpline3 * TKinematics::Evscm ( double  thmin,
double  thmax,
double  size,
int  part = 2 
)

Definition at line 256 of file TKinematics.cxx.

References Final(), GetThetacm(), GetTlab(), and PI.

◆ Evslab()

TSpline3 * TKinematics::Evslab ( double  thmin,
double  thmax,
double  size,
int  part = 2 
)

Definition at line 175 of file TKinematics.cxx.

References ALERTTEXT, Final(), fVcm, GetMaxAngle(), GetThetalab(), GetTlab(), PI, and RESET_COLOR.

◆ Evslab_graph()

TGraph * TKinematics::Evslab_graph ( double  thmin,
double  thmax,
double  size,
int  part = 2 
)

Definition at line 219 of file TKinematics.cxx.

References ALERTTEXT, Final(), fVcm, GetMaxAngle(), GetThetalab(), GetTlab(), PI, and RESET_COLOR.

◆ Final()

void TKinematics::Final ( double  angle,
int  part 
)

Definition at line 397 of file TKinematics.cxx.

References E_final(), fE, fM, fP, fT, fV, fVcm, GetMaxAngle(), P_tm(), SetAngles(), T_final(), and V_pe().

Referenced by ELab(), Evscm(), Evslab(), and Evslab_graph().

◆ FinalCm()

void TKinematics::FinalCm ( )

◆ GetBeamEnergy()

double TKinematics::GetBeamEnergy ( double  LabAngle,
double  LabEnergy 
)

Definition at line 316 of file TKinematics.cxx.

References fM, and ps.

◆ GetBetacm() [1/2]

double TKinematics::GetBetacm ( )
inline

Definition at line 96 of file TKinematics.h.

References fBeta_cm.

Referenced by GetExcEnergy().

◆ GetBetacm() [2/2]

double TKinematics::GetBetacm ( int  i)
inline

Definition at line 98 of file TKinematics.h.

References fBetacm.

◆ GetCmEnergy() [1/2]

double TKinematics::GetCmEnergy ( double  ebeam)

Definition at line 465 of file TKinematics.cxx.

References fM.

◆ GetCmEnergy() [2/2]

double TKinematics::GetCmEnergy ( )

Definition at line 472 of file TKinematics.cxx.

References fEBeam.

Referenced by FinalCm(), GetExcEnergy(), Initial(), and NormalkinEnergy().

◆ GetEcm()

double TKinematics::GetEcm ( int  i)
inline

Definition at line 76 of file TKinematics.h.

References fEcm.

◆ GetElab()

double TKinematics::GetElab ( int  i)
inline

Definition at line 73 of file TKinematics.h.

References fE.

◆ GetExcEnergy() [1/3]

double TKinematics::GetExcEnergy ( TLorentzVector  recoil)

Definition at line 276 of file TKinematics.cxx.

References fParticle, GetBetacm(), GetCmEnergy(), and TNucleus::GetMass().

Referenced by GetExcEnergy().

◆ GetExcEnergy() [2/3]

double TKinematics::GetExcEnergy ( TVector3  position,
double  KinE 
)

Definition at line 292 of file TKinematics.cxx.

References fM, and GetExcEnergy().

◆ GetExcEnergy() [3/3]

double TKinematics::GetExcEnergy ( double  theta,
double  KinE 
)

Definition at line 306 of file TKinematics.cxx.

References fBeta_cm, fGamma_cm, fM, and fT.

◆ GetGammacm()

double TKinematics::GetGammacm ( )
inline

Definition at line 97 of file TKinematics.h.

References fGamma_cm.

◆ GetM()

double TKinematics::GetM ( int  i)
inline

Definition at line 74 of file TKinematics.h.

References fM.

◆ GetMaxAngle() [1/2]

double TKinematics::GetMaxAngle ( double  vcm)

Definition at line 484 of file TKinematics.cxx.

References fBeta_cm, fGamma_cm, and PI.

Referenced by CheckMaxAngle(), Evslab(), Evslab_graph(), Final(), and GetMaxAngle().

◆ GetMaxAngle() [2/2]

double TKinematics::GetMaxAngle ( int  part)

Definition at line 494 of file TKinematics.cxx.

References fVcm, and GetMaxAngle().

◆ GetQValue()

double TKinematics::GetQValue ( )
inline

Definition at line 71 of file TKinematics.h.

References fQValue.

◆ GetTcm()

double TKinematics::GetTcm ( int  i)
inline

Definition at line 77 of file TKinematics.h.

References fTcm.

◆ GetThetacm()

double TKinematics::GetThetacm ( int  i)
inline

Definition at line 87 of file TKinematics.h.

References fThetacm.

Referenced by Evscm().

◆ GetThetalab()

double TKinematics::GetThetalab ( int  i)
inline

Definition at line 79 of file TKinematics.h.

References fTheta.

Referenced by Evslab(), and Evslab_graph().

◆ GetTlab()

double TKinematics::GetTlab ( int  i)
inline

Definition at line 75 of file TKinematics.h.

References fT.

Referenced by ELab(), Evscm(), Evslab(), and Evslab_graph().

◆ GetV()

double TKinematics::GetV ( int  i)
inline

Definition at line 100 of file TKinematics.h.

References fV.

◆ GetVcm()

double TKinematics::GetVcm ( int  i)
inline

Definition at line 99 of file TKinematics.h.

References fVcm.

◆ Initial()

void TKinematics::Initial ( )

Definition at line 348 of file TKinematics.cxx.

References betacm_tm(), E_tm(), fBeta_cm, fBetacm, fE, fEBeam, fEcm, fGamma_cm, fM, fP, fPcm, fQValue, fT, fTcm, fTCm_f, fTCm_i, fV, fVcm, GetCmEnergy(), Pcm_em(), and V_pe().

Referenced by TKinematics().

◆ InitKin()

void TKinematics::InitKin ( )
private

Definition at line 143 of file TKinematics.cxx.

References fBeta_cm, fBetacm, fE, fEBeam, fEcm, fGamma_cm, fM, fP, fParticle, fPcm, fQValue, fT, fTcm, fTCm_f, fTCm_i, fTheta, fThetacm, fV, and fVcm.

Referenced by TKinematics().

◆ labvscm()

TSpline3 * TKinematics::labvscm ( double  thmin,
double  thmax,
double  size,
int  part = 2 
)

Definition at line 608 of file TKinematics.cxx.

References Angle_cm2lab(), fVcm, and PI.

◆ NormalkinEnergy()

double TKinematics::NormalkinEnergy ( )

Definition at line 477 of file TKinematics.cxx.

References fEBeam, fM, and GetCmEnergy().

◆ P_tm()

double TKinematics::P_tm ( double  t,
double  m 
)
private

Definition at line 836 of file TKinematics.cxx.

Referenced by Final().

◆ Pcm_em()

double TKinematics::Pcm_em ( double  e,
double  m 
)
private

Definition at line 832 of file TKinematics.cxx.

Referenced by FinalCm(), and Initial().

◆ Rutherford()

double TKinematics::Rutherford ( double  angle_cm)

Definition at line 734 of file TKinematics.cxx.

References fParticle, fTCm_i, and TNucleus::GetZ().

Referenced by Ruthvscm(), and Ruthvslab().

◆ Ruthvscm()

TSpline3 * TKinematics::Ruthvscm ( double  thmin,
double  thmax,
double  size 
)

Definition at line 743 of file TKinematics.cxx.

References PI, and Rutherford().

◆ Ruthvslab()

TSpline3 * TKinematics::Ruthvslab ( double  thmin,
double  thmax,
double  size,
int  part 
)

Definition at line 770 of file TKinematics.cxx.

References Angle_cm2lab(), fVcm, PI, Rutherford(), and Sigma_cm2lab().

◆ SetAngles()

void TKinematics::SetAngles ( double  angle,
int  part,
bool  upper = false 
)

Definition at line 428 of file TKinematics.cxx.

References Angle_cm2lab(), Angle_lab2cm(), Angle_lab2cminverse(), fParticle, fTheta, fThetacm, fVcm, and PI.

Referenced by Final().

◆ Sigma_cm2lab()

double TKinematics::Sigma_cm2lab ( double  angle_cm,
double  sigma_cm 
)

Definition at line 668 of file TKinematics.cxx.

References fGamma_cm, fM, fTCm_f, fTCm_i, and PI.

Referenced by Ruthvslab().

◆ Sigma_lab2cm()

double TKinematics::Sigma_lab2cm ( double  angle_cm,
double  sigma_lab 
)

Definition at line 687 of file TKinematics.cxx.

References fGamma_cm, fM, fTCm_f, fTCm_i, and PI.

Referenced by Transform2cm().

◆ SigmaErr_lab2cm()

void TKinematics::SigmaErr_lab2cm ( double  angle,
double  err,
double &  sigma,
double &  errsigma 
)

Definition at line 708 of file TKinematics.cxx.

References fGamma_cm, fM, fTCm_f, fTCm_i, and PI.

Referenced by Transform2cm().

◆ Steffen_cm2labinverse()

double TKinematics::Steffen_cm2labinverse ( double  theta_cm,
int  part = 2 
)

Definition at line 531 of file TKinematics.cxx.

References fBeta_cm, fGamma_cm, fVcm, and PI.

Referenced by Steffen_labvscminverse().

◆ Steffen_lab2cminverse()

double TKinematics::Steffen_lab2cminverse ( double  theta_lab)

Definition at line 544 of file TKinematics.cxx.

References Cm2LabSpline, and Steffen_labvscminverse().

◆ Steffen_labvscminverse()

TSpline3 * TKinematics::Steffen_labvscminverse ( double  thmin,
double  thmax,
double  size,
int  part = 2 
)

Definition at line 648 of file TKinematics.cxx.

References PI, and Steffen_cm2labinverse().

Referenced by Steffen_lab2cminverse().

◆ T_em()

double TKinematics::T_em ( double  e,
double  m 
)
private

Definition at line 844 of file TKinematics.cxx.

◆ T_final()

double TKinematics::T_final ( int  i)
private

Definition at line 860 of file TKinematics.cxx.

References fBeta_cm, fGamma_cm, fM, fPcm, fTcm, and fThetacm.

Referenced by Final().

◆ Transform2cm() [1/2]

void TKinematics::Transform2cm ( double &  angle,
double &  sigma 
)

Definition at line 720 of file TKinematics.cxx.

References Angle_lab2cm(), fVcm, PI, and Sigma_lab2cm().

Referenced by Transform2cm().

◆ Transform2cm() [2/2]

void TKinematics::Transform2cm ( double &  angle,
double &  errangle,
double &  sigma,
double &  errsigma 
)

Definition at line 727 of file TKinematics.cxx.

References AngleErr_lab2cm(), SigmaErr_lab2cm(), and Transform2cm().

◆ V_pe()

double TKinematics::V_pe ( double  p,
double  e 
)
private

Definition at line 852 of file TKinematics.cxx.

Referenced by Final(), FinalCm(), and Initial().

Member Data Documentation

◆ Cm2LabSpline

TSpline3* TKinematics::Cm2LabSpline
private

Definition at line 154 of file TKinematics.h.

Referenced by Steffen_lab2cminverse(), and TKinematics().

◆ fBeta_cm

double TKinematics::fBeta_cm {0.}
private

◆ fBetacm

double TKinematics::fBetacm[4] {0.}
private

Definition at line 139 of file TKinematics.h.

Referenced by FinalCm(), GetBetacm(), Initial(), and InitKin().

◆ fE

double TKinematics::fE[4] {0.}
private

Definition at line 130 of file TKinematics.h.

Referenced by Final(), GetElab(), Initial(), and InitKin().

◆ fEBeam

double TKinematics::fEBeam
private

Definition at line 128 of file TKinematics.h.

Referenced by FinalCm(), GetCmEnergy(), Initial(), InitKin(), NormalkinEnergy(), and TKinematics().

◆ fEcm

double TKinematics::fEcm[4] {0.}
private

Definition at line 136 of file TKinematics.h.

Referenced by E_final(), FinalCm(), GetEcm(), Initial(), and InitKin().

◆ fGamma_cm

◆ fM

◆ fP

double TKinematics::fP[4] {0.}
private

Definition at line 131 of file TKinematics.h.

Referenced by Final(), Initial(), and InitKin().

◆ fParticle

TNucleus* TKinematics::fParticle[4] {nullptr}
private

Definition at line 125 of file TKinematics.h.

Referenced by FinalCm(), GetExcEnergy(), InitKin(), Rutherford(), SetAngles(), and TKinematics().

◆ fPcm

double TKinematics::fPcm[4] {0.}
private

Definition at line 137 of file TKinematics.h.

Referenced by E_final(), FinalCm(), Initial(), InitKin(), and T_final().

◆ fQValue

double TKinematics::fQValue
private

Definition at line 127 of file TKinematics.h.

Referenced by GetQValue(), Initial(), InitKin(), and TKinematics().

◆ fT

double TKinematics::fT[4] {0.}
private

Definition at line 129 of file TKinematics.h.

Referenced by Final(), GetExcEnergy(), GetTlab(), Initial(), and InitKin().

◆ fTcm

double TKinematics::fTcm[4] {0.}
private

Definition at line 135 of file TKinematics.h.

Referenced by FinalCm(), GetTcm(), Initial(), InitKin(), and T_final().

◆ fTCm_f

double TKinematics::fTCm_f {0.}
private

Definition at line 123 of file TKinematics.h.

Referenced by FinalCm(), Initial(), InitKin(), Sigma_cm2lab(), Sigma_lab2cm(), and SigmaErr_lab2cm().

◆ fTCm_i

double TKinematics::fTCm_i {0.}
private

Definition at line 122 of file TKinematics.h.

Referenced by Initial(), InitKin(), Rutherford(), Sigma_cm2lab(), Sigma_lab2cm(), and SigmaErr_lab2cm().

◆ fTheta

double TKinematics::fTheta[4] {0.}
private

Definition at line 133 of file TKinematics.h.

Referenced by GetThetalab(), InitKin(), and SetAngles().

◆ fThetacm

double TKinematics::fThetacm[4] {0.}
private

Definition at line 140 of file TKinematics.h.

Referenced by GetThetacm(), InitKin(), SetAngles(), and T_final().

◆ fV

double TKinematics::fV[4] {0.}
private

Definition at line 132 of file TKinematics.h.

Referenced by Final(), GetV(), Initial(), and InitKin().

◆ fVcm