ATLAS Offline Software
Loading...
Searching...
No Matches
Muon_v1.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
5// $Id: Muon_v1.h 745098 2016-05-05 15:47:04Z wleight $
6#ifndef XAODMUON_VERSIONS_MUON_V1_H
7#define XAODMUON_VERSIONS_MUON_V1_H
8
9// Core include(s):
11#include "AthLinks/ElementLink.h"
12
13//xAOD Primitives
17
18// Misc xAOD include(s):
19#include "xAODBase/IParticle.h"
24
25#include <bitset>
26#include <cstdint>
27#include <ostream>
28#include <string_view>
29
32#define DECLARE_ENUM_OSTREAM(enumType) \
33 static std::string_view toString(const enumType obj); \
34 \
35 inline friend std::ostream& operator<<(std::ostream& ostr, \
36 const enumType obj) { \
37 return (ostr<<toString(obj)); \
38 } \
39
40// ROOT include(s):
41#include "Math/Vector4D.h"
42
43namespace xAOD {
48 class Muon_v1 : public IParticle {
49
50 public:
52 #include "xAODMuon/versions/MuonEnums.def"
60 DECLARE_ENUM_OSTREAM(TrackParticleType);
64 DECLARE_ENUM_OSTREAM(EnergyLossType);
66 Muon_v1() = default;
67
69 Muon_v1(const Muon_v1& rhs);
70
72 virtual ~Muon_v1() = default;
73
75 Muon_v1& operator=(const Muon_v1& rhs);
76
80 virtual double pt() const override;
82 virtual double eta() const override;
84 virtual double phi() const override;
86 virtual double m() const override;
88 virtual double e() const override;
90 virtual double rapidity() const override;
91
93 void setP4(double pt, double eta, double phi);
94
97
99 virtual FourMom_t p4() const override;
100
102 typedef ROOT::Math::LorentzVector<ROOT::Math::PtEtaPhiM4D<double> > GenVecFourMom_t;
103
106
108 virtual Type::ObjectType type() const override;
110
113 float charge() const;
114
116 void setCharge(float charge);
117
123 Author author() const;
125 bool isAuthor ( const Author author ) const;
127 void setAuthor(const Author auth);
134 void setAllAuthors(uint16_t authors);
136 void addAllAuthor(const Author author );
137
139
145 MuonType muonType() const;
147 void setMuonType(MuonType type);
148
167 bool summaryValue(uint8_t& value, const SummaryType information) const;
169 void setSummaryValue(uint8_t value, const SummaryType information);
171 bool summaryValue(float& value, const SummaryType information) const;
173 bool summaryValue(uint8_t& value, const MuonSummaryType information) const;
175 void setSummaryValue(uint8_t value, const MuonSummaryType information);
176
179 float floatSummaryValue(const SummaryType information) const;
182 uint8_t uint8SummaryValue(const SummaryType information) const;
185 float uint8MuonSummaryValue(const MuonSummaryType information) const;
186
191 bool parameter(float& value, const ParamDef parameter) const;
192
194 void setParameter(float value, const ParamDef parameter);
195
198 float floatParameter(const ParamDef parameter) const;
199
201 bool parameter(int& value, const ParamDef parameter) const;
202
204 void setParameter(int value, const ParamDef parameter);
205
208 int intParameter(const ParamDef parameter) const;
209
215
217 Quality quality() const;
218 void setQuality(const Quality);
219
221 bool passesIDCuts() const;
222 void setPassesIDCuts(bool);
223
225
229
233 bool isolation(float& value, const Iso::IsolationType information) const;
234
237 float isolation(const Iso::IsolationType information) const;
238
240 void setIsolation(float value, const Iso::IsolationType information);
242
247 const Iso::IsolationCorrectionParameter param) const;
248
252 const Iso::IsolationCorrectionParameter param) const;
253
257
258
260 bool isolationTrackCorrection(float& value, const Iso::IsolationFlavour flavour , const Iso::IsolationTrackCorrection type ) const;
261
265
268
269
271 bool isolationCorrectionBitset(std::bitset<32>& value, const Iso::IsolationFlavour flavour ) const;
272
275 std::bitset<32> isolationCorrectionBitset(const Iso::IsolationFlavour flavour ) const;
276
279
307 [[deprecated("primaryTrackParticle() - Please use the trackParticle function to retrieve the primary track particle")]]
308 const TrackParticle* primaryTrackParticle() const;
309
321 const ElementLink< TrackParticleContainer >& trackParticleLink( TrackParticleType type) const;
322
324 void setTrackParticleLink(TrackParticleType type, const ElementLink< TrackParticleContainer >& link);
326 const TrackParticle* trackParticle( TrackParticleType type) const;
327
334 const CaloCluster* cluster() const;
335
342 EnergyLossType energyLossType (void) const;
344 void setEnergyLossType (EnergyLossType type) ;
345
347
349 const std::vector< ElementLink< MuonSegmentContainer > > & muonSegmentLinks() const;
351 void setMuonSegmentLinks(const std::vector< ElementLink< MuonSegmentContainer > >& segments) ;
353 size_t nMuonSegments() const;
356 const MuonSegment* muonSegment( size_t i ) const;
360
362 }; // class xAOD::Muon
363
364} // namespace xAOD
365
366
367#undef DECLARE_ENUM_OSTREAM
368// Declare IParticle as a base class of Muon_v1:
371
372#endif // XAODMUON_VERSIONS_Muon_v1_H
Base class for elements of a container that can have aux data.
An STL vector of pointers that by default owns its pointed-to elements.
#define DATAVECTOR_BASE(T, BASE)
Declare base class info to DataVector.
Definition DataVector.h:649
Class providing the definition of the 4-vector interface.
IParticle()=default
TLorentzVector FourMom_t
Definition of the 4-momentum type.
Class describing a Muon.
Definition Muon_v1.h:48
const ElementLink< TrackParticleContainer > & combinedTrackParticleLink() const
Returns an ElementLink to the InnerDetector TrackParticle used in identification of this muon.
bool setIsolationCorrectionBitset(uint32_t value, const Iso::IsolationFlavour flavour)
Set method for Isolation corection Bitset.
Definition Muon_v1.cxx:346
const ElementLink< MuonSegmentContainer > & muonSegmentLink(size_t i) const
Returns a link to the specified MuonSegment.
Definition Muon_v1.cxx:514
Muon_v1()=default
Default constructor.
void setPassesIDCuts(bool)
Definition Muon_v1.cxx:249
bool summaryValue(uint8_t &value, const SummaryType information) const
Accessor for TrackSummary values (in most cases, retrieved from the 'primary' TrackParticle - though ...
Definition Muon_v1.cxx:118
void setAuthor(const Author auth)
set author
const ElementLink< TrackParticleContainer > & trackParticleLink(TrackParticleType type) const
Returns an ElementLink to the TrackParticle used in identification of this muon.
Definition Muon_v1.cxx:400
const ElementLink< TrackParticleContainer > & inDetTrackParticleLink() const
Returns an ElementLink to the InnerDetector TrackParticle used in identification of this muon.
DECLARE_ENUM_OSTREAM(Author)
inject the enums
virtual double m() const override
The invariant mass of the particle..
Definition Muon_v1.cxx:67
void setTrackParticleLink(TrackParticleType type, const ElementLink< TrackParticleContainer > &link)
Set method for TrackParticle links.
Definition Muon_v1.cxx:460
bool setIsolationCaloCorrection(float value, const Iso::IsolationFlavour flavour, const Iso::IsolationCaloCorrection type, const Iso::IsolationCorrectionParameter param)
set method for Isolation Calo Corrections.
Definition Muon_v1.cxx:302
const ElementLink< TrackParticleContainer > & extrapolatedMuonSpectrometerTrackParticleLink() const
Returns an ElementLink to the Extrapolated Muon Spectrometer TrackParticle used in identification of ...
float floatSummaryValue(const SummaryType information) const
Same as bool summaryValue(float& value, const SummaryType &information) const , but without check (wi...
Definition Muon_v1.cxx:141
bool passesIDCuts() const
MCP ID hit cuts - get/set the corresponding status bit in the quality decoration.
Definition Muon_v1.cxx:242
EnergyLossType energyLossType(void) const
Energy determined from parametrization or not (measured).
void addAllAuthor(const Author author)
add author to all authors
Definition Muon_v1.cxx:105
IParticle::FourMom_t FourMom_t
Definition of the 4-momentum type.
Definition Muon_v1.h:96
float uint8MuonSummaryValue(const MuonSummaryType information) const
Same as bool summaryValue(uint8_t& value, const MuonSummaryType &information) const,...
Definition Muon_v1.cxx:162
const MuonSegment * muonSegment(size_t i) const
Returns a pointer to the specified MuonSegment.
Definition Muon_v1.cxx:524
const ElementLink< CaloClusterContainer > & clusterLink() const
Returns an ElementLinkto the cluster associated to this muon.
virtual double pt() const override
The transverse momentum ( ) of the particle.
virtual ~Muon_v1()=default
Destructor.
bool isAuthor(const Author author) const
Returns 'true' if 'author' is the an author of this muon.
Definition Muon_v1.cxx:110
virtual double eta() const override
The pseudorapidity ( ) of the particle.
virtual double e() const override
The total energy of the particle.
Definition Muon_v1.cxx:62
void setMuonType(MuonType type)
bool parameter(float &value, const ParamDef parameter) const
Get a parameter for this Muon - momentumBalanceSignificance for example.
Definition Muon_v1.cxx:175
uint8_t uint8SummaryValue(const SummaryType information) const
Same as bool summaryValue(uint8_t& value, const SummaryType &information) const, but without check (w...
Definition Muon_v1.cxx:146
bool isolationCaloCorrection(float &value, const Iso::IsolationFlavour flavour, const Iso::IsolationCaloCorrection type, const Iso::IsolationCorrectionParameter param) const
Accessor for Isolation Calo correction.
Definition Muon_v1.cxx:284
const ElementLink< TrackParticleContainer > & msOnlyExtrapolatedMuonSpectrometerTrackParticleLink() const
Returns an ElementLink to the MS-only Extrapolated Muon Spectrometer TrackParticle used in identifica...
void setParameter(float value, const ParamDef parameter)
Set method for parameter values.
Definition Muon_v1.cxx:192
bool isolation(float &value, const Iso::IsolationType information) const
Accessor for Isolation values.
Definition Muon_v1.cxx:257
void setEnergyLossType(EnergyLossType type)
Set method for the type.
const TrackParticle * trackParticle(TrackParticleType type) const
Returns a pointer (which can be a nullptr) to the TrackParticle used in identification of this muon.
Definition Muon_v1.cxx:422
Muon_v1 & operator=(const Muon_v1 &rhs)
Assignment operator.
Definition Muon_v1.cxx:44
DECLARE_ENUM_OSTREAM(MuonType)
Pipe the muon type to a string object.
float floatParameter(const ParamDef parameter) const
Same as bool parameter(float& value, const ParamDef &parameter) const, but without check (will throw ...
Definition Muon_v1.cxx:186
bool isolationTrackCorrection(float &value, const Iso::IsolationFlavour flavour, const Iso::IsolationTrackCorrection type) const
Accessor for Isolation Track correction.
Definition Muon_v1.cxx:310
void setAllAuthors(uint16_t authors)
GenVecFourMom_t genvecP4() const
The full 4-momentum of the particle : GenVector.
Definition Muon_v1.cxx:91
void setQuality(const Quality)
Definition Muon_v1.cxx:234
DECLARE_ENUM_OSTREAM(EnergyLossType)
The muon energy loss to a string object.
int intParameter(const ParamDef parameter) const
Same as bool parameter(float& value, const ParamDef &parameter) const, but without check (will throw ...
Definition Muon_v1.cxx:213
DECLARE_ENUM_OSTREAM(Quality)
Pipe the muon quality to a string object.
virtual double phi() const override
The azimuthal angle ( ) of the particle.
float charge() const
const TrackParticle * primaryTrackParticle() const
Returns a pointer (which should not usually be NULL, but might be if the muon has been stripped of in...
Definition Muon_v1.cxx:396
size_t nMuonSegments() const
Number of MuonSegments linked to by this Muon.
Definition Muon_v1.cxx:506
virtual double rapidity() const override
The true rapidity (y) of the particle.
Definition Muon_v1.cxx:80
virtual Type::ObjectType type() const override
The type of the object as a simple enumeration.
Definition Muon_v1.cxx:95
ROOT::Math::LorentzVector< ROOT::Math::PtEtaPhiM4D< double > > GenVecFourMom_t
Base 4 Momentum type for Muon.
Definition Muon_v1.h:102
const std::vector< ElementLink< MuonSegmentContainer > > & muonSegmentLinks() const
Returns a vector of ElementLinks to the MuonSegments used to create this Muon.
void setMuonSegmentLinks(const std::vector< ElementLink< MuonSegmentContainer > > &segments)
Set the vector of ElementLinks to the MuonSegments used to create this Muon.
virtual FourMom_t p4() const override
The full 4-momentum of the particle.
Definition Muon_v1.cxx:84
void setP4(double pt, double eta, double phi)
Set method for IParticle values.
Definition Muon_v1.cxx:71
void setIsolation(float value, const Iso::IsolationType information)
Set method for Isolation values.
Definition Muon_v1.cxx:275
void setClusterLink(const ElementLink< CaloClusterContainer > &link)
Set method for cluster links.
Quality quality() const
Muon CP quality accessors.
Definition Muon_v1.cxx:228
DECLARE_ENUM_OSTREAM(TrackParticleType)
Pipe the track particle to a string object.
bool setIsolationTrackCorrection(float value, const Iso::IsolationFlavour flavour, const Iso::IsolationTrackCorrection type)
Set method for Isolation Track Corrections.
Definition Muon_v1.cxx:325
uint16_t allAuthors() const
Get all the authors of this Muon.
Author author() const
void setCharge(float charge)
Set the charge (must be the same as primaryTrackParticle() ).
bool isolationCorrectionBitset(std::bitset< 32 > &value, const Iso::IsolationFlavour flavour) const
Accessor for Isolation corection Bitset.
Definition Muon_v1.cxx:332
MuonType muonType() const
DECLARE_ENUM_OSTREAM(ParamDef)
The muon parameter to a string object.
const ElementLink< TrackParticleContainer > & muonSpectrometerTrackParticleLink() const
Returns an ElementLink to the InnerDetector TrackParticle used in identification of this muon.
const CaloCluster * cluster() const
Retrieve the associated cluster with a bare pointer.
Definition Muon_v1.cxx:489
const ElementLink< TrackParticleContainer > & primaryTrackParticleLink() const
Definition Muon_v1.cxx:359
void setSummaryValue(uint8_t value, const SummaryType information)
Set method for storing TrackSummary SummaryType information on the Muon (see Aux to see which is alre...
Definition Muon_v1.cxx:129
IsolationType
Overall enumeration for isolation types in xAOD files.
IsolationFlavour
Enumeration for different ways of calculating isolation in xAOD files.
IsolationCaloCorrection
Enumeration for different ways of correcting isolation in xAOD files.
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
setStrategy setMatchFlag ElementLink< TrackParticleContainer >
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
TrackParticle_v1 TrackParticle
Reference the current persistent version:
setWord1 uint16_t
MuonSegment_v1 MuonSegment
Reference the current persistent version:
SummaryType
Enumerates the different types of information stored in Summary.
setEventNumber uint32_t
MuonSummaryType
Enumerates the different types of information stored in Summary.