GRSISort "v4.0.0.5"
An extension of the ROOT analysis Framework
Loading...
Searching...
No Matches
TReaction Class Reference

Detailed Description

*********** *********** *********** *********** *********** *********** *********** //

A simple, intuitive two body reaction class. Lab frame variables are generally calculated by boosting from the CM frame Reactions have the form A(B,C)D where; [0] - B is "beam" [1] - A is "targ" [2] - C is "ejec" [3] - D is "reco"

Uses planck units (c=1 and is dimensionless) M = mc^2 E = full mass energy (inc. kinetic energy) T = kinetic energy V = magnitude of velocity (=beta) P = magnitude of momentum G = gamma factor (=[1-V^2]^-0.5)

  • An excitation energy can be included in the final state heavy recoil nucleus using ex3 in the reaction initialisation or by using SetExcEnergy(exc)
  • ALL ENERGIES ARE IN MEV - MASSES TOO !
  • currently only works for part==2, I think that part==3 just means theta_cm -> -theta_cm

    BUGS THERE ARE PERSISTANT NUMERICAL ERRORS (~0.1-1%) ...??! WHY?!!?! *********** *********** *********** *********** *********** *********** *********** //

Definition at line 59 of file TReaction.h.

Public Member Functions

 TReaction (const char *beam, const char *targ, const char *ejec, const char *reco, double eBeam=0.0, double ex3=0.0, bool inverse=false)
 
void AnalysisAngDist (double ekin, double theta_lab, int part, double &exc, double &theta_cm, double &omega_lab2cm)
 
double AnalysisBeta (double ekin, int part) const
 
void Clear (Option_t *opt="") override
 
void ConvertCmToLab (double theta_cm, double omega_cm, double &theta_lab, double &omega_lab, int part=2) const
 
void ConvertLabToCm (double theta_lab, double omega_lab, double &theta_cm, double &omega_cm, int part=2) const
 
double ConvertOmegaCmToLab (double theta_cm, int part=2) const
 
double ConvertOmegaLabToCm (double theta_lab, int part=2) const
 
double ConvertThetaCmToLab (double theta_cm, int part=2) const
 
double ConvertThetaLabToCm (double theta_lab, int part=2) const
 
double GetCmE () const
 
double GetCmG () const
 
double GetCmP () const
 
double GetCmTf () const
 
double GetCmTi () const
 
double GetCmV () const
 
double GetECm (int part) const
 
double GetELab (double theta_lab=0.0, int part=0) const
 
double GetELabFromThetaCm (double theta_cm=0.0, int part=0) const
 
double GetExc () const
 
double GetExcEnergy (double ekin=0.00, double theta_lab=0.00, int part=2) const
 
double GetGCm (int part) const
 
double GetGLab (double theta_lab=0.0, int part=0) const
 
double GetGLabFromThetaCm (double theta_cm=0.0, int part=0) const
 
double GetInvariantMass () const
 
double GetM (int part) const
 
const char * GetNameFull () const
 
TNucleusGetNucleus (int part) const
 
double GetPCm (int part) const
 
double GetPLab (double theta_lab=0.0, int part=0) const
 
double GetPLabFromThetaCm (double theta_cm=0.0, int part=0) const
 
double GetQVal () const
 
double GetRutherfordCm (double theta_cm, int part=2, bool Units_mb=true) const
 
double GetRutherfordLab (double theta_lab, int part=2, bool Units_mb=true) const
 
double GetTBeam (bool inverse) const
 
double GetTCm (int part) const
 
double GetThetaMax (int part) const
 
double GetTLab (double theta_lab=0.0, int part=0) const
 
double GetTLabFromThetaCm (double theta_cm=0.0, int part=0) const
 
double GetVBeam () const
 
double GetVCm (int part) const
 
double GetVLab (double theta_lab=0.0, int part=0) const
 
double GetVLabFromThetaCm (double theta_cm=0.0, int part=0) const
 
void InitReaction ()
 
bool Inverse () const
 
TGraph * KinVsTheta (double thmin=0.0, double thmax=180.0, int part=2, bool Frame_Lab=true, bool Units_keV=true) const
 
TGraph * OmegaVsTheta (double thmin=0.0, double thmax=180.0, int part=2, bool Frame_Lab=true) const
 
void Print (Option_t *opt="") const override
 
TGraph * RutherfordVsTheta (double thmin=1.0, double thmax=179.0, int part=2, bool Frame_Lab=true, bool Units_mb=true) const
 
