ATLAS Offline Software
TgcFastDigiTool.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 TGC_DIGITIZATIONR4_TGCFASTDIGITOOL_H
5 #define TGC_DIGITIZATIONR4_TGCFASTDIGITOOL_H
6 
7 
11 
12 namespace MuonR4{
14  public:
15  using MuonDigitizationTool::MuonDigitizationTool;
16 
17  StatusCode initialize() override final;
18  StatusCode finalize() override final;
19  protected:
20  StatusCode digitize(const EventContext& ctx,
21  const TimedHits& hitsToDigit,
22  xAOD::MuonSimHitContainer* sdoContainer) const override final;
23  private:
34  bool digitizeWireHit(const EventContext& ctx,
35  const TimedHit& timedHit,
36  const Muon::DigitEffiData* efficiencyMap,
37  TgcDigitCollection& outColl,
38  CLHEP::HepRandomEngine* rndEngine,
39  DeadTimeMap& deadTimes) const;
40 
51  bool digitizeStripHit(const EventContext& ctx,
52  const TimedHit& timedHit,
53  const Muon::DigitEffiData* efficiencyMap,
54  TgcDigitCollection& outColl,
55  CLHEP::HepRandomEngine* rndEngine,
56  DeadTimeMap& deadTimes) const;
57 
62  int associateBCIdTag(const EventContext& ctx,
63  const TimedHit& timedHit) const;
64 
66 
67  SG::WriteHandleKey<TgcDigitContainer> m_writeKey{this, "OutputObjectName", "TGC_DIGITS"};
68 
69  SG::ReadCondHandleKey<Muon::DigitEffiData> m_effiDataKey{this, "EffiDataKey", "TgcDigitEff",
70  "Efficiency constants of the individual Rpc gasGaps"};
71 
72  mutable std::array<std::atomic<unsigned>, 2> m_allHits ATLAS_THREAD_SAFE{};
73  mutable std::array<std::atomic<unsigned>, 2> m_acceptedHits ATLAS_THREAD_SAFE{};
74 
75  Gaudi::Property<double> m_deadTime{this, "deadTime", 100.*Gaudi::Units::nanosecond};
76 
77  Gaudi::Property<bool> m_digitizeMuonOnly{this, "ProcessTrueMuonsOnly", false,
78  "If set to true hit with pdgId != 13 are skipped"};
79 
80 
81  };
82 }
83 #endif
MuonR4::TgcFastDigiTool::m_effiDataKey
SG::ReadCondHandleKey< Muon::DigitEffiData > m_effiDataKey
Definition: TgcFastDigiTool.h:69
MuonR4::TgcFastDigiTool::m_digitizeMuonOnly
Gaudi::Property< bool > m_digitizeMuonOnly
Definition: TgcFastDigiTool.h:77
MuonR4::TgcFastDigiTool::initialize
StatusCode initialize() override final
Definition: TgcFastDigiTool.cxx:16
MuonR4::TgcFastDigiTool
Definition: TgcFastDigiTool.h:13
MuonR4::TgcFastDigiTool::digitizeStripHit
bool digitizeStripHit(const EventContext &ctx, const TimedHit &timedHit, const Muon::DigitEffiData *efficiencyMap, TgcDigitCollection &outColl, CLHEP::HepRandomEngine *rndEngine, DeadTimeMap &deadTimes) const
Digitize the strip hit by smearing the truth hit position according to the wire group pitch and then ...
Definition: TgcFastDigiTool.cxx:107
MuonR4::TgcFastDigiTool::DigiCache
OutDigitCache_t< TgcDigitCollection > DigiCache
Definition: TgcFastDigiTool.h:65
MuonR4::MuonDigitizationTool::OutDigitCache_t
std::vector< std::unique_ptr< DetType > > OutDigitCache_t
DigitContainers are sorted by DigitCollections which are the ensemble of all hits in a given MuonCham...
Definition: MuonDigitizationTool.h:80
python.SystemOfUnits.nanosecond
float nanosecond
Definition: SystemOfUnits.py:134
TimedHitPtr< xAOD::MuonSimHit >
MuonR4::TgcFastDigiTool::associateBCIdTag
int associateBCIdTag(const EventContext &ctx, const TimedHit &timedHit) const
: Associates the global bcIdTag to the digit
Definition: TgcFastDigiTool.cxx:29
MuonDigitizationTool.h
MuonR4::TgcFastDigiTool::finalize
StatusCode finalize() override final
Definition: TgcFastDigiTool.cxx:22
MuonR4::TgcFastDigiTool::digitize
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...
Definition: TgcFastDigiTool.cxx:193
SG::WriteHandleKey< TgcDigitContainer >
MuonR4::TgcFastDigiTool::m_deadTime
Gaudi::Property< double > m_deadTime
Definition: TgcFastDigiTool.h:75
MuonR4::TgcFastDigiTool::digitizeWireHit
bool digitizeWireHit(const EventContext &ctx, const TimedHit &timedHit, const Muon::DigitEffiData *efficiencyMap, TgcDigitCollection &outColl, CLHEP::HepRandomEngine *rndEngine, DeadTimeMap &deadTimes) const
Digitize the wire hit by smearing the truth hit position according to the wire group pitch and then a...
Definition: TgcFastDigiTool.cxx:34
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
TgcDigitCollection
Definition: TgcDigitCollection.h:17
DataVector
Derived DataVector<T>.
Definition: DataVector.h:795
columnar::final
CM final
Definition: ColumnAccessor.h:106
Muon::DigitEffiData
Definition: DigitEffiData.h:23
MuonR4
This header ties the generic definitions in this package.
Definition: HoughEventData.h:16
SG::ReadCondHandleKey< Muon::DigitEffiData >
MuonR4::TgcFastDigiTool::m_writeKey
SG::WriteHandleKey< TgcDigitContainer > m_writeKey
Definition: TgcFastDigiTool.h:67
MuonR4::MuonDigitizationTool
Barebone implementation of the I/O infrastructure for all MuonDigitizationTools.
Definition: MuonDigitizationTool.h:30
MuonR4::MuonDigitizationTool::TimedHits
std::vector< TimedHitPtr< xAOD::MuonSimHit > > TimedHits
Definition: MuonDigitizationTool.h:58
MuonR4::TgcFastDigiTool::ATLAS_THREAD_SAFE
std::array< std::atomic< unsigned >, 2 > m_allHits ATLAS_THREAD_SAFE
Definition: TgcFastDigiTool.h:72
DigitEffiData.h
MuonR4::MuonDigitizationTool::DeadTimeMap
std::unordered_map< Identifier, double > DeadTimeMap
Definition: MuonDigitizationTool.h:100
TgcDigitContainer.h