ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
TrkEvent
TrkSegment
src
Tracking/TrkEvent/TrkSegment/src/Segment.cxx
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.cxx, (c) ATLAS Detector software
8
9
#include <memory>
10
11
#include "
TrkEventPrimitives/FitQuality.h
"
12
#include "
TrkSegment/Segment.h
"
13
14
// default constructor
15
Trk::Segment::Segment
()
16
:
Trk
::
MeasurementBase
()
17
,
Trk
::
ObjectCounter
<
Trk
::
Segment
>()
18
,
m_fitQuality
(nullptr)
19
,
m_containedMeasBases
()
20
,
m_author
(
AuthorUnknown
)
21
{
22
}
23
24
Trk::Segment::Segment
(
Trk::LocalParameters
&& locpars,
25
Amg::MatrixX
&& locerr,
26
DataVector<const MeasurementBase>
&& measurements,
27
FitQuality
* fitqual,
28
Author
author
)
29
:
Trk
::
MeasurementBase
(
std
::move(locpars),
std
::move(locerr))
30
,
Trk
::
ObjectCounter
<
Trk
::
Segment
>()
31
,
m_fitQuality
(fitqual)
32
,
m_containedMeasBases
(
std
::move(measurements))
33
,
m_author
(
author
)
34
{
35
}
36
37
// copy constructor
38
Trk::Segment::Segment
(
const
Trk::Segment
& seg)
39
:
Trk
::
MeasurementBase
(seg)
40
,
Trk
::
ObjectCounter
<
Trk
::
Segment
>(seg)
41
,
m_fitQuality
(seg.
m_fitQuality
? seg.
m_fitQuality
->
clone
() : nullptr)
42
,
m_containedMeasBases
()
43
,
m_author
(seg.
m_author
)
44
{
45
// DV deep copy
46
m_containedMeasBases
.reserve(seg.
m_containedMeasBases
.size());
47
for (
const
Trk::MeasurementBase
*
const
measurement
:
48
seg.
m_containedMeasBases
) {
49
m_containedMeasBases.push_back(measurement->clone());
50
}
51
}
52
53
// move constructor
54
Trk::Segment::Segment
(
Trk::Segment
&& seg) noexcept
55
:
Trk::MeasurementBase
(seg)
56
,
m_fitQuality
(std::move(seg.m_fitQuality))
57
,
m_containedMeasBases
(std::move(seg.m_containedMeasBases))
58
,
m_author
(seg.m_author)
59
{
60
}
61
62
// destructor - child save
63
Trk::Segment::~Segment
() =
default
;
64
65
// assignment operator
66
Trk::Segment
&
67
Trk::Segment::operator=
(
const
Trk::Segment
& seg)
68
{
69
if
(
this
!= &seg) {
70
Trk::MeasurementBase::operator=
(seg);
71
m_fitQuality
.reset(seg.
m_fitQuality
? seg.
m_fitQuality
->clone() :
nullptr
);
72
// Deep copy
73
m_containedMeasBases
.clear();
74
m_containedMeasBases
.reserve(seg.
m_containedMeasBases
.size());
75
for
(
const
Trk::MeasurementBase
*
const
measurement
:
76
seg.
m_containedMeasBases
) {
77
m_containedMeasBases
.push_back(
measurement
->clone());
78
}
79
m_author
= seg.
m_author
;
80
}
81
return
(*
this
);
82
}
83
84
// move assignment operator
85
//coverity[exn_spec_violation]
86
Trk::Segment
&
87
Trk::Segment::operator=
(
Trk::Segment
&& seg)
noexcept
88
{
89
if
(
this
!= &seg) {
90
Trk::MeasurementBase::operator=
(seg);
91
m_fitQuality
= std::move(seg.m_fitQuality);
92
//called function throws exception of type SG::ExcInsertionInBaseClass.
93
m_containedMeasBases
= std::move(seg.m_containedMeasBases);
94
m_author
= seg.m_author;
95
}
96
return
(*
this
);
97
}
98
99
std::string
Trk::Segment::dumpAuthor
()
const
{
100
std::string
author
;
101
switch
(
m_author
) {
102
case
AuthorUnknown
:
103
author
=
"AuthorUnknown"
;
104
break
;
105
case
MooMdtSegmentMakerTool
:
106
author
=
"MooMdtSegmentMakerTool"
;
107
break
;
108
case
MooCscSegmentMakerTool
:
109
author
=
"MooCscSegmentMakerTool"
;
110
break
;
111
case
Muonboy
:
112
author
=
"Muonboy"
;
113
break
;
114
case
DCMathSegmentMaker
:
115
author
=
"DCMathSegmentMaker"
;
116
break
;
117
case
MDT_DHoughSegmentMakerTool
:
118
author
=
"MDT_DHoughSegmentMakerTool"
;
119
break
;
120
case
CSC_DHoughSegmentMakerTool
:
121
author
=
"CSC_DHoughSegmentMakerTool"
;
122
break
;
123
case
Csc2dSegmentMaker
:
124
author
=
"Csc2dSegmentMaker"
;
125
break
;
126
case
Csc4dSegmentMaker
:
127
author
=
"Csc4dSegmentMaker"
;
128
break
;
129
case
TRT_SegmentMaker
:
130
author
=
"TRT_SegmentMaker"
;
131
break
;
132
case
NswStereoSeeded
:
133
author
=
"Nsw MM stereo seeded"
;
134
break
;
135
case
NswStgcSeeded
:
136
author
=
"Nsw sTgc seeded"
;
137
break
;
138
case
NswQuadAlign
:
139
author
=
"Nsw single quad"
;
140
break
;
141
case
NswPadSeeded
:
142
author
=
"Nsw single quad"
;
143
break
;
144
default
:
145
author
=
"Unrecognised author, enum = "
+ std::to_string(
m_author
);
146
break
;
147
}
148
return
author
;
149
}
150
void
Trk::Segment::setAuthor
(
Author
a
) {
151
m_author
=
a
;
152
}
FitQuality.h
a
static Double_t a
Definition
LArPhysWaveHECTool.cxx:38
Segment.h
DataVector
Derived DataVector<T>.
Definition
DataVector.h:795
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::operator=
MeasurementBase & operator=(const MeasurementBase &)=default
Trk::MeasurementBase::MeasurementBase
MeasurementBase()=default
Default constructor - needed for POOL/SEAL.
Trk::ObjectCounter< Trk::Segment >::ObjectCounter
ObjectCounter()
Definition
TrkObjectCounter.h:36
Trk::Segment
Base class for all TrackSegment implementations, extends the common MeasurementBase.
Definition
Tracking/TrkEvent/TrkSegment/TrkSegment/Segment.h:56
Trk::Segment::~Segment
virtual ~Segment()
Destructor.
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::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::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::m_fitQuality
std::unique_ptr< FitQuality > m_fitQuality
The fit quality of the Segment.
Definition
Tracking/TrkEvent/TrkSegment/TrkSegment/Segment.h:150
Trk::Segment::operator=
Segment & operator=(const Segment &seg)
Assignment operator.
Definition
Tracking/TrkEvent/TrkSegment/src/Segment.cxx:67
Trk::Segment::dumpAuthor
std::string dumpAuthor() const
returns human readble string version of author
Definition
Tracking/TrkEvent/TrkSegment/src/Segment.cxx:99
Trk::Segment::m_author
Author m_author
segment author
Definition
Tracking/TrkEvent/TrkSegment/TrkSegment/Segment.h:156
Trk::Segment::clone
virtual Segment * clone() const override=0
Pseudo-constructor: needed to avoid excessive RTTI.
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
Amg::MatrixX
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Definition
EventPrimitives.h:27
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