ATLAS Offline Software
TgcFastDigiTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 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{
13  class TgcFastDigiTool final: public MuonDigitizationTool {
14  public:
15  TgcFastDigiTool(const std::string& type, const std::string& name, const IInterface* pIID);
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 
24 
25  private:
36  bool digitizeWireHit(const EventContext& ctx,
37  const TimedHit& timedHit,
38  const Muon::DigitEffiData* efficiencyMap,
39  TgcDigitCollection& outColl,
40  CLHEP::HepRandomEngine* rndEngine) const;
41 
52  bool digitizeStripHit(const EventContext& ctx,
53  const TimedHit& timedHit,
54  const Muon::DigitEffiData* efficiencyMap,
55  TgcDigitCollection& outColl,
56  CLHEP::HepRandomEngine* rndEngine) 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 
76  };
77 }
78 #endif
MuonR4::TgcFastDigiTool::m_effiDataKey
SG::ReadCondHandleKey< Muon::DigitEffiData > m_effiDataKey
Definition: TgcFastDigiTool.h:69
MuonR4::TgcFastDigiTool::initialize
StatusCode initialize() override final
Definition: TgcFastDigiTool.cxx:17
MuonR4::TgcFastDigiTool
Definition: TgcFastDigiTool.h:13
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:98
TimedHitPtr< xAOD::MuonSimHit >
MuonR4::TgcFastDigiTool::TgcFastDigiTool
TgcFastDigiTool(const std::string &type, const std::string &name, const IInterface *pIID)
Definition: TgcFastDigiTool.cxx:14
MuonR4::TgcFastDigiTool::associateBCIdTag
int associateBCIdTag(const EventContext &ctx, const TimedHit &timedHit) const
: Associates the global bcIdTag to the digit
Definition: TgcFastDigiTool.cxx:30
MuonDigitizationTool.h
MuonR4::TgcFastDigiTool::digitizeStripHit
bool digitizeStripHit(const EventContext &ctx, const TimedHit &timedHit, const Muon::DigitEffiData *efficiencyMap, TgcDigitCollection &outColl, CLHEP::HepRandomEngine *rndEngine) const
Digitize the strip hit by smearing the truth hit position according to the wire group pitch and then ...
Definition: TgcFastDigiTool.cxx:104
MuonR4::TgcFastDigiTool::finalize
StatusCode finalize() override final
Definition: TgcFastDigiTool.cxx:23
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:190
SG::WriteHandleKey< TgcDigitContainer >
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:581
Muon::DigitEffiData
Definition: DigitEffiData.h:23
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
MuonR4
The CsvMuonSimHitDumper reads a Simulation Hit container for muons and dumps information to csv files...
Definition: MuonSpacePoint.h:11
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:60
MuonR4::TgcFastDigiTool::ATLAS_THREAD_SAFE
std::array< std::atomic< unsigned >, 2 > m_allHits ATLAS_THREAD_SAFE
Definition: TgcFastDigiTool.h:72
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
MuonR4::TgcFastDigiTool::digitizeWireHit
bool digitizeWireHit(const EventContext &ctx, const TimedHit &timedHit, const Muon::DigitEffiData *efficiencyMap, TgcDigitCollection &outColl, CLHEP::HepRandomEngine *rndEngine) const
Digitize the wire hit by smearing the truth hit position according to the wire group pitch and then a...
Definition: TgcFastDigiTool.cxx:35
DigitEffiData.h
TgcDigitContainer.h