xAOD::Muon_v1 Class Reference

#include <Muon_v1.h>

Inheritance diagram for xAOD::Muon_v1:
xAOD::IParticle SG::AuxElement SG::IAuxElement

List of all members.

Public Member Functions

 Muon_v1 ()
 Default constructor.
bool isolationCaloCorrection (float &value, const Iso::IsolationFlavour flavour, const Iso::IsolationCaloCorrection type, const Iso::IsolationCorrectionParameter param) const
 Accessor for Isolation Calo correction. If 'information' is stored in this xAOD::Muon and is of the correct type, then the function fills 'value' and returns 'true', otherwise it returns 'false', and does not touch 'value'.
float isolationCaloCorrection (const Iso::IsolationFlavour flavour, const Iso::IsolationCaloCorrection type, const Iso::IsolationCorrectionParameter param) const
bool setIsolationCaloCorrection (float value, const Iso::IsolationFlavour flavour, const Iso::IsolationCaloCorrection type, const Iso::IsolationCorrectionParameter param)
 set method for Isolation Calo Corrections.
bool isolationTrackCorrection (float &value, const Iso::IsolationFlavour flavour, const Iso::IsolationTrackCorrection type) const
 Accessor for Isolation Track correction.
float isolationTrackCorrection (const Iso::IsolationFlavour flavour, const Iso::IsolationTrackCorrection type) const
bool setIsolationTrackCorrection (float value, const Iso::IsolationFlavour flavour, const Iso::IsolationTrackCorrection type)
 Set method for Isolation Track Corrections.
bool isolationCorrectionBitset (std::bitset< 32 > &value, const Iso::IsolationFlavour flavour) const
 Accessor for Isolation corection Bitset.
std::bitset< 32 > isolationCorrectionBitset (const Iso::IsolationFlavour flavour) const
bool setIsolationCorrectionBitset (uint32_t value, const Iso::IsolationFlavour flavour)
 Set method for Isolation corection Bitset.

Author

Methods to query the author(s) of this Muon

Todo:
  • update and add documentation.


enum  Author {
  unknown = 0, MuidCo, STACO, MuTag,
  MuTagIMO, MuidSA, MuGirl, MuGirlLowBeta,
  CaloTag, CaloLikelihood, ExtrapolateMuonToIP, NumberOfMuonAuthors
}
Author author () const
 Returns the primary author of this Muon.
bool isAuthor (const Author author) const
 Returns 'true' if 'author' is the an author of this muon.
void setAuthor (Author auth)
 set author
uint16_t allAuthors () const
void setAllAuthors (uint16_t authors)
void addAllAuthor (const Author author)
 add author to all authors

Summary information

Return summary information about the muon, such as its MuonType, and the TrackSumary values of the primary TrackParticle.

Todo:
Add documentation.


enum  MuonType {
  Combined, MuonStandAlone, SegmentTagged, CaloTagged,
  SiliconAssociatedForwardMuon
}
enum  ParamDef {
  spectrometerFieldIntegral = 0, scatteringCurvatureSignificance = 1, scatteringNeighbourSignificance = 2, momentumBalanceSignificance = 3,
  segmentDeltaEta = 4, segmentDeltaPhi = 5, segmentChi2OverDoF = 6, t0 = 7,
  beta = 8, annBarrel = 9, annEndCap = 10, innAngle = 11,
  midAngle = 12, msInnerMatchChi2 = 13, msInnerMatchDOF = 14, msOuterMatchChi2 = 15,
  msOuterMatchDOF = 16, meanDeltaADCCountsMDT = 17, CaloLRLikelihood = 18, CaloMuonIDTag = 19,
  FSR_CandidateEnergy = 20, EnergyLoss = 21, ParamEnergyLoss = 22, MeasEnergyLoss = 23,
  EnergyLossSigma = 24, ParamEnergyLossSigmaPlus = 25, ParamEnergyLossSigmaMinus = 26, MeasEnergyLossSigma = 27,
  d0_sa = 28, z0_sa = 29, phi0_sa = 30, theta_sa = 31,
  qOverP_sa = 32, Eloss_sa = 33
}
 