void SetExcEnergy (double exc)
 
TGraph * ThetaVsTheta (double thmin=0.0, double thmax=180.0, int part=2, bool Frame_Lab=true) const
 

Private Member Functions

void SetCmFrame (double exc)
 

Private Attributes

double fCmE {0.}
 
double fCmG {0.}
 
double fCmP {0.}
 
double fCmTf {0.}
 
double fCmTi {0.}
 
double fCmV {0.}
 
double fECm [4] {0.}
 
double fELab [2] {0.}
 
double fExc {0.}
 
double fGCm [4] {0.}
 
double fGLab [2] {0.}
 
double fInvariantMass {0.}
 
bool fInverse {false}
 
double fM [4] {0.}
 
TNucleusfNuc [4] {nullptr}
 
double fPCm [4] {0.}
 
double fPLab [2] {0.}
 
double fQVal {0.}
 
double fS {0.}
 
double fTBeam {0.}
 
double fTCm [4] {0.}
 
double fThetaMax [4] {0.}
 
double fTLab [2] {0.}
 
double fVCm [4] {0.}
 
double fVLab [2] {0.}
 
+ Inheritance diagram for TReaction:
+ Collaboration diagram for TReaction:

Constructor & Destructor Documentation

◆ TReaction()

TReaction::TReaction ( const char * beam,
const char * targ,
const char * ejec,
const char * reco,
double eBeam = 0.0,
double ex3 = 0.0,
bool inverse = false )

Definition at line 8 of file TReaction.cxx.

References Clear(), fInverse, fM, fNuc, fQVal, TNucleus::GetMass(), and InitReaction().

Member Function Documentation

◆ AnalysisAngDist()

void TReaction::AnalysisAngDist ( double ekin,
double theta_lab,
int part,
double & exc,
double & theta_cm,
double & omega_lab2cm )

◆ AnalysisBeta()

double TReaction::AnalysisBeta ( double ekin,
int part ) const

Definition at line 190 of file TReaction.cxx.

References fM.

◆ Clear()

void TReaction::Clear ( Option_t * opt = "")
override

Definition at line 497 of file TReaction.cxx.

References fCmE, fCmG, fCmP, fCmTf, fCmTi, fCmV, fECm, fELab, fGCm, fGLab, fInvariantMass, fInverse, fM, fNuc, fPCm, fPLab, fQVal, fS, fTBeam, fTCm, fThetaMax, fTLab, fVCm, and fVLab.

Referenced by TReaction().

◆ ConvertCmToLab()

void TReaction::ConvertCmToLab ( double theta_cm,
double omega_cm,
double & theta_lab,
double & omega_lab,
int part = 2 ) const

Definition at line 292 of file TReaction.cxx.

References ConvertOmegaCmToLab(), and ConvertThetaCmToLab().

◆ ConvertLabToCm()

void TReaction::ConvertLabToCm ( double theta_lab,
double omega_lab,
double & theta_cm,
double & omega_cm,
int part = 2 ) const

Definition at line 258 of file TReaction.cxx.

References ConvertOmegaLabToCm(), and ConvertThetaLabToCm().

◆ ConvertOmegaCmToLab()

double TReaction::ConvertOmegaCmToLab ( double theta_cm,
int part = 2 ) const

Definition at line 279 of file TReaction.cxx.

References fCmG, fCmV, fInverse, fVCm, and PI.

Referenced by ConvertCmToLab(), ConvertOmegaLabToCm(), GetRutherfordLab(), OmegaVsTheta(), and RutherfordVsTheta().

◆ ConvertOmegaLabToCm()

double TReaction::ConvertOmegaLabToCm ( double theta_lab,
int part = 2 ) const

Definition at line 251 of file TReaction.cxx.

References ConvertOmegaCmToLab(), and ConvertThetaLabToCm().

Referenced by AnalysisAngDist(), and ConvertLabToCm().

◆ ConvertThetaCmToLab()

double TReaction::ConvertThetaCmToLab ( double theta_cm,
int part = 2 ) const

Definition at line 265 of file TReaction.cxx.

References fCmG, fCmV, fInverse, fThetaMax, fVCm, and PI.

Referenced by ConvertCmToLab(), KinVsTheta(), OmegaVsTheta(), RutherfordVsTheta(), and ThetaVsTheta().

◆ ConvertThetaLabToCm()

