ATLAS Offline Software
IMuonTrackQuery.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef MUIDINTERFACES_IMUONTRACKQUERY_H
6 #define MUIDINTERFACES_IMUONTRACKQUERY_H
7 
8 #include <memory> //for unique_ptr
9 
10 #include "GaudiKernel/IAlgTool.h"
11 #include "TrkParameters/TrackParameters.h" //typedef, cannot fwd declare
12 
13 class CaloEnergy;
14 namespace Trk {
15  class Track;
16 }
17 
18 namespace Rec {
19 
20  class FieldIntegral;
21  class ScatteringAngleSignificance;
22 
29  class IMuonTrackQuery : virtual public IAlgTool {
30  public:
32  virtual ~IMuonTrackQuery() = default;
33  static const InterfaceID& interfaceID() {
34  static const InterfaceID IID_IMuonTrackQuery("IMuonTrackQuery", 1, 0);
35  return IID_IMuonTrackQuery;
36  }
37 
40  virtual const CaloEnergy* caloEnergy(const Trk::Track& track) const = 0;
41 
44  virtual double caloEnergyDeposit(const Trk::Track& track, const EventContext& ctx) const = 0;
45 
48  virtual FieldIntegral fieldIntegral(const Trk::Track& track, const EventContext& ctx) const = 0;
49 
52  virtual bool isCaloAssociated(const Trk::Track& track, const EventContext& ctx) const = 0;
53 
56  virtual bool isCombined(const Trk::Track& track, const EventContext& ctx) const = 0;
57 
60  virtual bool isExtrapolated(const Trk::Track& track, const EventContext& ctx) const = 0;
61 
64  virtual bool isLineFit(const Trk::Track& track) const = 0;
65 
68  virtual bool isProjective(const Trk::Track& track) const = 0;
69 
72  virtual bool isSectorOverlap(const Trk::Track& track) const = 0;
73 
76  virtual bool isSlimmed(const Trk::Track& track) const = 0;
77 
80  virtual double momentumBalanceSignificance(const Trk::Track& track, const EventContext& ctx) const = 0;
81 
84  virtual unsigned numberPseudoMeasurements(const Trk::Track& track) const = 0;
85 
88  virtual std::unique_ptr<const Trk::Perigee> outgoingPerigee(const Trk::Track& track) const = 0;
89 
92  virtual ScatteringAngleSignificance scatteringAngleSignificance(const Trk::Track& track, const EventContext& ctx) const = 0;
93 
96  virtual std::unique_ptr<Trk::TrackParameters> spectrometerParameters(const Trk::Track& track, const EventContext& ctx) const = 0;
97 
100  // virtual unsigned spectrometerPhiQuality(const Trk::Track& track) const = 0;
101  virtual unsigned spectrometerPhiQuality(const Trk::Track& track, const EventContext& ctx) const = 0;
102 
105  virtual std::unique_ptr<const Trk::TrackParameters> triggerStationParameters(const Trk::Track& track,
106  const EventContext& ctx) const = 0;
107  };
108 
109 } // namespace Rec
110 
111 #endif // MUIDINTERFACES_IMUONTRACKQUERY_H
Rec::IMuonTrackQuery::numberPseudoMeasurements
virtual unsigned numberPseudoMeasurements(const Trk::Track &track) const =0
IMuonTrackQuery interface: number of PseudoMeasurements on track (counts one for any vertex measureme...
Rec::IMuonTrackQuery::spectrometerParameters
virtual std::unique_ptr< Trk::TrackParameters > spectrometerParameters(const Trk::Track &track, const EventContext &ctx) const =0
IMuonTrackQuery interface: trackParameters at innermost measurement TSOS in MS.
TrackParameters.h
Rec::IMuonTrackQuery::scatteringAngleSignificance
virtual ScatteringAngleSignificance scatteringAngleSignificance(const Trk::Track &track, const EventContext &ctx) const =0
IMuonTrackQuery interface: significance of inner scattering angle pattern for unslimmed tracks (wider...
Rec::IMuonTrackQuery::isProjective
virtual bool isProjective(const Trk::Track &track) const =0
IMuonTrackQuery interface: is track (roughly) projective towards IP?
CaloEnergy
class extending the basic Trk::EnergyLoss to describe the measured or parameterised muon energy loss ...
Definition: CaloEnergy.h:28
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
Rec::IMuonTrackQuery::~IMuonTrackQuery
virtual ~IMuonTrackQuery()=default
Virtual destructor.
Rec::IMuonTrackQuery::isSectorOverlap
virtual bool isSectorOverlap(const Trk::Track &track) const =0
IMuonTrackQuery interface: is there a long/short chamber overlap?
Rec::IMuonTrackQuery::isSlimmed
virtual bool isSlimmed(const Trk::Track &track) const =0
IMuonTrackQuery interface: does track have TrackParameters at every TSOS ?
Rec::ScatteringAngleSignificance
Definition: ScatteringAngleSignificance.h:22
Rec::IMuonTrackQuery::isExtrapolated
virtual bool isExtrapolated(const Trk::Track &track, const EventContext &ctx) const =0
IMuonTrackQuery interface: does track have measurements in spectrometer and parameters but not measur...
Rec::IMuonTrackQuery::isCombined
virtual bool isCombined(const Trk::Track &track, const EventContext &ctx) const =0
IMuonTrackQuery interface: does track have measurements from indet and spectrometer ?
Rec
Name: MuonSpContainer.h Package : offline/Reconstruction/MuonIdentification/muonEvent.
Definition: FakeTrackBuilder.h:10
Rec::IMuonTrackQuery::momentumBalanceSignificance
virtual double momentumBalanceSignificance(const Trk::Track &track, const EventContext &ctx) const =0
IMuonTrackQuery interface: significance of momentum balance for combined tracks (biassed residual)
Rec::IMuonTrackQuery::fieldIntegral
virtual FieldIntegral fieldIntegral(const Trk::Track &track, const EventContext &ctx) const =0
IMuonTrackQuery interface: field integral along track from momentum kick between measurements.
Rec::IMuonTrackQuery::isLineFit
virtual bool isLineFit(const Trk::Track &track) const =0
IMuonTrackQuery interface: does track have fitted curvature ?
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Rec::IMuonTrackQuery::outgoingPerigee
virtual std::unique_ptr< const Trk::Perigee > outgoingPerigee(const Trk::Track &track) const =0
IMuonTrackQuery interface: perigee expressed outgoing from IP.
Rec::IMuonTrackQuery::spectrometerPhiQuality
virtual unsigned spectrometerPhiQuality(const Trk::Track &track, const EventContext &ctx) const =0
IMuonTrackQuery interface: assess the number of additional phi measurements needed for MS (or SA) tra...
Rec::IMuonTrackQuery::triggerStationParameters
virtual std::unique_ptr< const Trk::TrackParameters > triggerStationParameters(const Trk::Track &track, const EventContext &ctx) const =0
IMuonTrackQuery interface: trackParameters at innermost trigger chamber TSOS in MS.
Rec::FieldIntegral
Definition: FieldIntegral.h:22
Rec::IMuonTrackQuery
Definition: IMuonTrackQuery.h:29
Rec::IMuonTrackQuery::interfaceID
static const InterfaceID & interfaceID()
AlgTool and IAlgTool interface methods.
Definition: IMuonTrackQuery.h:33
Rec::IMuonTrackQuery::caloEnergy
virtual const CaloEnergy * caloEnergy(const Trk::Track &track) const =0
IMuonTrackQuery interface: caloEnergy from appropriate TSOS.
Rec::IMuonTrackQuery::caloEnergyDeposit
virtual double caloEnergyDeposit(const Trk::Track &track, const EventContext &ctx) const =0
IMuonTrackQuery interface: track energy deposit in calorimeters (as fitted or otherwise applied)
Track
Definition: TriggerChamberClusterOnTrackCreator.h:21
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
Rec::IMuonTrackQuery::isCaloAssociated
virtual bool isCaloAssociated(const Trk::Track &track, const EventContext &ctx) const =0
IMuonTrackQuery interface: does track have at least 3 TSOS's representing calorimeter ?