Enum for parameter indexes.

More...
enum  Quality { Tight, Medium, Loose, VeryLoose }
MuonType muonType () const
 Generic accessor to type information.
void setMuonType (MuonType type)
bool summaryValue (uint8_t &value, const SummaryType information) 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 already defined as static).
bool summaryValue (float &value, const SummaryType information) const
bool summaryValue (uint8_t &value, const MuonSummaryType information) const
 Accessor for MuonSummaryType.
void setSummaryValue (uint8_t value, const MuonSummaryType information)
 Set method for MuonSummaryType.
float floatSummaryValue (const SummaryType information) const
uint8_t uint8SummaryValue (const SummaryType information) const
float uint8MuonSummaryValue (const MuonSummaryType information) const
bool parameter (float &value, const ParamDef parameter) const
void setParameter (float value, const ParamDef parameter)
 Set method for parameter values.
float floatParameter (const ParamDef parameter) const
bool parameter (int &value, const ParamDef parameter) const
 Get an integer parameter for this Muon - msInnerMatchDOF for example.
void setParameter (int value, const ParamDef parameter)
 Set method for parameter values.
int intParameter (const ParamDef parameter) const
Quality quality () const
 Low purity.
void setQuality (Quality)
bool passesIDCuts () const
void setPassesIDCuts (bool)
 Set whether passes the MCP ID hit cuts.
bool passesHighPtCuts () const
void setPassesHighPtCuts (bool)
 Set whether passes the MCP ID hit cuts.

Links

Returns an ElementLink to the primary TrackParticle corresponding to the MuonType of this muon. This is determined in the following order: 1. CombinedTrackParticle 2. InnerDetectorTrackParticle 3. (Extrapolated)MuonSpectrometerTrackParticle This method can throw a std::runtime_error exception if either the 'muontype' is unknown, or if the type is MuonStandAlone, but there is no available extrapolatedMuonSpectrometerTrackParticleLink or muonSpectrometerTrackParticleLink to return.

