ATLAS Offline Software
Loading...
Searching...
No Matches
MuonTrackQuery.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 MUIDTRACKBUILDER_MUONTRACKQUERY_H
6#define MUIDTRACKBUILDER_MUONTRACKQUERY_H
7
9#include "GaudiKernel/ServiceHandle.h"
10#include "GaudiKernel/ToolHandle.h"
18namespace Rec {
19
20 class MuonTrackQuery : public AthAlgTool, virtual public IMuonTrackQuery {
21 public:
22 MuonTrackQuery(const std::string& type, const std::string& name, const IInterface* parent);
23 ~MuonTrackQuery() = default;
24
25 StatusCode initialize() override;
26
29 const CaloEnergy* caloEnergy(const Trk::Track& track) const override;
30
33 double caloEnergyDeposit(const Trk::Track& track, const EventContext& ctx) const override;
34
37 FieldIntegral fieldIntegral(const Trk::Track& track, const EventContext& ctx) const override;
38
41 bool isCaloAssociated(const Trk::Track& track, const EventContext& ctx) const override;
42
45 bool isCombined(const Trk::Track& track, const EventContext& ctx) const override;
46
49 bool isExtrapolated(const Trk::Track& track, const EventContext& ctx) const override;
50
53 bool isLineFit(const Trk::Track& track) const override;
54
57 bool isProjective(const Trk::Track& track) const override;
58
61 bool isSectorOverlap(const Trk::Track& track) const override;
62
65 bool isSlimmed(const Trk::Track& track) const override;
66
69 double momentumBalanceSignificance(const Trk::Track& track, const EventContext& ctx) const override;
70
73 unsigned numberPseudoMeasurements(const Trk::Track& track) const override;
74
77 std::unique_ptr<const Trk::Perigee> outgoingPerigee(const Trk::Track& track) const override;
78
81 ScatteringAngleSignificance scatteringAngleSignificance(const Trk::Track& track, const EventContext& ctx) const override;
82
85 std::unique_ptr<Trk::TrackParameters> spectrometerParameters(const Trk::Track& track, const EventContext& ctx) const override;
86
89 unsigned spectrometerPhiQuality(const Trk::Track& track, const EventContext& ctx) const override;
90
93 std::unique_ptr<const Trk::TrackParameters> triggerStationParameters(const Trk::Track& track,
94 const EventContext& ctx) const override;
95
96 private:
97 static std::unique_ptr<Trk::TrackParameters> flippedParameters(const Trk::TrackParameters& params);
98
99 // tools and services
100 ToolHandle<Trk::ITrackFitter> m_fitter{this, "Fitter", "", "Track fitter tool"};
101
103 this,
104 "edmHelper",
105 "Muon::MuonEDMHelperSvc/MuonEDMHelperSvc",
106 "Handle to the service providing the IMuonEDMHelperSvc interface",
107 };
108
109 ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc{this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
110
111 ToolHandle<Muon::IMdtDriftCircleOnTrackCreator> m_mdtRotCreator{
112 this, "MdtRotCreator", "Muon::MdtDriftCircleOnTrackCreator/MdtDriftCircleOnTrackCreator", "MdtDriftCircleOnTrackCreator tool"};
113
115 "Key of the TrackingGeometry conditions data."};
116
117 inline const Trk::TrackingVolume* getVolume(const std::string&& vol_name, const EventContext& ctx) const {
120 if (!handle.isValid()) {
121 ATH_MSG_WARNING("Could not retrieve a valid tracking geometry");
122 return nullptr;
123 }
124 return handle->trackingVolume(vol_name);
125
126 }
127
128 }; // end of class MuonTrackQuery
129
130} // end of namespace Rec
131
132#endif // MUIDTRACKBUILDER_MUONTRACKQUERY_H
#define ATH_MSG_WARNING(x)
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
class extending the basic Trk::EnergyLoss to describe the measured or parameterised muon energy loss ...
Definition CaloEnergy.h:28
lightweight return data-object for field integral track query
Base class for MuonTrackQuery AlgTool.
StatusCode initialize() override
std::unique_ptr< const Trk::TrackParameters > triggerStationParameters(const Trk::Track &track, const EventContext &ctx) const override
IMuonTrackQuery interface: trackParameters at innermost trigger chamber TSOS in MS.
SG::ReadCondHandleKey< Trk::TrackingGeometry > m_trackingGeometryReadKey
ToolHandle< Muon::IMdtDriftCircleOnTrackCreator > m_mdtRotCreator
bool isSectorOverlap(const Trk::Track &track) const override
IMuonTrackQuery interface: is there a long/short chamber overlap?
unsigned numberPseudoMeasurements(const Trk::Track &track) const override
IMuonTrackQuery interface: number of PseudoMeasurements on track (counts one for any vertex measureme...
bool isCombined(const Trk::Track &track, const EventContext &ctx) const override
IMuonTrackQuery interface: does track have measurements from indet and spectrometer ?
double caloEnergyDeposit(const Trk::Track &track, const EventContext &ctx) const override
IMuonTrackQuery interface: track energy deposit in calorimeters (as fitted or otherwise applied).
bool isCaloAssociated(const Trk::Track &track, const EventContext &ctx) const override
IMuonTrackQuery interface: does track have at least 3 TSOS's representing calorimeter ?
~MuonTrackQuery()=default
bool isExtrapolated(const Trk::Track &track, const EventContext &ctx) const override
IMuonTrackQuery interface: does track have perigee inside indet ?
std::unique_ptr< const Trk::Perigee > outgoingPerigee(const Trk::Track &track) const override
IMuonTrackQuery interface: perigee expressed outgoing from IP.
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
ServiceHandle< Muon::IMuonEDMHelperSvc > m_edmHelperSvc
ScatteringAngleSignificance scatteringAngleSignificance(const Trk::Track &track, const EventContext &ctx) const override
IMuonTrackQuery interface: significance of early scattering angle pattern for combined tracks (wider ...
ToolHandle< Trk::ITrackFitter > m_fitter
bool isLineFit(const Trk::Track &track) const override
IMuonTrackQuery interface: does track have fitted curvature ?
bool isSlimmed(const Trk::Track &track) const override
IMuonTrackQuery interface: does track have TrackParameters at every TSOS ?
FieldIntegral fieldIntegral(const Trk::Track &track, const EventContext &ctx) const override
IMuonTrackQuery interface: field integral along track from momentum kick between measurements.
const Trk::TrackingVolume * getVolume(const std::string &&vol_name, const EventContext &ctx) const
const CaloEnergy * caloEnergy(const Trk::Track &track) const override
IMuonTrackQuery interface: caloEnergy from appropriate TSOS.
double momentumBalanceSignificance(const Trk::Track &track, const EventContext &ctx) const override
IMuonTrackQuery interface: significance of momentum balance for combined tracks (biassed residual).
std::unique_ptr< Trk::TrackParameters > spectrometerParameters(const Trk::Track &track, const EventContext &ctx) const override
IMuonTrackQuery interface: trackParameters at innermost measurement TSOS in MS.
MuonTrackQuery(const std::string &type, const std::string &name, const IInterface *parent)
static std::unique_ptr< Trk::TrackParameters > flippedParameters(const Trk::TrackParameters &params)
unsigned spectrometerPhiQuality(const Trk::Track &track, const EventContext &ctx) const override
IMuonTrackQuery interface: assess the number of additional phi measurements needed for MS (or SA) tra...
bool isProjective(const Trk::Track &track) const override
IMuonTrackQuery interface: is track (roughly) projective towards IP?
lightweight return data-object for (mainly indet) scattering angle analysis by track query
Full Volume description used in Tracking, it inherits from Volume to get the geometrical structure,...
namespace for combined reconstruction tools and interfaces
ParametersBase< TrackParametersDim, Charged > TrackParameters