ATLAS Offline Software
Loading...
Searching...
No Matches
CompetingSCT_ClustersOnTrack.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// CompetingSCT_ClustersOnTrack.h, (c) ATLAS Detector software
8
9#ifndef COMPETINGSCTCLUSTERSONTRACK_H
10#define COMPETINGSCTCLUSTERSONTRACK_H
11
12// Trk
14#include "InDetRIO_OnTrack/SCT_ClusterOnTrack.h" // cannot fwd-declare because of covariant method
16
17#include <iosfwd>
18
19class MsgStream;
20
21namespace Trk {
22class Surface;
23}
24
25namespace InDet {
26
43
45{
46
47public:
51
60
64 CompetingSCT_ClustersOnTrack(std::vector<const InDet::SCT_ClusterOnTrack*>&& childrots,
65 std::vector<AssignmentProb>&& assgnProb);
66
69
72
75 const Trk::Surface& associatedSurface() const;
76
79 const Amg::Vector3D& globalPosition() const;
80
82 unsigned int numberOfContainedROTs() const;
83
86 const std::vector<const InDet::SCT_ClusterOnTrack*>& containedROTs() const;
87
89 const InDet::SCT_ClusterOnTrack& rioOnTrack(unsigned int) const;
90
92 MsgStream& dump(MsgStream& out) const;
94 std::ostream& dump(std::ostream& out) const;
95
100
101private:
103 void clearChildRotVector();
104
107
109 std::vector<const InDet::SCT_ClusterOnTrack*> m_containedChildRots;
110
117 bool ROTsHaveCommonSurface(const bool withNonVanishingAssignProb = true) const;
118};
119
125
126inline const Trk::Surface&
128{
129 return ((*(m_containedChildRots.begin()))->associatedSurface());
130}
131
132inline const std::vector<const InDet::SCT_ClusterOnTrack*>&
137
138inline const InDet::SCT_ClusterOnTrack&
140{
141 return *(m_containedChildRots[indx]);
142}
143
144inline const Amg::Vector3D&
146{
147 if (not m_globalPosition) {
148 m_globalPosition.set(std::make_unique<const Amg::Vector3D>(
149 associatedSurface().localToGlobal(localParameters())));
150 }
151 return *m_globalPosition;
152}
153
154inline unsigned int
159
160}
161
162#endif // COMPETINGSCTCLUSTERSONTRACK_H
163
Cached unique_ptr with atomic update.
Class for competing SCT_Clusters, it extends the Trk::CompetingRIOsOnTrack base class.
const InDet::SCT_ClusterOnTrack & rioOnTrack(unsigned int) const
returns the RIO_OnTrack (also known as ROT) objects depending on the integer
bool ROTsHaveCommonSurface(const bool withNonVanishingAssignProb=true) const
Have all the contained ROTs a common associated surface?
CompetingSCT_ClustersOnTrack * clone() const
needed to avoid excessive RTTI
unsigned int numberOfContainedROTs() const
Number of RIO_OnTracks to be contained by this CompetingRIOsOnTrack.
const Trk::Surface & associatedSurface() const
returns the surface for the local to global transformation .
virtual void setLocalParametersAndErrorMatrix()
recalculate the LocalParameters and ErrorMatrix
const Amg::Vector3D & globalPosition() const
Interface method to get the global Position.
std::vector< const InDet::SCT_ClusterOnTrack * > m_containedChildRots
The vector of contained InDet::SCT_ClusterOnTrack objects.
CompetingSCT_ClustersOnTrack & operator=(const CompetingSCT_ClustersOnTrack &compROT)
Assignment operator.
friend class CompetingSCT_ClustersOnTrackTool
InDet::CompetingSCT_ClustersOnTrackTool is a friend to allow for updates of the assignment probabilit...
CxxUtils::CachedUniquePtr< const Amg::Vector3D > m_globalPosition
The global position.
CompetingSCT_ClustersOnTrack()
Default Constructor for POOL.
void clearChildRotVector()
private method to clear the Trk::RIO_OnTrack vector
const std::vector< const InDet::SCT_ClusterOnTrack * > & containedROTs() const
returns the vector of SCT_ClusterOnTrack objects .
Specific class to represent the SCT measurements.
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.
Eigen::Matrix< double, 3, 1 > Vector3D
CachedUniquePtrT< const T > CachedUniquePtr
Primary Vertex Finder.
Ensure that the ATLAS eigen extensions are properly loaded.
-event-from-file