ATLAS Offline Software
UserActionSvc.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 
6 #ifndef G4ATLASSERVICES__G4UA_USERACTIONSVC_H
7 #define G4ATLASSERVICES__G4UA_USERACTIONSVC_H
8 
9 
10 // System includes
11 #include <thread>
12 
13 // Framework includes
15 #include "GaudiKernel/ToolHandle.h"
16 
17 // G4Atlas includes
18 #include "G4AtlasRunAction.h"
19 #include "G4AtlasEventAction.h"
21 #include "G4AtlasStackingAction.h"
22 #include "G4AtlasTrackingAction.h"
23 #include "G4AtlasSteppingAction.h"
27 
28 
29 namespace G4UA
30 {
31 
36  class UserActionSvc : public extends<AthService, IUserActionSvc>
37  {
38 
39  public:
40 
42  UserActionSvc(const std::string& name, ISvcLocator* pSvcLocator);
43 
45  StatusCode initialize() override;
46 
48  StatusCode initializeActionsMaster() override final;
49 
51  StatusCode initializeActions() override final;
52 
53  StatusCode getSecondaryActions( std::vector< G4UserSteppingAction* >& actions ) override final;
54 
55  StatusCode addActionTool(const ToolHandle<IUserActionTool>& service_tool) override final;
56  private:
57 
60 
62  ToolHandleArray<IUserActionTool> m_userActionTools;
63 
65 
68 
81 
83 
84  }; // class UserActionSvc
85 
86 }
87 
88 #endif
G4UA::UserActionSvc::m_userActionTools
ToolHandleArray< IUserActionTool > m_userActionTools
User action tools.
Definition: UserActionSvc.h:62
G4UA::UserActionSvc::m_stackingActions
ThreadActionHolder< G4AtlasStackingAction > m_stackingActions
Thread-local stacking action.
Definition: UserActionSvc.h:76
G4UA::UserActionSvc::m_runActions
ThreadActionHolder< G4AtlasRunAction > m_runActions
Thread-local run action.
Definition: UserActionSvc.h:70
G4UA::UserActionSvc::m_eventActions
ThreadActionHolder< G4AtlasEventAction > m_eventActions
Thread-local event action.
Definition: UserActionSvc.h:74
G4AtlasEventAction.h
G4UA::UserActionSvc
A service which manages the user actions for G4 simulation.
Definition: UserActionSvc.h:37
IUserActionSvc.h
G4UA
for nSW
Definition: CalibrationDefaultProcessing.h:19
G4UA::UserActionSvc::initializeActions
StatusCode initializeActions() override final
Initialize the user actions for the current thread.
Definition: UserActionSvc.cxx:87
G4AtlasPrimaryGeneratorAction.h
G4UA::UserActionSvc::initialize
StatusCode initialize() override
Initialize the service.
Definition: UserActionSvc.cxx:34
G4AtlasStackingAction.h
G4UA::UserActionSvc::addActionTool
StatusCode addActionTool(const ToolHandle< IUserActionTool > &service_tool) override final
Definition: UserActionSvc.cxx:46
ThreadActionHolder.h
G4UA::UserActionSvc::getSecondaryActions
StatusCode getSecondaryActions(std::vector< G4UserSteppingAction * > &actions) override final
Definition: UserActionSvc.cxx:211
G4UA::UserActionSvc::UserActionSvc
UserActionSvc(const std::string &name, ISvcLocator *pSvcLocator)
Standard constructor.
Definition: UserActionSvc.cxx:23
G4AtlasSteppingAction.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
G4AtlasRunAction.h
G4UA::UserActionSvc::initializeActionsMaster
StatusCode initializeActionsMaster() override final
Initialize the user run actions for the main thread.
Definition: UserActionSvc.cxx:64
G4UA::ThreadActionHolder
A thread-local storage wrapper for the user actions.
Definition: ThreadActionHolder.h:31
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
G4UA::UserActionSvc::m_primaryGeneratorActions
ThreadActionHolder< G4AtlasPrimaryGeneratorAction > m_primaryGeneratorActions
Thread-local primary generator action.
Definition: UserActionSvc.h:72
G4AtlasTrackingAction.h
IUserActionTool.h
AthService.h
G4UA::UserActionSvc::m_trackingActions
ThreadActionHolder< G4AtlasTrackingAction > m_trackingActions
Thread-local tracking action.
Definition: UserActionSvc.h:78
G4UA::UserActionSvc::m_steppingActions
ThreadActionHolder< G4AtlasSteppingAction > m_steppingActions
Thread-local stepping action.
Definition: UserActionSvc.h:80