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"
20 #include "G4AtlasStackingAction.h"
21 #include "G4AtlasTrackingAction.h"
22 #include "G4AtlasSteppingAction.h"
26 
27 
28 namespace G4UA
29 {
30 
35  class UserActionSvc : public extends<AthService, IUserActionSvc>
36  {
37 
38  public:
39 
41  UserActionSvc(const std::string& name, ISvcLocator* pSvcLocator);
42 
44  StatusCode initialize() override;
45 
47  StatusCode initializeActions() override final;
48 
49  StatusCode getSecondaryActions( std::vector< G4UserSteppingAction* >& actions ) override final;
50 
51  StatusCode addActionTool(const ToolHandle<IUserActionTool>& service_tool) override final;
52  private:
53 
56 
58  ToolHandleArray<IUserActionTool> m_userActionTools;
59 
61 
64 
75 
77 
78  }; // class UserActionSvc
79 
80 }
81 
82 #endif
G4UA::UserActionSvc::m_userActionTools
ToolHandleArray< IUserActionTool > m_userActionTools
User action tools.
Definition: UserActionSvc.h:58
G4UA::UserActionSvc::m_stackingActions
ThreadActionHolder< G4AtlasStackingAction > m_stackingActions
Thread-local stacking action.
Definition: UserActionSvc.h:70
G4UA::UserActionSvc::m_runActions
ThreadActionHolder< G4AtlasRunAction > m_runActions
Thread-local run action.
Definition: UserActionSvc.h:66
G4UA::UserActionSvc::m_eventActions
ThreadActionHolder< G4AtlasEventAction > m_eventActions
Thread-local event action.
Definition: UserActionSvc.h:68
G4AtlasEventAction.h
G4UA::UserActionSvc
A service which manages the user actions for G4 simulation.
Definition: UserActionSvc.h:36
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:67
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:178
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::ThreadActionHolder
A thread-local storage wrapper for the user actions.
Definition: ThreadActionHolder.h:31
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
G4AtlasTrackingAction.h
IUserActionTool.h
AthService.h
G4UA::UserActionSvc::m_trackingActions
ThreadActionHolder< G4AtlasTrackingAction > m_trackingActions
Thread-local tracking action.
Definition: UserActionSvc.h:72
G4UA::UserActionSvc::m_steppingActions
ThreadActionHolder< G4AtlasSteppingAction > m_steppingActions
Thread-local stepping action.
Definition: UserActionSvc.h:74