ATLAS Offline Software
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):
28 
30 {
35 }
36 
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 
46 {
47  if ( this != &rhs ) {
48  delete m_spectrometerTrack;
49  delete m_extrapolatedTrack;
50  delete m_combinedTrack;
51 
55  m_muonType = rhs.m_muonType;
56  }
57  return *this;
58 }
59 
61 {
62  delete m_spectrometerTrack;
63  delete m_extrapolatedTrack;
64  delete m_combinedTrack;
65 }
66 
67 
69 {
71 }
72 
74 {
76 }
77 
79 {
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 
103  return true;
104  }
105  else {
106  return false;
107  }
108 
109 }
110 
113  return true;
114  }
115  else {
116  return false;
117  }
118 
119 }
120 
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 
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 }
TrigMuonEFInfoTrack::TrigMuonEFInfoTrack
TrigMuonEFInfoTrack()
Default constructor.
Definition: TrigMuonEFInfoTrack.cxx:29
TrigMuonEFInfoTrack::operator=
TrigMuonEFInfoTrack & operator=(const TrigMuonEFInfoTrack &rhs)
Assignement operator.
Definition: TrigMuonEFInfoTrack.cxx:45
TrigMuonEFTrack::charge
double charge() const
Definition: TrigMuonEFTrack.h:52
python.SystemOfUnits.m
int m
Definition: SystemOfUnits.py:91
PowhegControl_ttHplus_NLO.ss
ss
Definition: PowhegControl_ttHplus_NLO.py:83
TrigMuonEFInfoTrack::setSpectrometerTrack
void setSpectrometerTrack(TrigMuonEFTrack *track)
Definition: TrigMuonEFInfoTrack.cxx:68
TrigMuonEFTrack
Definition: TrigMuonEFTrack.h:27
hist_file_dump.d
d
Definition: hist_file_dump.py:137
TrigMuonEFInfoTrack::hasExtrapolatedTrack
bool hasExtrapolatedTrack() const
Definition: TrigMuonEFInfoTrack.cxx:121
CSV_InDetExporter.new
new
Definition: CSV_InDetExporter.py:145
TrigMuonEFCbTrack.h
TrigMuonEFInfoTrack::setCombinedTrack
void setCombinedTrack(TrigMuonEFCbTrack *track)
Definition: TrigMuonEFInfoTrack.cxx:78
TrigMuonEFTrack.h
TrigMuonEFInfoTrack::setExtrapolatedTrack
void setExtrapolatedTrack(TrigMuonEFTrack *track)
Definition: TrigMuonEFInfoTrack.cxx:73
TrigMuonEFInfoTrack.h
TrigMuonEFInfoTrack::m_combinedTrack
TrigMuonEFCbTrack * m_combinedTrack
Definition: TrigMuonEFInfoTrack.h:72
TrigMuonEFInfoTrack::hasSpectrometerTrack
bool hasSpectrometerTrack() const
Definition: TrigMuonEFInfoTrack.cxx:101
operator<<
MsgStream & operator<<(MsgStream &m, const TrigMuonEFInfoTrack &d)
Definition: TrigMuonEFInfoTrack.cxx:148
TrigMuonEFInfoTrack::~TrigMuonEFInfoTrack
~TrigMuonEFInfoTrack()
Destructor.
Definition: TrigMuonEFInfoTrack.cxx:60
TrigMuonEFInfoTrack::m_muonType
unsigned short int m_muonType
Definition: TrigMuonEFInfoTrack.h:73
str
std::string str(const TrigMuonEFInfoTrack &d)
Definition: TrigMuonEFInfoTrack.cxx:135
TrigMuonEFInfoTrack::m_extrapolatedTrack
TrigMuonEFTrack * m_extrapolatedTrack
Definition: TrigMuonEFInfoTrack.h:71
TrigMuonEFCbTrack
Definition: TrigMuonEFCbTrack.h:28
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
TrigMuonEFInfoTrack::hasCombinedTrack
bool hasCombinedTrack() const
Definition: TrigMuonEFInfoTrack.cxx:111
TrigMuonEFTrack::CHARGE_NA
static const int CHARGE_NA
Definition: TrigMuonEFTrack.h:46
TrigMuonEFInfoTrack
Definition: TrigMuonEFInfoTrack.h:22
a
TList * a
Definition: liststreamerinfos.cxx:10
TrigMuonEFInfoTrack::m_spectrometerTrack
TrigMuonEFTrack * m_spectrometerTrack
Definition: TrigMuonEFInfoTrack.h:70
operator==
bool operator==(const TrigMuonEFInfoTrack &a, const TrigMuonEFInfoTrack &b)
Definition: TrigMuonEFInfoTrack.cxx:152
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
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::MuonTypeEFMuon
static const int MuonTypeEFMuon
Definition: TrigMuonEFInfoTrack.h:25