ATLAS Offline Software
Loading...
Searching...
No Matches
MuonEventCnvTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef MUONEVENTCNVTOOL_H
6#define MUONEVENTCNVTOOL_H
7
8#include <string>
9
11#include "GaudiKernel/ServiceHandle.h"
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:
33
34 MuonEventCnvTool(const std::string&, const std::string&, const IInterface*);
35
36 virtual StatusCode initialize() override;
37
39 virtual void checkRoT(const Trk::RIO_OnTrack& rioOnTrack) const override;
40
41 virtual std::pair<const Trk::TrkDetElementBase*, const Trk::PrepRawData*> getLinks(Trk::RIO_OnTrack& rioOnTrack) const override;
42
44 virtual void prepareRIO_OnTrack(Trk::RIO_OnTrack* rot) const override;
45
48 virtual void prepareRIO_OnTrackLink(const Trk::RIO_OnTrack* rot, ELKey_t& key, ELIndex_t& index) const override;
49
51 virtual void recreateRIO_OnTrack(Trk::RIO_OnTrack* RoT) const override;
52
54 virtual const Trk::TrkDetElementBase* getDetectorElement(const Identifier& id, const IdentifierHash& idHash) const override;
55
57 virtual const Trk::TrkDetElementBase* getDetectorElement(const Identifier& id) const override;
58
59 private:
60 /* Retrieves the PrepRawData container from StorGate and returns the corresponding element with the same identifier */
61 const Trk::PrepRawData* getLink(const Identifier& id, const IdentifierHash& idHash) const;
62
63 template <class CONT>
64 const Trk::PrepRawData* getLink(const Identifier& id, const IdentifierHash& idHash, const SG::ReadHandleKey<CONT>& handle,
65 const EventContext& ctx) const;
66
67 private:
68 ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc{this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
69
70 SG::ReadHandleKey<RpcPrepDataContainer> m_rpcPrdKey{this, "RpcClusterContainer", "RPC_Measurements", "Location for RPC PRDs"};
71 SG::ReadHandleKey<CscPrepDataContainer> m_cscPrdKey{this, "CscClusterContainer", "CSC_Clusters", "Location for CSC PRDs"};
72 SG::ReadHandleKey<TgcPrepDataContainer> m_tgcPrdKey{this, "TgcClusterContainer", "TGC_MeasurementsAllBCs", "Location for TGC PRDs"};
73 SG::ReadHandleKey<MdtPrepDataContainer> m_mdtPrdKey{this, "MdtClusterContainer", "MDT_DriftCircles", "Location for MDT PRDs"};
74 SG::ReadHandleKey<MMPrepDataContainer> m_mmPrdKey{this, "MM_ClusterContainer", "MM_Measurements", "Location for MM PRDs"};
75 SG::ReadHandleKey<sTgcPrepDataContainer> m_stgcPrdKey{this, "STGC_ClusterContainer", "STGC_Measurements", "Location for sTGC PRDs"};
76
77 SG::ReadCondHandleKey<MuonGM::MuonDetectorManager> m_detectorManagerKey{this, "DetectorManagerKey", "MuonDetectorManager",
78 "Key of input MuonDetectorManager condition data"};
79
82 Gaudi::Property<bool> m_manuallyFindPRDs{this, "FindPRDsManually", false,
83 "If true, search for PRDs manually - i.e. do not rely on ElementLink working"};
84 Gaudi::Property<bool> m_fixTGCs{this, "FixTGCs", false, "If true, try to fix broken EL, e.g. ATLASRECTS-5151"};
85 };
86
87} // namespace Muon
88#endif // MOORETOTRACKTOOL_H
This is a "hash" representation of an Identifier.
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
MuonEventCnvTool(const std::string &, const std::string &, const IInterface *)
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.
Definition TgcBase.h:6
Ensure that the ATLAS eigen extensions are properly loaded.
Definition index.py:1