10#include "CLHEP/Units/SystemOfUnits.h"
37 const std::string& name,
38 const IInterface* parent)
77 declareProperty(
"EMBCalculator",
m_embcalc);
85 declareProperty(
"HECWActiveCalculator",
m_heccalc);
91 declareProperty(
"shift_lar_subhit",
m_config.shift_lar_subhit,
"");
92 declareProperty(
"shorten_lar_step",
m_config.shorten_lar_step,
"");
94 declareProperty(
"maxRadiusLateral",
m_config.m_maxRadiusLateral,
"");
95 declareProperty(
"maxRadiusLongitudinal",
m_config.m_maxRadiusLongitudinal,
98 declareProperty(
"maxTime",
m_config.m_maxTime,
"");
99 declareProperty(
"maxTimeLAr",
m_config.m_maxTimeLAr,
"");
100 declareProperty(
"maxTimeHEC",
m_config.m_maxTimeHEC,
"");
101 declareProperty(
"maxTimeFCAL",
m_config.m_maxTimeFCAL,
"");
102 declareProperty(
"maxTimeTile",
m_config.m_maxTimeTile,
"");
112 CHECK(detStore()->retrieve(idMgr));
116 return StatusCode::FAILURE;
121 return StatusCode::FAILURE;
126 return StatusCode::FAILURE;
131 return StatusCode::FAILURE;
139 return StatusCode::SUCCESS;
162 return StatusCode::SUCCESS;
173 return StatusCode::FAILURE;
175 sdWrapper->EndOfAthenaEvent();
176 return StatusCode::SUCCESS;
188 sdWrapper->addSD(
makeOneLArSD(
"Barrel::Presampler::Module::StepInfo",
192 sdWrapper->addSD(
makeOneLArSD(
"EMEC::Pos::InnerWheel::StepInfo",
194 sdWrapper->addSD(
makeOneLArSD(
"EMEC::Neg::InnerWheel::StepInfo",
196 sdWrapper->addSD(
makeOneLArSD(
"EMEC::Pos::OuterWheel::StepInfo",
198 sdWrapper->addSD(
makeOneLArSD(
"EMEC::Neg::OuterWheel::StepInfo",
200 sdWrapper->addSD(
makeOneLArSD(
"Endcap::Presampler::LiquidArgon::StepInfo",
202 sdWrapper->addSD(
makeOneLArSD(
"EMEC::Pos::BackOuterBarrette::StepInfo",
204 sdWrapper->addSD(
makeOneLArSD(
"EMEC::Neg::BackOuterBarrette::StepInfo",
212 sdWrapper->addSD(
makeOneLArSD(
"HEC::Module::Depth::Slice::Wheel::StepInfo",
214 sdWrapper->addSD(
makeOneTileSD(
"Tile::Scintillator::StepInfo",
225 const std::vector<std::string>& volumes)
const {
234 config.m_LArCalculator = calc;
236 throw GaudiException(
237 "nullptr for ILArCalculatorSvc provided to constructor for: " + sdName,
238 name(), StatusCode::FAILURE);
240 if (msgLvl(MSG::VERBOSE)) {
242 }
else if (msgLvl(MSG::DEBUG)) {
246 auto sd = std::make_unique<LArFCS_StepInfoSD>(sdName,
config);
247 auto* sdPtr = sd.get();
251 if (this->
assignSD(std::move(sd), parsedVolumes).isFailure()) {
253 throw GaudiException(
"Failed to assign sd: " + sdName, name(),
254 StatusCode::FAILURE);
265 const std::vector<std::string>& volumes)
const {
270 config.m_TileCalculator = calc;
272 throw GaudiException(
273 "nullptr for ITileCalculator provided to constructor for: " + sdName,
274 name(), StatusCode::FAILURE);
276 if (msgLvl(MSG::VERBOSE)) {
278 }
else if (msgLvl(MSG::DEBUG)) {
282 auto sd = std::make_unique<TileFCS_StepInfoSD>(sdName,
config);
283 auto* sdPtr = sd.get();
287 if (this->
assignSD(std::move(sd), volumes).isFailure()) {
289 throw GaudiException(
"Failed to assign sd: " + sdName, name(),
290 StatusCode::FAILURE);
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_VERBOSE(x)
#define CHECK(...)
Evaluate an expression and check for errors.
Standalone functions for dealing with LAr G4 volumes.
This class initializes the Calo (LAr and Tile) offline identifiers.
const TileID * getTileID(void) const
const LArHEC_ID * getHEC_ID(void) const
const LArFCAL_ID * getFCAL_ID(void) const
const LArEM_ID * getEM_ID(void) const
A template class which wraps multiple sensitive detectors.
Common sensitive detector class for LAr systems.
Class for collection of StepInfo class (G4 hits) copied and modified version to ISF.
StatusCode assignSD(std::unique_ptr< G4VSensitiveDetector > sd, const std::vector< std::string > &volumes) const
Assign SD to a list of volumes.
Gaudi::Property< bool > m_noVolumes
This SensitiveDetector has no volumes associated with it.
SensitiveDetectorBase(const std::string &type, const std::string &name, const IInterface *parent)
Standard constructor.
G4VSensitiveDetector * getSD()
Retrieve the current SD.
detail::SDWrapper< FCS_StepInfoSD, ISF_FCS_Parametrization::FCS_StepInfoCollection > FCS_StepInfoSDWrapper
Template instantiation for LArG4SimpleSD.
std::set< std::string > findLogicalVolumes(const std::string &pattern)
Search for logical volumes in the G4 volume store.