8#ifndef XAODMUON_VERSIONS_MUON_V1_H
9#define XAODMUON_VERSIONS_MUON_V1_H
13#include "AthLinks/ElementLink.h"
31#include "Math/Vector4D.h"
42 #include "xAODMuon/versions/MuonEnums.def"
58 virtual double pt()
const;
60 virtual double eta()
const;
62 virtual double phi()
const;
64 virtual double m()
const;
66 virtual double e()
const;
80 typedef ROOT::Math::LorentzVector<ROOT::Math::PtEtaPhiM4D<double> >
GenVecFourMom_t;
86 virtual Type::ObjectType
type()
const;
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.
virtual double eta() const
The pseudorapidity ( ) of the particle.
const ElementLink< MuonSegmentContainer > & muonSegmentLink(size_t i) const
Returns a link to the specified MuonSegment.
Muon_v1()=default
inject the enums
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.
const TrackParticle * primaryTrackParticle() const
Returns a pointer (which should not usually be NULL, but might be if the muon has been stripped of in...
virtual FourMom_t p4() const
The full 4-momentum of the particle.
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...
virtual double m() const
The invariant mass of the particle..
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.
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.
void setMuonType(MuonType type)
bool parameter(float &value, const ParamDef parameter) const
Get a parameter for this Muon - momentumBalanceSignificance for example.
virtual double phi() const
The azimuthal angle ( ) of the particle.
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.
virtual double rapidity() const
The true rapidity (y) of the particle.
void setEnergyLossType(EnergyLossType type)
Set method for the type.
Muon_v1 & operator=(const Muon_v1 &rhs)
Assignment operator.
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.
virtual double e() const
The total energy of the particle.
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.
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
virtual double pt() const
The transverse momentum ( ) of the particle.
virtual Type::ObjectType type() const
The type of the object as a simple enumeration.
size_t nMuonSegments() const
Number of MuonSegments linked to by this Muon.
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.
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.
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
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.