double TReaction::ConvertThetaLabToCm ( double theta_lab,
int part = 2 ) const

◆ GetCmE()

double TReaction::GetCmE ( ) const
inline

Definition at line 77 of file TReaction.h.

References fCmE.

◆ GetCmG()

double TReaction::GetCmG ( ) const
inline

Definition at line 82 of file TReaction.h.

References fCmG.

◆ GetCmP()

double TReaction::GetCmP ( ) const
inline

Definition at line 81 of file TReaction.h.

References fCmP.

◆ GetCmTf()

double TReaction::GetCmTf ( ) const
inline

Definition at line 79 of file TReaction.h.

References fCmTf.

◆ GetCmTi()

double TReaction::GetCmTi ( ) const
inline

Definition at line 78 of file TReaction.h.

References fCmTi.

◆ GetCmV()

double TReaction::GetCmV ( ) const
inline

Definition at line 80 of file TReaction.h.

References fCmV.

◆ GetECm()

double TReaction::GetECm ( int part) const
inline

Definition at line 85 of file TReaction.h.

References fECm.

◆ GetELab()

double TReaction::GetELab ( double theta_lab = 0.0,
int part = 0 ) const
inline

Definition at line 94 of file TReaction.h.

References ConvertThetaLabToCm(), and GetELabFromThetaCm().

◆ GetELabFromThetaCm()

double TReaction::GetELabFromThetaCm ( double theta_cm = 0.0,
int part = 0 ) const

Definition at line 112 of file TReaction.cxx.

References fCmG, fCmV, fECm, fPCm, and fTLab.

Referenced by GetELab(), GetTLabFromThetaCm(), and GetVLabFromThetaCm().

◆ GetExc()

double TReaction::GetExc ( ) const
inline

Definition at line 69 of file TReaction.h.

References fExc.

◆ GetExcEnergy()

double TReaction::GetExcEnergy ( double ekin = 0.00,
double theta_lab = 0.00,
int part = 2 ) const

Definition at line 163 of file TReaction.cxx.

References fCmG, fCmV, fExc, fM, and fTLab.

Referenced by AnalysisAngDist().

◆ GetGCm()

double TReaction::GetGCm ( int part) const
inline

Definition at line 89 of file TReaction.h.

References fGCm.

◆ GetGLab()

double TReaction::GetGLab ( double theta_lab = 0.0,
int part = 0 ) const
inline

Definition at line 110 of file TReaction.h.

References ConvertThetaLabToCm(), and GetGLabFromThetaCm().

◆ GetGLabFromThetaCm()

double TReaction::GetGLabFromThetaCm ( double theta_cm = 0.0,
int part = 0 ) const

Definition at line 153 of file TReaction.cxx.

References fTLab, and GetVLabFromThetaCm().

Referenced by GetGLab().

◆ GetInvariantMass()

double TReaction::GetInvariantMass ( ) const
inline

Definition at line 76 of file TReaction.h.

References fInvariantMass.

◆ GetM()

double TReaction::GetM ( int part) const
inline

Definition at line 68 of file TReaction.h.

References fM.

◆ GetNameFull()

const char * TReaction::GetNameFull ( ) const
inline

Definition at line 66 of file TReaction.h.

References fNuc, and fTLab.

◆ GetNucleus()

TNucleus * TReaction::GetNucleus ( int part) const
inline

Definition at line 67 of file TReaction.h.

References fNuc.

◆ GetPCm()

double TReaction::GetPCm ( int part) const
inline

Definition at line 88 of file TReaction.h.

References fPCm.

◆ GetPLab()

double TReaction::GetPLab ( double theta_lab = 0.0,
int part = 0 ) const
inline

Definition at line 106 of file TReaction.h.

References ConvertThetaLabToCm(), and GetPLabFromThetaCm().

◆ GetPLabFromThetaCm()

double TReaction::GetPLabFromThetaCm ( double theta_cm = 0.0,
int part = 0 ) const

Definition at line 142 of file TReaction.cxx.

References fCmG, fCmV, fECm, fPCm, and fTLab.

Referenced by GetPLab(), and GetVLabFromThetaCm().

◆ GetQVal()

double TReaction::GetQVal ( ) const
inline

Definition at line 70 of file TReaction.h.

References fQVal.

◆ GetRutherfordCm()

double TReaction::GetRutherfordCm ( double theta_cm,
int part = 2,
bool Units_mb = true ) const

