ATLAS Offline Software
Loading...
Searching...
No Matches
sTgcFastDigiTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4#ifndef STGC_DIGITIZATIONR4_STGCFASTDIGITOOL_H
5#define STGC_DIGITIZATIONR4_STGCFASTDIGITOOL_H
6
7
12
13namespace MuonR4{
15 public:
16 using MuonDigitizationTool::MuonDigitizationTool;
17
18 StatusCode initialize() override final;
19 StatusCode finalize() override final;
20 protected:
21 StatusCode digitize(const EventContext& ctx,
22 const TimedHits& hitsToDigit,
23 xAOD::MuonSimHitContainer* sdoContainer) const override final;
24 private:
25
26 bool digitizeStrip(const EventContext& ctx,
27 const TimedHit& timedHit,
28 const NswErrorCalibData* errorCalibDB,
29 const Muon::DigitEffiData* effiData,
30 CLHEP::HepRandomEngine* rndEngine,
31 sTgcDigitCollection& outCollection) const;
32
33 bool digitizeWire(const EventContext& ctx,
34 const TimedHit& timedHit,
35 const Muon::DigitEffiData* effiData,
36 CLHEP::HepRandomEngine* rndEngine,
37 sTgcDigitCollection& outCollection) const;
38
39 bool digitizePad(const EventContext& ctx,
40 const TimedHit& timedHit,
41 const Muon::DigitEffiData* effiData,
42 CLHEP::HepRandomEngine* rndEngine,
43 sTgcDigitCollection& outCollection) const;
44
49 int associateBCIdTag(const EventContext& ctx,
50 const TimedHit& timedHit) const;
51
52
53
55 SG::WriteHandleKey<sTgcDigitContainer> m_writeKey{this, "OutputObjectName", "sTGC_DIGITS"};
56
57 SG::ReadCondHandleKey<Muon::DigitEffiData> m_effiDataKey{this, "EffiDataKey", "sTgcDigitEff",
58 "Efficiency constants of the individual sTgc gasGaps"};
59
60
61 SG::ReadCondHandleKey<NswErrorCalibData> m_uncertCalibKey{this, "ErrorCalibKey", "NswUncertData",
62 "Key of the parametrized NSW uncertainties"};
63
64 mutable std::array<std::atomic<unsigned>, 3> m_allHits ATLAS_THREAD_SAFE{};
65 mutable std::array<std::atomic<unsigned>, 3> m_acceptedHits ATLAS_THREAD_SAFE{};
66
67 Gaudi::Property<bool> m_digitizeStrip{this, "doStrips", true, "Digitize strip hits"};
68 Gaudi::Property<bool> m_digitizeWire{this, "doWires", true, "Digitize wire hits"};
69 Gaudi::Property<bool> m_digitizePads{this, "doPads", false, "Digitize pad hits"};
70
71 Gaudi::Property<double> m_deadTime{this, "deadTime", 300. * Gaudi::Units::ns};
72
73 Gaudi::Property<bool> m_digitizeMuonOnly{this, "ProcessTrueMuonsOnly", false,
74 "If set to true hit with pdgId != 13 are skipped"};
75 Gaudi::Property<double> m_energyDepositThreshold{this,"energyDepositThreshold",300.0*CLHEP::eV};
76 Gaudi::Property<double> m_limitElectronKineticEnergy{this,"limitElectronKineticEnergy",5.0*CLHEP::MeV};
77
78 };
79}
80#endif
Barebone implementation of the I/O infrastructure for all MuonDigitizationTools.
std::vector< TimedHitPtr< xAOD::MuonSimHit > > TimedHits
std::vector< std::unique_ptr< DetType > > OutDigitCache_t
DigitContainers are sorted by DigitCollections which are the ensemble of all hits in a given MuonCham...
TimedHitPtr< xAOD::MuonSimHit > TimedHit
SG::ReadCondHandleKey< Muon::DigitEffiData > m_effiDataKey
StatusCode initialize() override final
Gaudi::Property< double > m_limitElectronKineticEnergy
Gaudi::Property< double > m_deadTime
bool digitizeStrip(const EventContext &ctx, const TimedHit &timedHit, const NswErrorCalibData *errorCalibDB, const Muon::DigitEffiData *effiData, CLHEP::HepRandomEngine *rndEngine, sTgcDigitCollection &outCollection) const
StatusCode finalize() override final
Gaudi::Property< bool > m_digitizeStrip
std::array< std::atomic< unsigned >, 3 > m_allHits ATLAS_THREAD_SAFE
Gaudi::Property< bool > m_digitizePads
Gaudi::Property< double > m_energyDepositThreshold
Gaudi::Property< bool > m_digitizeMuonOnly
SG::WriteHandleKey< sTgcDigitContainer > m_writeKey
Gaudi::Property< bool > m_digitizeWire
SG::ReadCondHandleKey< NswErrorCalibData > m_uncertCalibKey
bool digitizePad(const EventContext &ctx, const TimedHit &timedHit, const Muon::DigitEffiData *effiData, CLHEP::HepRandomEngine *rndEngine, sTgcDigitCollection &outCollection) const
OutDigitCache_t< sTgcDigitCollection > DigiCache
StatusCode digitize(const EventContext &ctx, const TimedHits &hitsToDigit, xAOD::MuonSimHitContainer *sdoContainer) const override final
Digitize the time ordered hits and write them to the digit format specific for the detector technolog...
bool digitizeWire(const EventContext &ctx, const TimedHit &timedHit, const Muon::DigitEffiData *effiData, CLHEP::HepRandomEngine *rndEngine, sTgcDigitCollection &outCollection) const
int associateBCIdTag(const EventContext &ctx, const TimedHit &timedHit) const
: Associates the global bcIdTag to the digit
Property holding a SG store/key/clid from which a WriteHandle is made.
This header ties the generic definitions in this package.
MuonSimHitContainer_v1 MuonSimHitContainer
Define the version of the pixel cluster container.