ATLAS Offline Software
Loading...
Searching...
No Matches
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
33namespace xAOD {
38 class Muon_v1 : public IParticle {
39
40 public:
42 #include "xAODMuon/versions/MuonEnums.def"
44 Muon_v1() = default;
45
47 Muon_v1(const Muon_v1& rhs);
48
50 virtual ~Muon_v1() = default;
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
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;
105 void setAuthor(Author auth);
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
182 void setParameter(int value, const ParamDef parameter);
183
186 int intParameter(const ParamDef parameter) const;
187
193
195 Quality quality() const;
196 void setQuality(Quality);
197
199 bool passesIDCuts() const;
200 void setPassesIDCuts(bool);
201
203
207
211 bool isolation(float& value, const Iso::IsolationType information) const;
212
215 float isolation(const Iso::IsolationType information) const;
216
218 void setIsolation(float value, const Iso::IsolationType information);
220
225 const Iso::IsolationCorrectionParameter param) const;
226
230 const Iso::IsolationCorrectionParameter param) const;
231
235
236
238 bool isolationTrackCorrection(float& value, const Iso::IsolationFlavour flavour , const Iso::IsolationTrackCorrection type ) const;
239
243
246
247
249 bool isolationCorrectionBitset(std::bitset<32>& value, const Iso::IsolationFlavour flavour ) const;
250
253 std::bitset<32> isolationCorrectionBitset(const Iso::IsolationFlavour flavour ) const;
254
257
259
278
287 const TrackParticle* primaryTrackParticle() const;
288
299
301 const ElementLink< TrackParticleContainer >& trackParticleLink( TrackParticleType type) const;
303 void setTrackParticleLink(TrackParticleType type, const ElementLink< TrackParticleContainer >& link);
305 const TrackParticle* trackParticle( TrackParticleType type) const;
306
313 const CaloCluster* cluster() const;
314
321 EnergyLossType energyLossType (void) const;
323 void setEnergyLossType (EnergyLossType type) ;
324
326
328 const std::vector< ElementLink< MuonSegmentContainer > > & muonSegmentLinks() const;
330 void setMuonSegmentLinks(const std::vector< ElementLink< MuonSegmentContainer > >& segments) ;
332 size_t nMuonSegments() const;
335 const MuonSegment* muonSegment( size_t i ) const;
339
341 }; // class xAOD::Muon
342
343} // namespace xAOD
344
345// Declare IParticle as a base class of Muon_v1:
348
349#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:38
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
virtual double eta() const
The pseudorapidity ( ) of the particle.
const ElementLink< MuonSegmentContainer > & muonSegmentLink(size_t i) const
Returns a link to the specified MuonSegment.
Definition Muon_v1.cxx:567
Muon_v1()=default
inject the enums
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.
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
virtual FourMom_t p4() const
The full 4-momentum of the particle.
Definition Muon_v1.cxx:71
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
virtual double m() const
The invariant mass of the particle..
Definition Muon_v1.cxx:54
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:74
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.
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
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...
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
virtual double rapidity() const
The true rapidity (y) of the particle.
Definition Muon_v1.cxx:67
void setEnergyLossType(EnergyLossType type)
Set method for the type.
Muon_v1 & operator=(const Muon_v1 &rhs)
Assignment operator.
Definition Muon_v1.cxx:31
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
virtual double e() const
The total energy of the particle.
Definition Muon_v1.cxx:49
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
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
virtual double pt() const
The transverse momentum ( ) of the particle.
virtual Type::ObjectType type() const
The type of the object as a simple enumeration.
Definition Muon_v1.cxx:82
float charge() const
size_t nMuonSegments() const
Number of MuonSegments linked to by this Muon.
Definition Muon_v1.cxx:559
ROOT::Math::LorentzVector< ROOT::Math::PtEtaPhiM4D< double > > GenVecFourMom_t
Base 4 Momentum type for Muon.
Definition Muon_v1.h:80
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.
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.
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
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.