ATLAS Offline Software
TrackProcessorUserActionFullG4.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 
6 #ifndef ISF_GEANT4TOOLS_TRACKPROCESSORUSERACTIONFULLG4_H
7 #define ISF_GEANT4TOOLS_TRACKPROCESSORUSERACTIONFULLG4_H
8 
10 
12 
14 
17 
18 #include "ISF_Event/EntryLayer.h"
19 
20 #include "GaudiKernel/ToolHandle.h"
21 #include "GaudiKernel/ServiceHandle.h"
22 
23 #include <string>
24 
25 // forward declarations
26 
27 // Geant4
28 class G4LogicalVolume;
29 
30 namespace G4UA{
31 
32  namespace iGeant4{
33 
35  public:
36  struct Config
37  {
38  Config() = delete;
39  Config(const std::string& name):
40  entryLayerTool(""),
41  geoIDSvc("",name)
42  {}
44  ToolHandle<ISF::IEntryLayerTool> entryLayerTool;
47  int truthVolLevel{1};
48  unsigned int verboseLevel=0;
49  bool isITkGeometry{};
50  };
51 
54 
55  virtual void PreUserTrackingAction(const G4Track*) override final;
56  private:
59  void ISFSteppingAction(const G4Step*, ISF::ISFParticle *curISP) override final;
60 
62 
63  ISF::EntryLayer entryLayer(const G4Step* aStep);
64 
67 
70 
71 
72  std::map<std::string, int, std::less<std::string> > m_entryLayerMap;
73 
75  const G4Track* m_currentTrack;
76 
77  }; // class TrackProcessorUserActionFullG4
78 
79  }// iGeant4
80 
81 } // G4UA
82 
83 #endif // ISF_GEANT4TOOLS_TRACKPROCESSORUSERACTIONFULLG4_H
G4UA::iGeant4::TrackProcessorUserActionBase
Definition: TrackProcessorUserActionBase.h:33
G4UA::iGeant4::TrackProcessorUserActionFullG4::Config::Config
Config()=delete
G4UA::iGeant4::TrackProcessorUserActionFullG4::Config::truthVolLevel
int truthVolLevel
Definition: TrackProcessorUserActionFullG4.h:47
G4UA
for nSW
Definition: CalibrationDefaultProcessing.h:19
AtlasRegion.h
AtlasDetDescr::AtlasRegion
AtlasRegion
Definition: AtlasRegion.h:27
G4UA::iGeant4::TrackProcessorUserActionFullG4::Config
Definition: TrackProcessorUserActionFullG4.h:37
G4UA::iGeant4::TrackProcessorUserActionFullG4::m_geoIDSvcQuick
ISF::IGeoIDSvc * m_geoIDSvcQuick
access to the central ISF GeoID serice
Definition: TrackProcessorUserActionFullG4.h:69
ISF::ISFParticle
Definition: ISFParticle.h:42
G4UA::iGeant4::TrackProcessorUserActionFullG4::m_entryLayerMap
std::map< std::string, int, std::less< std::string > > m_entryLayerMap
Definition: TrackProcessorUserActionFullG4.h:72
G4UA::iGeant4::TrackProcessorUserActionFullG4::m_entryLayerToolQuick
ISF::IEntryLayerTool * m_entryLayerToolQuick
access to the ISF Entry Layer tool which is used to record entry-layer collections
Definition: TrackProcessorUserActionFullG4.h:66
G4UA::iGeant4::TrackProcessorUserActionFullG4::Config::verboseLevel
unsigned int verboseLevel
Definition: TrackProcessorUserActionFullG4.h:48
G4UA::iGeant4::TrackProcessorUserActionFullG4::Config::geoIDSvc
ServiceHandle< ISF::IGeoIDSvc > geoIDSvc
access to the central ISF GeoID service
Definition: TrackProcessorUserActionFullG4.h:46
IEntryLayerTool.h
config
Definition: PhysicsAnalysis/AnalysisCommon/AssociationUtils/python/config.py:1
G4UA::iGeant4::TrackProcessorUserActionFullG4::Config::isITkGeometry
bool isITkGeometry
Definition: TrackProcessorUserActionFullG4.h:49
G4UA::iGeant4::TrackProcessorUserActionFullG4::ISFSteppingAction
void ISFSteppingAction(const G4Step *, ISF::ISFParticle *curISP) override final
Called by the base class after the G4Track->ISFParticle association has been established.
Definition: TrackProcessorUserActionFullG4.cxx:80
G4UA::iGeant4::TrackProcessorUserActionFullG4::m_nextGeoID
AtlasDetDescr::AtlasRegion m_nextGeoID
Definition: TrackProcessorUserActionFullG4.h:74
EntryLayer.h
G4UA::iGeant4::TrackProcessorUserActionFullG4::Config::Config
Config(const std::string &name)
Definition: TrackProcessorUserActionFullG4.h:39
TrackProcessorUserActionBase.h
AthAlgTool.h
G4UA::iGeant4::TrackProcessorUserActionFullG4::entryLayer
ISF::EntryLayer entryLayer(const G4Step *aStep)
Definition: TrackProcessorUserActionFullG4.cxx:169
ISF::IGeoIDSvc
Definition: IGeoIDSvc.h:41
IGeoIDSvc.h
G4UA::iGeant4::TrackProcessorUserActionFullG4::m_config
Config m_config
Definition: TrackProcessorUserActionFullG4.h:61
Config
Definition: dumpNPs.cxx:47
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
G4UA::iGeant4::TrackProcessorUserActionFullG4::m_currentTrack
const G4Track * m_currentTrack
Definition: TrackProcessorUserActionFullG4.h:75
ISF::EntryLayer
EntryLayer
Definition: EntryLayer.h:31
ISF::IEntryLayerTool
Definition: IEntryLayerTool.h:26
G4UA::iGeant4::TrackProcessorUserActionFullG4::Config::entryLayerTool
ToolHandle< ISF::IEntryLayerTool > entryLayerTool
access to the ISF Entry Layer tool which is used to record entry-layer collections
Definition: TrackProcessorUserActionFullG4.h:44
G4UA::iGeant4::TrackProcessorUserActionFullG4::TrackProcessorUserActionFullG4
TrackProcessorUserActionFullG4(const Config &config)
Definition: TrackProcessorUserActionFullG4.cxx:39
G4UA::iGeant4::TrackProcessorUserActionFullG4::~TrackProcessorUserActionFullG4
virtual ~TrackProcessorUserActionFullG4()
Definition: TrackProcessorUserActionFullG4.h:53
G4UA::iGeant4::TrackProcessorUserActionFullG4::PreUserTrackingAction
virtual void PreUserTrackingAction(const G4Track *) override final
Definition: TrackProcessorUserActionFullG4.cxx:221
G4UA::iGeant4::TrackProcessorUserActionFullG4
Definition: TrackProcessorUserActionFullG4.h:34
ServiceHandle< ISF::IGeoIDSvc >
iGeant4
Definition: Geant4TruthIncident.h:35