ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
TrkEvent
TrkSegment
TrkSegment
Tracking/TrkEvent/TrkSegment/TrkSegment/Segment.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3
*/
4
6
// Segment.h, (c) ATLAS Detector software
8
9
#ifndef TRKSEGMENT_SEGMENT_H
10
#define TRKSEGMENT_SEGMENT_H
11
12
// Trk
13
#include "
AthContainers/DataVector.h
"
14
#include "
TrkEventPrimitives/TrkObjectCounter.h
"
15
#include "
TrkMeasurementBase/MeasurementBase.h
"
16
#include <atomic>
17
#include <memory>
18
#include <string>
19
#include <utility>
20
#include <vector>
21
class
SegmentCnv_p1
;
22
23
namespace
Trk
{
24
25
class
PrepRawData
;
26
class
RIO_OnTrack
;
27
class
TrkDetElementBase
;
28
class
FitQuality
;
29
52
53
class
Segment
54
:
public
MeasurementBase
55
,
public
Trk::ObjectCounter
<Trk::Segment>
56
{
57
58
public
:
62
enum
Author
63
{
64
AuthorUnknown
= 0,
65
MooMdtSegmentMakerTool
= 1,
66
MooCscSegmentMakerTool
= 2,
67
Muonboy
= 3,
68
DCMathSegmentMaker
= 4,
69
MDT_DHoughSegmentMakerTool
= 5,
70
CSC_DHoughSegmentMakerTool
= 6,
71
Csc2dSegmentMaker
= 7,
72
Csc4dSegmentMaker
= 8,
73
TRT_SegmentMaker
= 9,
74
CTBTracking
= 10,
75
DCMathSegmentMakerCurved
= 11,
76
NswStereoSeeded
= 12,
77
NswStgcSeeded
= 13,
78
NswPadSeeded
= 14,
79
NswQuadAlign
= 15,
80
NumberOfAuthors
= 16
81
};
82
84
Segment
();
86
Segment
(
const
Segment
& seg);
88
Segment
(
Segment
&&) noexcept;
90
Segment
& operator=(
const
Segment
& seg);
92
Segment
& operator=(
Segment
&&) noexcept;
93
95
Segment
(
LocalParameters
&& locpars,
96
Amg
::MatrixX&& locerr,
97
DataVector
<
const
MeasurementBase
>&& measurements,
98
FitQuality
* fitq =
nullptr
,
99
Author
author
=
AuthorUnknown
);
100
102
virtual ~
Segment
();
103
105
virtual
Segment
*
clone
()
const
override = 0;
106
108
std
::
unique_ptr
<
Segment
>
uniqueClone
()
const
109
{
110
return
std::unique_ptr<Segment>(
clone
());
111
}
112
114
virtual
bool
type
(
MeasurementBaseType::Type
type
)
const
override
final
115
{
116
return
(
type
==
MeasurementBaseType::Segment
);
117
}
118
122
const
std::vector<const Trk::MeasurementBase*>&
containedMeasurements
()
const
;
123
124
const
DataVector<const Trk::MeasurementBase>
&
125
containedMeasurementsDataVector
()
const
;
126
127
bool
hasContainedMeasurements
()
const
;
129
unsigned
int
numberOfMeasurementBases
()
const
;
130
132
const
MeasurementBase
*
measurement
(
unsigned
int
)
const
;
133
136
const
FitQuality
*
fitQuality
()
const
;
137
139
void
setAuthor
(
Author
a
);
141
Author
author
()
const
;
142
144
std::string
dumpAuthor
()
const
;
145
146
protected
:
147
friend
class ::SegmentCnv_p1;
148
150
std::unique_ptr<FitQuality>
m_fitQuality
;
151
153
DataVector<const MeasurementBase>
m_containedMeasBases
;
154
156
Author
m_author
;
157
};
158
159
inline
const
FitQuality
*
160
Segment::fitQuality
()
const
161
{
162
return
m_fitQuality
.get();
163
}
164
165
inline
const
std::vector<const MeasurementBase*>&
166
Segment::containedMeasurements
()
const
167
{
168
return
m_containedMeasBases
.stdcont();
169
}
170
171
inline
const
DataVector<const MeasurementBase>
&
172
Segment::containedMeasurementsDataVector
()
const
173
{
174
return
m_containedMeasBases
;
175
}
176
177
inline
bool
178
Segment::hasContainedMeasurements
()
const
179
{
180
return
!
m_containedMeasBases
.empty();
181
}
182
183
inline
const
MeasurementBase
*
184
Segment::measurement
(
unsigned
int
indx)
const
185
{
186
if
(!
m_containedMeasBases
.empty() && indx <
m_containedMeasBases
.size()) {
187
return
std::as_const(
m_containedMeasBases
)[indx];
188
}
189
return
nullptr
;
190
}
191
192
inline
unsigned
int
193
Segment::numberOfMeasurementBases
()
const
194
{
195
return
m_containedMeasBases
.size();
196
}
197
198
inline
Segment::Author
199
Segment::author
()
const
200
{
201
return
m_author
;
202
}
203
}
204
205
#endif
// TRKSEGMENT_SEGMENT_H
206
DataVector.h
An STL vector of pointers that by default owns its pointed-to elements.
a
static Double_t a
Definition
LArPhysWaveHECTool.cxx:38
MeasurementBase.h
TrkObjectCounter.h
DataVector
Derived DataVector<T>.
Definition
DataVector.h:795
SegmentCnv_p1
Definition
SegmentCnv_p1.h:30
Trk::FitQuality
Class to represent and store fit qualities from track reconstruction in terms of and number of degre...
Definition
FitQuality.h:97
Trk::LocalParameters
Definition
LocalParameters.h:100
Trk::MeasurementBase
This class is the pure abstract base class for all fittable tracking measurements.
Definition
MeasurementBase.h:58
Trk::MeasurementBase::MeasurementBase
MeasurementBase()=default
Default constructor - needed for POOL/SEAL.
Trk::ObjectCounter
Helper to enable counting number of instantiations in debug builds.
Definition
TrkObjectCounter.h:18
Trk::PrepRawData
Definition
PrepRawData.h:62
Trk::RIO_OnTrack
Class to handle RIO On Tracks ROT) for InDet and Muons, it inherits from the common MeasurementBase.
Definition
RIO_OnTrack.h:70
Trk::Segment
Base class for all TrackSegment implementations, extends the common MeasurementBase.
Definition
Tracking/TrkEvent/TrkSegment/TrkSegment/Segment.h:56
Trk::Segment::author
Author author() const
return segment author
Definition
Tracking/TrkEvent/TrkSegment/TrkSegment/Segment.h:199
Trk::Segment::Author
Author
enum to identify who created the segment.
Definition
Tracking/TrkEvent/TrkSegment/TrkSegment/Segment.h:63
Trk::Segment::NswStgcSeeded
@ NswStgcSeeded
Definition
Tracking/TrkEvent/TrkSegment/TrkSegment/Segment.h:77
Trk::Segment::MDT_DHoughSegmentMakerTool
@ MDT_DHoughSegmentMakerTool
Definition
Tracking/TrkEvent/TrkSegment/TrkSegment/Segment.h:69
Trk::Segment::MooMdtSegmentMakerTool
@ MooMdtSegmentMakerTool
Definition
Tracking/TrkEvent/TrkSegment/TrkSegment/Segment.h:65
Trk::Segment::MooCscSegmentMakerTool
@ MooCscSegmentMakerTool
Definition
Tracking/TrkEvent/TrkSegment/TrkSegment/Segment.h:66
Trk::Segment::NswPadSeeded
@ NswPadSeeded
Definition
Tracking/TrkEvent/TrkSegment/TrkSegment/Segment.h:78
Trk::Segment::NswStereoSeeded
@ NswStereoSeeded
Definition
Tracking/TrkEvent/TrkSegment/TrkSegment/Segment.h:76
Trk::Segment::TRT_SegmentMaker
@ TRT_SegmentMaker
Definition
Tracking/TrkEvent/TrkSegment/TrkSegment/Segment.h:73
Trk::Segment::DCMathSegmentMaker
@ DCMathSegmentMaker
Definition
Tracking/TrkEvent/TrkSegment/TrkSegment/Segment.h:68
Trk::Segment::NumberOfAuthors
@ NumberOfAuthors
Definition
Tracking/TrkEvent/TrkSegment/TrkSegment/Segment.h:80
Trk::Segment::Csc4dSegmentMaker
@ Csc4dSegmentMaker
Definition
Tracking/TrkEvent/TrkSegment/TrkSegment/Segment.h:72
Trk::Segment::AuthorUnknown
@ AuthorUnknown
Definition
Tracking/TrkEvent/TrkSegment/TrkSegment/Segment.h:64
Trk::Segment::Csc2dSegmentMaker
@ Csc2dSegmentMaker
Definition
Tracking/TrkEvent/TrkSegment/TrkSegment/Segment.h:71
Trk::Segment::DCMathSegmentMakerCurved
@ DCMathSegmentMakerCurved
Definition
Tracking/TrkEvent/TrkSegment/TrkSegment/Segment.h:75
Trk::Segment::CTBTracking
@ CTBTracking
Definition
Tracking/TrkEvent/TrkSegment/TrkSegment/Segment.h:74
Trk::Segment::NswQuadAlign
@ NswQuadAlign
Definition
Tracking/TrkEvent/TrkSegment/TrkSegment/Segment.h:79
Trk::Segment::Muonboy
@ Muonboy
Definition
Tracking/TrkEvent/TrkSegment/TrkSegment/Segment.h:67
Trk::Segment::CSC_DHoughSegmentMakerTool
@ CSC_DHoughSegmentMakerTool
Definition
Tracking/TrkEvent/TrkSegment/TrkSegment/Segment.h:70
Trk::Segment::measurement
const MeasurementBase * measurement(unsigned int) const
returns the Trk::MeasurementBase objects depending on the integer
Definition
Tracking/TrkEvent/TrkSegment/TrkSegment/Segment.h:184
Trk::Segment::Segment
Segment()
Default Constructor for POOL.
Definition
Tracking/TrkEvent/TrkSegment/src/Segment.cxx:15
Trk::Segment::setAuthor
void setAuthor(Author a)
sets the segment author
Definition
Tracking/TrkEvent/TrkSegment/src/Segment.cxx:150
Trk::Segment::hasContainedMeasurements
bool hasContainedMeasurements() const
Definition
Tracking/TrkEvent/TrkSegment/TrkSegment/Segment.h:178
Trk::Segment::m_fitQuality
std::unique_ptr< FitQuality > m_fitQuality
The fit quality of the Segment.
Definition
Tracking/TrkEvent/TrkSegment/TrkSegment/Segment.h:150
Trk::Segment::dumpAuthor
std::string dumpAuthor() const
returns human readble string version of author
Definition
Tracking/TrkEvent/TrkSegment/src/Segment.cxx:99
Trk::Segment::fitQuality
const FitQuality * fitQuality() const
return the FitQuality object, returns NULL if no FitQuality is defined
Definition
Tracking/TrkEvent/TrkSegment/TrkSegment/Segment.h:160
Trk::Segment::m_author
Author m_author
segment author
Definition
Tracking/TrkEvent/TrkSegment/TrkSegment/Segment.h:156
Trk::Segment::containedMeasurements
const std::vector< const Trk::MeasurementBase * > & containedMeasurements() const
returns the vector of Trk::MeasurementBase objects
Definition
Tracking/TrkEvent/TrkSegment/TrkSegment/Segment.h:166
Trk::Segment::uniqueClone
std::unique_ptr< Segment > uniqueClone() const
NVI uniqueClone method.
Definition
Tracking/TrkEvent/TrkSegment/TrkSegment/Segment.h:108
Trk::Segment::clone
virtual Segment * clone() const override=0
Pseudo-constructor: needed to avoid excessive RTTI.
Trk::Segment::type
virtual bool type(MeasurementBaseType::Type type) const override final
Extended method checking the type.
Definition
Tracking/TrkEvent/TrkSegment/TrkSegment/Segment.h:114
Trk::Segment::m_containedMeasBases
DataVector< const MeasurementBase > m_containedMeasBases
The vector of contained (generic) Trk::MeasurementBase objects.
Definition
Tracking/TrkEvent/TrkSegment/TrkSegment/Segment.h:153
Trk::Segment::containedMeasurementsDataVector
const DataVector< const Trk::MeasurementBase > & containedMeasurementsDataVector() const
Definition
Tracking/TrkEvent/TrkSegment/TrkSegment/Segment.h:172
Trk::Segment::numberOfMeasurementBases
unsigned int numberOfMeasurementBases() const
Return the number of contained Trk::MeasurementBase (s).
Definition
Tracking/TrkEvent/TrkSegment/TrkSegment/Segment.h:193
Trk::TrkDetElementBase
This is the base class for all tracking detector elements with read-out relevant information.
Definition
TrkDetElementBase.h:52
unique_ptr
STL class.
const
Amg
Definition of ATLAS Math & Geometry primitives (Amg).
Definition
AmgStringHelpers.h:19
Trk::MeasurementBaseType::Type
Type
Definition
MeasurementBase.h:46
Trk::MeasurementBaseType::Segment
@ Segment
Definition
MeasurementBase.h:47
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition
FakeTrackBuilder.h:9
std
STL namespace.
Generated on
for ATLAS Offline Software by
1.17.0