ATLAS Offline Software
Loading...
Searching...
No Matches
ExtrapolateMuonToIPTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef EXTRAPOLATEMUONTOIPTOOL_H
6#define EXTRAPOLATEMUONTOIPTOOL_H
7
8#include <atomic>
9
11#include "GaudiKernel/ServiceHandle.h"
12#include "GaudiKernel/ToolHandle.h"
18
26public:
28 ExtrapolateMuonToIPTool(const std::string&, const std::string&, const IInterface*);
29
31 virtual ~ExtrapolateMuonToIPTool() = default;
32
34 virtual StatusCode initialize() override;
35
37 virtual StatusCode finalize() override;
38
43 std::unique_ptr<TrackCollection> extrapolate(const TrackCollection& muonTracks, const EventContext& ctx) const override;
44
49 std::unique_ptr<Trk::Track> extrapolate(const Trk::Track& muonTrack, const EventContext& ctx) const override;
50
51private:
54
55 std::unique_ptr<const Trk::Perigee> createPerigee(const Trk::TrackParameters& pars, const EventContext& ctx) const;
56
57 ToolHandle<Trk::IExtrapolator> m_extrapolator{
58 this,
59 "Extrapolator",
60 "Trk::Extrapolator/AtlasExtrapolator",
61 "Extrapolator",
62 };
63 ToolHandle<Trk::IExtrapolator> m_muonExtrapolator{
64 this,
65 "MuonExtrapolator",
66 "Trk::Extrapolator/MuonExtrapolator",
67 "MuonExtrapolator",
68 };
69 PublicToolHandle<Muon::MuonEDMPrinterTool> m_printer{
70 this,
71 "Printer",
72 "Muon::MuonEDMPrinterTool/MuonEDMPrinterTool",
73 "muon EDM printer tool",
74 };
75 ToolHandle<Trk::ITrackSummaryTool> m_trackSummary{
76 this,
77 "TrackSummaryTool",
78 "Trk::TrackSummaryTool/MuidTrackSummaryTool",
79 };
80
82 this,
83 "edmHelper",
84 "Muon::MuonEDMHelperSvc/MuonEDMHelperSvc",
85 "Handle to the service providing the IMuonEDMHelperSvc interface",
86 };
87
88 mutable std::atomic_uint m_nextrapolations{0};
89 mutable std::atomic_uint m_failedClosestPars{0};
90 mutable std::atomic_uint m_failedExtrapolationLowMom{0};
91 mutable std::atomic_uint m_failedExtrapolationHighMom{0};
92 mutable std::atomic_uint m_failedPerigeeCreation{0};
93};
94
95#endif // EXTRAPOLATEMUONTOIPTOOL_H
DataVector< Trk::Track > TrackCollection
This typedef represents a collection of Trk::Track objects.
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
std::unique_ptr< const Trk::Perigee > createPerigee(const Trk::TrackParameters &pars, const EventContext &ctx) const
const Trk::TrackParameters * findMeasuredParametersClosestToIP(const Trk::Track &track) const
find measured parameters closest to IP to start back extrapolation
std::unique_ptr< TrackCollection > extrapolate(const TrackCollection &muonTracks, const EventContext &ctx) const override
extrapolate all tracks in the track collection to the IP
std::atomic_uint m_failedExtrapolationHighMom
PublicToolHandle< Muon::MuonEDMPrinterTool > m_printer
muon EDM printer tool
ToolHandle< Trk::ITrackSummaryTool > m_trackSummary
std::atomic_uint m_failedPerigeeCreation
std::atomic_uint m_failedExtrapolationLowMom
ToolHandle< Trk::IExtrapolator > m_extrapolator
Extrapolator.
virtual StatusCode finalize() override
initialize
ServiceHandle< Muon::IMuonEDMHelperSvc > m_edmHelperSvc
muon EDM helper tool
ExtrapolateMuonToIPTool(const std::string &, const std::string &, const IInterface *)
Constructors.
virtual StatusCode initialize() override
initialize
virtual ~ExtrapolateMuonToIPTool()=default
Destructor.
ToolHandle< Trk::IExtrapolator > m_muonExtrapolator
MuonExtrapolator.
Interface class for tools extrapolating muon tracks to a location in the atlas detector.
ParametersBase< TrackParametersDim, Charged > TrackParameters