16#ifndef RestCore_TRestGeant4Track
17#define RestCore_TRestGeant4Track
23#include "TRestGeant4Hits.h"
36 TString fParticleName;
40 TString fCreatorProcess;
42 std::vector<Int_t> fSecondaryTrackIDs;
44 Double_t fGlobalTimestamp;
45 Double_t fTimeOffset = 0;
48 Double_t fInitialKineticEnergy;
51 TVector3 fInitialPosition;
69 inline void SetTimeOffset(
const double tOffset) { fTimeOffset = tOffset; }
71 inline TString GetCreatorProcess()
const {
return fCreatorProcess; }
73 inline void AddSecondaryTrackID(Int_t trackID) { fSecondaryTrackIDs.push_back(trackID); }
78 inline Int_t GetTrackID()
const {
return fTrackID; }
79 inline Int_t GetParentID()
const {
return fParentID; }
80 inline TString GetParticleName()
const {
return fParticleName; }
81 inline Double_t GetGlobalTime()
const {
return fGlobalTimestamp; }
82 inline Double_t GetTimeOffset()
const {
return fTimeOffset; }
83 inline Double_t GetTimeLength()
const {
return fTimeLength; }
84 inline Double_t GetInitialKineticEnergy()
const {
return fInitialKineticEnergy; }
85 inline TVector3 GetInitialPosition()
const {
return fInitialPosition; }
86 inline Double_t GetWeight()
const {
return fWeight; }
87 inline Double_t GetTotalEnergy()
const {
return fHits.GetTotalEnergy(); }
88 inline Double_t GetLength()
const {
return fLength; }
90 TString GetInitialVolume()
const;
91 TString GetFinalVolume()
const;
93 inline std::vector<Int_t> GetSecondaryTrackIDs()
const {
return fSecondaryTrackIDs; }
94 std::vector<const TRestGeant4Track*> GetSecondaryTracks()
const;
95 inline std::vector<const TRestGeant4Track*> GetChildrenTracks()
const {
return GetSecondaryTracks(); }
99 inline TVector3 GetTrackOrigin()
const {
return GetInitialPosition(); }
101 EColor GetParticleColor()
const;
103 inline Double_t GetEnergyInVolume(Int_t volID)
const {
return fHits.GetEnergyInVolume(volID); }
104 inline TVector3 GetMeanPositionInVolume(Int_t volID)
const {
105 return fHits.GetMeanPositionInVolume(volID);
107 inline TVector3 GetFirstPositionInVolume(Int_t volID)
const {
108 return fHits.GetFirstPositionInVolume(volID);
110 inline TVector3 GetLastPositionInVolume(Int_t volID)
const {
111 return fHits.GetLastPositionInVolume(volID);
114 Int_t GetProcessID(
const TString& processName)
const;
115 TString GetProcessName(Int_t
id)
const;
117 Bool_t ContainsProcessInVolume(Int_t processID, Int_t volumeID = -1)
const;
118 inline Bool_t ContainsProcess(Int_t processID)
const {
return ContainsProcessInVolume(processID, -1); }
120 Bool_t ContainsProcessInVolume(
const TString& processName, Int_t volumeID = -1)
const;
121 inline Bool_t ContainsProcess(
const TString& processName)
const {
122 return ContainsProcessInVolume(processName, -1);
125 Double_t GetEnergyInVolume(
const TString& volumeName,
bool children =
false)
const;
127 TString GetLastProcessName()
const;
131 void PrintTrackFilterVolumes(
const std::set<std::string>& filterVolumes)
const;
133 inline void RemoveHits() { fHits.
RemoveHits(); }
148 void UpdateTrack(
const G4Track*);
149 void InsertStep(
const G4Step*);
An event class to store geant4 generated event information.
void PrintTrack(size_t maxHits=0) const
Prints the track information. N number of hits to print, 0 = all.
size_t GetNumberOfHits(Int_t volID=-1) const
Function that returns the number of hit depositions found inside the TRestGeant4Track....
size_t GetNumberOfPhysicalHits(Int_t volID=-1) const
Function that returns the number of hit depositions found inside the TRestGeant4Track with energy > 0...
virtual void RemoveHits()
It removes all hits inside the class.