OMSim
Geant4 for IceCube optical module studies
Loading...
Searching...
No Matches
simulations/wavepid/include/OMSimTrackingAction.hh
Go to the documentation of this file.
1
8#pragma once
9
10#include "G4UserTrackingAction.hh"
11#include "G4Track.hh"
12#include <unordered_map>
13#include <string>
14
22class OMSimTrackingAction : public G4UserTrackingAction
23{
24public:
26 virtual ~OMSimTrackingAction();
27
28 virtual void PreUserTrackingAction(const G4Track* track) override;
29 virtual void PostUserTrackingAction(const G4Track* track) override;
30
36 std::string GetParticleType(G4int trackID) const;
37
43 std::string GetCreatorProcess(G4int trackID) const;
44
51
56 static bool HasInstance() { return instance != nullptr; }
57
58private:
59 std::unordered_map<G4int, std::string> m_trackIDToParticleTypeMap;
60 std::unordered_map<G4int, std::string> m_trackIDToCreatorProcessMap;
61
62 static thread_local OMSimTrackingAction* instance;
63};
Tracks particle information for photon origin classification.
Definition common/framework/include/OMSimTrackingAction.hh:6
std::string GetCreatorProcess(G4int trackID) const
Get the creator process for a given track ID.
Definition OMSimTrackingAction.cc:80
std::string GetParticleType(G4int trackID) const
Get the particle type for a given track ID.
Definition OMSimTrackingAction.cc:71
static bool HasInstance()
Check if the singleton instance exists.
Definition simulations/wavepid/include/OMSimTrackingAction.hh:56
static OMSimTrackingAction & GetInstance()
Access the singleton instance.
Definition OMSimTrackingAction.cc:15
static thread_local OMSimTrackingAction * instance
Thread-local instance pointer.
Definition simulations/wavepid/include/OMSimTrackingAction.hh:62