7#ifndef MUONEVENT_MUON_H
8#define MUONEVENT_MUON_H 1
16#include "CLHEP/Vector/LorentzVector.h"
19#include "CaloEvent/CaloClusterContainer.h"
24#include "AthLinks/ElementLink.h"
25#include "AthLinks/ElementLinkVector.h"
41 ::Analysis::MuonNavigation,
81 const std::vector<const Trk::Segment*>& muonSegments);
218 if (dof > 0)
return (this->
matchChi2()/dof);
244 if (dof > 0)
return (
fitChi2() / dof);
615 m_cluster.setStorableObject(*clusterContainer);
655 muonExtrapolatedTPContainer) {
661 innerExtrapolatedTPContainer) {
Scalar deltaPhi(const MatrixBase< Derived > &vec) const
bool isValid(const T &p)
Av: we implement here an ATLAS-sepcific convention: all particles which are 99xxxxx are fine.
bool hasCombinedMuonTrackParticleFlag() const
int numberOfRPCEtaHoles() const
Get Muon Spectrometer RPC Eta Holes information for MS track or tagged segments.
const CaloCluster * cluster() const
access to the calorimeter info
const Rec::TrackParticle * track() const
return the primary track of this muon
const Trk::Track * muonSpectrometerTrkTrack() const
access to TrkTracks - MuonSpectrometerTrack
const ElementLink< MuonCaloEnergyContainer > & caloEnergyLink() const
Access to the smart pointer to the calorimeter energy loss objeect associated to the muon.
bool hasInDetTrackParticle() const
test if associated indet TrackParticle is available
void set_midAngle(const float midA)
Set midAngle.
bool hasMuonExtrapolatedTrackParticleFlag() const
bool alsoFoundByCaloMuonId() const
is this muon also reconstructed by a CaloMuon ID algorithm?
void set_cluster(const CaloClusterContainer *cont, const CaloCluster *cluster)
set the Calorimeter information
uint16_t m_allAuthors
all authors - all the authors of this this Muon
unsigned short caloMuonAlsoFoundByMuonReco() const
is this Calo Muon also reconstructed by one of the standard muon reconstruction algorithm?
void set_scatteringNeighbourSignificance(const float significance)
set scatteringAngleSignificance based on hard scatterers over few near-by measurements,...
MuonParameters::Author author() const
return the primary author of this Muon - the algorithm that is most likely to reconstruct prompt muon...
float segmentChi2OverDoF() const
Access to a match chi2/ndf from muon segment taggers.
bool isLoose() const
test for muon being categorised as "loose"
const Rec::TrackParticle * combinedMuonTrackParticle() const
Access to the TrackParticles.
const std::vector< int > & segmentEtaDigits() const
Access to the MS eta hits associated by segment-tagged muons.
void set_innerExtrapolatedTrackParticle(const Rec::TrackParticleContainer *, const Rec::TrackParticle *)
set the extrapolated track particle from the inner detector.
int numberOfGangedPixels() const
number of Ganged Pixel for track from primary author
bool hasInnerExtrapolatedTrackParticle() const
test if associated TrackParticle from ID-seeded full track fit is available
bool m_hasMuonExtrapolatedTrackParticle
test for TrackParticles
void set_matchNumberDoF(int x)
set the chi2 parameters - number of degrees of freedom
void set_cluster(const ElementLink< CaloClusterContainer > &cluster)
set the Calorimeter information, by link
const ElementLink< CaloClusterContainer > & clusterLink() const
const ElementLink< Rec::TrackParticleContainer > & innerExtrapTrackLink() const
Access to the smart pointer to the muon track extrapolated out from the vertex.
void set_inDetTrackParticle(const Rec::TrackParticleContainer *, const Rec::TrackParticle *)
Set the inner detector track particle.
int numberOfTGCPhiHoles() const
Get Muon Spectrometer TGC Phi Holes information for MS track or tagged segments.
ParticleImpl< ::Analysis::MuonNavigation, ::P4ImplIPtCotThPhiM > MuonImpl_t
double matchChi2OverDoF() const
get the chi2 over number of DoF of the track match at perigee
bool isMedium() const
test for muon being categorised as "medium"
void set_statCombinedMuonTrackParticleContainer(const Rec::TrackParticleContainer *combinedMuonTPContainer)
set the TrackParticle containers
void set_isMuonBits(const uint16_t isMuonBits)
set muon quality parameters
float annEndCap() const
Access to some neural-network output for muons found by MuGirl.
bool isSegmentTaggedMuon() const
Method for querying primary identification mechanism: muon identified by inner-detector seeded identi...
int numberOfTGCEtaHits() const
Get Muon Spectrometer TGC Eta Hits information for MS track or tagged segments.
std::vector< int > m_associatedPhiDigits
void set_isAlsoFoundByCaloMuonId(const bool isAlsoSeenByCaloMuonId)
set is also seen by calo muon Id reconstruction
void set_annBarrel(const float annB)
Set annBarrel.
void set_isMuonBits(const MuonQualityWord &qWord)
int numberOfRPCPhiHoles() const
Get Muon Spectrometer RPC Phi Holes information for MS track or tagged segments.
void setCotTh(const double theCotTh)
set cot(theta) data member
void setMuonSpectrometerTrackLink(const ElementLink< Rec::TrackParticleContainer > &l)
float midAngle() const
Access to some angles for muons found by MuGirl.
int numberOfInnermostPixelLayerHits() const
Get Inner detector Hits information from ID trackparticle.
void set_parameter(MuonParameters::ParamDef index, double value, bool overwrite=false)
set a parameter in the MuonParamDefs.h
std::vector< std::pair< MuonParameters::ParamDef, float > > m_parameters
Parameters as defined in MuonParamDef.h.
const ElementLink< Rec::TrackParticleContainer > & muonExtrapTrackLink() const
Access to the smart pointer to the muon track extrapolated to the vertex.
bool hasCluster() const
test for a valid pointer to a muon cluster
const ElementLink< Rec::TrackParticleContainer > & inDetTrackLink() const
Access to the smart pointer to inner detector track.
int numberOfTRTOutliers() const
Get number of TRT Outliers from ID trackparticle.
float segmentDeltaPhi() const
Access to some Detla(phi) from muon segment taggers.
void setCaloEnergyLink(const ElementLink< MuonCaloEnergyContainer > &l)
int numberOfSCTHoles() const
Get number of Silicon SCT holes from ID trackparticle.
float scatteringCurvatureSignificance() const
scatteringAngleSignificance based on the curvature significance, from track fit in ID (thus not avail...
int numberOfTRTHighThresholdOutliers() const
Get number of TRT Outliers High Threshold from ID trackparticle.
void setStatCombinedTrackLink(const ElementLink< Rec::TrackParticleContainer > &l)
const CaloEnergy * caloEnergyLoss() const
energy loss in the calorimeter - access to the full object
void set_segmentChi2OverDoF(const float chi2)
Set Segment Chi2 over degrees of freeedom.
Trk::FitQuality m_transientOuterMatchChi2
Muon & operator=(const Muon &rhs)
Assignment operator.
bool hasGlobalMuonTrackFit() const
flag if the there was re-fit of ID and MS hits, currently muons from MuidCB, CombinedMuonFit and MuGi...
std::vector< int > m_associatedEtaDigits
Low Pt muon stuff.
float scatteringNeighbourSignificance() const
scatteringAngleSignificance based on hard scatterers over few near-by measurements,...
float segmentDeltaEta() const
Access to some Delta(eta) from muon segment taggers.
void set_caloMuonAlsoFoundByMuonReco(const unsigned short isAlsoFoundByMuonReco)
set if this calo muon is also reconstructed by one of the standard muon recosntruction algorithms tha...
bool isCaloMuonId() const
Method for querying primary identification mechanism: muon identified solely by calorimeter based ide...
bool hasCombinedMuonTrackParticle() const
test if associated combined-muon TrackParticle is available
int numberOfCSCPhiHits() const
Get Muon Spectrometer CSC Phi Hits information for MS track or tagged segments.
int numberOfCSCPhiHoles() const
Get Muon Spectrometer CSC Phi Holes information for MS track or tagged segments.
ElementLink< Rec::TrackParticleContainer > m_combinedMuonTrackParticle
void set_isCorrected(bool corrected)
is this Muon corrected in AOD-to-AOD correction or not?
void set_combinedMuonTrackParticle(const Rec::TrackParticleContainer *, const Rec::TrackParticle *)
set the combined muon track particle.
ElementLink< Rec::TrackParticleContainer > m_inDetTrackParticle
end LowPt stuff
const Trk::FitQuality * outerMatchChi2() const
returns track matching at MS entrance for combined muons and match at first segment for tagged muons.
void set_isAlsoFoundByLowPt(const bool isAlsoSeenByLowPt)
set is also seen by low Pt reconstruction
int numberOfTrackSummaryTypes(unsigned int type=0) const
number of summaryTypes for track from primary author
bool add_author(MuonParameters::Author author)
the add_author method returns a bool:
void set_momentumBalanceSignificance(const float significance)
set momentumBalanceSignificance for fitted or combined muons as discriminator against background muon...
int numberOfTRTHits() const
Get number of TRT hits from ID trackparticle.
MuonImpl_t::particle_type particle_type
void set_muonExtrapolatedTrackParticle(const Rec::TrackParticleContainer *, const Rec::TrackParticle *)
set the muon spectrometer extrapolated track particle.
int numberOfInnermostPixelLayerSharedHits() const
Get number of shared hits or holes from ID trackparticle.
const Trk::Track * muonExtrapolatedTrkTrack() const
access to TrkTracks - muonExtrapolatedTrack
virtual void fillToken(INavigationToken &thisToken) const
navigation method
const ElementLink< Rec::TrackParticleContainer > & muonSpectrometerTrackLink() const
Access to the smart pointer to the muon spectrometer track.
void set_numberOfAssociatedPhiDigits(int nMDT, int nCSC, int nRPC, int nTGC)
Set the LowPt - Associated Phi Digits.
void set_numberOfSegmentEtaDigits(int nMDT, int nCSC, int nRPC, int nTGC)
Set Segment Eta Digits.
int numberOfCSCEtaHoles() const
Get Muon Spectrometer CSC Eta Holes information for MS track or tagged segments.
bool m_hasCombinedMuonTrackParticle
bool m_isAlsoFoundByCaloMuonId
this muon is also found by the Calo Muon ID reconstruction algorithm
void set_numberOfSegmentPhiDigits(int nMDT, int nCSC, int nRPC, int nTGC)
Set Segment Phi Digits.
bool alsoFoundByLowPt() const
is this muon also reconstructed by the lowPt algorithm?
void set_spectrometerFieldIntegral(const float field)
set field integral seen by the track in the muon spectrometer - defined only for standalone,...
void set_annEndCap(const float annE)
Set annEndCap.
int numberOfSCTHits() const
Get number of Silicon SCT hits from ID trackparticle.
int numberOfTGCPhiHits() const
Get Muon Spectrometer TGC Phi Hits information for MS track or tagged segments.
void set_muonSpectrometerTrackParticle(const Rec::TrackParticleContainer *, const Rec::TrackParticle *)
set Muon Spectrometer TrackParticle
const Rec::TrackParticle * muonExtrapolatedTrackParticle() const
Access to the TrackParticles.
const Rec::TrackParticle * inDetTrackParticle() const
deprecated - instead use primary identification, muon quality or MuonCP group guidelines to adopt a g...
void setPhi(const double thePhi)
set phi data member
bool isCorrected() const
is this Muon corrected or not in AOD-to-AOD correction
void setM(const double theM)
set m data member
bool isStandAloneMuon() const
method for querying primary identification mechanism: muon identified by spectrometer track (that is ...
const ElementLink< Rec::TrackParticleContainer > & combinedTrackLink() const
Access to the smart pointer to the muon combined track.
int numberOfSCTSharedHits() const
Get number of Silicon SCT shared hits from ID trackparticle.
bool isCombinedMuon() const
method for querying primary identification mechanism: muon identified by successfully combining a ful...
MuonImpl_t::momentum_type momentum_type
const Rec::TrackParticle * muonSpectrometerTrackParticle() const
Access to the TrackParticles.
void add_authors(const uint16_t authors)
other add_author method
bool hasCombinedMuon() const
deprecated - please use primary identification, muon quality or MuonCP group guidelines to adopt a gi...
ElementLink< MuonCaloEnergyContainer > m_caloEnergyLoss
energy loss in calorimeter
unsigned int numberOfSegments() const
Access to the number of muon segments.
ElementLink< Rec::TrackParticleContainer > m_muonExtrapolatedTrackParticle
bool bestMatch() const
Is this combined Muon the best match?
int numberOfOutliersOnTrack() const
number of outliers for track from primary author
int numberOfRPCPhiHits() const
Get Muon Spectrometer RPC Phi Hits information for MS track or tagged segments.
void set_energyLoss(const CaloEnergy *caloEnergy)
set the energy loss in the calorimeter
void setInnerExtrapTrackLink(const ElementLink< Rec::TrackParticleContainer > &l)
void set_scatteringCurvatureSignificance(const float significance)
set scatteringAngleSignificance based on the curvature significance, from track fit in ID.
void set_segmentDeltaPhi(const float deltaPhi)
Set Segment Delta Phi.
void set_inDetTrackParticleContainer(const Rec::TrackParticleContainer *inDetTPContainer)
set the TrackParticle containers
void setClusterLink(const ElementLink< CaloClusterContainer > &l)
void set_innAngle(const float innA)
Set innAngle.
int fitNumberDoF() const
get the number of DoF of the track fit
const Rec::TrackParticle * innerExtrapolatedTrackParticle() const
Access to the TrackParticles.
bool m_isAlsoFoundByLowPt
this muon is also found by the lowPT reconstruction algorithm
bool hasMuonExtrapolatedTrackParticle() const
test if associated MS TrackParticle (extrapolated to IP) is available
uint16_t allAuthors() const
get all the authors of this Muon for example during overlap checking, the same Muon may have been rec...
void set_isMuonLikelihood(const float muonLikelihood)
MuonQualityWord m_isMuonBits
muon selection parameters
float annBarrel() const
Access to some neural-network output for muons found by MuGirl.
int numberOfPixelHoles() const
Get number of Pixel holes from ID trackparticle.
void set_muonExtrapolatedTrackParticleContainer(const Rec::TrackParticleContainer *muonExtrapolatedTPContainer)
set the TrackParticle containers
void set_outerMatchChi2(double x, int ndof)
set the outer match chi2/ndof for combined and segment-tagged muons
void set_statCombinedMuonTrackParticle(const Rec::TrackParticleContainer *, const Rec::TrackParticle *)
set the combined muon track particle for statistical combination.
ElementLink< CaloClusterContainer > m_cluster
ElementLink< Rec::TrackParticleContainer > m_muonSpectrometerTrackParticle
needed by MOORE
void set_clusterContainer(const CaloClusterContainer *clusterContainer)
set the Calorimeter information
float t0() const
Access to event phase for muons found by MuGirlLowBeta.
const std::vector< int > & segmentPhiDigits() const
Access to the MS phi hits associated by segment-tagged muons.
const MuonQualityWord & isMuon() const
access to muon quality information the user must take care to delete the pointer the Muon does not ow...
int numberOfTGCEtaHoles() const
Get Muon Spectrometer TGC Eta Holes information for MS track or tagged segments.
void copySegmentLinkVector(const ElementLinkVector< Trk::SegmentCollection > &segments)
function to copy muon segment element links into this muon
void set_segmentDeltaEta(const float deltaEta)
Set Segment Delta Eta.
void set_allAuthors(const uint16_t allAuthors)
set all the authors of this Muon the authors are 16-bit word, 1-bit reserved for each muon Algorithm ...
void set_muonSegments(const Trk::SegmentCollection *, const std::vector< const Trk::Segment * > &)
set the combined muon track particle
void set_numberOfAssociatedEtaDigits(int nMDT, int nCSC, int nRPC, int nTGC)
Set the LowPt stuff.
const ElementLink< Rec::TrackParticleContainer > & statCombinedTrackLink() const
Access to the smart pointer to the muon combined track.
void addSegment(const Trk::SegmentCollection *, const Trk::Segment *)
set the combined muon track particle
bool isAuthor(const unsigned int author) const
check if this author is among the list of authors of this Muon - obviously, the primary author MUST b...
MuonImpl_t::navigable_type navigable_type
const Trk::Segment * muonSegment(unsigned int i) const
Access to the muon segments.
double matchChi2() const
get the chi2 of the MS-ID track match at the perigee
bool hasStatCombinedMuonTrackParticle() const
test if (in addition to the refitted combined muon) a stat.combined TrackParticle is available.
MuonParameters::Author m_author
the author of this muon
void setMuonExtrapTrackLink(const ElementLink< Rec::TrackParticleContainer > &l, bool isValid)
void set_cluster(const CaloCluster *cluster)
set the Calorimeter information
Muon()
Default constructor.
void set_author(MuonParameters::Author author)
set the primary Author : the primary author is the algorithm that first created this Muon
float isMuonLikelihood() const
return the muon likelihood - not yet used
const Trk::Track * combinedMuonTrkTrack() const
access to TrkTracks - CombinedTrack
float momentumBalanceSignificance() const
momentumBalanceSignificance defined for fitted or combined muons in order to identify decays in fligh...
void setCombinedTrackLink(const ElementLink< Rec::TrackParticleContainer > &l, bool isValid)
int numberOfMDTHoles() const
Get Muon Spectrometer MDT holes information for MS track or tagged segments.
ElementLinkVector< Trk::SegmentCollection > m_muonSegments
const std::vector< int > & associatedPhiDigits() const
Access to the MS phi hits associated by segment-tagged muons.
double fitChi2() const
get the chi2 of the track fit
const std::vector< std::pair< MuonParameters::ParamDef, float > > & parameter() const
vector of parameter pairs for this Muon - isolation energy in some cone for example
void setMuonSegmentLink(const ElementLinkVector< Trk::SegmentCollection > &l)
const Trk::Track * inDetTrkTrack() const
access to TrkTracks - InDetTrack
int outerMatchNumberDoF() const
const Trk::Track * innerExtrapolatedTrkTrack() const
access to TrkTracks - innerExtrapolatedTrack
float spectrometerFieldIntegral() const
field integral seen by the track in the muon spectrometer - defined only for standalone,...
ElementLink< Rec::TrackParticleContainer > m_statCombinedMuonTrackParticle
int numberOfPixelSharedHits() const
Get number of Pixel shared hits from ID trackparticle.
ElementLink< Rec::TrackParticleContainer > m_innerExtrapolatedTrackParticle
double fitChi2OverDoF() const
get the chi2 over number of DoF of the track fit
void set_energyLossContainer(const MuonCaloEnergyContainer *cont)
set the energy loss in the calorimeter
int numberOfMDTHits() const
Get Muon Spectrometer MDT Hits information for MS track or tagged segments.
int numberOfPixelHits() const
Get number of Pixel hits from ID trackparticle.
void set_bestMatch(bool best)
set the best match
int m_outerMatchNumberDoF
bool m_isCorrected
AOD to AOD correction.
std::pair< double, double > energyLoss() const
energy loss and its uncertainty in the calorimeter
float beta() const
Access to particle velocity fit parameter for muons found by MuGirlLowBeta.
void setIPt(const double theIPt)
set inverse pT data member
int matchNumberDoF() const
get the number of DoF of the track match at perigee
const Rec::TrackParticle * statCombinedMuonTrackParticle() const
Access to the TrackParticles: statistical combination.
const ElementLinkVector< Trk::SegmentCollection > & muonSegmentLink() const
Access to vector smart pointers (ElementLink) to muon segments.
unsigned short m_caloMuonAlsoFoundByMuonReco
flag the calo muon if it is also reconstruction by the standart muon algorithms
bool isSiliconAssociatedForwardMuon() const
Method for querying primary identification mechanism: a combined muon where a clean forward standalon...
int numberOfTRTHighThresholdHits() const
Get number of TRT High Threshold hits from ID trackparticle.
void setInDetTrackLink(const ElementLink< Rec::TrackParticleContainer > &l)
int numberOfRPCEtaHits() const
Get Muon Spectrometer RPC Eta Hits information for MS track or tagged segments.
void set_combinedMuonTrackParticleContainer(const Rec::TrackParticleContainer *combinedMuonTPContainer)
set the TrackParticle containers
bool isTight() const
test for muon being categorised as "tight"
const std::vector< int > & associatedEtaDigits() const
Access to the MS eta hits associated by segment-tagged muons.
void set_innerExtrapolatedTrackParticleContainer(const Rec::TrackParticleContainer *innerExtrapolatedTPContainer)
set the TrackParticle containers
int numberOfCSCEtaHits() const
Get Muon Spectrometer CSC Eta Hits information for MS track or tagged segments.
float innAngle() const
Access to some angles for muons found by MuGirl.
void set_matchChi2(float x)
set the chi2 parameters - matchChi2
Storable container for CaloCluster.
Principal data class for CaloCell clusters.
class extending the basic Trk::EnergyLoss to describe the measured or parameterised muon energy loss ...
ElementLinkVector implementation for standalone ROOT.
ElementLink implementation for ROOT usage.
Data object for a StoreGate container holding a vector of CaloEnergy, the detailed energy loss descri...
A bitted word defining different levels of muon identification qualities (in terms of purity and effi...
Dummy type needed fro specialized implementation.
P4ImplIPtCotThPhiM is a base class for classes with 4-momentum behavior, for which 1/Pt,...
virtual void setPhi(const double thePhi)
set phi data member
virtual void setCotTh(const double theCotTh)
set cot(theta) data member
virtual void setM(const double theM)
set m data member
virtual void setIPt(const double theIPt)
set inverse pT data member
const momentum_type & momentumBase() const
::Analysis::MuonNavigation navigable_type
ParticleEvent::Base particle_type
::P4ImplIPtCotThPhiM momentum_type
Class to represent and store fit qualities from track reconstruction in terms of and number of degre...
int numberDoF() const
returns the number of degrees of freedom of the overall track or vertex fit as integer
double chiSquared() const
returns the of the overall track fit
Base class for all TrackSegment implementations, extends the common MeasurementBase.
const FitQuality * fitQuality() const
accessor function for FitQuality.
double chi2(TH1 *h0, TH1 *h1)
The namespace of all packages in PhysicsAnalysis/JetTagging.
NavigableTerminalNode MuonNavigation
ParamDef
Enum for parameter indexes.
@ spectrometerFieldIntegral
Discriminators and further variables.
@ innAngle
common MuGirl and MuTag parameters
@ scatteringNeighbourSignificance
@ scatteringCurvatureSignificance
@ segmentDeltaEta
MuTag parameters.
@ momentumBalanceSignificance
Author
do not change the order of these enums.
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
DataVector< Trk::Segment > SegmentCollection