Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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 
21 namespace 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>
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<ActsGeometryContext> m_geoCtxKey{this, "AlignmentKey", "ActsAlignment", "cond handle key"};
69 
70 
71  SG::ReadHandleKeyArray<SegmentContainer> m_readKeys{this, "Segments", {"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
ReadHandleKeyArray.h
Muon::MuonPrepDataContainer
Template for Muon PRD containers (which are basically collections of MuonPrepDataCollections).
Definition: MuonPrepDataContainer.h:42
MuonEDMPrinterTool.h
MuonR4::TrkSegmentCnvAlg::m_clusterCreator
ToolHandle< Muon::IMuonClusterOnTrackCreator > m_clusterCreator
Definition: TrkSegmentCnvAlg.h:77
MuonR4::TrkSegmentCnvAlg::m_keyMM
SG::ReadHandleKey< Muon::MMPrepDataContainer > m_keyMM
Definition: TrkSegmentCnvAlg.h:65
MuonR4::Segment
Placeholder for what will later be the muon segment EDM representation.
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonPatternEvent/MuonPatternEvent/Segment.h:19
MuonR4::TrkSegmentCnvAlg::m_writeKey
SG::WriteHandleKey< Trk::SegmentCollection > m_writeKey
Definition: TrkSegmentCnvAlg.h:73
IMuonCompetingClustersOnTrackCreator.h
SG::HandleKeyArray
Definition: StoreGate/StoreGate/HandleKeyArray.h:38
MuonR4::TrkSegmentCnvAlg::m_printer
PublicToolHandle< Muon::MuonEDMPrinterTool > m_printer
Definition: TrkSegmentCnvAlg.h:59
MuonPrepDataContainer.h
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition: StoreGate/StoreGate/ReadHandleKey.h:39
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:74
SG::WriteHandleKey
Property holding a SG store/key/clid from which a WriteHandle is made.
Definition: StoreGate/StoreGate/WriteHandleKey.h:40
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
MuonR4::TrkSegmentCnvAlg::fetchPrd
const PrdType * fetchPrd(const Identifier &prdId, const Muon::MuonPrepDataContainerT< PrdType > *prdContainer) const
Definition: TrkSegmentCnvAlg.cxx:52
MuonR4::TrkSegmentCnvAlg::initialize
StatusCode initialize() override final
Definition: TrkSegmentCnvAlg.cxx:17
IMuonClusterOnTrackCreator.h
MuonPatternContainer.h
MuonR4::TrkSegmentCnvAlg::m_keysTgc
SG::ReadHandleKey< Muon::sTgcPrepDataContainer > m_keysTgc
Definition: TrkSegmentCnvAlg.h:64
MuonR4::TrkSegmentCnvAlg::RotVec
std::vector< std::unique_ptr< Trk::RIO_OnTrack > > RotVec
Definition: TrkSegmentCnvAlg.h:49
MuonR4::TrkSegmentCnvAlg::m_geoCtxKey
SG::ReadHandleKey< ActsGeometryContext > m_geoCtxKey
Definition: TrkSegmentCnvAlg.h:68
DataVector< Trk::Segment >
MuonR4::TrkSegmentCnvAlg::m_keyTgc
SG::ReadHandleKey< Muon::TgcPrepDataContainer > m_keyTgc
Prep data container keys.
Definition: TrkSegmentCnvAlg.h:61
AthReentrantAlgorithm.h
WriteHandleKey.h
Property holding a SG store/key/clid from which a WriteHandle is made.
MuonR4::TrkSegmentCnvAlg::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: TrkSegmentCnvAlg.h:56
MuonR4::TrkSegmentCnvAlg
The TrkSegmentCnvAlg converts the SegmentSeeds produced by the R4 pattern recognition chain into the ...
Definition: TrkSegmentCnvAlg.h:25
IMdtDriftCircleOnTrackCreator.h
MuonR4::TrkSegmentCnvAlg::convert
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.
Definition: TrkSegmentCnvAlg.cxx:117
MuonR4
This header ties the generic definitions in this package.
Definition: HoughEventData.h:16
MuonR4::TrkSegmentCnvAlg::m_readKeys
SG::ReadHandleKeyArray< SegmentContainer > m_readKeys
Definition: TrkSegmentCnvAlg.h:71
MuonR4::CalibratedSpacePoint
The calibrated Space point is created during the calibration process.
Definition: CalibratedSpacePoint.h:15
MuonR4::TrkSegmentCnvAlg::m_keyMdt
SG::ReadHandleKey< Muon::MdtPrepDataContainer > m_keyMdt
Definition: TrkSegmentCnvAlg.h:63
MuonR4::TrkSegmentCnvAlg::execute
StatusCode execute(const EventContext &ctx) const override final
Definition: TrkSegmentCnvAlg.cxx:34
MuonR4::TrkSegmentCnvAlg::m_mdtCreator
ToolHandle< Muon::IMdtDriftCircleOnTrackCreator > m_mdtCreator
Definition: TrkSegmentCnvAlg.h:76
MuonR4::TrkSegmentCnvAlg::m_keyRpc
SG::ReadHandleKey< Muon::RpcPrepDataContainer > m_keyRpc
Definition: TrkSegmentCnvAlg.h:62
MuonR4::TrkSegmentCnvAlg::convertMeasurement
StatusCode convertMeasurement(const MuonR4::Segment &segment, const CalibratedSpacePoint &spacePoint, const Muon::MuonPrepDataContainerT< PrdType > *prdContainer, RotVec &convMeasVec) const
IMuonIdHelperSvc.h
SegmentCollection.h
MuonR4::TrkSegmentCnvAlg::m_compClusterCreator
ToolHandle< Muon::IMuonCompetingClustersOnTrackCreator > m_compClusterCreator
Definition: TrkSegmentCnvAlg.h:79
NSWL1::PadTriggerAdapter::segment
Muon::NSW_PadTriggerSegment segment(const NSWL1::PadTrigger &data)
Definition: PadTriggerAdapter.cxx:5
ServiceHandle< Muon::IMuonIdHelperSvc >
Identifier
Definition: IdentifierFieldParser.cxx:14