ATLAS Offline Software
SensitiveDetectorMasterTool.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 #ifndef G4ATLASSERVICES_SENSITIVEDETECTORMASTERTOOL_H
6 #define G4ATLASSERVICES_SENSITIVEDETECTORMASTERTOOL_H
7 
8 // Base classes
11 
12 // Member
13 #include "GaudiKernel/ToolHandle.h" // For tool handle array
14 #include "G4AtlasInterfaces/ISensitiveDetector.h" // What we have a handle on
15 
25 class SensitiveDetectorMasterTool : public extends<AthAlgTool, ISensitiveDetectorMasterTool>
26 {
27  public:
29  SensitiveDetectorMasterTool(const std::string& type, const std::string& name,
30  const IInterface* parent);
33 
35  StatusCode initialize() override final;
36 
38  StatusCode initializeSDs() override final;
40  StatusCode BeginOfAthenaEvent() override final;
42  StatusCode EndOfAthenaEvent() override final;
43 
44  private:
46  ToolHandleArray<ISensitiveDetector> m_senDetTools{this, "SensitiveDetectors", {}, "Tool handle array of all sensitive detector tools"};
47 };
48 
49 #endif
SensitiveDetectorMasterTool::initialize
StatusCode initialize() override final
Retrieve the SD tools. SD creation is deferred until initializeSDs.
Definition: SensitiveDetectorMasterTool.cxx:15
SensitiveDetectorMasterTool::SensitiveDetectorMasterTool
SensitiveDetectorMasterTool(const std::string &type, const std::string &name, const IInterface *parent)
Standard constructor.
Definition: SensitiveDetectorMasterTool.cxx:8
SensitiveDetectorMasterTool::EndOfAthenaEvent
StatusCode EndOfAthenaEvent() override final
Calls Gather on each SD tool.
Definition: SensitiveDetectorMasterTool.cxx:54
ISensitiveDetector
Definition: ISensitiveDetector.h:20
ISensitiveDetectorMasterTool.h
SensitiveDetectorMasterTool
Public tool which manages all the sensitive detector tools.
Definition: SensitiveDetectorMasterTool.h:26
SensitiveDetectorMasterTool::BeginOfAthenaEvent
StatusCode BeginOfAthenaEvent() override final
Calls SetupEvent on each SD tool.
Definition: SensitiveDetectorMasterTool.cxx:45
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
test_pyathena.parent
parent
Definition: test_pyathena.py:15
SensitiveDetectorMasterTool::m_senDetTools
ToolHandleArray< ISensitiveDetector > m_senDetTools
Private array of tool handles pointing to all SD tools.
Definition: SensitiveDetectorMasterTool.h:46
SensitiveDetectorMasterTool::~SensitiveDetectorMasterTool
virtual ~SensitiveDetectorMasterTool()
Empty virtual destructor.
Definition: SensitiveDetectorMasterTool.h:32
private
#define private
Definition: DetDescrConditionsDict_dict_fixes.cxx:13
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
SensitiveDetectorMasterTool::initializeSDs
StatusCode initializeSDs() override final
Calls initializeSD on each SD tool to create the SDs for the current worker thread.
Definition: SensitiveDetectorMasterTool.cxx:25
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
ISensitiveDetector.h