ATLAS Offline Software
Loading...
Searching...
No Matches
CompetingMuonClustersOnTrack.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
6// CompetingRpcClustersOnTrack.h, (c) ATLAS Detector software
8
9#ifndef COMPETINGRPCCLUSTERSONTRACK_H
10#define COMPETINGRPCCLUSTERSONTRACK_H
11
12// Trk
16// Identifier
17#include "Identifier/Identifier.h"
19// Muon
21
23
24#include <ostream>
25#include <utility>
26
27class MsgStream;
28
29namespace Trk {
30class PrepRawData;
32}
33
34namespace Muon {
35
50
54{
55
56public:
60
70
81 std::vector<std::unique_ptr<const MuonClusterOnTrack>>&& childrots,
82 std::vector<AssignmentProb>&& assgnProb);
83
97 Trk::LocalParameters&& locPars,
99 const Trk::Surface* assSurf,
100 std::vector<std::unique_ptr<const MuonClusterOnTrack>>&& childrots,
101 std::vector<AssignmentProb>&& assgnProb);
102
104 virtual ~CompetingMuonClustersOnTrack() = default;
105
108
111 const Trk::Surface& associatedSurface() const;
112 const Trk::Surface* associatedSurfaceRaw() const;
113
116 const Amg::Vector3D& globalPosition() const;
117
119 unsigned int numberOfContainedROTs() const;
120
123 const std::vector<std::unique_ptr<const MuonClusterOnTrack>>& containedROTs() const;
124
127 const MuonClusterOnTrack& rioOnTrack(unsigned int) const;
128
131 MsgStream& dump(MsgStream& out) const;
134 std::ostream& dump(std::ostream& out) const;
135
136private:
139
141 std::vector<std::unique_ptr<const MuonClusterOnTrack>> m_containedChildRots{};
142
149 const bool withNonVanishingAssignProb = true) const;
150};
151
152inline CompetingMuonClustersOnTrack*
157
158inline const Trk::Surface&
160{
162 return *m_associatedSurface;
163 }
164 return m_containedChildRots.front()->associatedSurface();
165}
166
167inline const Trk::Surface*
172
173inline unsigned int
178
179inline const std::vector<std::unique_ptr<const MuonClusterOnTrack>>&
183
184inline const MuonClusterOnTrack&
186{
187 return *m_containedChildRots.at(indx).get();
188}
189
190inline const Amg::Vector3D&
192{
193 if (not m_globalPosition) {
194 m_globalPosition.set(std::make_unique<const Amg::Vector3D>(
195 associatedSurface().localToGlobal(localParameters())));
196 }
197 return (*m_globalPosition);
198}
199}
200
201#endif // COMPETINGRPCCLUSTERSONTRACK_H
202
Cached unique_ptr with atomic update.
CxxUtils::CachedUniquePtr< const Amg::Vector3D > m_globalPosition
The global Position.
CompetingMuonClustersOnTrack()=default
Default Constructor for POOL.
const Trk::Surface & associatedSurface() const
returns the surface for the local to global transformation .
CompetingMuonClustersOnTrack & operator=(CompetingMuonClustersOnTrack &&compROT) noexcept=default
const std::vector< std::unique_ptr< const MuonClusterOnTrack > > & containedROTs() const
returns the vector of SCT_ClusterOnTrack objects .
friend class CompetingMuonClustersOnTrackTool
Muon::CompetingMuonClustersOnTrackTool is a friend to allow for updates of the assignment probabiliti...
std::vector< std::unique_ptr< const MuonClusterOnTrack > > m_containedChildRots
The vector of contained Muon::MuonClusterOnTrack objects.
const Amg::Vector3D & globalPosition() const
Interface method to get the global Position.
CompetingMuonClustersOnTrack(CompetingMuonClustersOnTrack &&compROT)=default
Move constructor.
unsigned int numberOfContainedROTs() const
Number of RIO_OnTracks to be contained by this CompetingRIOsOnTrack.
bool ROTsHaveCommonSurface(const bool withNonVanishingAssignProb=true) const
Have all the contained ROTs a common associated surface?
CompetingMuonClustersOnTrack & operator=(const CompetingMuonClustersOnTrack &compROT) noexcept
Assignment operator.
const MuonClusterOnTrack & rioOnTrack(unsigned int) const
returns the RIO_OnTrack (also known as ROT) objects depending on the integer
const Trk::Surface * associatedSurfaceRaw() const
CompetingMuonClustersOnTrack * clone() const
needed to avoid excessive RTTI
virtual ~CompetingMuonClustersOnTrack()=default
Destructor.
Base class for Muon cluster RIO_OnTracks.
Base class for all CompetingRIOsOnTack implementations, extends the common MeasurementBase.
const LocalParameters & localParameters() const
Interface method to get the LocalParameters.
Abstract Base Class for tracking surfaces.
Definition Surface.h:79
This is the base class for all tracking detector elements with read-out relevant information.
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Eigen::Matrix< double, 3, 1 > Vector3D
CachedUniquePtrT< const T > CachedUniquePtr
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
Ensure that the ATLAS eigen extensions are properly loaded.
Trk::SurfacePtrHolderImplDetEl< Surface > SurfacePtrHolderDetEl
-event-from-file