ATLAS Offline Software
AlignmentEffectsOnTrack.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TRKTRACK_ALIGNMENTEFFECTSONTRACK_H
6 #define TRKTRACK_ALIGNMENTEFFECTSONTRACK_H
7 
8 #include "Identifier/Identifier.h"
10 #include <iostream>
11 #include <vector>
12 
13 class MsgStream;
14 
15 namespace Trk {
16 
17 class Surface;
18 class TrackStateOnSurface;
19 
24 {
25 public:
27  double deltaTranslation,
29  double deltaAngle,
30  double sigmaDeltaAngle,
31  const std::vector<Identifier>& identifiersOfAffectedTSOS,
32  const Trk::Surface& surf);
33 
35 
37  const Trk::AlignmentEffectsOnTrack& rhs) = default;
38 
40  default;
41 
43  Trk::AlignmentEffectsOnTrack&& rhs) noexcept = default;
44 
46 
48  double deltaTranslation() const;
49 
51  double sigmaDeltaTranslation() const;
52 
54  double deltaAngle() const;
55 
57  double sigmaDeltaAngle() const;
58 
61  const std::vector<Identifier>& vectorOfAffectedTSOS() const;
62 
64  void updateVectorOfAffectedTSOS(std::vector<Identifier>&);
65 
68  bool effectsLastFromNowOn() const { return m_affectedTSOS.empty(); }
69 
71  const Trk::Surface& associatedSurface() const;
72 
73 private:
74  double m_deltaTranslation{0.};
76  double m_deltaAngle{0.};
77  double m_sigmaDeltaAngle{0.};
78  std::vector<Identifier> m_affectedTSOS;
79 };
80 
82 MsgStream&
83 operator<<(MsgStream& sl, const AlignmentEffectsOnTrack& tsos);
84 
86 std::ostream&
87 operator<<(std::ostream& sl, const AlignmentEffectsOnTrack& tsos);
88 }
89 
90 inline double
92 {
93  return m_deltaTranslation;
94 }
95 
96 inline double
98 {
99  return m_sigmaDeltaTranslation;
100 }
101 
102 inline double
104 {
105  return m_deltaAngle;
106 }
107 
108 inline double
110 {
111  return m_sigmaDeltaAngle;
112 }
113 
114 inline const std::vector<Identifier>&
116 {
117  return m_affectedTSOS;
118 }
119 
120 inline void
122  std::vector<Identifier>& affectedTSOS)
123 {
124  m_affectedTSOS = affectedTSOS;
125 }
126 
127 inline const Trk::Surface&
129 {
130  return *m_associatedSurface;
131 }
132 
133 #endif
Trk::AlignmentEffectsOnTrack::m_affectedTSOS
std::vector< Identifier > m_affectedTSOS
Definition: AlignmentEffectsOnTrack.h:78
Trk::AlignmentEffectsOnTrack::effectsLastFromNowOn
bool effectsLastFromNowOn() const
Returns true if the effects of this AlignmentEffectsOnTrack apply to all remaining TrackStatesOnSurfa...
Definition: AlignmentEffectsOnTrack.h:68
SurfaceHolders.h
Trk::AlignmentEffectsOnTrack::vectorOfAffectedTSOS
const std::vector< Identifier > & vectorOfAffectedTSOS() const
Returns a vector of the affected TSOS in the track.
Definition: AlignmentEffectsOnTrack.h:115
Surface
Definition: Trigger/TrigAccel/TrigCudaFitter/src/Surface.h:8
Trk::AlignmentEffectsOnTrack::operator=
Trk::AlignmentEffectsOnTrack & operator=(Trk::AlignmentEffectsOnTrack &&rhs) noexcept=default
Trk::AlignmentEffectsOnTrack::m_deltaAngle
double m_deltaAngle
Definition: AlignmentEffectsOnTrack.h:76
Trk::AlignmentEffectsOnTrack::deltaAngle
double deltaAngle() const
returns the
Definition: AlignmentEffectsOnTrack.h:103
Trk::SurfacePtrHolderImpl
Definition: SurfaceHolderImpl.h:79
Trk::AlignmentEffectsOnTrack
Class to represent misalignments or 'discontinuities' on tracks These have a surface where the z axis...
Definition: AlignmentEffectsOnTrack.h:24
Trk::AlignmentEffectsOnTrack::updateVectorOfAffectedTSOS
void updateVectorOfAffectedTSOS(std::vector< Identifier > &)
Updates the vector of the affected TSOS in the track.
Definition: AlignmentEffectsOnTrack.h:121
Trk::AlignmentEffectsOnTrack::m_deltaTranslation
double m_deltaTranslation
Definition: AlignmentEffectsOnTrack.h:74
Trk::AlignmentEffectsOnTrack::m_sigmaDeltaAngle
double m_sigmaDeltaAngle
Definition: AlignmentEffectsOnTrack.h:77
Trk::AlignmentEffectsOnTrack::operator=
Trk::AlignmentEffectsOnTrack & operator=(const Trk::AlignmentEffectsOnTrack &rhs)=default
Trk::AlignmentEffectsOnTrack::m_sigmaDeltaTranslation
double m_sigmaDeltaTranslation
Definition: AlignmentEffectsOnTrack.h:75
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::operator<<
MsgStream & operator<<(MsgStream &sl, const AlignModule &alignModule)
overload of << operator for MsgStream for debug output
Definition: AlignModule.cxx:204
Trk::AlignmentEffectsOnTrack::AlignmentEffectsOnTrack
AlignmentEffectsOnTrack(const Trk::AlignmentEffectsOnTrack &rhs)=default
Trk::AlignmentEffectsOnTrack::AlignmentEffectsOnTrack
AlignmentEffectsOnTrack(Trk::AlignmentEffectsOnTrack &&rhs) noexcept=default
Trk::AlignmentEffectsOnTrack::sigmaDeltaTranslation
double sigmaDeltaTranslation() const
returns the
Definition: AlignmentEffectsOnTrack.h:97
Trk::AlignmentEffectsOnTrack::deltaTranslation
double deltaTranslation() const
returns the
Definition: AlignmentEffectsOnTrack.h:91
Trk::AlignmentEffectsOnTrack::associatedSurface
const Trk::Surface & associatedSurface() const
The surface on which this offset is expressed.
Definition: AlignmentEffectsOnTrack.h:128
Trk::Surface
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:75
Trk::AlignmentEffectsOnTrack::~AlignmentEffectsOnTrack
~AlignmentEffectsOnTrack()=default
Trk::AlignmentEffectsOnTrack::AlignmentEffectsOnTrack
AlignmentEffectsOnTrack(double deltaTranslation, double m_sigmaDeltaTranslation, double deltaAngle, double sigmaDeltaAngle, const std::vector< Identifier > &identifiersOfAffectedTSOS, const Trk::Surface &surf)
Definition: AlignmentEffectsOnTrack.cxx:9
Trk::AlignmentEffectsOnTrack::sigmaDeltaAngle
double sigmaDeltaAngle() const
returns the
Definition: AlignmentEffectsOnTrack.h:109