Definition at line 198 of file TReaction.cxx.

References fNuc, and fTLab.

Referenced by GetRutherfordLab(), and RutherfordVsTheta().

◆ GetRutherfordLab()

double TReaction::GetRutherfordLab ( double theta_lab,
int part = 2,
bool Units_mb = true ) const

Definition at line 211 of file TReaction.cxx.

References ConvertOmegaCmToLab(), ConvertThetaLabToCm(), and GetRutherfordCm().

◆ GetTBeam()

double TReaction::GetTBeam ( bool inverse) const

Definition at line 71 of file TReaction.cxx.

References fGLab, fInverse, fM, and fTLab.

◆ GetTCm()

double TReaction::GetTCm ( int part) const
inline

Definition at line 86 of file TReaction.h.

References fTCm.

◆ GetThetaMax()

double TReaction::GetThetaMax ( int part) const
inline

Definition at line 92 of file TReaction.h.

References fThetaMax.

◆ GetTLab()

double TReaction::GetTLab ( double theta_lab = 0.0,
int part = 0 ) const
inline

Definition at line 98 of file TReaction.h.

References ConvertThetaLabToCm(), and GetTLabFromThetaCm().

◆ GetTLabFromThetaCm()

double TReaction::GetTLabFromThetaCm ( double theta_cm = 0.0,
int part = 0 ) const

Definition at line 121 of file TReaction.cxx.

References fM, fTLab, and GetELabFromThetaCm().

Referenced by GetTLab(), and KinVsTheta().

◆ GetVBeam()

double TReaction::GetVBeam ( ) const
inline

Definition at line 73 of file TReaction.h.

References fVLab.

◆ GetVCm()

double TReaction::GetVCm ( int part) const
inline

Definition at line 87 of file TReaction.h.

References fVCm.

◆ GetVLab()

double TReaction::GetVLab ( double theta_lab = 0.0,
int part = 0 ) const
inline

Definition at line 102 of file TReaction.h.

References ConvertThetaLabToCm(), and GetVLabFromThetaCm().

◆ GetVLabFromThetaCm()

double TReaction::GetVLabFromThetaCm ( double theta_cm = 0.0,
int part = 0 ) const

Definition at line 131 of file TReaction.cxx.

References fTLab, GetELabFromThetaCm(), and GetPLabFromThetaCm().

Referenced by GetGLabFromThetaCm(), and GetVLab().

◆ InitReaction()

void TReaction::InitReaction ( )

Definition at line 33 of file TReaction.cxx.

References fCmE, fCmG, fCmP, fCmTf, fCmTi, fCmV, fELab, fExc, fGLab, fInvariantMass, fM, fPLab, fQVal, fS, fTBeam, fTLab, fVLab, and SetCmFrame().

Referenced by TReaction().

◆ Inverse()

bool TReaction::Inverse ( ) const
inline

Definition at line 71 of file TReaction.h.

References fInverse.

◆ KinVsTheta()

TGraph * TReaction::KinVsTheta ( double thmin = 0.0,
double thmax = 180.0,
int part = 2,
bool Frame_Lab = true,
bool Units_keV = true ) const

Definition at line 303 of file TReaction.cxx.

References ConvertThetaCmToLab(), D2R, GetTLabFromThetaCm(), and R2D.

◆ OmegaVsTheta()

TGraph * TReaction::OmegaVsTheta ( double thmin = 0.0,
double thmax = 180.0,
int part = 2,
bool Frame_Lab = true ) const

Definition at line 374 of file TReaction.cxx.

References ConvertOmegaCmToLab(), ConvertThetaCmToLab(), D2R, and R2D.

◆ Print()

void TReaction::Print ( Option_t * opt = "") const
override

◆ RutherfordVsTheta()

TGraph * TReaction::RutherfordVsTheta ( double thmin = 1.0,
double thmax = 179.0,
int part = 2,
bool Frame_Lab = true,
bool Units_mb = true ) const

Definition at line 406 of file TReaction.cxx.

References ConvertOmegaCmToLab(), ConvertThetaCmToLab(), D2R, GetRutherfordCm(), and R2D.

◆ SetCmFrame()

void TReaction::SetCmFrame ( double exc)
private

Definition at line 79 of file TReaction.cxx.

References fCmG, fCmV, fECm, fGCm, fM, fPCm, fS, fTCm, fThetaMax, fVCm, and PI.

Referenced by AnalysisAngDist(), InitReaction(), and SetExcEnergy().

