ATLAS Offline Software
Loading...
Searching...
No Matches
TrkSegmentCnvAlg.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 MUONSEGMENTCNV_TRKSEGMENTCNVALG_H
5#define MUONSEGMENTCNV_TRKSEGMENTCNVALG_H
6
10
15
20
21namespace MuonR4{
26 public:
27
28 using AthReentrantAlgorithm::AthReentrantAlgorithm;
29
30 StatusCode initialize() override final;
31 StatusCode execute(const EventContext& ctx) const override final;
32
33 private:
38 StatusCode convert(const EventContext& ctx,
39 const MuonR4::Segment& segment,
40 Trk::SegmentCollection& outContainer) const;
41 /*** @brief Fetches a MuonPrepData object from the PrepData container by matching the parsed Identifier.
42 * Nullptr is returned if the object does not exist and an error message is printed
43 * @param prdId: Identifier of the measurement to fetch
44 * @param prdContainer: Pointer to the MuonPrepData container to fetch the object from. */
45 template <class PrdType>
46 const PrdType* fetchPrd(const Identifier& prdId,
47 const Muon::MuonPrepDataContainerT<PrdType>* prdContainer) const;
48
49 using RotVec = std::vector<std::unique_ptr<Trk::RIO_OnTrack>>;
50 template <class PrdType>
51 StatusCode convertMeasurement(const MuonR4::Segment& segment,
52 const CalibratedSpacePoint& spacePoint,
53 const Muon::MuonPrepDataContainerT<PrdType>* prdContainer,
54 RotVec& convMeasVec) const;
55
57 "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
58
59 PublicToolHandle<Muon::MuonEDMPrinterTool> m_printer{this, "printerTool", "Muon::MuonEDMPrinterTool/MuonEDMPrinterTool"};
61 SG::ReadHandleKey<Muon::TgcPrepDataContainer> m_keyTgc{this, "TgcKey", "TGC_MeasurementsAllBCs"};
62 SG::ReadHandleKey<Muon::RpcPrepDataContainer> m_keyRpc{this, "RpcKey", "RPC_Measurements"};
63 SG::ReadHandleKey<Muon::MdtPrepDataContainer> m_keyMdt{this, "MdtKey", "MDT_DriftCircles"};
64 SG::ReadHandleKey<Muon::sTgcPrepDataContainer> m_keysTgc{this, "sTgcKey", "STGC_Measurements"};
65 SG::ReadHandleKey<Muon::MMPrepDataContainer> m_keyMM{this, "MmKey", "MM_Measurements"};
66
67 // ACTS geometry context
68 SG::ReadHandleKey<ActsTrk::GeometryContext> m_geoCtxKey{this, "AlignmentKey", "ActsAlignment", "cond handle key"};
69
70
71 SG::ReadHandleKeyArray<SegmentContainer> m_readKeys{this, "ReadSegments", {"R4MuonSegments"}};
72
73 SG::WriteHandleKey<Trk::SegmentCollection> m_writeKey{this, "WriteKey", "TrackMuonSegmentsR4"};
74
75
76 ToolHandle<Muon::IMdtDriftCircleOnTrackCreator> m_mdtCreator{this,"MdtRotCreator",""}; //<! pointer to mdt rio ontrack creator
77 ToolHandle<Muon::IMuonClusterOnTrackCreator> m_clusterCreator{this,"ClusterRotCreator",""};
78
79 ToolHandle<Muon::IMuonCompetingClustersOnTrackCreator> m_compClusterCreator{this, "CompetingRotCreator", ""}; //<! competing clusters rio ontrack creator
80
81 };
82
83}
84
85#endif
Property holding a SG store/key/clid from which a WriteHandle is made.
An algorithm that can be simultaneously executed in multiple threads.
The calibrated Space point is created during the calibration process.
Placeholder for what will later be the muon segment EDM representation.
The TrkSegmentCnvAlg converts the SegmentSeeds produced by the R4 pattern recognition chain into the ...
SG::WriteHandleKey< Trk::SegmentCollection > m_writeKey
ToolHandle< Muon::IMuonClusterOnTrackCreator > m_clusterCreator
StatusCode convertMeasurement(const MuonR4::Segment &segment, const CalibratedSpacePoint &spacePoint, const Muon::MuonPrepDataContainerT< PrdType > *prdContainer, RotVec &convMeasVec) const
StatusCode execute(const EventContext &ctx) const override final
StatusCode convert(const EventContext &ctx, const MuonR4::Segment &segment, Trk::SegmentCollection &outContainer) const
Convert the R4 segment and fill the converted segment into the SegmentCollection.
SG::ReadHandleKey< Muon::RpcPrepDataContainer > m_keyRpc
ToolHandle< Muon::IMdtDriftCircleOnTrackCreator > m_mdtCreator
std::vector< std::unique_ptr< Trk::RIO_OnTrack > > RotVec
StatusCode initialize() override final
const PrdType * fetchPrd(const Identifier &prdId, const Muon::MuonPrepDataContainerT< PrdType > *prdContainer) const
SG::ReadHandleKeyArray< SegmentContainer > m_readKeys
SG::ReadHandleKey< ActsTrk::GeometryContext > m_geoCtxKey
SG::ReadHandleKey< Muon::MdtPrepDataContainer > m_keyMdt
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
PublicToolHandle< Muon::MuonEDMPrinterTool > m_printer
SG::ReadHandleKey< Muon::TgcPrepDataContainer > m_keyTgc
Prep data container keys.
ToolHandle< Muon::IMuonCompetingClustersOnTrackCreator > m_compClusterCreator
SG::ReadHandleKey< Muon::MMPrepDataContainer > m_keyMM
SG::ReadHandleKey< Muon::sTgcPrepDataContainer > m_keysTgc
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
This header ties the generic definitions in this package.
MuonPrepDataContainer< MuonPrepDataCollection< PrdType > > MuonPrepDataContainerT
HandleKeyArray< ReadHandle< T >, ReadHandleKey< T >, Gaudi::DataHandle::Reader > ReadHandleKeyArray
DataVector< Trk::Segment > SegmentCollection