ATLAS Offline Software
Loading...
Searching...
No Matches
MuonEventCnvTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef MUONEVENTCNVTOOL_H
6#define MUONEVENTCNVTOOL_H
7
8#include <string>
9
19
21
22
23namespace Trk {
24 class RIO_OnTrack;
25} // namespace Trk
26
27namespace Muon {
28
30 class MuonEventCnvTool : public extends<AthAlgTool, Trk::ITrkEventCnvTool> {
31 public:
32 using base_class::base_class;
33 virtual StatusCode initialize() override;
34
36 virtual void checkRoT(const Trk::RIO_OnTrack& rioOnTrack) const override;
37
38 virtual std::pair<const Trk::TrkDetElementBase*, const Trk::PrepRawData*> getLinks(Trk::RIO_OnTrack& rioOnTrack) const override;
39
41 virtual void prepareRIO_OnTrack(Trk::RIO_OnTrack* rot) const override;
42
45 virtual void prepareRIO_OnTrackLink(const Trk::RIO_OnTrack* rot, ELKey_t& key, ELIndex_t& index) const override;
46
48 virtual void recreateRIO_OnTrack(Trk::RIO_OnTrack* RoT) const override;
49
51 virtual const Trk::TrkDetElementBase* getDetectorElement(const Identifier& id, const IdentifierHash& idHash) const override;
52
54 virtual const Trk::TrkDetElementBase* getDetectorElement(const Identifier& id) const override;
55
56 private:
57 /* Retrieves the PrepRawData container from StorGate and returns the corresponding element with the same identifier */
58 const Trk::PrepRawData* getLink(const Identifier& id, const IdentifierHash& idHash) const;
59
60 template <class CONT>
61 const Trk::PrepRawData* getLink(const Identifier& id, const IdentifierHash& idHash, const SG::ReadHandleKey<CONT>& handle,
62 const EventContext& ctx) const;
63
64 private:
65 ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc{this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
66
67 SG::ReadHandleKey<RpcPrepDataContainer> m_rpcPrdKey{this, "RpcClusterContainer", "RPC_Measurements", "Location for RPC PRDs"};
68 SG::ReadHandleKey<CscPrepDataContainer> m_cscPrdKey{this, "CscClusterContainer", "CSC_Clusters", "Location for CSC PRDs"};
69 SG::ReadHandleKey<TgcPrepDataContainer> m_tgcPrdKey{this, "TgcClusterContainer", "TGC_MeasurementsAllBCs", "Location for TGC PRDs"};
70 SG::ReadHandleKey<MdtPrepDataContainer> m_mdtPrdKey{this, "MdtClusterContainer", "MDT_DriftCircles", "Location for MDT PRDs"};
71 SG::ReadHandleKey<MMPrepDataContainer> m_mmPrdKey{this, "MM_ClusterContainer", "MM_Measurements", "Location for MM PRDs"};
72 SG::ReadHandleKey<sTgcPrepDataContainer> m_stgcPrdKey{this, "STGC_ClusterContainer", "STGC_Measurements", "Location for sTGC PRDs"};
73
74 SG::ReadCondHandleKey<MuonGM::MuonDetectorManager> m_detectorManagerKey{this, "DetectorManagerKey", "MuonDetectorManager",
75 "Key of input MuonDetectorManager condition data"};
76
79 Gaudi::Property<bool> m_manuallyFindPRDs{this, "FindPRDsManually", false,
80 "If true, search for PRDs manually - i.e. do not rely on ElementLink working"};
81 Gaudi::Property<bool> m_fixTGCs{this, "FixTGCs", false, "If true, try to fix broken EL, e.g. ATLASRECTS-5151"};
82 };
83
84} // namespace Muon
85#endif // MOORETOTRACKTOOL_H
This is a "hash" representation of an Identifier.
Tool used in the persisency convertors to help rebuild EDM objects.
Gaudi::Property< bool > m_manuallyFindPRDs
If true, search for PRDs manually - i.e.
virtual std::pair< const Trk::TrkDetElementBase *, const Trk::PrepRawData * > getLinks(Trk::RIO_OnTrack &rioOnTrack) const override
virtual void prepareRIO_OnTrack(Trk::RIO_OnTrack *rot) const override
Gaudi::Property< bool > m_fixTGCs
SG::ReadHandleKey< MdtPrepDataContainer > m_mdtPrdKey
SG::ReadHandleKey< MMPrepDataContainer > m_mmPrdKey
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
SG::ReadHandleKey< RpcPrepDataContainer > m_rpcPrdKey
virtual void prepareRIO_OnTrackLink(const Trk::RIO_OnTrack *rot, ELKey_t &key, ELIndex_t &index) const override
Similar, but just return the EL components rather then changing ROT.
SG::ReadHandleKey< CscPrepDataContainer > m_cscPrdKey
virtual void checkRoT(const Trk::RIO_OnTrack &rioOnTrack) const override
check that the RoT is correctly filled
SG::ReadHandleKey< sTgcPrepDataContainer > m_stgcPrdKey
virtual StatusCode initialize() override
virtual void recreateRIO_OnTrack(Trk::RIO_OnTrack *RoT) const override
Take the passed RoT and recreate it (i.e.
virtual const Trk::TrkDetElementBase * getDetectorElement(const Identifier &id, const IdentifierHash &idHash) const override
Return the detectorElement associated with this Identifier.
SG::ReadCondHandleKey< MuonGM::MuonDetectorManager > m_detectorManagerKey
SG::ReadHandleKey< TgcPrepDataContainer > m_tgcPrdKey
const Trk::PrepRawData * getLink(const Identifier &id, const IdentifierHash &idHash) const
Property holding a SG store/key/clid from which a ReadHandle is made.
Class to handle RIO On Tracks ROT) for InDet and Muons, it inherits from the common MeasurementBase.
Definition RIO_OnTrack.h:70
This is the base class for all tracking detector elements with read-out relevant information.
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
Ensure that the ATLAS eigen extensions are properly loaded.
Definition index.py:1