ATLAS Offline Software
TestActionTool.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 G4USERACTIONS_TESTACTIONTOOL_H
6 #define G4USERACTIONS_TESTACTIONTOOL_H
7 
8 // Framework includes
10 
11 // Geant4 includes
12 #include "G4UserRunAction.hh"
13 #include "G4UserEventAction.hh"
14 #include "G4UserSteppingAction.hh"
15 
16 // G4Atlas includes
19 
20 
21 namespace G4UA
22 {
23 
27  class TestAction : public G4UserRunAction,
28  public G4UserEventAction,
29  public G4UserSteppingAction
30  {
31 
32  public:
33 
35  struct Report
36  {
37  int numEvent = 0;
38  int numStep = 0;
39  void merge(const Report& other) {
40  numEvent += other.numEvent;
41  numStep += other.numStep;
42  }
43  };
44 
46  TestAction();
47 
49  virtual void BeginOfRunAction(const G4Run*) override final;
50 
52  virtual void EndOfRunAction(const G4Run*) override final;
53 
55  virtual void BeginOfEventAction(const G4Event*) override final;
56 
58  virtual void EndOfEventAction(const G4Event*) override final;
59 
61  virtual void UserSteppingAction(const G4Step* step) override final;
62 
64  inline const Report& getReport() const
65  { return m_report; }
66 
67  private:
68 
71 
72  }; // class TestAction
73 
74 
78  class TestActionTool : public UserActionToolBase<TestAction>
79  {
80 
81  public:
82 
84  TestActionTool(const std::string& type, const std::string& name,
85  const IInterface* parent);
86 
88  virtual StatusCode initialize() override final;
89 
91  virtual StatusCode finalize() override final;
92 
93  protected:
94 
96  virtual std::unique_ptr<TestAction>
97  makeAndFillAction(G4AtlasUserActions& actions) override final;
98 
99  }; // class TestActionTool
100 
101 } // namespace G4UA
102 
103 #endif // G4USERACTIONS_TESTACTIONTOOL_H
G4UA::TestAction::BeginOfRunAction
virtual void BeginOfRunAction(const G4Run *) override final
Executes before the run.
Definition: TestActionTool.cxx:23
G4UA::G4AtlasUserActions
Struct for passing around user actions.
Definition: IUserActionTool.h:32
G4UA::TestAction::TestAction
TestAction()
Constructor.
Definition: TestActionTool.cxx:17
G4UA::TestAction::getReport
const Report & getReport() const
Get the results report.
Definition: TestActionTool.h:64
G4UA::TestAction::UserSteppingAction
virtual void UserSteppingAction(const G4Step *step) override final
Stepping action method.
Definition: TestActionTool.cxx:59
G4UA
for nSW
Definition: CalibrationDefaultProcessing.h:19
G4UA::TestAction::m_report
Report m_report
Results report.
Definition: TestActionTool.h:70
UserActionToolBase.h
G4UA::TestActionTool::TestActionTool
TestActionTool(const std::string &type, const std::string &name, const IInterface *parent)
Standard constructor.
Definition: TestActionTool.cxx:67
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
G4UA::TestAction::Report::numEvent
int numEvent
Definition: TestActionTool.h:37
test_pyathena.parent
parent
Definition: test_pyathena.py:15
G4UA::TestAction::EndOfEventAction
virtual void EndOfEventAction(const G4Event *) override final
Executes at end of G4 event.
Definition: TestActionTool.cxx:51
G4UA::TestActionTool::initialize
virtual StatusCode initialize() override final
Initialize the tool.
Definition: TestActionTool.cxx:77
G4UA::TestAction::Report::numStep
int numStep
Definition: TestActionTool.h:38
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
G4UA::UserActionToolBase
abstract template utility base-class for G4 user-action tools.
Definition: UserActionToolBase.h:33
G4UA::TestAction::BeginOfEventAction
virtual void BeginOfEventAction(const G4Event *) override final
Executes at beginning of G4 event.
Definition: TestActionTool.cxx:42
G4UA::TestAction
Definition: TestActionTool.h:30
G4UA::TestActionTool
Definition: TestActionTool.h:79
IUserActionTool.h
InDetDD::other
@ other
Definition: InDetDD_Defs.h:16
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
G4UA::TestAction::Report
Results to be accumulated across threads at end of job.
Definition: TestActionTool.h:36
LArCellBinning.step
step
Definition: LArCellBinning.py:158
G4UA::TestActionTool::makeAndFillAction
virtual std::unique_ptr< TestAction > makeAndFillAction(G4AtlasUserActions &actions) override final
Fill user action.
Definition: TestActionTool.cxx:105
G4UA::TestActionTool::finalize
virtual StatusCode finalize() override final
Finalize the tool.
Definition: TestActionTool.cxx:86
G4UA::TestAction::EndOfRunAction
virtual void EndOfRunAction(const G4Run *) override final
Exeuctes after the run.
Definition: TestActionTool.cxx:31
G4UA::TestAction::Report::merge
void merge(const Report &other)
Definition: TestActionTool.h:39