◆ SetExcEnergy()

void TReaction::SetExcEnergy ( double exc)
inline

Definition at line 152 of file TReaction.h.

References SetCmFrame().

◆ ThetaVsTheta()

TGraph * TReaction::ThetaVsTheta ( double thmin = 0.0,
double thmax = 180.0,
int part = 2,
bool Frame_Lab = true ) const

Definition at line 339 of file TReaction.cxx.

References ConvertThetaCmToLab(), D2R, and R2D.

Member Data Documentation

◆ fCmE

double TReaction::fCmE {0.}
private

Definition at line 171 of file TReaction.h.

Referenced by Clear(), GetCmE(), InitReaction(), and Print().

◆ fCmG

◆ fCmP

double TReaction::fCmP {0.}
private

Definition at line 173 of file TReaction.h.

Referenced by Clear(), GetCmP(), InitReaction(), and Print().

◆ fCmTf

double TReaction::fCmTf {0.}
private

Definition at line 170 of file TReaction.h.

Referenced by Clear(), GetCmTf(), InitReaction(), and Print().

◆ fCmTi

double TReaction::fCmTi {0.}
private

Definition at line 169 of file TReaction.h.

Referenced by Clear(), GetCmTi(), InitReaction(), and Print().

◆ fCmV

◆ fECm

double TReaction::fECm[4] {0.}
private

Definition at line 178 of file TReaction.h.

Referenced by Clear(), GetECm(), GetELabFromThetaCm(), GetPLabFromThetaCm(), Print(), and SetCmFrame().

◆ fELab

double TReaction::fELab[2] {0.}
private

Definition at line 186 of file TReaction.h.

Referenced by Clear(), InitReaction(), and Print().

◆ fExc

double TReaction::fExc {0.}
private

Definition at line 162 of file TReaction.h.

Referenced by AnalysisAngDist(), GetExc(), GetExcEnergy(), and InitReaction().

◆ fGCm

double TReaction::fGCm[4] {0.}
private

Definition at line 181 of file TReaction.h.

Referenced by Clear(), GetGCm(), Print(), and SetCmFrame().

◆ fGLab

double TReaction::fGLab[2] {0.}
private

Definition at line 189 of file TReaction.h.

Referenced by Clear(), GetTBeam(), InitReaction(), and Print().

◆ fInvariantMass

double TReaction::fInvariantMass {0.}
private

Definition at line 168 of file TReaction.h.

Referenced by Clear(), GetInvariantMass(), and InitReaction().

◆ fInverse

bool TReaction::fInverse {false}
private

◆ fM

double TReaction::fM[4] {0.}
private

◆ fNuc

TNucleus* TReaction::fNuc[4] {nullptr}
private

Definition at line 159 of file TReaction.h.

Referenced by TReaction(), Clear(), GetNameFull(), GetNucleus(), GetRutherfordCm(), and Print().

◆ fPCm

double TReaction::fPCm[4] {0.}
private

Definition at line 179 of file TReaction.h.

Referenced by Clear(), GetELabFromThetaCm(), GetPCm(), GetPLabFromThetaCm(), Print(), and SetCmFrame().

◆ fPLab

double TReaction::fPLab[2] {0.}
private

Definition at line 187 of file TReaction.h.

Referenced by Clear(), InitReaction(), and Print().

◆ fQVal

double TReaction::fQVal {0.}
private

Definition at line 166 of file TReaction.h.

Referenced by TReaction(), Clear(), GetQVal(), InitReaction(), and Print().

◆ fS

double TReaction::fS {0.}
private

Definition at line 167 of file TReaction.h.

Referenced by Clear(), InitReaction(), and SetCmFrame().

◆ fTBeam

double TReaction::fTBeam {0.}
private

Definition at line 160 of file TReaction.h.

Referenced by Clear(), InitReaction(), and Print().

◆ fTCm

double TReaction::fTCm[4] {0.}
private

Definition at line 177 of file TReaction.h.

Referenced by Clear(), GetTCm(), Print(), and SetCmFrame().

◆ fThetaMax

double TReaction::fThetaMax[4] {0.}
private

◆ fTLab

◆ fVCm

double TReaction::fVCm[4] {0.}
private

◆ fVLab

double TReaction::fVLab[2] {0.}
private

Definition at line 188 of file TReaction.h.

Referenced by Clear(), GetVBeam(), InitReaction(), and Print().