ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Trigger
TrigEvent
TrigMuonEvent
src
TrigMuonEFInfoTrack.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
/*****************************************************************************
6
Name : TrigMuonEFInfoTrack.cxx
7
Package : offline/Trigger/TrigEvent/TrigMuonEvent
8
Author : Alexander Oh
9
Created : Mar 2009
10
Note : Trigger container AOD for EF Muon (TrigMuonEFInfoTrack)
11
12
DESCRIPTION:
13
14
Mar 2009: Changed structure. TrigMuonEFInfoTrack is introduced to hold
15
Track related data. Allows multiple muons per roi.
16
*****************************************************************************/
17
18
// STL include(s):
19
#include <sstream>
20
21
// Gaudi/Athena include(s):
22
#include "GaudiKernel/MsgStream.h"
23
24
// Local include(s):
25
#include "
TrigMuonEvent/TrigMuonEFInfoTrack.h
"
26
#include "
TrigMuonEvent/TrigMuonEFTrack.h
"
27
#include "
TrigMuonEvent/TrigMuonEFCbTrack.h
"
28
29
TrigMuonEFInfoTrack::TrigMuonEFInfoTrack
()
30
{
31
m_spectrometerTrack
=
new
TrigMuonEFTrack
();
32
m_extrapolatedTrack
=
new
TrigMuonEFTrack
();
33
m_combinedTrack
=
new
TrigMuonEFCbTrack
();
34
m_muonType
=
MuonTypeEFMuon
;
35
}
36
37
TrigMuonEFInfoTrack::TrigMuonEFInfoTrack
(
const
TrigMuonEFInfoTrack
& rhs ) :
38
39
m_spectrometerTrack
( new
TrigMuonEFTrack
( *rhs.
m_spectrometerTrack
)),
40
m_extrapolatedTrack
( new
TrigMuonEFTrack
(*rhs.
m_extrapolatedTrack
)),
41
m_combinedTrack
( new
TrigMuonEFCbTrack
( *rhs.
m_combinedTrack
)),
42
m_muonType
( rhs.
m_muonType
)
43
{ }
44
45
TrigMuonEFInfoTrack
&
TrigMuonEFInfoTrack::operator=
(
const
TrigMuonEFInfoTrack
& rhs )
46
{
47
if
(
this
!= &rhs ) {
48
delete
m_spectrometerTrack
;
49
delete
m_extrapolatedTrack
;
50
delete
m_combinedTrack
;
51
52
m_spectrometerTrack
=
new
TrigMuonEFTrack
( *rhs.
m_spectrometerTrack
);
53
m_extrapolatedTrack
=
new
TrigMuonEFTrack
( *rhs.
m_extrapolatedTrack
);
54
m_combinedTrack
=
new
TrigMuonEFCbTrack
( *rhs.
m_combinedTrack
);
55
m_muonType
= rhs.
m_muonType
;
56
}
57
return
*
this
;
58
}
59
60
TrigMuonEFInfoTrack::~TrigMuonEFInfoTrack
()
61
{
62
delete
m_spectrometerTrack
;
63
delete
m_extrapolatedTrack
;
64
delete
m_combinedTrack
;
65
}
66
67
68
void
TrigMuonEFInfoTrack::setSpectrometerTrack
(
TrigMuonEFTrack
* track )
69
{
70
*
m_spectrometerTrack
= *track;
71
}
72
73
void
TrigMuonEFInfoTrack::setExtrapolatedTrack
(
TrigMuonEFTrack
* track )
74
{
75
*
m_extrapolatedTrack
= *track;
76
}
77
78
void
TrigMuonEFInfoTrack::setCombinedTrack
(
TrigMuonEFCbTrack
* track )
79
{
80
*
m_combinedTrack
= *track;
81
}
82
83
void
TrigMuonEFInfoTrack::setSpectrometerTrack
( std::unique_ptr<TrigMuonEFTrack> track )
84
{
85
delete
m_spectrometerTrack
;
86
m_spectrometerTrack
= track.release();
87
}
88
89
void
TrigMuonEFInfoTrack::setExtrapolatedTrack
( std::unique_ptr<TrigMuonEFTrack> track )
90
{
91
delete
m_extrapolatedTrack
;
92
m_extrapolatedTrack
= track.release();
93
}
94
95
void
TrigMuonEFInfoTrack::setCombinedTrack
( std::unique_ptr<TrigMuonEFCbTrack> track )
96
{
97
delete
m_combinedTrack
;
98
m_combinedTrack
= track.release();
99
}
100
101
bool
TrigMuonEFInfoTrack::hasSpectrometerTrack
()
const
{
102
if
(
m_spectrometerTrack
!=0 &&
m_spectrometerTrack
->charge()!=
m_spectrometerTrack
->CHARGE_NA) {
103
return
true
;
104
}
105
else
{
106
return
false
;
107
}
108
109
}
110
111
bool
TrigMuonEFInfoTrack::hasCombinedTrack
()
const
{
112
if
(
m_combinedTrack
!=0 &&
m_combinedTrack
->charge()!=
m_combinedTrack
->CHARGE_NA) {
113
return
true
;
114
}
115
else
{
116
return
false
;
117
}
118
119
}
120
121
bool
TrigMuonEFInfoTrack::hasExtrapolatedTrack
()
const
{
122
if
(
m_extrapolatedTrack
!=0 &&
m_extrapolatedTrack
->charge()!=
m_extrapolatedTrack
->CHARGE_NA) {
123
return
true
;
124
}
125
else
{
126
return
false
;
127
}
128
129
}
130
131
133
// helper operators
134
135
std::string
str
(
const
TrigMuonEFInfoTrack
& d ) {
136
std::stringstream
ss
;
137
ss
138
<<
"; muon type: "
<< d.MuonType()
139
<<
"; spectrometer track: "
<< d.SpectrometerTrack()
140
<<
"; extrapolated track: "
<< d.ExtrapolatedTrack()
141
<<
"; combined track: "
<< d.CombinedTrack()
142
<<
"\nspectrometer track: "
<< *(d.SpectrometerTrack())
143
<<
"\nextrapolated track: "
<< *(d.ExtrapolatedTrack())
144
<<
"\ncombined track: "
<< *(d.CombinedTrack());
145
return
ss
.str();
146
}
147
148
MsgStream&
operator<<
( MsgStream& m,
const
TrigMuonEFInfoTrack
& d ) {
149
return
( m <<
str
( d ) );
150
}
151
152
bool
operator==
(
const
TrigMuonEFInfoTrack
&
a
,
const
TrigMuonEFInfoTrack
& b ) {
153
154
if
( *(
a
.SpectrometerTrack()) != *(b.SpectrometerTrack()))
155
return
false
;
156
if
( *(
a
.ExtrapolatedTrack()) != *(b.ExtrapolatedTrack()))
157
return
false
;
158
if
( *(
a
.CombinedTrack()) != *(b.CombinedTrack()))
159
return
false
;
160
if
(
a
.MuonType() != b.MuonType())
161
return
false
;
162
163
return
true
;
164
}
165
166
void
diff
(
const
TrigMuonEFInfoTrack
&
a
,
const
TrigMuonEFInfoTrack
& b,
167
std::map<std::string, double>& variableChange ) {
168
diff
( *(
a
.SpectrometerTrack() ), *( b.SpectrometerTrack() ), variableChange );
169
diff
( *(
a
.ExtrapolatedTrack() ), *( b.ExtrapolatedTrack() ), variableChange );
170
diff
( *(
a
.CombinedTrack() ), *( b.CombinedTrack() ), variableChange );
171
if
(
a
.MuonType() != b.MuonType() ) {
172
variableChange[
"MuonType"
] =
a
.MuonType() - b.MuonType();
173
}
174
return
;
175
}
a
static Double_t a
Definition
LArPhysWaveHECTool.cxx:38
ss
static Double_t ss
Definition
LArPhysWaveHECTool.cxx:37
TrigMuonEFCbTrack.h
operator<<
MsgStream & operator<<(MsgStream &m, const TrigMuonEFInfoTrack &d)
Definition
TrigMuonEFInfoTrack.cxx:148
operator==
bool operator==(const TrigMuonEFInfoTrack &a, const TrigMuonEFInfoTrack &b)
Definition
TrigMuonEFInfoTrack.cxx:152
diff
void diff(const TrigMuonEFInfoTrack &a, const TrigMuonEFInfoTrack &b, std::map< std::string, double > &variableChange)
comparison with feedback Function compares two objects and returns "semi verbose" output in the form ...
Definition
TrigMuonEFInfoTrack.cxx:166
TrigMuonEFInfoTrack.h
TrigMuonEFTrack.h
TrigMuonEFCbTrack
Definition
TrigMuonEFCbTrack.h:28
TrigMuonEFInfoTrack
Definition
TrigMuonEFInfoTrack.h:22
TrigMuonEFInfoTrack::~TrigMuonEFInfoTrack
~TrigMuonEFInfoTrack()
Destructor.
Definition
TrigMuonEFInfoTrack.cxx:60
TrigMuonEFInfoTrack::TrigMuonEFInfoTrack
TrigMuonEFInfoTrack()
Default constructor.
Definition
TrigMuonEFInfoTrack.cxx:29
TrigMuonEFInfoTrack::m_spectrometerTrack
TrigMuonEFTrack * m_spectrometerTrack
Definition
TrigMuonEFInfoTrack.h:70
TrigMuonEFInfoTrack::m_muonType
unsigned short int m_muonType
Definition
TrigMuonEFInfoTrack.h:73
TrigMuonEFInfoTrack::setExtrapolatedTrack
void setExtrapolatedTrack(TrigMuonEFTrack *track)
Definition
TrigMuonEFInfoTrack.cxx:73
TrigMuonEFInfoTrack::hasSpectrometerTrack
bool hasSpectrometerTrack() const
Definition
TrigMuonEFInfoTrack.cxx:101
TrigMuonEFInfoTrack::setSpectrometerTrack
void setSpectrometerTrack(TrigMuonEFTrack *track)
Definition
TrigMuonEFInfoTrack.cxx:68
TrigMuonEFInfoTrack::hasExtrapolatedTrack
bool hasExtrapolatedTrack() const
Definition
TrigMuonEFInfoTrack.cxx:121
TrigMuonEFInfoTrack::hasCombinedTrack
bool hasCombinedTrack() const
Definition
TrigMuonEFInfoTrack.cxx:111
TrigMuonEFInfoTrack::operator=
TrigMuonEFInfoTrack & operator=(const TrigMuonEFInfoTrack &rhs)
Assignement operator.
Definition
TrigMuonEFInfoTrack.cxx:45
TrigMuonEFInfoTrack::MuonTypeEFMuon
static const int MuonTypeEFMuon
Definition
TrigMuonEFInfoTrack.h:25
TrigMuonEFInfoTrack::setCombinedTrack
void setCombinedTrack(TrigMuonEFCbTrack *track)
Definition
TrigMuonEFInfoTrack.cxx:78
TrigMuonEFInfoTrack::m_combinedTrack
TrigMuonEFCbTrack * m_combinedTrack
Definition
TrigMuonEFInfoTrack.h:72
TrigMuonEFInfoTrack::m_extrapolatedTrack
TrigMuonEFTrack * m_extrapolatedTrack
Definition
TrigMuonEFInfoTrack.h:71
TrigMuonEFTrack
Definition
TrigMuonEFTrack.h:27
str
Definition
BTagTrackIpAccessor.cxx:11
Generated on
for ATLAS Offline Software by
1.17.0