ATLAS Offline Software
IsoMuonFeature.h
Go to the documentation of this file.
1 // Dear emacs, this is -*- c++ -*-
2 
3 /*
4  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
5 */
6 
7 /*******************************************************
8 
9 NAME: IsoMuonFeature.h
10 PACKAGE: Trigger/TrigEvent/TrigMuonEvent
11 AUTHORS: Stefano Giagu <stefano.giagu@cern.ch>
12 PURPOSE: Keep the important output variables
13  from the muon isolation trigger.
14 DATE: V4.0 May 5th, 2008
15 
16 ******************************************************/
17 #ifndef TRIGMUONEVENT_ISO_MUON_FEATURE_H
18 #define TRIGMUONEVENT_ISO_MUON_FEATURE_H
19 
20 // STL include(s):
21 #include <iostream>
22 #include <vector>
23 #include <map>
24 #include <string>
25 #include <cmath>
26 
27 // Gaudi/Athena include(s):
28 #include "AthenaKernel/CLASS_DEF.h"
34 
35 // Forward declaration(s):
36 class MsgStream;
37 
41  public NavigableTerminalNode,
42  virtual public INavigable4Momentum {
43 
44 public:
45 
48 
50  ~IsoMuonFeature ();
51 
53  IsoMuonFeature ( const IsoMuonFeature* mfeature ) ;
55  IsoMuonFeature ( const IsoMuonFeature& mfeature ) ;
57  IsoMuonFeature& operator=(const IsoMuonFeature& mfeature);
58 
59  // Print out variables for Debug
61  void print ( void );
63  void print ( MsgStream& log );
64 
65  //Ovveride pure virtual methods
66  double pt(void) const {return fabs(m_PtMu); }
67  double ptq(void) const {return fabs(m_QMu)>0?m_PtMu*m_QMu:m_PtMu; }
68  double charge(void) const {return fabs(m_QMu)>0?m_QMu:(m_PtMu>0?1.0:-1.0); }
69  double eta(void) const {return m_EtaMu; }
70  double phi(void) const {return m_PhiMu; }
71  double m(void) const {return ParticleConstants::muonMassInMeV;}
72 
73  //Setters
75  inline void setCaloInfos(float e01, float e02, float e03, float e04) {
76  m_sumet01 = e01;
77  m_sumet02 = e02;
78  m_sumet03 = e03;
79  m_sumet04 = e04;
80  };
82  inline void setTrackInfos(float p01, float p02, float p03, float p04, float pmu, float pmax) {
83  m_sumpt01 = p01;
84  m_sumpt02 = p02;
85  m_sumpt03 = p03;
86  m_sumpt04 = p04;
87  m_PtMuID = pmu;
88  m_MaxPtID = pmax;
89  };
91  inline void setRoiMu(int id, float pt, float eta, float phi, int fl) {
92  m_RoiIdMu = id;
93  m_PtMu = fabs(pt);
94  if (pt > 0) m_QMu = 1.0;
95  else if (pt < 0) m_QMu = -1.0;
96  else m_QMu = 0.0;
97  m_EtaMu = eta;
98  m_PhiMu = phi;
99  m_flag = fl;
100  };
101  inline void setRoiMu(int id, float pt, float eta, float phi, float charge, int fl) {
102  m_RoiIdMu = id;
103  m_PtMu = fabs(pt);
104  m_QMu = charge;
105  m_EtaMu = eta;
106  m_PhiMu = phi;
107  m_flag = fl;
108  };
109 
110  //Getters
116 
118  inline float getsumpt01 () const { return m_SumPtTracksCone>0?0.0:m_sumpt01; };
119  inline float getsumpt02 () const { return m_SumPtTracksCone>0?m_SumPtTracksCone:m_sumpt02; };
120  inline float getsumpt03 () const { return m_SumPtTracksCone>0?m_SumPtTracksCone:m_sumpt03; };
121  inline float getsumpt04 () const { return m_SumPtTracksCone>0?m_SumPtTracksCone:m_sumpt04; };
122 
124  inline float getPtMuID() const { return m_PtMuTracksCone>0?m_PtMuTracksCone:m_PtMuID; };
126  inline float getMaxPtID() const { return m_MaxPtID; };
127 
128  inline int getFlag() const { return m_flag; };
129 
131  int iso_strategy(void) const;
133  int iso_errorFlag(void) const;
134 
136  inline int getRoiIdMu() const { return m_RoiIdMu; };
138  inline float getPtMu() const { return fabs(m_QMu)>0?m_PtMu*m_QMu:m_PtMu; };
140  inline float getQMu() const { return fabs(m_QMu)>0?m_QMu:(m_PtMu>0?1.0:-1.0); };
142  inline float getEtaMu() const { return m_EtaMu; };
144  inline float getPhiMu() const { return m_PhiMu; };
145 
146  //Obsolete (for backward compatibility)
147  inline float getEtInnerConeEC () const { return fabs(m_EtInnerConeEC)>0?m_EtInnerConeEC:0.0; };
148  inline float getEtOuterConeEC () const { return fabs(m_EtOuterConeEC)>0?m_EtOuterConeEC:m_sumet02; };
149  inline float getEtInnerConeHC () const { return fabs(m_EtInnerConeHC)>0?m_EtInnerConeHC:0.0; };
150  inline float getEtOuterConeHC () const { return fabs(m_EtOuterConeHC)>0?m_EtOuterConeHC:0.0; };
151  inline int getNTracksCone() const { return m_NTracksCone>0?m_NTracksCone%100000:0; };
153  inline float getPtMuTracksCone() const { return m_PtMuTracksCone>0?m_PtMuTracksCone:m_PtMuID; };
154  inline float getLArWeight() const { return m_LAr_w; }
155  inline float getTileWeight() const { return m_Tile_w; }
156 
157 private:
158  friend class IsoMuonFeatureCnv_p1;
159  friend class IsoMuonFeatureCnv_p2;
160  friend class IsoMuonFeatureCnv_p3;
161 
163  float m_sumet01{};
164  float m_sumet02{};
165  float m_sumet03{};
166  float m_sumet04{};
167 
169  float m_sumpt01{};
170  float m_sumpt02{};
171  float m_sumpt03{};
172  float m_sumpt04{};
173 
175  float m_PtMuID{};
177  float m_MaxPtID{};
178 
179  int m_flag{};
180 
181  // Muon info
183  int m_RoiIdMu{};
185  float m_PtMu{};
187  float m_QMu{};
189  float m_EtaMu{};
191  float m_PhiMu{};
192 
193  //obsolete
201  float m_LAr_w{};
202  float m_Tile_w{};
203 
204 };
205 
207 std::string str( const IsoMuonFeature& d );
209 MsgStream& operator<< ( MsgStream& m, const IsoMuonFeature& d );
210 
212 bool operator== ( const IsoMuonFeature& a, const IsoMuonFeature& b );
214 inline bool operator!= ( const IsoMuonFeature& a, const IsoMuonFeature& b ) {
215  return !( a == b );
216 }
217 
219 void diff( const IsoMuonFeature& a, const IsoMuonFeature& b,
220  std::map< std::string, double >& variableChange );
221 
222 CLASS_DEF( IsoMuonFeature , 110010498 , 1 )
223 CLASS_DEF( DataVector<IsoMuonFeature> , 247013301 , 1 )
224 
225 
226 #endif // TRIGMUONEVENT_ISO_MUON_FEATURE_H
IsoMuonFeature::m_NTracksCone
int m_NTracksCone
Definition: IsoMuonFeature.h:198
IsoMuonFeatureCnv_p2
Definition: IsoMuonFeatureCnv_p2.h:26
IsoMuonFeature::m_EtOuterConeEC
float m_EtOuterConeEC
Definition: IsoMuonFeature.h:195
IsoMuonFeature::getsumet01
float getsumet01() const
Get Transverse Energy sum in cone.
Definition: IsoMuonFeature.h:112
IsoMuonFeature::m_QMu
float m_QMu
Muon Charge.
Definition: IsoMuonFeature.h:187
IsoMuonFeature::getsumet03
float getsumet03() const
Definition: IsoMuonFeature.h:114
IsoMuonFeature::getEtInnerConeEC
float getEtInnerConeEC() const
Definition: IsoMuonFeature.h:147
P4PtEtaPhiMBase.h
IsoMuonFeature::getsumpt02
float getsumpt02() const
Definition: IsoMuonFeature.h:119
IsoMuonFeature::getLArWeight
float getLArWeight() const
Definition: IsoMuonFeature.h:154
IsoMuonFeature::iso_strategy
int iso_strategy(void) const
Get Isolation strategy (1->CombinedMuon seeded, 2->muFast Muon seeded, 3->L1 muon seeded)
Definition: IsoMuonFeature.cxx:57
IsoMuonFeature::phi
double phi(void) const
phi in [-pi,pi[
Definition: IsoMuonFeature.h:70
IsoMuonFeature::m_PtMuTracksCone
float m_PtMuTracksCone
Definition: IsoMuonFeature.h:200
INavigable4Momentum.h
hist_file_dump.d
d
Definition: hist_file_dump.py:142
IsoMuonFeature::getNTracksCone
int getNTracksCone() const
Definition: IsoMuonFeature.h:151
ParticleConstants::PDG2011::muonMassInMeV
constexpr double muonMassInMeV
the mass of the muon (in MeV)
Definition: ParticleConstants.h:29
IsoMuonFeature::setTrackInfos
void setTrackInfos(float p01, float p02, float p03, float p04, float pmu, float pmax)
Set Tracks infos.
Definition: IsoMuonFeature.h:82
IsoMuonFeature::getTileWeight
float getTileWeight() const
Definition: IsoMuonFeature.h:155
NavigableTerminalNode
Dummy type needed fro specialized implementation.
Definition: NavigableTerminalNode.h:19
IsoMuonFeature::setCaloInfos
void setCaloInfos(float e01, float e02, float e03, float e04)
Set calorimetric infos.
Definition: IsoMuonFeature.h:75
IsoMuonFeature::m_RoiIdMu
int m_RoiIdMu
ROI ID.
Definition: IsoMuonFeature.h:183
IsoMuonFeature::getsumet02
float getsumet02() const
Definition: IsoMuonFeature.h:113
IsoMuonFeature::getPtMu
float getPtMu() const
Get Muon Pt.
Definition: IsoMuonFeature.h:138
IsoMuonFeature::m_sumpt03
float m_sumpt03
Definition: IsoMuonFeature.h:171
IsoMuonFeature::charge
double charge(void) const
Definition: IsoMuonFeature.h:68
IsoMuonFeature::~IsoMuonFeature
~IsoMuonFeature()
Destructor.
Definition: IsoMuonFeature.cxx:31
IsoMuonFeature::getPtMuID
float getPtMuID() const
Get Pt of charged track associated to muon.
Definition: IsoMuonFeature.h:124
IsoMuonFeature::m_sumpt01
float m_sumpt01
Track based isolation.
Definition: IsoMuonFeature.h:169
IsoMuonFeature::m_sumet01
float m_sumet01
Calo based isolation.
Definition: IsoMuonFeature.h:163
operator!=
bool operator!=(const IsoMuonFeature &a, const IsoMuonFeature &b)
Operator comparing two IsoMuonFeature objects for inequality.
Definition: IsoMuonFeature.h:214
IsoMuonFeatureCnv_p3
Definition: IsoMuonFeatureCnv_p3.h:26
IsoMuonFeature::getRoiIdMu
int getRoiIdMu() const
Get Muon RoI Id.
Definition: IsoMuonFeature.h:136
IsoMuonFeature::m_flag
int m_flag
Definition: IsoMuonFeature.h:179
IsoMuonFeature::getEtaMu
float getEtaMu() const
Get Muon Eta.
Definition: IsoMuonFeature.h:142
IsoMuonFeature::setRoiMu
void setRoiMu(int id, float pt, float eta, float phi, float charge, int fl)
Definition: IsoMuonFeature.h:101
IsoMuonFeature::m_PhiMu
float m_PhiMu
Muon Phi.
Definition: IsoMuonFeature.h:191
IsoMuonFeature::m_EtaMu
float m_EtaMu
Muon Eta.
Definition: IsoMuonFeature.h:189
ParticleConstants.h
IsoMuonFeature::getSumPtTracksCone
float getSumPtTracksCone() const
Definition: IsoMuonFeature.h:152
IsoMuonFeature::ptq
double ptq(void) const
Definition: IsoMuonFeature.h:67
diff
void diff(const IsoMuonFeature &a, const IsoMuonFeature &b, std::map< std::string, double > &variableChange)
Comparison with feedback.
Definition: IsoMuonFeature.cxx:239
IsoMuonFeature::getPtMuTracksCone
float getPtMuTracksCone() const
Definition: IsoMuonFeature.h:153
IsoMuonFeature::setRoiMu
void setRoiMu(int id, float pt, float eta, float phi, int fl)
Set Muon Roi.
Definition: IsoMuonFeature.h:91
operator<<
MsgStream & operator<<(MsgStream &m, const IsoMuonFeature &d)
Helper operator for printing the object.
Definition: IsoMuonFeature.cxx:187
IsoMuonFeature::getPhiMu
float getPhiMu() const
Get Muon Phi.
Definition: IsoMuonFeature.h:144
DataVector
Derived DataVector<T>.
Definition: DataVector.h:794
IsoMuonFeature::m
double m(void) const
mass
Definition: IsoMuonFeature.h:71
IsoMuonFeature::m_sumet02
float m_sumet02
Definition: IsoMuonFeature.h:164
IsoMuonFeature::m_Tile_w
float m_Tile_w
Definition: IsoMuonFeature.h:202
IsoMuonFeature::print
void print(void)
Prints out cluster variables to std::cout.
Definition: IsoMuonFeature.cxx:120
IsoMuonFeature::operator=
IsoMuonFeature & operator=(const IsoMuonFeature &mfeature)
Assignement operator.
Definition: IsoMuonFeature.cxx:35
IsoMuonFeature::m_sumpt02
float m_sumpt02
Definition: IsoMuonFeature.h:170
P4PtEtaPhiMBase
Definition: P4PtEtaPhiMBase.h:26
id
SG::auxid_t id
Definition: Control/AthContainers/Root/debug.cxx:239
NavigableTerminalNode.h
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:76
IsoMuonFeature::getEtOuterConeEC
float getEtOuterConeEC() const
Definition: IsoMuonFeature.h:148
IsoMuonFeature::m_MaxPtID
float m_MaxPtID
pt of highest pt track in cone (excluded the one associated to the muon)
Definition: IsoMuonFeature.h:177
IsoMuonFeature::getsumpt04
float getsumpt04() const
Definition: IsoMuonFeature.h:121
IsoMuonFeature
Class with isolation variables for TrigmuIso algorithm.
Definition: IsoMuonFeature.h:42
IsoMuonFeature::m_sumet04
float m_sumet04
Definition: IsoMuonFeature.h:166
IsoMuonFeature::iso_errorFlag
int iso_errorFlag(void) const
Get Error Flag.
Definition: IsoMuonFeature.cxx:66
IsoMuonFeature::m_PtMu
float m_PtMu
Muon Pt.
Definition: IsoMuonFeature.h:185
IsoMuonFeature::m_EtInnerConeEC
float m_EtInnerConeEC
Definition: IsoMuonFeature.h:194
DataVector.h
An STL vector of pointers that by default owns its pointed-to elements.
IsoMuonFeature::getsumpt01
float getsumpt01() const
Get Transverse Pt sum in cone.
Definition: IsoMuonFeature.h:118
a
TList * a
Definition: liststreamerinfos.cxx:10
IsoMuonFeature::getEtInnerConeHC
float getEtInnerConeHC() const
Definition: IsoMuonFeature.h:149
IsoMuonFeature::m_SumPtTracksCone
float m_SumPtTracksCone
Definition: IsoMuonFeature.h:199
IsoMuonFeature::m_sumet03
float m_sumet03
Definition: IsoMuonFeature.h:165
IsoMuonFeature::m_sumpt04
float m_sumpt04
Definition: IsoMuonFeature.h:172
IsoMuonFeature::m_EtInnerConeHC
float m_EtInnerConeHC
Definition: IsoMuonFeature.h:196
IsoMuonFeatureCnv_p1
Definition: IsoMuonFeatureCnv_p1.h:26
INavigable4Momentum
Definition: INavigable4Momentum.h:21
CLASS_DEF
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
Definition: Control/AthenaKernel/AthenaKernel/CLASS_DEF.h:67
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
IsoMuonFeature::m_LAr_w
float m_LAr_w
Definition: IsoMuonFeature.h:201
IsoMuonFeature::getMaxPtID
float getMaxPtID() const
Get Pt of max pt ID track in cone (muon excluded)
Definition: IsoMuonFeature.h:126
IsoMuonFeature::IsoMuonFeature
IsoMuonFeature()
Constructor.
Definition: IsoMuonFeature.cxx:29
IsoMuonFeature::getsumpt03
float getsumpt03() const
Definition: IsoMuonFeature.h:120
IsoMuonFeature::getEtOuterConeHC
float getEtOuterConeHC() const
Definition: IsoMuonFeature.h:150
operator==
bool operator==(const IsoMuonFeature &a, const IsoMuonFeature &b)
Operator comparing two IsoMuonFeature objects for equality.
Definition: IsoMuonFeature.cxx:192
IsoMuonFeature::getsumet04
float getsumet04() const
Definition: IsoMuonFeature.h:115
IsoMuonFeature::eta
double eta(void) const
pseudo rapidity
Definition: IsoMuonFeature.h:69
CLASS_DEF.h
macros to associate a CLID to a type
IsoMuonFeature::m_PtMuID
float m_PtMuID
Pt of charged track associated to the muon.
Definition: IsoMuonFeature.h:175
IsoMuonFeature::getFlag
int getFlag() const
Definition: IsoMuonFeature.h:128
IsoMuonFeature::pt
double pt(void) const
transverse momentum
Definition: IsoMuonFeature.h:66
IsoMuonFeature::getQMu
float getQMu() const
Get Muon Q.
Definition: IsoMuonFeature.h:140
IsoMuonFeature::m_EtOuterConeHC
float m_EtOuterConeHC
Definition: IsoMuonFeature.h:197
python.SystemOfUnits.m
float m
Definition: SystemOfUnits.py:106
str
std::string str(const IsoMuonFeature &d)
Helper function for printing the object.
Definition: IsoMuonFeature.cxx:164