6#ifndef XAODMUON_VERSIONS_MUON_V1_H
7#define XAODMUON_VERSIONS_MUON_V1_H
11#include "AthLinks/ElementLink.h"
32#define DECLARE_ENUM_OSTREAM(enumType) \
33 static std::string_view toString(const enumType obj); \
35 inline friend std::ostream& operator<<(std::ostream& ostr, \
36 const enumType obj) { \
37 return (ostr<<toString(obj)); \
41#include "Math/Vector4D.h"
52 #include "xAODMuon/versions/MuonEnums.def"
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;
108 virtual Type::ObjectType
type()
const override;
366#undef DECLARE_ENUM_OSTREAM
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.
ElementLink implementation for ROOT usage.
Class providing the definition of the 4-vector interface.
TLorentzVector FourMom_t
Definition of the 4-momentum type.
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.
const ElementLink< MuonSegmentContainer > & muonSegmentLink(size_t i) const
Returns a link to the specified MuonSegment.
Muon_v1()=default
Default constructor.
void setPassesIDCuts(bool)
bool summaryValue(uint8_t &value, const SummaryType information) const
Accessor for TrackSummary values (in most cases, retrieved from the 'primary' TrackParticle - though ...
const ElementLink< TrackParticleContainer > & trackParticleLink(TrackParticleType type) const
Returns an ElementLink to the TrackParticle used in identification of this muon.
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..
const TrackParticle * primaryTrackParticle() const
Returns a pointer (which should not usually be NULL, but might be if the muon has been stripped of in...
void setTrackParticleLink(TrackParticleType type, const ElementLink< TrackParticleContainer > &link)
Set method for TrackParticle links.
bool setIsolationCaloCorrection(float value, const Iso::IsolationFlavour flavour, const Iso::IsolationCaloCorrection type, const Iso::IsolationCorrectionParameter param)
set method for Isolation Calo Corrections.
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...
bool passesIDCuts() const
MCP ID hit cuts - get/set the corresponding status bit in the quality decoration.
EnergyLossType energyLossType(void) const
Energy determined from parametrization or not (measured).
void addAllAuthor(const Author author)
add author to all authors
IParticle::FourMom_t FourMom_t
Definition of the 4-momentum type.
float uint8MuonSummaryValue(const MuonSummaryType information) const
Same as bool summaryValue(uint8_t& value, const MuonSummaryType &information) const,...
const MuonSegment * muonSegment(size_t i) const
Returns a pointer to the specified MuonSegment.
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.
virtual ~Muon_v1()=default
Destructor.
bool isAuthor(const Author author) const
Returns 'true' if 'author' is the an author of this muon.
virtual double eta() const override
The pseudorapidity ( ) of the particle.
virtual double e() const override
The total energy of the particle.
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...
bool isolationCaloCorrection(float &value, const Iso::IsolationFlavour flavour, const Iso::IsolationCaloCorrection type, const Iso::IsolationCorrectionParameter param) const
Accessor for Isolation Calo correction.
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.
void setEnergyLossType(EnergyLossType type)
Set method for the type.
Muon_v1 & operator=(const Muon_v1 &rhs)
Assignment operator.
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 ¶meter) const, but without check (will throw ...
bool isolationTrackCorrection(float &value, const Iso::IsolationFlavour flavour, const Iso::IsolationTrackCorrection type) const
Accessor for Isolation Track correction.
void setParameter(int value, const ParamDef parameter)
Set method for parameter values.
void setAllAuthors(uint16_t authors)
GenVecFourMom_t genvecP4() const
The full 4-momentum of the particle : GenVector.
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 ¶meter) const, but without check (will throw ...
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.
size_t nMuonSegments() const
Number of MuonSegments linked to by this Muon.
virtual double rapidity() const override
The true rapidity (y) of the particle.
virtual Type::ObjectType type() const override
The type of the object as a simple enumeration.
ROOT::Math::LorentzVector< ROOT::Math::PtEtaPhiM4D< double > > GenVecFourMom_t
Base 4 Momentum type for Muon.
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.
void setP4(double pt, double eta, double phi)
Set method for IParticle values.
void setIsolation(float value, const Iso::IsolationType information)
Set method for Isolation values.
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.
uint16_t allAuthors() const
Get all the authors of this Muon.
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.
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.
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.
const ElementLink< TrackParticleContainer > & primaryTrackParticleLink() const
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...
IsolationType
Overall enumeration for isolation types in xAOD files.
IsolationFlavour
Enumeration for different ways of calculating isolation in xAOD files.
IsolationCorrectionParameter
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:
MuonSegment_v1 MuonSegment
Reference the current persistent version:
SummaryType
Enumerates the different types of information stored in Summary.
MuonSummaryType
Enumerates the different types of information stored in Summary.