ATLAS Offline Software
Loading...
Searching...
No Matches
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
9NAME: IsoMuonFeature.h
10PACKAGE: Trigger/TrigEvent/TrigMuonEvent
11AUTHORS: Stefano Giagu <stefano.giagu@cern.ch>
12PURPOSE: Keep the important output variables
13 from the muon isolation trigger.
14DATE: 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):
34
35// Forward declaration(s):
36class MsgStream;
37
42 virtual public INavigable4Momentum {
43
44public:
45
48
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 };
81
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 };
90
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; };
154 inline float getLArWeight() const { return m_LAr_w; }
155 inline float getTileWeight() const { return m_Tile_w; }
156
157private:
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
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
207std::string str( const IsoMuonFeature& d );
209MsgStream& operator<< ( MsgStream& m, const IsoMuonFeature& d );
210
212bool operator== ( const IsoMuonFeature& a, const IsoMuonFeature& b );
214inline bool operator!= ( const IsoMuonFeature& a, const IsoMuonFeature& b ) {
215 return !( a == b );
216}
217
219void diff( const IsoMuonFeature& a, const IsoMuonFeature& b,
220 std::map< std::string, double >& variableChange );
221
222CLASS_DEF( IsoMuonFeature , 110010498 , 1 )
223CLASS_DEF( DataVector<IsoMuonFeature> , 247013301 , 1 )
224
225
226#endif // TRIGMUONEVENT_ISO_MUON_FEATURE_H
macros to associate a CLID to a type
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
An STL vector of pointers that by default owns its pointed-to elements.
bool operator==(const IsoMuonFeature &a, const IsoMuonFeature &b)
Operator comparing two IsoMuonFeature objects for equality.
void diff(const IsoMuonFeature &a, const IsoMuonFeature &b, std::map< std::string, double > &variableChange)
Comparison with feedback.
MsgStream & operator<<(MsgStream &m, const IsoMuonFeature &d)
Helper operator for printing the object.
bool operator!=(const IsoMuonFeature &a, const IsoMuonFeature &b)
Operator comparing two IsoMuonFeature objects for inequality.
static Double_t a
A number of constexpr particle constants to avoid hardcoding them directly in various places.
Derived DataVector<T>.
Definition DataVector.h:795
Class with isolation variables for TrigmuIso algorithm.
friend class IsoMuonFeatureCnv_p1
float getsumpt04() const
float m_MaxPtID
pt of highest pt track in cone (excluded the one associated to the muon)
void setCaloInfos(float e01, float e02, float e03, float e04)
Set calorimetric infos.
float getEtInnerConeEC() const
~IsoMuonFeature()
Destructor.
float m_QMu
Muon Charge.
float m_PtMu
Muon Pt.
float m_PtMuID
Pt of charged track associated to the muon.
double charge(void) const
void print(void)
Prints out cluster variables to std::cout.
float getsumet02() const
float m_sumet01
Calo based isolation.
float getPtMu() const
Get Muon Pt.
int getRoiIdMu() const
Get Muon RoI Id.
float m_EtaMu
Muon Eta.
float m_sumpt01
Track based isolation.
void setRoiMu(int id, float pt, float eta, float phi, float charge, int fl)
float getsumpt01() const
Get Transverse Pt sum in cone.
friend class IsoMuonFeatureCnv_p2
friend class IsoMuonFeatureCnv_p3
int iso_strategy(void) const
Get Isolation strategy (1->CombinedMuon seeded, 2->muFast Muon seeded, 3->L1 muon seeded)
float getsumet04() const
double pt(void) const
transverse momentum
int iso_errorFlag(void) const
Get Error Flag.
float getEtOuterConeHC() const
float getsumpt02() const
float getsumpt03() const
IsoMuonFeature()
Constructor.
int getNTracksCone() const
float getEtInnerConeHC() const
IsoMuonFeature & operator=(const IsoMuonFeature &mfeature)
Assignement operator.
double ptq(void) const
int getFlag() const
float getTileWeight() const
double eta(void) const
pseudo rapidity
float getSumPtTracksCone() const
float getQMu() const
Get Muon Q.
float getsumet01() const
Get Transverse Energy sum in cone.
double m(void) const
mass
float getMaxPtID() const
Get Pt of max pt ID track in cone (muon excluded)
void setRoiMu(int id, float pt, float eta, float phi, int fl)
Set Muon Roi.
float getPtMuID() const
Get Pt of charged track associated to muon.
float getEtOuterConeEC() const
float getsumet03() const
float getPtMuTracksCone() const
float m_PhiMu
Muon Phi.
int m_RoiIdMu
ROI ID.
void setTrackInfos(float p01, float p02, float p03, float p04, float pmu, float pmax)
Set Tracks infos.
double phi(void) const
phi in [-pi,pi[
float getEtaMu() const
Get Muon Eta.
float getLArWeight() const
float getPhiMu() const
Get Muon Phi.
P4PtEtaPhiMBase is a base class for classes with 4-momentum behavior, for which pt,...
constexpr double muonMassInMeV
the mass of the muon (in MeV)