GRSISort "v4.0.0.5"
An extension of the ROOT analysis Framework
|
*********** *********** *********** *********** *********** *********** *********** //
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)
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 |
TNucleus * | GetNucleus (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.} |
TNucleus * | fNuc [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.} |
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().
void TReaction::AnalysisAngDist | ( | double | ekin, |
double | theta_lab, | ||
int | part, | ||
double & | exc, | ||
double & | theta_cm, | ||
double & | omega_lab2cm ) |
Definition at line 176 of file TReaction.cxx.
References ConvertOmegaLabToCm(), ConvertThetaLabToCm(), fExc, GetExcEnergy(), and SetCmFrame().
double TReaction::AnalysisBeta | ( | double | ekin, |
int | part ) const |
Definition at line 190 of file TReaction.cxx.
References fM.
|
override |
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().
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().
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().
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().
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().
double TReaction::ConvertThetaLabToCm | ( | double | theta_lab, |
int | part = 2 ) const |
Definition at line 220 of file TReaction.cxx.
References fCmG, fCmV, fInverse, fThetaMax, fVCm, and PI.
Referenced by AnalysisAngDist(), ConvertLabToCm(), ConvertOmegaLabToCm(), GetELab(), GetGLab(), GetPLab(), GetRutherfordLab(), GetTLab(), and GetVLab().
|
inline |
Definition at line 77 of file TReaction.h.
References fCmE.
|
inline |
Definition at line 82 of file TReaction.h.
References fCmG.
|
inline |
Definition at line 81 of file TReaction.h.
References fCmP.
|
inline |
Definition at line 79 of file TReaction.h.
References fCmTf.
|
inline |
Definition at line 78 of file TReaction.h.
References fCmTi.
|
inline |
Definition at line 80 of file TReaction.h.
References fCmV.
|
inline |
Definition at line 85 of file TReaction.h.
References fECm.
|
inline |
Definition at line 94 of file TReaction.h.
References ConvertThetaLabToCm(), and 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().
|
inline |
Definition at line 69 of file TReaction.h.
References fExc.
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().
|
inline |
Definition at line 89 of file TReaction.h.
References fGCm.
|
inline |
Definition at line 110 of file TReaction.h.
References ConvertThetaLabToCm(), and 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().
|
inline |
Definition at line 76 of file TReaction.h.
References fInvariantMass.
|
inline |
Definition at line 68 of file TReaction.h.
References fM.
|
inline |
Definition at line 66 of file TReaction.h.
|
inline |
Definition at line 67 of file TReaction.h.
References fNuc.
|
inline |
Definition at line 88 of file TReaction.h.
References fPCm.
|
inline |
Definition at line 106 of file TReaction.h.
References ConvertThetaLabToCm(), and 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().
|
inline |
Definition at line 70 of file TReaction.h.
References fQVal.
double TReaction::GetRutherfordCm | ( | double | theta_cm, |
int | part = 2, | ||
bool | Units_mb = true ) const |
Definition at line 198 of file TReaction.cxx.
Referenced by GetRutherfordLab(), and RutherfordVsTheta().
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().
double TReaction::GetTBeam | ( | bool | inverse | ) | const |
|
inline |
Definition at line 86 of file TReaction.h.
References fTCm.
|
inline |
Definition at line 92 of file TReaction.h.
References fThetaMax.
|
inline |
Definition at line 98 of file TReaction.h.
References ConvertThetaLabToCm(), and 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().
|
inline |
Definition at line 73 of file TReaction.h.
References fVLab.
|
inline |
Definition at line 87 of file TReaction.h.
References fVCm.
|
inline |
Definition at line 102 of file TReaction.h.
References ConvertThetaLabToCm(), and 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().
void TReaction::InitReaction | ( | ) |
|
inline |
Definition at line 71 of file TReaction.h.
References fInverse.
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.
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.
|
override |
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.
|
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().
|
inline |
Definition at line 152 of file TReaction.h.
References SetCmFrame().
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.
|
private |
Definition at line 171 of file TReaction.h.
Referenced by Clear(), GetCmE(), InitReaction(), and Print().
|
private |
Definition at line 174 of file TReaction.h.
Referenced by Clear(), ConvertOmegaCmToLab(), ConvertThetaCmToLab(), ConvertThetaLabToCm(), GetCmG(), GetELabFromThetaCm(), GetExcEnergy(), GetPLabFromThetaCm(), InitReaction(), Print(), and SetCmFrame().
|
private |
Definition at line 173 of file TReaction.h.
Referenced by Clear(), GetCmP(), InitReaction(), and Print().
|
private |
Definition at line 170 of file TReaction.h.
Referenced by Clear(), GetCmTf(), InitReaction(), and Print().
|
private |
Definition at line 169 of file TReaction.h.
Referenced by Clear(), GetCmTi(), InitReaction(), and Print().
|
private |
Definition at line 172 of file TReaction.h.
Referenced by Clear(), ConvertOmegaCmToLab(), ConvertThetaCmToLab(), ConvertThetaLabToCm(), GetCmV(), GetELabFromThetaCm(), GetExcEnergy(), GetPLabFromThetaCm(), InitReaction(), Print(), and SetCmFrame().
|
private |
Definition at line 178 of file TReaction.h.
Referenced by Clear(), GetECm(), GetELabFromThetaCm(), GetPLabFromThetaCm(), Print(), and SetCmFrame().
|
private |
Definition at line 186 of file TReaction.h.
Referenced by Clear(), InitReaction(), and Print().
|
private |
Definition at line 162 of file TReaction.h.
Referenced by AnalysisAngDist(), GetExc(), GetExcEnergy(), and InitReaction().
|
private |
Definition at line 181 of file TReaction.h.
Referenced by Clear(), GetGCm(), Print(), and SetCmFrame().
|
private |
Definition at line 189 of file TReaction.h.
Referenced by Clear(), GetTBeam(), InitReaction(), and Print().
|
private |
Definition at line 168 of file TReaction.h.
Referenced by Clear(), GetInvariantMass(), and InitReaction().
|
private |
Definition at line 161 of file TReaction.h.
Referenced by TReaction(), Clear(), ConvertOmegaCmToLab(), ConvertThetaCmToLab(), ConvertThetaLabToCm(), GetTBeam(), Inverse(), and Print().
|
private |
Definition at line 163 of file TReaction.h.
Referenced by TReaction(), AnalysisBeta(), Clear(), GetExcEnergy(), GetM(), GetTBeam(), GetTLabFromThetaCm(), InitReaction(), Print(), and SetCmFrame().
|
private |
Definition at line 159 of file TReaction.h.
Referenced by TReaction(), Clear(), GetNameFull(), GetNucleus(), GetRutherfordCm(), and Print().
|
private |
Definition at line 179 of file TReaction.h.
Referenced by Clear(), GetELabFromThetaCm(), GetPCm(), GetPLabFromThetaCm(), Print(), and SetCmFrame().
|
private |
Definition at line 187 of file TReaction.h.
Referenced by Clear(), InitReaction(), and Print().
|
private |
Definition at line 166 of file TReaction.h.
Referenced by TReaction(), Clear(), GetQVal(), InitReaction(), and Print().
|
private |
Definition at line 167 of file TReaction.h.
Referenced by Clear(), InitReaction(), and SetCmFrame().
|
private |
Definition at line 160 of file TReaction.h.
Referenced by Clear(), InitReaction(), and Print().
|
private |
Definition at line 177 of file TReaction.h.
Referenced by Clear(), GetTCm(), Print(), and SetCmFrame().
|
private |
Definition at line 190 of file TReaction.h.
Referenced by Clear(), ConvertThetaCmToLab(), ConvertThetaLabToCm(), GetThetaMax(), Print(), and SetCmFrame().
|
private |
Definition at line 185 of file TReaction.h.
Referenced by Clear(), GetELabFromThetaCm(), GetExcEnergy(), GetGLabFromThetaCm(), GetNameFull(), GetPLabFromThetaCm(), GetRutherfordCm(), GetTBeam(), GetTLabFromThetaCm(), GetVLabFromThetaCm(), InitReaction(), and Print().
|
private |
Definition at line 180 of file TReaction.h.
Referenced by Clear(), ConvertOmegaCmToLab(), ConvertThetaCmToLab(), ConvertThetaLabToCm(), GetVCm(), Print(), and SetCmFrame().
|
private |
Definition at line 188 of file TReaction.h.
Referenced by Clear(), GetVBeam(), InitReaction(), and Print().