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(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(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 const TrackParticle* primaryTrackParticle() const;
308
320 const ElementLink< TrackParticleContainer >& trackParticleLink( TrackParticleType type) const;
321
323 void setTrackParticleLink(TrackParticleType type, const ElementLink< TrackParticleContainer >& link);
325 const TrackParticle* trackParticle( TrackParticleType type) const;
326
333 const CaloCluster* cluster() const;
334
341 EnergyLossType energyLossType (void) const;
343 void setEnergyLossType (EnergyLossType type) ;
344
346
348 const std::vector< ElementLink< MuonSegmentContainer > > & muonSegmentLinks() const;
350 void setMuonSegmentLinks(const std::vector< ElementLink< MuonSegmentContainer > >& segments) ;
352 size_t nMuonSegments() const;
355 const MuonSegment* muonSegment( size_t i ) const;
359
361 }; // class xAOD::Muon
362
363} // namespace xAOD
364
365
366#undef DECLARE_ENUM_OSTREAM
367// Declare IParticle as a base class of Muon_v1:
370
371#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:343
const ElementLink< MuonSegmentContainer > & muonSegmentLink(size_t i) const
Returns a link to the specified MuonSegment.
Definition Muon_v1.cxx:567
Muon_v1()=default
Default constructor.
void setPassesIDCuts(bool)
Definition Muon_v1.cxx:241
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:105
const ElementLink< TrackParticleContainer > & trackParticleLink(TrackParticleType type) const
Returns an ElementLink to the TrackParticle used in identification of this muon.
Definition Muon_v1.cxx:455
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:54
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
void setTrackParticleLink(TrackParticleType type, const ElementLink< TrackParticleContainer > &link)
Set method for TrackParticle links.
Definition Muon_v1.cxx:501
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:299
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:133
bool passesIDCuts() const
MCP ID hit cuts - get/set the corresponding status bit in the quality decoration.
Definition Muon_v1.cxx:234
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:92
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:154
const MuonSegment * muonSegment(size_t i) const
Returns a pointer to the specified MuonSegment.
Definition Muon_v1.cxx:577
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.
Quality quality() const
Muon CP quality accessors.
Definition Muon_v1.cxx:220
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:97
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:49
void setMuonType(MuonType type)
bool parameter(float &value, const ParamDef parameter) const
Get a parameter for this Muon - momentumBalanceSignificance for example.
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:138
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:281
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.
bool isolation(float &value, const Iso::IsolationType information) const
Accessor for Isolation values.
Definition Muon_v1.cxx:254
void setEnergyLossType(EnergyLossType type)
Set method for the type.
Muon_v1 & operator=(const Muon_v1 &rhs)
Assignment operator.
Definition Muon_v1.cxx:31
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:178
bool isolationTrackCorrection(float &value, const Iso::IsolationFlavour flavour, const Iso::IsolationTrackCorrection type) const
Accessor for Isolation Track correction.
Definition Muon_v1.cxx:307
void setParameter(int value, const ParamDef parameter)
Set method for parameter values.
void setQuality(Quality)
Definition Muon_v1.cxx:226
void setAllAuthors(uint16_t authors)
GenVecFourMom_t genvecP4() const
The full 4-momentum of the particle : GenVector.
Definition Muon_v1.cxx:78
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:205
void setAuthor(Author auth)
set author
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
size_t nMuonSegments() const
Number of MuonSegments linked to by this Muon.
Definition Muon_v1.cxx:559
virtual double rapidity() const override
The true rapidity (y) of the particle.
Definition Muon_v1.cxx:67
virtual Type::ObjectType type() const override
The type of the object as a simple enumeration.
Definition Muon_v1.cxx:82
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:71
void setP4(double pt, double eta, double phi)
Set method for IParticle values.
Definition Muon_v1.cxx:58
void setIsolation(float value, const Iso::IsolationType information)
Set method for Isolation values.
Definition Muon_v1.cxx:272
void setClusterLink(const ElementLink< CaloClusterContainer > &link)
Set method for cluster links.
bool parameter(int &value, const ParamDef parameter) const
Get an integer parameter for this Muon - msInnerMatchDOF for example.
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:322
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:329
MuonType muonType() const
DECLARE_ENUM_OSTREAM(ParamDef)
The muon parameter to a string object.
const TrackParticle * trackParticle(TrackParticleType type) const
Returns a pointer (which can be NULL) to the TrackParticle used in identification of this muon.
Definition Muon_v1.cxx:482
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:530
const ElementLink< TrackParticleContainer > & primaryTrackParticleLink() const
Definition Muon_v1.cxx:356
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:119
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.