ATLAS Offline Software
Loading...
Searching...
No Matches
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/*****************************************************************************
6Name : TrigMuonEFInfoTrack.cxx
7Package : offline/Trigger/TrigEvent/TrigMuonEvent
8Author : Alexander Oh
9Created : Mar 2009
10Note : Trigger container AOD for EF Muon (TrigMuonEFInfoTrack)
11
12DESCRIPTION:
13
14Mar 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):
28
36
44
59
66
67
72
77
82
83void TrigMuonEFInfoTrack::setSpectrometerTrack( std::unique_ptr<TrigMuonEFTrack> track )
84{
86 m_spectrometerTrack = track.release();
87}
88
89void TrigMuonEFInfoTrack::setExtrapolatedTrack( std::unique_ptr<TrigMuonEFTrack> track )
90{
92 m_extrapolatedTrack = track.release();
93}
94
95void TrigMuonEFInfoTrack::setCombinedTrack( std::unique_ptr<TrigMuonEFCbTrack> track )
96{
97 delete m_combinedTrack;
98 m_combinedTrack = track.release();
99}
100
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
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
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
135std::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
148MsgStream& operator<< ( MsgStream& m, const TrigMuonEFInfoTrack& d ) {
149 return ( m << str( d ) );
150}
151
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
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}
static Double_t a
static Double_t ss
MsgStream & operator<<(MsgStream &m, const TrigMuonEFInfoTrack &d)
bool operator==(const TrigMuonEFInfoTrack &a, const TrigMuonEFInfoTrack &b)
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 ...
TrigMuonEFInfoTrack()
Default constructor.
TrigMuonEFTrack * m_spectrometerTrack
unsigned short int m_muonType
void setExtrapolatedTrack(TrigMuonEFTrack *track)
void setSpectrometerTrack(TrigMuonEFTrack *track)
TrigMuonEFInfoTrack & operator=(const TrigMuonEFInfoTrack &rhs)
Assignement operator.
static const int MuonTypeEFMuon
void setCombinedTrack(TrigMuonEFCbTrack *track)
TrigMuonEFCbTrack * m_combinedTrack
TrigMuonEFTrack * m_extrapolatedTrack