ATLAS Offline Software
CompetingTRT_DriftCirclesOnTrack.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 // CompetingTRT_DriftCirclesOnTrack.h, (c) ATLAS Detector software
8 
9 #ifndef COMPETINGTRTDRIFTCIRCLESONTRACK_H
10 #define COMPETINGTRTDRIFTCIRCLESONTRACK_H
11 
12 // Trk
17 #include <atomic>
18 #include <iosfwd>
19 #include <utility>
20 class MsgStream;
21 
22 namespace Trk {
23 class LocalParameters;
24 class Surface;
25 }
26 
27 namespace InDet {
28 
48 {
49 
50 public:
54 
59  const CompetingTRT_DriftCirclesOnTrack& compROT);
62  const CompetingTRT_DriftCirclesOnTrack& compROT);
65  CompetingTRT_DriftCirclesOnTrack&& compROT) noexcept;
66 
71  const Trk::Surface* sf,
72  std::vector<const InDet::TRT_DriftCircleOnTrack*>&& childrots,
73  std::vector<AssignmentProb>&& assgnProb,
74  const Trk::LocalParameters& effecLocalPars,
75  const Amg::MatrixX& effecLocalErrMat,
76  int ROTsHaveComSrfc // meaning of the values are described in the definition
77  // of ROTsHaveCommonSurface()
78  );
79 
82 
85 
88  const Trk::Surface& associatedSurface() const;
89 
92  const Amg::Vector3D& globalPosition() const;
93 
95  unsigned int numberOfContainedROTs() const;
96 
100  const std::vector<const InDet::TRT_DriftCircleOnTrack*>& containedROTs()
101  const;
102 
105  const InDet::TRT_DriftCircleOnTrack& rioOnTrack(unsigned int) const;
106 
109  MsgStream& dump(MsgStream& out) const;
112  std::ostream& dump(std::ostream& out) const;
113 
114  virtual void setLocalParametersAndErrorMatrix();
115 
116 private:
118  void clearChildRotVector();
119 
122 
124  std::vector<const InDet::TRT_DriftCircleOnTrack*> m_containedChildRots;
125 
130  const bool withNonVanishingAssignProb = true) const;
132 };
133 
136 {
137  return new InDet::CompetingTRT_DriftCirclesOnTrack(*this);
138 }
139 
140 inline const Trk::Surface&
142 {
143  return (*m_associatedSurface);
144 }
145 
146 inline const std::vector<const InDet::TRT_DriftCircleOnTrack*>&
148 {
149  return m_containedChildRots;
150 }
151 
152 inline const InDet::TRT_DriftCircleOnTrack&
154 {
155  return *std::as_const(m_containedChildRots)[indx];
156 }
157 
158 inline unsigned int
160 {
161  return m_containedChildRots.size();
162 }
163 }
164 
165 #endif // COMPETINGTRTDRIFTCIRCLESONTRACK_H
166 
Trk::LocalParameters
Definition: LocalParameters.h:98
SurfaceHolders.h
InDet::CompetingTRT_DriftCirclesOnTrack::m_containedChildRots
std::vector< const InDet::TRT_DriftCircleOnTrack * > m_containedChildRots
The vector of contained InDet::TRT_DriftCircleOnTrack objects.
Definition: CompetingTRT_DriftCirclesOnTrack.h:124
Amg::MatrixX
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Definition: EventPrimitives.h:27
InDet::CompetingTRT_DriftCirclesOnTrack::numberOfContainedROTs
unsigned int numberOfContainedROTs() const
Number of RIO_OnTracks to be contained by this CompetingRIOsOnTrack.
Definition: CompetingTRT_DriftCirclesOnTrack.h:159
InDet::CompetingTRT_DriftCirclesOnTrack::~CompetingTRT_DriftCirclesOnTrack
virtual ~CompetingTRT_DriftCirclesOnTrack()
Destructor.
Definition: CompetingTRT_DriftCirclesOnTrack.cxx:115
CompetingRIOsOnTrack.h
InDet
Primary Vertex Finder.
Definition: VP1ErrorUtils.h:36
InDet::CompetingTRT_DriftCirclesOnTrack::clone
CompetingTRT_DriftCirclesOnTrack * clone() const
virtual constructor - needed to avoid excessive RTTI
Definition: CompetingTRT_DriftCirclesOnTrack.h:135
CxxUtils::CachedUniquePtrT
Cached pointer with atomic update.
Definition: CachedUniquePtr.h:54
InDet::CompetingTRT_DriftCirclesOnTrack::operator=
CompetingTRT_DriftCirclesOnTrack & operator=(const CompetingTRT_DriftCirclesOnTrack &compROT)
Assignment operator.
Definition: CompetingTRT_DriftCirclesOnTrack.cxx:69
InDet::CompetingTRT_DriftCirclesOnTrack::CompetingTRT_DriftCirclesOnTrackTool
friend class CompetingTRT_DriftCirclesOnTrackTool
InDet::CompetingTRT_DriftCirclesOnTrackTool is a friend to allow for updates of the assignment probab...
Definition: CompetingTRT_DriftCirclesOnTrack.h:53
python.AthDsoLogger.out
out
Definition: AthDsoLogger.py:71
Surface
Definition: Trigger/TrigAccel/TrigCudaFitter/src/Surface.h:8
InDet::TRT_DriftCircleOnTrack
Definition: TRT_DriftCircleOnTrack.h:53
Trk::SurfacePtrHolderImplDetEl::m_associatedSurface
const S * m_associatedSurface
Definition: SurfaceHolderImpl.h:244
InDet::CompetingTRT_DriftCirclesOnTrack::dump
MsgStream & dump(MsgStream &out) const
returns some information about this MeasurementBase/CompetingTRT_DriftCirclesOnTrack.
Definition: CompetingTRT_DriftCirclesOnTrack.cxx:131
InDet::CompetingTRT_DriftCirclesOnTrack::CompetingTRT_DriftCirclesOnTrack
CompetingTRT_DriftCirclesOnTrack()
Default Constructor for POOL.
Definition: CompetingTRT_DriftCirclesOnTrack.cxx:19
InDet::CompetingTRT_DriftCirclesOnTrack::containedROTs
const std::vector< const InDet::TRT_DriftCircleOnTrack * > & containedROTs() const
returns the vector of TRT_DriftCircleOnTrack objects .
Definition: CompetingTRT_DriftCirclesOnTrack.h:147
InDet::CompetingTRT_DriftCirclesOnTrack::clearChildRotVector
void clearChildRotVector()
private method to clear the Trk::RIO_OnTrack vector
Definition: CompetingTRT_DriftCirclesOnTrack.cxx:121
CachedUniquePtr.h
Cached unique_ptr with atomic update.
Trk::CompetingRIOsOnTrack
Base class for all CompetingRIOsOnTack implementations, extends the common MeasurementBase.
Definition: CompetingRIOsOnTrack.h:64
TRT_DriftCircleOnTrack.h
InDet::CompetingTRT_DriftCirclesOnTrack::m_ROTsHaveCommonSurface
int m_ROTsHaveCommonSurface
Definition: CompetingTRT_DriftCirclesOnTrack.h:131
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
InDet::CompetingTRT_DriftCirclesOnTrack
Class for competing TRT_DriftCircles, it extends the Trk::CompetingRIOsOnTrack base class.
Definition: CompetingTRT_DriftCirclesOnTrack.h:48
InDet::CompetingTRT_DriftCirclesOnTrack::rioOnTrack
const InDet::TRT_DriftCircleOnTrack & rioOnTrack(unsigned int) const
returns the RIO_OnTrack (also known as ROT) objects depending on the integer
Definition: CompetingTRT_DriftCirclesOnTrack.h:153
InDet::CompetingTRT_DriftCirclesOnTrack::associatedSurface
const Trk::Surface & associatedSurface() const
returns the surface for the local to global transformation .
Definition: CompetingTRT_DriftCirclesOnTrack.h:141
InDet::CompetingTRT_DriftCirclesOnTrack::globalPosition
const Amg::Vector3D & globalPosition() const
Interface method to get the global Position.
Definition: CompetingTRT_DriftCirclesOnTrack.cxx:189
mapkey::sf
@ sf
Definition: TElectronEfficiencyCorrectionTool.cxx:38
Trk::SurfacePtrHolderImplDetEl
Definition: SurfaceHolderImpl.h:165
InDet::CompetingTRT_DriftCirclesOnTrack::setLocalParametersAndErrorMatrix
virtual void setLocalParametersAndErrorMatrix()
recalculate the LocalParameters and ErrorMatrix
Definition: CompetingTRT_DriftCirclesOnTrack.cxx:225
InDet::CompetingTRT_DriftCirclesOnTrack::ROTsHaveCommonSurface
bool ROTsHaveCommonSurface(const bool withNonVanishingAssignProb=true) const
Have all the contained ROTs a common associated surface? If withNonVanishingAssignProb==true just the...
Definition: CompetingTRT_DriftCirclesOnTrack.cxx:172
Trk::Surface
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:75
InDet::CompetingTRT_DriftCirclesOnTrack::m_globalPosition
CxxUtils::CachedUniquePtr< const Amg::Vector3D > m_globalPosition
The global Position.
Definition: CompetingTRT_DriftCirclesOnTrack.h:121