10#ifndef CRIB_TTGTIKPROCESSOR_H_
11#define CRIB_TTGTIKPROCESSOR_H_
14#include <TProcessor.h>
178 void Init(TEventCollection *col)
override;
297 Double_t
GetEcm_kinematics(Double_t energy, Double_t theta, Double_t low_e, Double_t high_e);
314 Double_t
GetCMAngle(Double_t ELab, Double_t Ecm, Double_t ALab);
Calculates the reaction position using telescope and tracking data.
IntVec_t fParticleAArray
Array of mass numbers for reaction particles.
const Double_t kEpsilon
Convergence threshold for the bisection method.
TClonesArray * fOutData
! Pointer to the output reaction information (TClonesArray of TReactionInfo)
Double_t newton(const TTrack *track, const TTelescopeData *data)
(Deprecated) Newton method for calculating reaction position.
TString fOutputColName
Name of the output reaction information collection (TReactionInfo)
TClonesArray ** fInData
! Pointer to the input telescope data (TClonesArray of TTelescopeData)
TClonesArray ** fInTrackData
! Pointer to the input tracking data (TClonesArray of TTrack)
const Int_t kMaxIteration
Maximum number of iterations for the bisection method.
const Double_t kInitialMax
Initial maximum value for bisection method (mm)
Double_t GetEcmFromBeam(Double_t z, const TTrack *track)
Calculate the center-of-mass energy from beam data.
Double_t GetEcmFromDetectParticle(Double_t z, const TTrack *track, const TTelescopeData *data)
Calculate the center-of-mass energy from detected particle data.
Double_t fPressure
Gas pressure in Torr.
Double_t GetCMAngle(Double_t ELab, Double_t Ecm, Double_t ALab)
Recalculate the LAB angle after reconstruction.
Double_t bisection(const TTrack *track, const TTelescopeData *data)
Bisection method for calculating reaction position.
Double_t fTemperature
Gas temperature in Kelvin.
TString fTargetParameterName
Name of the target parameter (TTargetParameter)
Double_t TargetFunction(Double_t z, const TTrack *track, const TTelescopeData *data)
Target function for the bisection (and Newton) method.
Double_t GetEcm_classic_kinematics(Double_t energy, Double_t theta)
Calculate the center-of-mass energy using classical kinematics.
IntVec_t fParticleZArray
Array of atomic numbers for reaction particles.
TString fInputTrackColName
Name of the input tracking data collection (TTrack)
TTGTIKProcessor & operator=(const TTGTIKProcessor &rhs)=delete
Double_t fInitialBeamEnergy
Beam energy immediately after the window (MeV)
void Init(TEventCollection *col) override
Initialize the processor with an event collection.
Bool_t fDoCustom
Flag to enable custom processing.
TTGTIKProcessor(const TTGTIKProcessor &rhs)=delete
Double_t GetReactionPosition(const TTrack *track, const TTelescopeData *data)
Calculate the reaction position along the Z-axis.
Double_t GetCustomExcitedEnergy(Int_t telID, Double_t Etotal)
Generate a custom excited state energy.
TClonesArray * fTargetPrm
! Pointer to target parameter objects (TClonesArray of TTargetParameter)
TString fInputColName
Name of the input telescope data collection (TTelescopeData)
TTGTIKProcessor()
Constructor.
TClonesArray * fDetectorPrm
! Pointer to detector parameter objects (TClonesArray of TDetectorParameter)
const Double_t kInitialMin
Initial minimum value for bisection method (mm)
TString fTargetName
Name of the gas target used in TSrim calculations.
Bool_t fDoCenterPos
Flag to use the detector center position.
void Process() override
Main processing function.
Double_t GetEcm_kinematics(Double_t energy, Double_t theta, Double_t low_e, Double_t high_e)
Calculate the center-of-mass energy using relativistic kinematics.
TString fDetectorParameterName
Name of the detector parameter (TDetectorParameter)
TSrim * srim
! TSrim object to calculate energy loss
std::pair< Double_t, Double_t > GetELabALabPair(Double_t z, const TTrack *track, const TTelescopeData *data)
Calculate the LAB energy and LAB angle from detected particle data.
Double_t fExcitedEnergy
Excited state energy (MeV)
ClassDefOverride(TTGTIKProcessor, 1)
ROOT class definition macro.
~TTGTIKProcessor() override
Default destructor.