ATLAS Offline Software
SimpleSDTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef LARG4CODE_SIMPLESDTOOL_H
6 #define LARG4CODE_SIMPLESDTOOL_H
7 
15 // System includes
16 #include <string>
17 #include <vector>
18 
19 // G4Atlas includes
21 
22 // Local includes
23 #include "LArG4SimpleSD.h"
24 
25 // External includes
26 #include "CLHEP/Units/SystemOfUnits.h"
27 
28 // Forward declarations
29 class ILArCalculatorSvc;
30 class LArEM_ID;
31 class LArFCAL_ID;
32 class LArHEC_ID;
33 class LArG4SimpleSD;
34 
35 namespace LArG4
36 {
37 
46  {
47 
48  public:
49 
51  SimpleSDTool(const std::string& type, const std::string& name,
52  const IInterface* parent);
53 
55  StatusCode initialize() override final;
56 
58  StatusCode Gather() override final;
59 
60  protected:
61 
63  virtual StatusCode initializeCalculators() { return StatusCode::SUCCESS; }
64 
66  std::unique_ptr<LArG4SimpleSD>
67  makeOneSD(const std::string& name, ILArCalculatorSvc* calc,
68  const std::vector<std::string>& volumes) const;
69 
71  bool useFrozenShowers() const { return m_useFrozenShowers; }
72 
73  protected:
74 
77 
79  Gaudi::Property<std::string> m_timeBinType{this, "TimeBinType", "Default"};
81  Gaudi::Property<float> m_timeBinWidth{this, "TimeBinWidth", 2.5*CLHEP::ns};
83  Gaudi::Property<G4bool> m_useFrozenShowers{this, "UseFrozenShowers", false};
84 
86 
89  const LArEM_ID* m_larEmID{nullptr};
90  const LArFCAL_ID* m_larFcalID{nullptr};
91  const LArHEC_ID* m_larHecID{nullptr};
93 
94  }; // class SimpleSDTool
95 
96 } // namespace LArG4
97 
98 #endif
LArG4::SimpleSDTool::m_useFrozenShowers
Gaudi::Property< G4bool > m_useFrozenShowers
Is there going to be a fast simulation coming into this SD?
Definition: SimpleSDTool.h:83
LArG4::SimpleSDTool::useFrozenShowers
bool useFrozenShowers() const
Are we handling frozen shower fast sim?
Definition: SimpleSDTool.h:71
LArG4::SimpleSDTool::m_timeBinWidth
Gaudi::Property< float > m_timeBinWidth
What time bin width for regular hits?
Definition: SimpleSDTool.h:81
LArG4SimpleSD
Common sensitive detector class for LAr systems.
Definition: LArG4SimpleSD.h:36
LArHEC_ID
Helper class for LArHEC offline identifiers.
Definition: LArHEC_ID.h:85
SensitiveDetectorBase
Common base class for tools that create and manage Geant4 sensitive detectors.
Definition: SensitiveDetectorBase.h:50
LArG4::SimpleSDTool::initializeCalculators
virtual StatusCode initializeCalculators()
Initialize Calculator Services.
Definition: SimpleSDTool.h:63
LArG4
Definition: LArWheelCalculatorEnums.h:8
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
LArG4::SimpleSDTool::makeOneSD
std::unique_ptr< LArG4SimpleSD > makeOneSD(const std::string &name, ILArCalculatorSvc *calc, const std::vector< std::string > &volumes) const
Helper method to create one SD.
LArG4::SimpleSDTool
A base class for tools that manage LArG4SimpleSDs.
Definition: SimpleSDTool.h:46
LArG4::SimpleSDTool::m_timeBinType
Gaudi::Property< std::string > m_timeBinType
What time binning type for regular hits?
Definition: SimpleSDTool.h:79
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
test_pyathena.parent
parent
Definition: test_pyathena.py:15
ILArCalculatorSvc
Definition: ILArCalculatorSvc.h:25
LArG4::SimpleSDTool::m_larFcalID
const LArFCAL_ID * m_larFcalID
Definition: SimpleSDTool.h:90
LArG4::SimpleSDTool::m_larEmID
const LArEM_ID * m_larEmID
Definition: SimpleSDTool.h:89
protected
#define protected
Definition: GenEventCnv_p1.h:26
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
LArG4::SimpleSDTool::m_larHecID
const LArHEC_ID * m_larHecID
Definition: SimpleSDTool.h:91
LArG4SimpleSD.h
SensitiveDetectorBase.h
LArG4::SimpleSDTool::initialize
StatusCode initialize() override final
Initialize the tool.
LArG4::SimpleSDTool::Gather
StatusCode Gather() override final
Calls down to all the SDs to pack their hits into one collection.
LArEM_ID
Helper class for LArEM offline identifiers.
Definition: LArEM_ID.h:118
LArFCAL_ID
Helper class for LArFCAL offline identifiers.
Definition: LArFCAL_ID.h:60
beamspotnt.calc
calc
Definition: bin/beamspotnt.py:1251
LArG4::SimpleSDTool::SimpleSDTool
SimpleSDTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor.
python.SystemOfUnits.ns
float ns
Definition: SystemOfUnits.py:146