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,...
Gaudi Tools.
ParametersBase< TrackParametersDim, Charged > TrackParameters