ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
MuonSpectrometer
MuonReconstruction
MuonTrackMakers
MuonTrackMakerTools
MuonTrackSteeringTools
src
MuonTrackSegmentMatchResult.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
/***************************************************************************
6
* Interface for matching tracks to muon segments
7
* ----------------------------------------------
8
* Author : Martin Woudstra
9
* Creation Date: 06 September 2010
10
***************************************************************************/
11
12
// std
13
14
// other packages
15
16
// this package
17
18
#include "
MuonTrackSegmentMatchResult.h
"
19
20
namespace
Muon
{
21
22
TrackSegmentMatchResult::TrackSegmentMatchResult
() {
23
TrackSegmentMatchResult::clear
();
24
resetCuts
();
25
}
26
27
TrackSegmentMatchResult::~TrackSegmentMatchResult
() {
TrackSegmentMatchResult::clear
(); }
28
29
void
TrackSegmentMatchResult::clear
() {
30
localPosXDiff
= 0.0;
31
localPosYDiff
= 0.0;
32
localAngleXDiff
= 0.0;
33
localAngleYDiff
= 0.0;
34
posXMeasErr2
= 0.0;
35
posXPredErr2
= 0.0;
36
posXAlignErr2
= 0.0;
37
posXTotalErr2
= 0.0;
38
posYMeasErr2
= 0.0;
39
posYPredErr2
= 0.0;
40
posYAlignErr2
= 0.0;
41
posYTotalErr2
= 0.0;
42
angleXMeasErr2
= 0.0;
43
angleXPredErr2
= 0.0;
44
angleXAlignErr2
= 0.0;
45
angleXTotalErr2
= 0.0;
46
angleYMeasErr2
= 0.0;
47
angleYPredErr2
= 0.0;
48
angleYAlignErr2
= 0.0;
49
angleYTotalErr2
= 0.0;
50
matchChiSquared
= 0.0;
51
trackChamberId
=
Identifier
();
52
segmentChamberId
=
Identifier
();
53
predictionCovariance
.setZero();
54
measuredCovariance
.setZero();
55
totalCovariance
.setZero();
56
diffVector
.setZero();
57
track
=
nullptr
;
58
segment
=
nullptr
;
59
havePosX
=
false
;
60
havePosY
=
false
;
61
haveAngleX
=
false
;
62
haveAngleY
=
false
;
63
havePosXError
=
false
;
64
havePosYError
=
false
;
65
haveAngleXError
=
false
;
66
haveAngleYError
=
false
;
67
haveMatchChiSquared
=
false
;
68
matchOK
=
true
;
69
reason
=
Unknown
;
70
}
71
72
std::string
TrackSegmentMatchResult::cutString
(
CutType
cut) {
73
if
(
static_cast<
int
>
(cut) < 0 ||
static_cast<
int
>
(cut) >=
static_cast<
int
>
(
NumberOfCutTypes
)) {
return
"CutTypeOutOfRange"
; }
74
75
switch
(cut) {
76
case
PosXCut
:
return
"PosXCut"
;
77
case
PosYCut
:
return
"PosYCut"
;
78
case
AngXCut
:
return
"AngleXCut"
;
79
case
AngYCut
:
return
"AngleYCut"
;
80
case
PosXPullCut
:
return
"PosXPullCut"
;
81
case
PosYPullCut
:
return
"PosYPullCut"
;
82
case
AngXPullCut
:
return
"AngleXPullCut"
;
83
case
AngYPullCut
:
return
"AngleYPullCut"
;
84
case
MatchChiSquaredCut
:
return
"ChiSquaredMatchCut"
;
85
default
:
return
"CutTypeNotInList"
;
86
}
87
88
return
""
;
89
}
90
91
std::string
TrackSegmentMatchResult::reasonString
(
Reason
r
) {
92
if
(
static_cast<
int
>
(
r
) < 0 ||
static_cast<
int
>
(
r
) >=
static_cast<
int
>
(
NumberOfReasons
)) {
return
"ReasonOutOfRange"
; }
93
switch
(
r
) {
94
case
Unknown
:
return
"Unknown"
;
95
case
NoCutsApplied
:
return
"NoCutsApplied"
;
96
case
PassedAllCuts
:
return
"PassedAllCuts"
;
97
case
PassedMatchChiSquaredCut
:
return
"PassedMatchChiSquaredCut"
;
98
case
PassedPosAngleCuts
:
return
"PassedPosAngleCuts"
;
99
case
FailedCuts
:
return
"FailedCuts"
;
100
case
SegmentMatching
:
return
"SegmentMatching"
;
101
case
NoSegmentPointer
:
return
"NoSegmentPointer"
;
102
case
StereoAngleWithoutPhi
:
return
"StereoAngleWithoutPhi"
;
103
case
NoClosestPars
:
return
"NoClosestPars"
;
104
case
FieldNotOk
:
return
"FieldNotOk"
;
105
case
NoClosestSegment
:
return
"NoClosestSegment"
;
106
case
SegmentMatch
:
return
"SegmentMatch"
;
107
case
NoMomentumWithMagField
:
return
"NoMomentumWithMagField"
;
108
case
ExtrapolFailed
:
return
"ExtrapolationFailed"
;
109
case
ExtrapolNoErrors
:
return
"ExtrapolationNoErrors"
;
110
case
NoMeasErrors
:
return
"NoMeasErrors"
;
111
case
AngleMeasErrFailed
:
return
"AngleMeasErrFailed"
;
112
case
AnglePredErrFailed
:
return
"AnglePredErrFailed"
;
113
case
LocalDirFailed
:
return
"LocalDirFailed"
;
114
115
default
:
return
"ReasonNotInList"
;
116
}
117
}
118
120
std::string
TrackSegmentMatchResult::failedCutsString
()
const
{
121
std::string failedStr;
122
for
(
int
i = 0; i < (int)
NumberOfCutTypes
; ++i) {
123
CutType
cut =
static_cast<
CutType
>
(i);
124
if
(
appliedCut
(cut) &&
failedCut
(cut)) {
125
if
(!failedStr.empty()) failedStr +=
","
;
126
failedStr +=
TrackSegmentMatchResult::cutString
(cut);
127
}
128
}
129
return
failedStr;
130
}
131
133
std::string
TrackSegmentMatchResult::passedCutsString
()
const
{
134
std::string passedStr;
135
for
(
int
i = 0; i < (int)
NumberOfCutTypes
; ++i) {
136
CutType
cut =
static_cast<
CutType
>
(i);
137
if
(
appliedCut
(cut) &&
passedCut
(cut)) {
138
if
(!passedStr.empty()) passedStr +=
","
;
139
passedStr +=
cutString
(cut);
140
}
141
}
142
return
passedStr;
143
}
144
145
std::string
TrackSegmentMatchResult::reasonString
()
const
{
return
reasonString
(
reason
); }
146
147
TrackSegmentMatchCuts::TrackSegmentMatchCuts
() {
TrackSegmentMatchCuts::clear
(); }
148
149
TrackSegmentMatchCuts::~TrackSegmentMatchCuts
() =
default
;
150
151
void
TrackSegmentMatchCuts::clear
() {
152
posXCut
= 0.0;
153
posYCut
= 0.0;
154
posXPullCut
= 0.0;
155
posYPullCut
= 0.0;
156
angleXCut
= 0.0;
157
angleYCut
= 0.0;
158
angleXPullCut
= 0.0;
159
angleYPullCut
= 0.0;
160
matchChiSquaredCut
= 0.0;
161
useTightCuts
=
false
;
162
cutOnPosX
=
false
;
163
cutOnPosY
=
false
;
164
cutOnPosXPull
=
false
;
165
cutOnPosYPull
=
false
;
166
cutOnAngleX
=
false
;
167
cutOnAngleY
=
false
;
168
cutOnAngleXPull
=
false
;
169
cutOnAngleYPull
=
false
;
170
cutOnMatchChiSquared
=
false
;
171
}
172
173
}
// namespace Muon
MuonTrackSegmentMatchResult.h
r
int r
Definition
globals.cxx:22
Identifier
Definition
IdentifierFieldParser.cxx:14
Muon
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
Definition
TrackSystemController.h:46
Muon::TrackSegmentMatchCuts::cutOnAngleX
bool cutOnAngleX
Definition
MuonTrackSegmentMatchResult.h:189
Muon::TrackSegmentMatchCuts::cutOnPosXPull
bool cutOnPosXPull
Definition
MuonTrackSegmentMatchResult.h:187
Muon::TrackSegmentMatchCuts::~TrackSegmentMatchCuts
virtual ~TrackSegmentMatchCuts()
Muon::TrackSegmentMatchCuts::posYCut
double posYCut
Definition
MuonTrackSegmentMatchResult.h:176
Muon::TrackSegmentMatchCuts::angleYPullCut
double angleYPullCut
Definition
MuonTrackSegmentMatchResult.h:182
Muon::TrackSegmentMatchCuts::cutOnAngleXPull
bool cutOnAngleXPull
Definition
MuonTrackSegmentMatchResult.h:191
Muon::TrackSegmentMatchCuts::TrackSegmentMatchCuts
TrackSegmentMatchCuts()
Definition
MuonTrackSegmentMatchResult.cxx:147
Muon::TrackSegmentMatchCuts::angleYCut
double angleYCut
Definition
MuonTrackSegmentMatchResult.h:180
Muon::TrackSegmentMatchCuts::cutOnPosYPull
bool cutOnPosYPull
Definition
MuonTrackSegmentMatchResult.h:188
Muon::TrackSegmentMatchCuts::cutOnPosY
bool cutOnPosY
Definition
MuonTrackSegmentMatchResult.h:186
Muon::TrackSegmentMatchCuts::angleXPullCut
double angleXPullCut
Definition
MuonTrackSegmentMatchResult.h:181
Muon::TrackSegmentMatchCuts::posXCut
double posXCut
Definition
MuonTrackSegmentMatchResult.h:175
Muon::TrackSegmentMatchCuts::matchChiSquaredCut
double matchChiSquaredCut
Definition
MuonTrackSegmentMatchResult.h:183
Muon::TrackSegmentMatchCuts::cutOnAngleYPull
bool cutOnAngleYPull
Definition
MuonTrackSegmentMatchResult.h:192
Muon::TrackSegmentMatchCuts::angleXCut
double angleXCut
Definition
MuonTrackSegmentMatchResult.h:179
Muon::TrackSegmentMatchCuts::cutOnMatchChiSquared
bool cutOnMatchChiSquared
Definition
MuonTrackSegmentMatchResult.h:193
Muon::TrackSegmentMatchCuts::useTightCuts
bool useTightCuts
Definition
MuonTrackSegmentMatchResult.h:184
Muon::TrackSegmentMatchCuts::cutOnAngleY
bool cutOnAngleY
Definition
MuonTrackSegmentMatchResult.h:190
Muon::TrackSegmentMatchCuts::posXPullCut
double posXPullCut
Definition
MuonTrackSegmentMatchResult.h:177
Muon::TrackSegmentMatchCuts::cutOnPosX
bool cutOnPosX
Definition
MuonTrackSegmentMatchResult.h:185
Muon::TrackSegmentMatchCuts::posYPullCut
double posYPullCut
Definition
MuonTrackSegmentMatchResult.h:178
Muon::TrackSegmentMatchCuts::clear
virtual void clear()
Definition
MuonTrackSegmentMatchResult.cxx:151
Muon::TrackSegmentMatchResult::localPosXDiff
double localPosXDiff
Definition
MuonTrackSegmentMatchResult.h:81
Muon::TrackSegmentMatchResult::trackChamberId
Identifier trackChamberId
Definition
MuonTrackSegmentMatchResult.h:106
Muon::TrackSegmentMatchResult::~TrackSegmentMatchResult
virtual ~TrackSegmentMatchResult()
Definition
MuonTrackSegmentMatchResult.cxx:27
Muon::TrackSegmentMatchResult::havePosX
bool havePosX
Definition
MuonTrackSegmentMatchResult.h:111
Muon::TrackSegmentMatchResult::track
const Trk::Track * track
Definition
MuonTrackSegmentMatchResult.h:108
Muon::TrackSegmentMatchResult::angleYAlignErr2
double angleYAlignErr2
Definition
MuonTrackSegmentMatchResult.h:98
Muon::TrackSegmentMatchResult::haveAngleX
bool haveAngleX
Definition
MuonTrackSegmentMatchResult.h:115
Muon::TrackSegmentMatchResult::matchOK
bool matchOK
Definition
MuonTrackSegmentMatchResult.h:120
Muon::TrackSegmentMatchResult::posYMeasErr2
double posYMeasErr2
Definition
MuonTrackSegmentMatchResult.h:86
Muon::TrackSegmentMatchResult::haveAngleYError
bool haveAngleYError
Definition
MuonTrackSegmentMatchResult.h:118
Muon::TrackSegmentMatchResult::havePosY
bool havePosY
Definition
MuonTrackSegmentMatchResult.h:112
Muon::TrackSegmentMatchResult::CutType
CutType
Definition
MuonTrackSegmentMatchResult.h:33
Muon::TrackSegmentMatchResult::AngYCut
@ AngYCut
Definition
MuonTrackSegmentMatchResult.h:39
Muon::TrackSegmentMatchResult::PosXCut
@ PosXCut
Definition
MuonTrackSegmentMatchResult.h:34
Muon::TrackSegmentMatchResult::PosYPullCut
@ PosYPullCut
Definition
MuonTrackSegmentMatchResult.h:37
Muon::TrackSegmentMatchResult::PosYCut
@ PosYCut
Definition
MuonTrackSegmentMatchResult.h:35
Muon::TrackSegmentMatchResult::AngXCut
@ AngXCut
Definition
MuonTrackSegmentMatchResult.h:38
Muon::TrackSegmentMatchResult::AngYPullCut
@ AngYPullCut
Definition
MuonTrackSegmentMatchResult.h:41
Muon::TrackSegmentMatchResult::NumberOfCutTypes
@ NumberOfCutTypes
Definition
MuonTrackSegmentMatchResult.h:43
Muon::TrackSegmentMatchResult::AngXPullCut
@ AngXPullCut
Definition
MuonTrackSegmentMatchResult.h:40
Muon::TrackSegmentMatchResult::PosXPullCut
@ PosXPullCut
Definition
MuonTrackSegmentMatchResult.h:36
Muon::TrackSegmentMatchResult::MatchChiSquaredCut
@ MatchChiSquaredCut
Definition
MuonTrackSegmentMatchResult.h:42
Muon::TrackSegmentMatchResult::havePosXError
bool havePosXError
Definition
MuonTrackSegmentMatchResult.h:113
Muon::TrackSegmentMatchResult::angleXPredErr2
double angleXPredErr2
Definition
MuonTrackSegmentMatchResult.h:95
Muon::TrackSegmentMatchResult::segmentChamberId
Identifier segmentChamberId
Definition
MuonTrackSegmentMatchResult.h:107
Muon::TrackSegmentMatchResult::resetCuts
void resetCuts()
Reset all cuts (applied & passed).
Definition
MuonTrackSegmentMatchResult.h:131
Muon::TrackSegmentMatchResult::angleYTotalErr2
double angleYTotalErr2
Definition
MuonTrackSegmentMatchResult.h:100
Muon::TrackSegmentMatchResult::localPosYDiff
double localPosYDiff
Definition
MuonTrackSegmentMatchResult.h:82
Muon::TrackSegmentMatchResult::posXPredErr2
double posXPredErr2
Definition
MuonTrackSegmentMatchResult.h:87
Muon::TrackSegmentMatchResult::segment
const MuonSegment * segment
Definition
MuonTrackSegmentMatchResult.h:109
Muon::TrackSegmentMatchResult::angleXTotalErr2
double angleXTotalErr2
Definition
MuonTrackSegmentMatchResult.h:99
Muon::TrackSegmentMatchResult::posYTotalErr2
double posYTotalErr2
Definition
MuonTrackSegmentMatchResult.h:92
Muon::TrackSegmentMatchResult::localAngleYDiff
double localAngleYDiff
Definition
MuonTrackSegmentMatchResult.h:84
Muon::TrackSegmentMatchResult::posYAlignErr2
double posYAlignErr2
Definition
MuonTrackSegmentMatchResult.h:90
Muon::TrackSegmentMatchResult::posYPredErr2
double posYPredErr2
Definition
MuonTrackSegmentMatchResult.h:88
Muon::TrackSegmentMatchResult::angleYMeasErr2
double angleYMeasErr2
Definition
MuonTrackSegmentMatchResult.h:94
Muon::TrackSegmentMatchResult::TrackSegmentMatchResult
TrackSegmentMatchResult()
Definition
MuonTrackSegmentMatchResult.cxx:22
Muon::TrackSegmentMatchResult::reasonString
std::string reasonString() const
Definition
MuonTrackSegmentMatchResult.cxx:145
Muon::TrackSegmentMatchResult::havePosYError
bool havePosYError
Definition
MuonTrackSegmentMatchResult.h:114
Muon::TrackSegmentMatchResult::angleXMeasErr2
double angleXMeasErr2
Definition
MuonTrackSegmentMatchResult.h:93
Muon::TrackSegmentMatchResult::reason
Reason reason
Definition
MuonTrackSegmentMatchResult.h:110
Muon::TrackSegmentMatchResult::angleXAlignErr2
double angleXAlignErr2
Definition
MuonTrackSegmentMatchResult.h:97
Muon::TrackSegmentMatchResult::passedCut
bool passedCut(CutType cut) const
Did it pass the cut?
Definition
MuonTrackSegmentMatchResult.h:143
Muon::TrackSegmentMatchResult::failedCut
bool failedCut(CutType cut) const
Did it fail the cut?
Definition
MuonTrackSegmentMatchResult.h:146
Muon::TrackSegmentMatchResult::haveMatchChiSquared
bool haveMatchChiSquared
Definition
MuonTrackSegmentMatchResult.h:119
Muon::TrackSegmentMatchResult::localAngleXDiff
double localAngleXDiff
Definition
MuonTrackSegmentMatchResult.h:83
Muon::TrackSegmentMatchResult::measuredCovariance
Amg::MatrixX measuredCovariance
Definition
MuonTrackSegmentMatchResult.h:103
Muon::TrackSegmentMatchResult::posXTotalErr2
double posXTotalErr2
Definition
MuonTrackSegmentMatchResult.h:91
Muon::TrackSegmentMatchResult::posXAlignErr2
double posXAlignErr2
Definition
MuonTrackSegmentMatchResult.h:89
Muon::TrackSegmentMatchResult::haveAngleXError
bool haveAngleXError
Definition
MuonTrackSegmentMatchResult.h:117
Muon::TrackSegmentMatchResult::failedCutsString
std::string failedCutsString() const
String with all cuts that were applied and failed.
Definition
MuonTrackSegmentMatchResult.cxx:120
Muon::TrackSegmentMatchResult::angleYPredErr2
double angleYPredErr2
Definition
MuonTrackSegmentMatchResult.h:96
Muon::TrackSegmentMatchResult::diffVector
Amg::VectorX diffVector
Definition
MuonTrackSegmentMatchResult.h:105
Muon::TrackSegmentMatchResult::haveAngleY
bool haveAngleY
Definition
MuonTrackSegmentMatchResult.h:116
Muon::TrackSegmentMatchResult::appliedCut
bool appliedCut(CutType cut) const
Was the cut applied ?
Definition
MuonTrackSegmentMatchResult.h:149
Muon::TrackSegmentMatchResult::cutString
static std::string cutString(CutType cut)
turn enum CutType into a string
Definition
MuonTrackSegmentMatchResult.cxx:72
Muon::TrackSegmentMatchResult::posXMeasErr2
double posXMeasErr2
Definition
MuonTrackSegmentMatchResult.h:85
Muon::TrackSegmentMatchResult::predictionCovariance
Amg::MatrixX predictionCovariance
Definition
MuonTrackSegmentMatchResult.h:102
Muon::TrackSegmentMatchResult::passedCutsString
std::string passedCutsString() const
String with all cuts that were applied and passed.
Definition
MuonTrackSegmentMatchResult.cxx:133
Muon::TrackSegmentMatchResult::clear
virtual void clear()
Definition
MuonTrackSegmentMatchResult.cxx:29
Muon::TrackSegmentMatchResult::totalCovariance
Amg::MatrixX totalCovariance
Definition
MuonTrackSegmentMatchResult.h:104
Muon::TrackSegmentMatchResult::Reason
Reason
Definition
MuonTrackSegmentMatchResult.h:49
Muon::TrackSegmentMatchResult::NoMeasErrors
@ NoMeasErrors
Definition
MuonTrackSegmentMatchResult.h:66
Muon::TrackSegmentMatchResult::NoCutsApplied
@ NoCutsApplied
Definition
MuonTrackSegmentMatchResult.h:51
Muon::TrackSegmentMatchResult::LocalDirFailed
@ LocalDirFailed
Definition
MuonTrackSegmentMatchResult.h:71
Muon::TrackSegmentMatchResult::SegmentMatch
@ SegmentMatch
Definition
MuonTrackSegmentMatchResult.h:62
Muon::TrackSegmentMatchResult::Unknown
@ Unknown
Definition
MuonTrackSegmentMatchResult.h:50
Muon::TrackSegmentMatchResult::NumberOfReasons
@ NumberOfReasons
Definition
MuonTrackSegmentMatchResult.h:72
Muon::TrackSegmentMatchResult::PassedAllCuts
@ PassedAllCuts
Definition
MuonTrackSegmentMatchResult.h:52
Muon::TrackSegmentMatchResult::NoClosestSegment
@ NoClosestSegment
Definition
MuonTrackSegmentMatchResult.h:61
Muon::TrackSegmentMatchResult::NoMomentumWithMagField
@ NoMomentumWithMagField
Definition
MuonTrackSegmentMatchResult.h:63
Muon::TrackSegmentMatchResult::AngleMeasErrFailed
@ AngleMeasErrFailed
Definition
MuonTrackSegmentMatchResult.h:68
Muon::TrackSegmentMatchResult::ExtrapolFailed
@ ExtrapolFailed
Definition
MuonTrackSegmentMatchResult.h:64
Muon::TrackSegmentMatchResult::FieldNotOk
@ FieldNotOk
Definition
MuonTrackSegmentMatchResult.h:60
Muon::TrackSegmentMatchResult::PassedMatchChiSquaredCut
@ PassedMatchChiSquaredCut
Definition
MuonTrackSegmentMatchResult.h:53
Muon::TrackSegmentMatchResult::SegmentMatching
@ SegmentMatching
Definition
MuonTrackSegmentMatchResult.h:56
Muon::TrackSegmentMatchResult::PassedPosAngleCuts
@ PassedPosAngleCuts
Definition
MuonTrackSegmentMatchResult.h:54
Muon::TrackSegmentMatchResult::AnglePredErrFailed
@ AnglePredErrFailed
Definition
MuonTrackSegmentMatchResult.h:69
Muon::TrackSegmentMatchResult::FailedCuts
@ FailedCuts
Definition
MuonTrackSegmentMatchResult.h:55
Muon::TrackSegmentMatchResult::NoClosestPars
@ NoClosestPars
Definition
MuonTrackSegmentMatchResult.h:59
Muon::TrackSegmentMatchResult::StereoAngleWithoutPhi
@ StereoAngleWithoutPhi
Definition
MuonTrackSegmentMatchResult.h:58
Muon::TrackSegmentMatchResult::NoSegmentPointer
@ NoSegmentPointer
Definition
MuonTrackSegmentMatchResult.h:57
Muon::TrackSegmentMatchResult::ExtrapolNoErrors
@ ExtrapolNoErrors
Definition
MuonTrackSegmentMatchResult.h:65
Muon::TrackSegmentMatchResult::matchChiSquared
double matchChiSquared
Definition
MuonTrackSegmentMatchResult.h:101
Generated on
for ATLAS Offline Software by
1.17.0