ATLAS Offline Software
IUserActionTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef G4ATLASINTERFACES_IUSERACTIONTOOL_H
6 #define G4ATLASINTERFACES_IUSERACTIONTOOL_H
7 
8 // System includes
9 #include <vector>
10 
11 // Framework includes
12 #include "GaudiKernel/IAlgTool.h"
13 
14 // Geant4 forward declarations
15 class G4UserRunAction;
16 class G4UserEventAction;
17 class G4UserTrackingAction;
18 class G4UserSteppingAction;
19 class G4UserStackingAction;
20 
21 namespace G4UA
22 {
23 
32  {
33  std::vector<G4UserRunAction*> runActions;
34  std::vector<G4UserEventAction*> eventActions;
35  std::vector<G4UserTrackingAction*> trackingActions;
36  std::vector<G4UserSteppingAction*> steppingActions;
37  std::vector<G4UserStackingAction*> stackingActions;
38  };
39 
48  class IUserActionTool : virtual public IAlgTool
49  {
50 
51  public:
52 
54  virtual StatusCode fillUserAction(G4AtlasUserActions& userActions) = 0;
55 
58 
59  }; // class IUserActionTool
60 
61 } // namespace G4UA
62 
63 #endif // G4ATLASINTERFACES_IUSERACTIONTOOL_H
G4UA::G4AtlasUserActions
Struct for passing around user actions.
Definition: IUserActionTool.h:32
G4UA::IUserActionTool::DeclareInterfaceID
DeclareInterfaceID(IUserActionTool, 1, 0)
Declare this interface to the framework.
G4UA
for nSW
Definition: CalibrationDefaultProcessing.h:19
G4UA::G4AtlasUserActions::trackingActions
std::vector< G4UserTrackingAction * > trackingActions
Definition: IUserActionTool.h:35
G4UA::IUserActionTool::fillUserAction
virtual StatusCode fillUserAction(G4AtlasUserActions &userActions)=0
Constructs a user action and populates the user action lists with it.
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
G4UA::G4AtlasUserActions::runActions
std::vector< G4UserRunAction * > runActions
Definition: IUserActionTool.h:33
G4UA::G4AtlasUserActions::stackingActions
std::vector< G4UserStackingAction * > stackingActions
Definition: IUserActionTool.h:37
G4UA::G4AtlasUserActions::eventActions
std::vector< G4UserEventAction * > eventActions
Definition: IUserActionTool.h:34
G4UA::G4AtlasUserActions::steppingActions
std::vector< G4UserSteppingAction * > steppingActions
Definition: IUserActionTool.h:36
G4UA::IUserActionTool
Abstract interface for tools that construct G4 user actions.
Definition: IUserActionTool.h:49