ATLAS Offline Software
TrigInDetEvent/src/TrigTauTracksInfo.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 
18 
20  P4PtEtaPhiM(0,0,0,0),
22  m_roiID(0),
23  m_nCoreTracks(0),
24  m_nSlowTracks(0),
25  m_nIsoTracks(0),
26  m_charge(0),
27  m_leadingTrackPt(0),
28  m_scalarPtSumCore(0),
29  m_scalarPtSumIso(0),
30  m_ptBalance(0),
31  m_tracks(0)
32 {
33  m_3fastest.setPt(0);
34  m_3fastest.setEta(0);
35  m_3fastest.setPhi(0);
36  m_3fastest.setM(0);
37 
38 }
39 
41 
42 
43 void TrigTauTracksInfo::set3fastestPtEtaPhiM(float pt, float eta, float phi, float m)
44 {
48  m_3fastest.setM( m);
49 }
50 void TrigTauTracksInfo::set3fastestPxPyPzE(float px, float py, float pz, float e)
51 {
53 }
54 
55 
56 std::string str( const TrigTauTracksInfo& tau ) {
57 
58  std::stringstream stream;
59  stream << "RoI ID: " << tau.roiId()
60  << "; pt: " << tau.pt()
61  << "; eta: " << tau.eta()
62  << "; phi: " << tau.phi()
63  << "; nCoreTracks: " << tau.nCoreTracks()
64  << "; nSlowTracks: " << tau.nSlowTracks()
65  << "; nIsoTracks: " << tau.nIsoTracks()
66  << "; charge: " << tau.charge()
67  << "; leadingTrackPt: " << tau.leadingTrackPt()
68  << "; scalarPtSumCore: " << tau.scalarPtSumCore()
69  << "; scalarPtSumIso: " << tau.scalarPtSumIso()
70  << "; ptBalance: " << tau.ptBalance()
71  << "; threeFastestTracksPt: " << tau.threeFastestTracks().pt()
72  << "; threeFastestTracksEta: " << tau.threeFastestTracks().eta()
73  << "; threeFastestTracksPhi: " << tau.threeFastestTracks().phi();
74 
75 
76  return stream.str();
77 }
78 
79 MsgStream& operator<< ( MsgStream& m, const TrigTauTracksInfo& tau ) {
80 
81  return ( m << str( tau ) );
82 
83 }
84 
85 bool operator== ( const TrigTauTracksInfo& left, const TrigTauTracksInfo& right ) {
86 
87  static const double DELTA = 0.001;
88  if( ( left.roiId() != right.roiId() ) ||
89  ( left.nCoreTracks() != right.nCoreTracks() ) ||
90  ( left.nSlowTracks() != right.nSlowTracks() ) ||
91  ( left.nIsoTracks() != right.nIsoTracks() ) ||
92 
93  ( std::abs( left.pt() - right.pt() ) > DELTA ) ||
94  ( std::abs( left.eta() - right.eta() ) > DELTA ) ||
95  ( std::abs( left.phi() - right.phi() ) > DELTA ) ||
96 
97  ( std::abs( left.charge() - right.charge() ) > DELTA ) ||
98  ( std::abs( left.leadingTrackPt() - right.leadingTrackPt() ) > DELTA ) ||
99  ( std::abs( left.scalarPtSumCore() - right.scalarPtSumCore() ) > DELTA ) ||
100  ( std::abs( left.scalarPtSumIso() - right.scalarPtSumIso() ) > DELTA ) ||
101  ( std::abs( left.ptBalance() - right.ptBalance() ) > DELTA )
102  ) {
103 
104  return false;
105 
106  } else {
107 
108  return true;
109 
110  }
111 
112 }
113 
114 void diff( const TrigTauTracksInfo& left, const TrigTauTracksInfo& right,
115  std::map< std::string, double >& varChange ) {
116 
117  static const double DELTA = 0.001;
118  if( left.roiId() != right.roiId() ) {
119  varChange[ "roiId" ] = static_cast< double >( left.roiId() - right.roiId() );
120  }
121  if( left.nCoreTracks() != right.nCoreTracks() ) {
122  varChange[ "nCoreTracks" ] = static_cast< double >( left.nCoreTracks() - right.nCoreTracks() );
123  }
124  if( left.nSlowTracks() != right.nSlowTracks() ) {
125  varChange[ "nSlowTracks" ] = static_cast< double >( left.nSlowTracks() - right.nSlowTracks() );
126  }
127  if( left.nIsoTracks() != right.nIsoTracks() ) {
128  varChange[ "nIsoTracks" ] = static_cast< double >( left.nIsoTracks() - right.nIsoTracks() );
129  }
130  if( std::abs( left.pt() - right.pt() ) > DELTA ) {
131  varChange[ "pt" ] = left.pt() - right.pt();
132  }
133  if( std::abs( left.eta() - right.eta() ) > DELTA ) {
134  varChange[ "eta" ] = left.eta() - right.eta();
135  }
136  if( std::abs( left.phi() - right.phi() ) > DELTA ) {
137  varChange[ "phi" ] = left.phi() - right.phi();
138  }
139 
140  if( std::abs( left.charge() - right.charge() ) > DELTA ) {
141  varChange[ "charge" ] = left.charge() - right.charge();
142  }
143  if( std::abs( left.leadingTrackPt() - right.leadingTrackPt() ) > DELTA ) {
144  varChange[ "leadingTrackPt" ] = left.leadingTrackPt() - right.leadingTrackPt();
145  }
146  if( left.scalarPtSumCore() != right.scalarPtSumCore() ) {
147  varChange[ "scalarPtSumCore" ] = left.scalarPtSumCore() - right.scalarPtSumCore();
148  }
149  if( left.scalarPtSumIso() != right.scalarPtSumIso() ) {
150  varChange[ "scalarPtSumIso" ] = left.scalarPtSumIso() - right.scalarPtSumIso();
151  }
152  if( left.ptBalance() != right.ptBalance() ) {
153  varChange[ "ptBalance" ] = left.ptBalance() - right.ptBalance();
154  }
155 
156  return;
157 }
I4Momentum::py
virtual double py() const =0
y component of momentum
test_pyathena.px
px
Definition: test_pyathena.py:18
str
std::string str(const TrigTauTracksInfo &tau)
Helper function for printing the object.
Definition: TrigInDetEvent/src/TrigTauTracksInfo.cxx:56
python.SystemOfUnits.m
int m
Definition: SystemOfUnits.py:91
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
TrigTauTracksInfo::threeFastestTracks
const P4PtEtaPhiM & threeFastestTracks() const
Definition: TrigTauTracksInfo.h:50
TrigTauTracksInfo::roiId
int roiId() const
getters
Definition: TrigTauTracksInfo.h:37
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
operator<<
MsgStream & operator<<(MsgStream &m, const TrigTauTracksInfo &tau)
Helper operator for printing the object.
Definition: TrigInDetEvent/src/TrigTauTracksInfo.cxx:79
TrigTauTracksInfo::nCoreTracks
int nCoreTracks() const
Definition: TrigTauTracksInfo.h:39
test_pyathena.pt
pt
Definition: test_pyathena.py:11
NavigableTerminalNode
Dummy type needed fro specialized implementation.
Definition: NavigableTerminalNode.h:19
TrigTauTracksInfo::TrigTauTracksInfo
TrigTauTracksInfo()
Constructor.
Definition: TrigInDetEvent/src/TrigTauTracksInfo.cxx:19
P4PtEtaPhiM::setM
virtual void setM(double theM)
set mass data member
Definition: P4PtEtaPhiM.h:124
AthenaPoolTestWrite.stream
string stream
Definition: AthenaPoolTestWrite.py:12
TrigTauTracksInfo::leadingTrackPt
float leadingTrackPt() const
Definition: TrigTauTracksInfo.h:44
diff
void diff(const TrigTauTracksInfo &left, const TrigTauTracksInfo &right, std::map< std::string, double > &varChange)
Comparison with feedback.
Definition: TrigInDetEvent/src/TrigTauTracksInfo.cxx:114
TrigTauTracksInfo
Definition: TrigTauTracksInfo.h:28
P4PtEtaPhiM::phi
virtual double phi() const
get phi data member
Definition: P4PtEtaPhiM.h:109
P4PtEtaPhiM::setPt
virtual void setPt(double thePt)
set pt data member
Definition: P4PtEtaPhiM.h:115
I4Momentum::pz
virtual double pz() const =0
z component of momentum
P4PtEtaPhiM::setPhi
virtual void setPhi(double thePhi)
set phi data member
Definition: P4PtEtaPhiM.h:121
P4PtEtaPhiM::set4Mom
virtual void set4Mom(const I4Momentum &theI4Mom)
set all 4-mom from another I4Momentum reference
Definition: P4PtEtaPhiM.h:127
I4Momentum::e
virtual double e() const =0
energy
TrigTauTracksInfo::set3fastestPxPyPzE
void set3fastestPxPyPzE(float px, float py, float pz, float e)
Definition: TrigInDetEvent/src/TrigTauTracksInfo.cxx:50
Amg::pz
@ pz
Definition: GeoPrimitives.h:40
P4PtEtaPhiM::m
virtual double m() const
get mass data member
Definition: P4PtEtaPhiM.h:112
P4PtEtaPhiM::setEta
virtual void setEta(double theEta)
set eta data member
Definition: P4PtEtaPhiM.h:118
TrigTauTracksInfo::charge
float charge() const
Definition: TrigTauTracksInfo.h:43
P4PtEtaPhiM::pt
virtual double pt() const
get pt data member
Definition: P4PtEtaPhiM.h:103
TrigTauTracksInfo.h
Amg::py
@ py
Definition: GeoPrimitives.h:39
P4PtEtaPhiM::eta
virtual double eta() const
get eta data member
Definition: P4PtEtaPhiM.h:106
TrigTauTracksInfo::~TrigTauTracksInfo
~TrigTauTracksInfo()
Destructor.
Definition: TrigInDetEvent/src/TrigTauTracksInfo.cxx:40
DiTauMassTools::MaxHistStrategyV2::e
e
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:26
TrigTauTracksInfo::m_3fastest
P4PtEtaPhiM m_3fastest
Definition: TrigTauTracksInfo.h:92
P4PxPyPzE
Definition: P4PxPyPzE.h:29
TrigTauTracksInfo::nIsoTracks
int nIsoTracks() const
Definition: TrigTauTracksInfo.h:41
TrigTauTracksInfo::ptBalance
float ptBalance() const
Definition: TrigTauTracksInfo.h:48
TrigTauTracksInfo::nSlowTracks
int nSlowTracks() const
Definition: TrigTauTracksInfo.h:40
operator==
bool operator==(const TrigTauTracksInfo &left, const TrigTauTracksInfo &right)
Operator comparing two TrigTauTracksInfo objects for equality.
Definition: TrigInDetEvent/src/TrigTauTracksInfo.cxx:85
TrigTauTracksInfo::scalarPtSumCore
float scalarPtSumCore() const
Definition: TrigTauTracksInfo.h:46
P4PtEtaPhiM
Definition: P4PtEtaPhiM.h:25
TrigTauTracksInfo::scalarPtSumIso
float scalarPtSumIso() const
Definition: TrigTauTracksInfo.h:47
I4Momentum::px
virtual double px() const =0
x component of momentum
TrigTauTracksInfo::set3fastestPtEtaPhiM
void set3fastestPtEtaPhiM(float pt, float eta, float phi, float m)
Definition: TrigInDetEvent/src/TrigTauTracksInfo.cxx:43