ATLAS Offline Software
Muon_v1.h
Go to the documentation of this file.
1 // Dear emacs, this is -*- c++ -*-
2 
3 /*
4  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
5 */
6 
7 // $Id: Muon_v1.h 745098 2016-05-05 15:47:04Z wleight $
8 #ifndef XAODMUON_VERSIONS_MUON_V1_H
9 #define XAODMUON_VERSIONS_MUON_V1_H
10 
11 // Core include(s):
13 #include "AthLinks/ElementLink.h"
14 
15 //xAOD Primitives
19 
20 // Misc xAOD include(s):
21 #include "xAODBase/IParticle.h"
26 
27 #include <bitset>
28 #include <stdint.h>
29 
30 // ROOT include(s):
31 #include "Math/Vector4D.h"
32 
33 namespace xAOD {
38  class Muon_v1 : public IParticle {
39 
40  public:
42  #include "xAODMuon/versions/MuonEnums.def"
44  Muon_v1();
45 
47  Muon_v1(const Muon_v1& rhs);
48 
50  virtual ~Muon_v1();
51 
53  Muon_v1& operator=(const Muon_v1& rhs);
54 
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;
68  virtual double rapidity() const;
69 
71  void setP4(double pt, double eta, double phi);
72 
75 
77  virtual FourMom_t p4() const;
78 
80  typedef ROOT::Math::LorentzVector<ROOT::Math::PtEtaPhiM4D<double> > GenVecFourMom_t;
81 
83  GenVecFourMom_t genvecP4() const;
84 
86  virtual Type::ObjectType type() const;
88 
91  float charge() const;
92 
94  void setCharge(float charge);
95 
101  Author author() const;
103  bool isAuthor ( const Author author ) const;
112  void setAllAuthors(uint16_t authors);
114  void addAllAuthor( const Author author );
115 
117 
123  MuonType muonType() const;
125  void setMuonType(MuonType type);
126 
145  bool summaryValue(uint8_t& value, const SummaryType information) const;
147  void setSummaryValue(uint8_t value, const SummaryType information);
149  bool summaryValue(float& value, const SummaryType information) const;
151  bool summaryValue(uint8_t& value, const MuonSummaryType information) const;
153  void setSummaryValue(uint8_t value, const MuonSummaryType information);
154 
157  float floatSummaryValue(const SummaryType information) const;
160  uint8_t uint8SummaryValue(const SummaryType information) const;
163  float uint8MuonSummaryValue(const MuonSummaryType information) const;
164 
169  bool parameter(float& value, const ParamDef parameter) const;
170 
172  void setParameter(float value, const ParamDef parameter);
173 
176  float floatParameter(const ParamDef parameter) const;
177 
179  bool parameter(int& value, const ParamDef parameter) const;
180 
183 
186  int intParameter(const ParamDef parameter) const;
187 
190  Quality quality() const;
191  void setQuality(Quality);
192 
195  bool passesIDCuts() const;
196 
198  void setPassesIDCuts(bool);
199 
201 
205 
209  bool isolation(float& value, const Iso::IsolationType information) const;
210 
213  float isolation(const Iso::IsolationType information) const;
214 
216  void setIsolation(float value, const Iso::IsolationType information);
218 
223  const Iso::IsolationCorrectionParameter param) const;
224 
228  const Iso::IsolationCorrectionParameter param) const;
229 
233 
234 
237 
241 
244 
245 
247  bool isolationCorrectionBitset(std::bitset<32>& value, const Iso::IsolationFlavour flavour ) const;
248 
251  std::bitset<32> isolationCorrectionBitset(const Iso::IsolationFlavour flavour ) const;
252 
255 
257 
276 
285  const TrackParticle* primaryTrackParticle() const;
286 
297 
299  const ElementLink< TrackParticleContainer >& trackParticleLink( TrackParticleType type) const;
301  void setTrackParticleLink(TrackParticleType type, const ElementLink< TrackParticleContainer >& link);
303  const TrackParticle* trackParticle( TrackParticleType type) const;
304 
311  const CaloCluster* cluster() const;
312 
319  EnergyLossType energyLossType (void) const;
321  void setEnergyLossType (EnergyLossType type) ;
322 
324 
326  const std::vector< ElementLink< MuonSegmentContainer > > & muonSegmentLinks() const;
328  void setMuonSegmentLinks(const std::vector< ElementLink< MuonSegmentContainer > >& segments) ;
330  size_t nMuonSegments() const;
333  const MuonSegment* muonSegment( size_t i ) const;
337 
339  }; // class xAOD::Muon
340 
341 } // namespace xAOD
342 
343 // Declare IParticle as a base class of Muon_v1:
346 
347 #endif // XAODMUON_VERSIONS_Muon_v1_H
xAOD::Muon_v1::primaryTrackParticleLink
const ElementLink< TrackParticleContainer > & primaryTrackParticleLink() const
Definition: Muon_v1.cxx:360
xAOD::Muon_v1::setClusterLink
void setClusterLink(const ElementLink< CaloClusterContainer > &link)
Set method for cluster links.
xAOD::Muon_v1::allAuthors
uint16_t allAuthors() const
Get all the authors of this Muon.
xAOD::Muon_v1::rapidity
virtual double rapidity() const
The true rapidity (y) of the particle.
Definition: Muon_v1.cxx:75
xAOD::Muon_v1::isolation
bool isolation(float &value, const Iso::IsolationType information) const
Accessor for Isolation values.
Definition: Muon_v1.cxx:261
IParticle.h
xAOD::Muon_v1::msOnlyExtrapolatedMuonSpectrometerTrackParticleLink
const ElementLink< TrackParticleContainer > & msOnlyExtrapolatedMuonSpectrometerTrackParticleLink() const
Returns an ElementLink to the MS-only Extrapolated Muon Spectrometer TrackParticle used in identifica...
xAOD::uint8_t
uint8_t
Definition: Muon_v1.cxx:557
xAOD::Muon_v1::cluster
const CaloCluster * cluster() const
Retrieve the associated cluster with a bare pointer.
Definition: Muon_v1.cxx:534
IsolationCorrection.h
xAOD::Muon_v1::trackParticle
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:486
xAOD::Muon_v1::p4
virtual FourMom_t p4() const
The full 4-momentum of the particle.
Definition: Muon_v1.cxx:79
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
python.base_data.auth
auth
Definition: base_data.py:57
xAOD::Muon_v1::muonSegment
const MuonSegment * muonSegment(size_t i) const
Returns a pointer to the specified MuonSegment.
Definition: Muon_v1.cxx:581
xAOD::Iso::IsolationFlavour
IsolationFlavour
Enumeration for different ways of calculating isolation in xAOD files.
Definition: IsolationFlavour.h:17
IsolationType.h
xAOD::Muon_v1::phi
virtual double phi() const
The azimuthal angle ( ) of the particle.
xAOD::Muon_v1::quality
Quality quality() const
The Muon Quality information is defined on the MCP twiki: https://twiki.cern.ch/twiki/bin/view/Atlas/...
Definition: Muon_v1.cxx:227
xAOD::Muon_v1::setTrackParticleLink
void setTrackParticleLink(TrackParticleType type, const ElementLink< TrackParticleContainer > &link)
Set method for TrackParticle links.
Definition: Muon_v1.cxx:505
xAOD::Muon_v1::eta
virtual double eta() const
The pseudorapidity ( ) of the particle.
xAOD::Muon_v1::nMuonSegments
size_t nMuonSegments() const
Number of MuonSegments linked to by this Muon.
Definition: Muon_v1.cxx:563
xAOD::Muon_v1::intParameter
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:214
xAOD::MuonSegment_v1
Class describing a MuonSegment.
Definition: MuonSegment_v1.h:33
egammaParameters::ParamDef
ParamDef
Definition: egammaParamDefs.h:99
xAOD::Muon_v1::setP4
void setP4(double pt, double eta, double phi)
Set method for IParticle values.
Definition: Muon_v1.cxx:66
athena.value
value
Definition: athena.py:124
xAOD
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
Definition: ICaloAffectedTool.h:24
xAOD::Muon_v1::author
Author author() const
xAOD::Muon_v1::~Muon_v1
virtual ~Muon_v1()
Destructor.
Definition: Muon_v1.cxx:47
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:41
xAOD::MuonSummaryType
MuonSummaryType
Enumerates the different types of information stored in Summary.
Definition: TrackingPrimitives.h:324
xAOD::Muon_v1::setPassesIDCuts
void setPassesIDCuts(bool)
Set whether passes the MCP ID hit cuts.
Definition: Muon_v1.cxx:248
xAOD::Muon_v1::setEnergyLossType
void setEnergyLossType(EnergyLossType type)
Set method for the type.
xAOD::Muon_v1::muonSegmentLinks
const std::vector< ElementLink< MuonSegmentContainer > > & muonSegmentLinks() const
Returns a vector of ElementLinks to the MuonSegments used to create this Muon.
xAOD::Iso::IsolationCorrectionParameter
IsolationCorrectionParameter
Definition: Event/xAOD/xAODPrimitives/xAODPrimitives/IsolationCorrection.h:91
xAOD::Muon_v1
Class describing a Muon.
Definition: Muon_v1.h:38
xAOD::Muon_v1::setIsolation
void setIsolation(float value, const Iso::IsolationType information)
Set method for Isolation values.
Definition: Muon_v1.cxx:278
MuonSegmentContainer.h
xAOD::Muon_v1::energyLossType
EnergyLossType energyLossType(void) const
Energy determined from parametrization or not (measured).
xAOD::IParticle::FourMom_t
TLorentzVector FourMom_t
Definition of the 4-momentum type.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:69
xAOD::Muon_v1::setParameter
void setParameter(float value, const ParamDef parameter)
Set method for parameter values.
xAOD::Muon_v1::trackParticleLink
const ElementLink< TrackParticleContainer > & trackParticleLink(TrackParticleType type) const
Returns an ElementLink to the TrackParticle used in identification of this muon.
Definition: Muon_v1.cxx:459
DATAVECTOR_BASE
DATAVECTOR_BASE(xAOD::Muon_v1, xAOD::IParticle)
xAOD::Muon_v1::charge
float charge() const
xAOD::Muon_v1::isolationTrackCorrection
bool isolationTrackCorrection(float &value, const Iso::IsolationFlavour flavour, const Iso::IsolationTrackCorrection type) const
Accessor for Isolation Track correction.
Definition: Muon_v1.cxx:311
xAOD::Muon_v1::clusterLink
const ElementLink< CaloClusterContainer > & clusterLink() const
Returns an ElementLinkto the cluster associated to this muon.
xAOD::CaloCluster_v1
Description of a calorimeter cluster.
Definition: CaloCluster_v1.h:59
xAOD::Muon_v1::Muon_v1
Muon_v1()
inject the enums
Definition: Muon_v1.cxx:26
xAOD::SummaryType
SummaryType
Enumerates the different types of information stored in Summary.
Definition: TrackingPrimitives.h:228
xAOD::Muon_v1::FourMom_t
IParticle::FourMom_t FourMom_t
Definition of the 4-momentum type.
Definition: Muon_v1.h:74
xAOD::Muon_v1::parameter
bool parameter(int &value, const ParamDef parameter) const
Get an integer parameter for this Muon - msInnerMatchDOF for example.
xAOD::Muon_v1::isolationCorrectionBitset
bool isolationCorrectionBitset(std::bitset< 32 > &value, const Iso::IsolationFlavour flavour) const
Accessor for Isolation corection Bitset.
Definition: Muon_v1.cxx:333
xAOD::uint16_t
setWord1 uint16_t
Definition: eFexEMRoI_v1.cxx:93
xAOD::Muon_v1::summaryValue
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:119
lumiFormat.i
int i
Definition: lumiFormat.py:85
xAOD::Iso::IsolationType
IsolationType
Overall enumeration for isolation types in xAOD files.
Definition: IsolationType.h:26
xAOD::Muon_v1::parameter
bool parameter(float &value, const ParamDef parameter) const
Get a parameter for this Muon - momentumBalanceSignificance for example.
xAOD::Muon_v1::muonSpectrometerTrackParticleLink
const ElementLink< TrackParticleContainer > & muonSpectrometerTrackParticleLink() const
Returns an ElementLink to the InnerDetector TrackParticle used in identification of this muon.
xAOD::Muon_v1::pt
virtual double pt() const
The transverse momentum ( ) of the particle.
xAOD::Muon_v1::setCharge
void setCharge(float charge)
Set the charge (must be the same as primaryTrackParticle() )
xAOD::Muon_v1::addAllAuthor
void addAllAuthor(const Author author)
add author to all authors
Definition: Muon_v1.cxx:106
xAOD::Muon_v1::floatSummaryValue
float floatSummaryValue(const SummaryType information) const
Same as bool summaryValue(float& value, const SummaryType &information) const , but without check (wi...
Definition: Muon_v1.cxx:149
xAOD::Muon_v1::m
virtual double m() const
The invariant mass of the particle..
Definition: Muon_v1.cxx:62
xAOD::Muon_v1::operator=
Muon_v1 & operator=(const Muon_v1 &rhs)
Assignment operator.
Definition: Muon_v1.cxx:36
xAOD::Muon_v1::floatParameter
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:191
xAOD::Muon_v1::type
virtual Type::ObjectType type() const
The type of the object as a simple enumeration.
Definition: Muon_v1.cxx:96
xAOD::Muon_v1::uint8MuonSummaryValue
float uint8MuonSummaryValue(const MuonSummaryType information) const
Same as bool summaryValue(uint8_t& value, const MuonSummaryType &information) const,...
Definition: Muon_v1.cxx:169
xAOD::Muon_v1::isolationCaloCorrection
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:285
xAOD::Muon_v1::isAuthor
bool isAuthor(const Author author) const
Returns 'true' if 'author' is the an author of this muon.
Definition: Muon_v1.cxx:111
xAOD::Iso::IsolationTrackCorrection
IsolationTrackCorrection
Definition: Event/xAOD/xAODPrimitives/xAODPrimitives/IsolationCorrection.h:61
xAOD::Muon_v1::passesIDCuts
bool passesIDCuts() const
Returns true if this Muon passes the MCP ID hit cuts (see the MCP twiki for definitions: https://twik...
Definition: Muon_v1.cxx:241
xAOD::Muon_v1::uint8SummaryValue
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:154
xAOD::Muon_v1::setParameter
void setParameter(int value, const ParamDef parameter)
Set method for parameter values.
xAOD::Muon_v1::setIsolationCorrectionBitset
bool setIsolationCorrectionBitset(uint32_t value, const Iso::IsolationFlavour flavour)
Set method for Isolation corection Bitset.
Definition: Muon_v1.cxx:347
xAOD::Muon_v1::inDetTrackParticleLink
const ElementLink< TrackParticleContainer > & inDetTrackParticleLink() const
Returns an ElementLink to the InnerDetector TrackParticle used in identification of this muon.
DataVector.h
An STL vector of pointers that by default owns its pointed-to elements.
xAOD::Iso::IsolationCaloCorrection
IsolationCaloCorrection
Enumeration for different ways of correcting isolation in xAOD files.
Definition: Event/xAOD/xAODPrimitives/xAODPrimitives/IsolationCorrection.h:18
xAOD::Muon_v1::setAuthor
void setAuthor(Author auth)
set author
xAOD::Muon_v1::setSummaryValue
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:135
xAOD::Muon_v1::GenVecFourMom_t
ROOT::Math::LorentzVector< ROOT::Math::PtEtaPhiM4D< double > > GenVecFourMom_t
Base 4 Momentum type for Muon.
Definition: Muon_v1.h:80
IsolationFlavour.h
xAOD::Muon_v1::setIsolationCaloCorrection
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:303
xAOD::Muon_v1::genvecP4
GenVecFourMom_t genvecP4() const
The full 4-momentum of the particle : GenVector.
Definition: Muon_v1.cxx:86
xAOD::Muon_v1::setMuonSegmentLinks
void setMuonSegmentLinks(const std::vector< ElementLink< MuonSegmentContainer > > &segments)
Set the vector of ElementLinks to the MuonSegments used to create this Muon.
CaloClusterContainer.h
xAOD::Muon_v1::muonSegmentLink
const ElementLink< MuonSegmentContainer > & muonSegmentLink(size_t i) const
Returns a link to the specified MuonSegment.
Definition: Muon_v1.cxx:571
xAOD::Muon_v1::extrapolatedMuonSpectrometerTrackParticleLink
const ElementLink< TrackParticleContainer > & extrapolatedMuonSpectrometerTrackParticleLink() const
Returns an ElementLink to the Extrapolated Muon Spectrometer TrackParticle used in identification of ...
xAOD::Muon_v1::e
virtual double e() const
The total energy of the particle.
Definition: Muon_v1.cxx:57
xAOD::Muon_v1::primaryTrackParticle
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:400
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
xAOD::Muon_v1::setMuonType
void setMuonType(MuonType type)
xAOD::Muon_v1::setIsolationTrackCorrection
bool setIsolationTrackCorrection(float value, const Iso::IsolationFlavour flavour, const Iso::IsolationTrackCorrection type)
Set method for Isolation Track Corrections.
Definition: Muon_v1.cxx:326
xAODType::ObjectType
ObjectType
Type of objects that have a representation in the xAOD EDM.
Definition: ObjectType.h:32
ParticleJetParams::Author
Author
Definition: ParticleJetParamDefs.h:33
TrackingPrimitives.h
TrackParticleContainer.h
xAOD::Muon_v1::setQuality
void setQuality(Quality)
Definition: Muon_v1.cxx:233
AuxElement.h
Base class for elements of a container that can have aux data.
xAOD::Muon_v1::combinedTrackParticleLink
const ElementLink< TrackParticleContainer > & combinedTrackParticleLink() const
Returns an ElementLink to the InnerDetector TrackParticle used in identification of this muon.
xAOD::Muon_v1::setAllAuthors
void setAllAuthors(uint16_t authors)
xAOD::Muon_v1::muonType
MuonType muonType() const