ATLAS Offline Software
Loading...
Searching...
No Matches
CompetingMuonClustersOnTrack.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 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
67 const CompetingMuonClustersOnTrack& compROT);
69 CompetingMuonClustersOnTrack&& compROT) noexcept;
70
81 std::vector<const MuonClusterOnTrack*>&& childrots,
82 std::vector<AssignmentProb>&& assgnProb);
83
97 Trk::LocalParameters&& locPars,
99 const Trk::Surface* assSurf,
100 std::vector<const MuonClusterOnTrack*>&& childrots,
101 std::vector<AssignmentProb>&& assgnProb);
102
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<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:
138 void clearChildRotVector();
139
142
144 std::vector<const MuonClusterOnTrack*> m_containedChildRots;
145
152 const bool withNonVanishingAssignProb = true) const;
153};
154
160
161inline const Trk::Surface&
163{
165 return *m_associatedSurface;
166 }
167 return (
168 (*(std::as_const(m_containedChildRots).begin()))->associatedSurface());
169}
170
171inline const Trk::Surface*
176
177inline unsigned int
182
183inline const std::vector<const MuonClusterOnTrack*>&
188
189inline const MuonClusterOnTrack&
191{
192 return *std::as_const(m_containedChildRots)[indx];
193}
194
195inline const Amg::Vector3D&
197{
198 if (not m_globalPosition) {
199 m_globalPosition.set(std::make_unique<const Amg::Vector3D>(
200 associatedSurface().localToGlobal(localParameters())));
201 }
202 return (*m_globalPosition);
203}
204}
205
206#endif // COMPETINGRPCCLUSTERSONTRACK_H
207
Cached unique_ptr with atomic update.
Class for competing MuonClusters, it extends the Trk::CompetingRIOsOnTrack base class.
CxxUtils::CachedUniquePtr< const Amg::Vector3D > m_globalPosition
The global Position.
CompetingMuonClustersOnTrack & operator=(const CompetingMuonClustersOnTrack &compROT)
Assignment operator.
const Trk::Surface & associatedSurface() const
returns the surface for the local to global transformation .
const std::vector< 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...
const Amg::Vector3D & globalPosition() const
Interface method to get the global Position.
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?
const MuonClusterOnTrack & rioOnTrack(unsigned int) const
returns the RIO_OnTrack (also known as ROT) objects depending on the integer
const Trk::Surface * associatedSurfaceRaw() const
std::vector< const MuonClusterOnTrack * > m_containedChildRots
The vector of contained Muon::MuonClusterOnTrack objects.
CompetingMuonClustersOnTrack()
Default Constructor for POOL.
CompetingMuonClustersOnTrack * clone() const
needed to avoid excessive RTTI
void clearChildRotVector()
private method to clear the Trk::RIO_OnTrack vector
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.
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