KaliVeda
Toolkit for HIC analysis
KVRangeTableGeoNavigator.h
1 #ifndef __KVRANGETABLEGEONAVIGATOR_H
2 #define __KVRANGETABLEGEONAVIGATOR_H
3 
4 #include "TVirtualGeoTrack.h"
5 #include "KVGeoNavigator.h"
6 #include "KVIonRangeTable.h"
7 
56 
57  KVIonRangeTable* fRangeTable;
58  Double_t fCutOffEnergy;
59  TVirtualGeoTrack* fCurrentTrack;
60  Double_t fTrackTime;
61 
62  void InitialiseTrack(KVNucleus* part, TVector3* TheOrigin);
63  void AddPointToCurrentTrack(Double_t x, Double_t y, Double_t z) override
64  {
66  fCurrentTrack->AddPoint(x, y, z, fTrackTime);
67  fTrackTime += 1;
68  }
69 
70 public:
72  : KVGeoNavigator(g), fRangeTable(r), fCutOffEnergy(1.e-3), fCurrentTrack(nullptr),
73  fTrackTime(0.)
74  {}
76  {
77  fCutOffEnergy = e;
78  }
80  {
81  return fCutOffEnergy;
82  }
83 
84  void ParticleEntersNewVolume(KVNucleus*) override;
85  void PropagateParticle(KVNucleus*, TVector3* TheOrigin = 0) override;
86 
88  {
90  return fRangeTable->CheckIon(Z, A);
91  }
92 
93  ClassDefOverride(KVRangeTableGeoNavigator, 0) //Propagate particles through a geometry and calculate their energy losses
94 };
95 
96 #endif
int Int_t
ROOT::R::TRInterface & r
#define e(i)
bool Bool_t
double Double_t
#define ClassDefOverride(name, id)
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t g
Base class for propagation of particles through array geometry.
Abstract base class for calculation of range & energy loss of charged particles in matter.
virtual Bool_t CheckIon(Int_t, Int_t) const
Description of properties and kinematics of atomic nuclei.
Definition: KVNucleus.h:123
Propagate particles through array geometry calculating energy losses.
KVRangeTableGeoNavigator(TGeoManager *g, KVIonRangeTable *r)
void PropagateParticle(KVNucleus *, TVector3 *TheOrigin=0) override
We start a new track to represent the particle's trajectory through the array.
Double_t GetCutOffKEForPropagation() const
void SetCutOffKEForPropagation(Double_t e)
Bool_t CheckIonForRangeTable(Int_t Z, Int_t A)
void ParticleEntersNewVolume(KVNucleus *) override
virtual void AddPoint(Double_t x, Double_t y, Double_t z, Double_t t)=0
Double_t y[n]
Double_t x[n]