With the following methods you can retrieve links to the objects used to identify this muon - depending on how the muon was built the link may or may not be valid (i.e. a muon built from a standalone MS track won't have an ID TrackParticle associated to it).

Todo:
finish documentation
 Add some code here, showing how to properly use the element links
Note:
Some links were removed from the "Run-1" AOD::muon, in particular


enum  TrackParticleType {
  Primary, InnerDetectorTrackParticle, MuonSpectrometerTrackParticle, CombinedTrackParticle,
  ExtrapolatedMuonSpectrometerTrackParticle
}
enum  EnergyLossType {
  Parametrized = 0, NotIsolated = 1, MOP = 2, Tail = 3,
  FSRcandidate = 4
}
 

Defines how the energy loss was handled for this muon.

More...
const ElementLink
< TrackParticleContainer > & 
primaryTrackParticleLink () const
const TrackParticleprimaryTrackParticle () const
 Returns a pointer (which should not usually be NULL, but might be if the muon has been stripped of information) to the primary TrackParticle corresponding to the MuonType of this muon. This is determined in the following order: 1. CombinedTrackParticle 2. InnerDetectorTrackParticle 3. (Extrapolated)MuonSpectrometerTrackParticle.
const ElementLink
< TrackParticleContainer > & 
inDetTrackParticleLink () const
 Returns an ElementLink to the InnerDetector 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 ElementLink
< TrackParticleContainer > & 
combinedTrackParticleLink () const
 Returns an ElementLink to the InnerDetector TrackParticle used in identification of this muon.
const ElementLink
< TrackParticleContainer > & 
extrapolatedMuonSpectrometerTrackParticleLink () const
 Returns an ElementLink to the Extrapolated Muon Spectrometer TrackParticle used in identification of this muon.
const ElementLink
< TrackParticleContainer > & 
trackParticleLink (TrackParticleType type) const
 Returns an ElementLink to the TrackParticle used in identification of this muon.
void setTrackParticleLink (TrackParticleType type, const ElementLink< TrackParticleContainer > &link)
 Set method for TrackParticle links.
const TrackParticletrackParticle (TrackParticleType type) const
 Returns a pointer (which can be NULL) to the TrackParticle used in identification of this muon.
const ElementLink
< CaloClusterContainer > & 
clusterLink () const
 Returns an ElementLinkto the cluster associated to this muon.
void setClusterLink (const ElementLink< CaloClusterContainer > &link)
 Set method for cluster links.
const CaloClustercluster () const
 Retrieve the associated cluster with a bare pointer.
EnergyLossType energyLossType (void) const
void setEnergyLossType (EnergyLossType type)
 Set method for the type.
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.
size_t nMuonSegments () const
 Number of MuonSegments linked to by this Muon.
const MuonSegmentmuonSegment (size_t i) const
 Returns a pointer to the specified MuonSegment.
const ElementLink
< MuonSegmentContainer > & 
muonSegmentLink (size_t i) const
 Returns a link to the specified MuonSegment.

IParticle functions

The transverse momentum ($p_T$) of the particle.



typedef IParticle::FourMom_t FourMom_t
 Definition of the 4-momentum type.
virtual double pt () const
 The transverse momentum ($p_T$) of the particle.
virtual double eta () const
 The pseudorapidity ($\eta$) of the particle.
virtual double phi () const
 The azimuthal angle ($\phi$) of the particle.
virtual double m () const
 The invariant mass of the particle..
virtual double e () const
 The total energy of the particle.
virtual double rapidity () const
 The true rapidity (y) of the particle.
void setP4 (double pt, double eta, double phi)
 Set method for IParticle values.
virtual const FourMom_tp4 () const
 The full 4-momentum of the particle.
virtual Type::ObjectType type () const
 The type of the object as a simple enumeration.

Charge

Returns the charge.



float charge () const
void setCharge (float charge)
 Set the charge (*must* be the same as primaryTrackParticle() ).

Isolation information.



bool isolation (float &value, const Iso::IsolationType information) const
 Accessor for Isolation values. If 'information' is stored in this xAOD::Muon and is of the correct type, then the function fills 'value' and returns 'true', otherwise it returns 'false', and does not touch 'value'.
float isolation (const Iso::IsolationType information) const
void setIsolation (float value, const Iso::IsolationType information)
 Set method for Isolation values.

Detailed Description

Class describing a Muon.

Author:
Edward Moyse <Edward.Moyse@cern.ch>

Member Enumeration Documentation

Defines how the energy loss was handled for this muon.

Enumerator:
NotIsolated 

Reconstruction configured to use the parametrization w/o looking in the calo (eg calo off).

MOP 

Measurement found to be compatible with most probable value --> mop used as more reliable at this region of the eloss.

Tail 

Measured eloss significantly higher than mop --> the calo measurement used.

FSRcandidate 

In standalone reconstruction the Tail option was used. but an imbalance is observed when comparing Pstandalone and Pinnerdetector (Pstandalone>Pinnerdetector) --> if using the mop resolves the imbalance the excess energy loss is stored as fsrEnergy and the mop is used as the eloss.

Enum for parameter indexes.

Enumerator:
spectrometerFieldIntegral 

Discriminators and further variables

segmentDeltaEta 

MuTag parameters

t0 

MuGirl parameter

innAngle 

common MuGirl and MuTag parameters

msInnerMatchChi2 

The chi^2 for the match of Inner detector (ID) and standalone (SA) tracks at the entrance to the spectrometer (MS).

msInnerMatchDOF 

The 'degrees of freedom' (DOF) for the match of Inner detector (ID) and standalone (SA) tracks at the entrance to the spectrometer (MS).

msOuterMatchChi2 

The chi^2 for the match of Inner detector (ID) and standalone (SA) tracks at the exit of the spectrometer (MS).

msOuterMatchDOF 

The 'degrees of freedom' (DOF) for the match of Inner detector (ID) and standalone (SA) tracks at the exit of the spectrometer (MS).

meanDeltaADCCountsMDT 

Difference between mean number of ADC count for given track and mean number of ADC for all muons from DATA.

CaloLRLikelihood 

Calo Muon ID likelihood.

CaloMuon variables (EnergyLossType is stored separately and retrieved using energyLossType()

CaloMuonIDTag 

Calo Muon Identification tag.

FSR_CandidateEnergy 

FSR candidate energy [MeV].

EnergyLoss 

Fitted energy loss (either param or meas depending on track isolation and calo meas) [Mev].

ParamEnergyLoss 

Parametrised energy loss [Mev].

MeasEnergyLoss 

Measured energy loss [Mev].

EnergyLossSigma 

Sigma of Measured or parametrised energy loss used in the track fit [Mev].

ParamEnergyLossSigmaPlus 

Sigma plus of Parametrised energy loss [Mev].

ParamEnergyLossSigmaMinus 

Sigma minus of Parametrised energy loss [Mev].

MeasEnergyLossSigma 

Sigma of Measured energy loss [Mev].

The Muon Quality information is defined on the MCP twiki: https://twiki.cern.ch/twiki/bin/view/Atlas/MuonSelectionTool#Quality_definition

Todo:
Finish documentation
Enumerator:
Medium 

Highest purity, but lower efficiency.

Loose 

Usual recommended working point - a good balance between purity and efficiency.

VeryLoose 

Adds segment tagged and calo tagged muons.


Member Function Documentation

uint16_t xAOD::Muon_v1::allAuthors (  )  const

Get all the authors of this Muon. For example during overlap checking, the same Muon may have been reconstructed by many different algorithms. This method returns a 16bit number, where each bit represents a muon algorithm, defined as follows (the lowest bit is indicates that something has gone wrong): unknown | MuidCo | STACO | MuTag | MuTagIMO | MuidSA | MuGirl | MuGirlLowBeta | CaloTag | CaloLikelihood | ExtrapolateMuonToIP | MuonCombinedRefit | ExtrapolateMuonToIP

Returns:
16-bit word, 1-bit reserved for each muon Algorithm:
const ElementLink<CaloClusterContainer>& xAOD::Muon_v1::clusterLink (  )  const

Returns an ElementLinkto the cluster associated to this muon.

Todo:
Why just one?
EnergyLossType xAOD::Muon_v1::energyLossType ( void   )  const

Energy determined from parametrization or not (measured). The actual energy loss is returned via

    float etCore;
    bool hasEnergyLoss = parameter(float& value, const ParamDef parameter)    
float xAOD::Muon_v1::floatParameter ( const ParamDef  parameter  )  const

Same as bool parameter(float& value, const ParamDef &parameter) const, but without check (will throw exception if value isn't there). Primarily for use in Python.

float xAOD::Muon_v1::floatSummaryValue ( const SummaryType  information  )  const

Same as bool summaryValue(float& value, const SummaryType &information) const , but without check (will throw exception if value isn't there) Primarily for use in Python.

int xAOD::Muon_v1::intParameter ( const ParamDef  parameter  )  const

Same as bool parameter(float& value, const ParamDef &parameter) const, but without check (will throw exception if value isn't there). Primarily for use in Python.

float xAOD::Muon_v1::isolation ( const Iso::IsolationType  information  )  const

Accessor to Isolation values , this just returns the value without internaly checking if it exists. Will lead to an exception if the information is not available

float xAOD::Muon_v1::isolationCaloCorrection ( const Iso::IsolationFlavour  flavour,
const Iso::IsolationCaloCorrection  type,
const Iso::IsolationCorrectionParameter  param 
) const

Accessor to Isolation Calo corrections , this just returns the correction without internaly checking if it exists. Will lead to an exception if the information is not available

std::bitset< 32 > xAOD::Muon_v1::isolationCorrectionBitset ( const Iso::IsolationFlavour  flavour  )  const

Accessor to Isolation corection Bitset , this just returns the bitset without internaly checking if it exists. Will lead to an exception if the information is not available

float xAOD::Muon_v1::isolationTrackCorrection ( const Iso::IsolationFlavour  flavour,
const Iso::IsolationTrackCorrection  type 
) const

Accessor to Isolation Track corrections , this just returns the correction without internaly checking if it exists. Will lead to an exception if the information is not available

const MuonSegment * xAOD::Muon_v1::muonSegment ( size_t  i  )  const

Returns a pointer to the specified MuonSegment.

Parameters:
i Index of the MuonSegment requested. If i is not in range (0<i<nMuonSegments()) an exception will be thrown.
const ElementLink< MuonSegmentContainer > & xAOD::Muon_v1::muonSegmentLink ( size_t  i  )  const

Returns a link to the specified MuonSegment.

Parameters:
i Index of the MuonSegment requested. If i is not in range (0<i<nMuonSegments()) an exception will be thrown.
const std::vector< ElementLink< MuonSegmentContainer > >& xAOD::Muon_v1::muonSegmentLinks (  )  const

Returns a vector of ElementLinks to the MuonSegments used to create this Muon.

Todo:
complete the various calo energy additions (i.e. depositInCalo etc)
bool xAOD::Muon_v1::parameter ( float &  value,
const ParamDef  parameter 
) const

Get a parameter for this Muon - momentumBalanceSignificance for example

Todo:
Finish documentation include matchChi2, muonentrancechi2 (instead of outerMatchChi2). Store chi2/dof instead of two? fitChi2 comes from TrackParticle.
bool xAOD::Muon_v1::passesHighPtCuts (  )  const

Returns true if this Muon passes the MCP high pT cuts (see the MCP twiki for definitions: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/MuonPerformance)

bool xAOD::Muon_v1::passesIDCuts (  )  const

Returns true if this Muon passes the MCP ID hit cuts (see the MCP twiki for definitions: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/MuonPerformance)

void xAOD::Muon_v1::setMuonType ( MuonType  type  ) 
Todo:
  • do we actually need this? Deduce it from other information?
void xAOD::Muon_v1::setSummaryValue ( uint8_t  value,
const SummaryType  information 
)

Set method for storing TrackSummary SummaryType information on the Muon (see Aux to see which is already defined as static).

FIXME!

bool xAOD::Muon_v1::summaryValue ( float &  value,
const SummaryType  information 
) const
bool xAOD::Muon_v1::summaryValue ( uint8_t &  value,
const SummaryType  information 
) const

Accessor for TrackSummary values (in most cases, retrieved from the 'primary' TrackParticle - though it could be stored on the Muon, depending on the job configuration) If 'information' is stored in the primary TrackParticle/Muon and is of the correct templated type T, then the function fills 'value' and returns 'true', otherwise it returns 'false', and does not touch 'value'. See below for an example of how this is intended to be used.

 uint8_t numberOfBLayerHits=0;
 if( myParticle.summaryValue<uint8_t>(numberOfBLayerHits,numberOfBLayerHits) ){
   ATH_MSG_INFO("Successfully retrieved the integer value, numberOfBLayerHits"); 
 }
 float numberOfCscPhiHits=0.0; //Wrong! This is actually an int too.
 if( !myParticle.summaryValue<float>(numberOfCscPhiHits,numberOfCscPhiHits) ){
   ATH_MSG_INFO("Types must match!"); 
 }
Parameters:
[in] information The information being requested. This is not guaranteed to be stored in all Muons (or primary TrackParticle).
[out] value Only filled if this Muon (or its primary TrackParticle) contains 'information', and the types match.
Returns:
Returns 'true' if the Muon contains 'information', and its concrete type matches 'value' (templated type T).
float xAOD::Muon_v1::uint8MuonSummaryValue ( const MuonSummaryType  information  )  const

Same as bool summaryValue(uint8_t& value, const MuonSummaryType &information) const, but without check (will throw exception if value isn't there) Primarily for use in Python.

uint8_t xAOD::Muon_v1::uint8SummaryValue ( const SummaryType  information  )  const

Same as bool summaryValue(uint8_t& value, const SummaryType &information) const, but without check (will throw exception if value isn't there) Primarily for use in Python.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 15 Apr 2017 for RootCore Packages by  doxygen 1.6.1