ATLAS Offline Software
Loading...
Searching...
No Matches
MuidMuonRecovery.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
6// MuidMuonRecovery
7// AlgTool performing MS hit reallocation for a likely spectrometer-indet
8// match which has given combined fit problems.
9// Extrapolates indet track to MS.
10// Returns a combined track with full track fit.
11//
13
14#ifndef MUIDCOMBINEDTOOLS_MUIDMUONRECOVERY_H
15#define MUIDCOMBINEDTOOLS_MUIDMUONRECOVERY_H
16
18#include "GaudiKernel/ServiceHandle.h"
19#include "GaudiKernel/ToolHandle.h"
27
28namespace Rec {
29
30 class MuidMuonRecovery : public AthAlgTool, virtual public IMuidMuonRecovery {
31 public:
32 MuidMuonRecovery(const std::string& type, const std::string& name, const IInterface* parent);
33 ~MuidMuonRecovery() = default;
34
35 StatusCode initialize() override;
36 StatusCode finalize() override;
37
40 std::unique_ptr<Trk::Track> recoverableMatch(const Trk::Track& indetTrack, const Trk::Track& spectrometerTrack,
41 const EventContext& ctx) const override;
42
43 private:
44 // helpers, managers, tools
45 ToolHandle<Trk::IExtrapolator> m_extrapolator{
46 this,
47 "Extrapolator",
48 "Trk::Extrapolator/AtlasExtrapolator",
49 "Extrapolator tool",
50 };
51
53 this,
54 "edmHelper",
55 "Muon::MuonEDMHelperSvc/MuonEDMHelperSvc",
56 "Handle to the service providing the IMuonEDMHelperSvc interface",
57 }; //<! multipurpose helper tool
58
60 this,
61 "MuonIdHelperSvc",
62 "Muon::MuonIdHelperSvc/MuonIdHelperSvc",
63 };
64 PublicToolHandle<Muon::MuonEDMPrinterTool> m_printer{
65 this,
66 "Printer",
67 "Muon::MuonEDMPrinterTool/MuonEDMPrinterTool",
68 "Tool to print EDM objects",
69 }; //<! tool to print EDM objects
70
71 ToolHandle<Trk::IResidualPullCalculator> m_residualCalculator{
72 this,
73 "ResidualPullCalculator",
74 "Trk::ResidualPullCalculator/ResidualPullCalculator",
75 "Residual calculator tool",
76 };
77
78 ToolHandle<ICombinedMuonTrackBuilder> m_trackBuilder{
79 this,
80 "TrackBuilder",
81 "Rec::CombinedMuonTrackBuilder/CombinedMuonTrackBuilder",
82 "Track builder tool",
83 };
84
85 // configurable cuts and tolerances
86 Gaudi::Property<double> m_minP{this, "MinP", 10. * Gaudi::Units::GeV};
87 Gaudi::Property<double> m_minPt{this, "MinPt", 5. * Gaudi::Units::GeV};
88 Gaudi::Property<double> m_pullCut{this, "PullCut", 10.};
89
90 // counters
91 mutable std::atomic<unsigned int> m_recoveryAttempts{0};
92 mutable std::atomic<unsigned int> m_recoveryFitFailure{0};
93 mutable std::atomic<unsigned int> m_recoverySuccess{0};
94
95 }; // end of class MuidMuonRecovery
96
97} // end of namespace Rec
98
99#endif // MUIDCOMBINEDTOOLS_MUIDMUONRECOVERY_H
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
Interface ID for IMuidMuonRecovery.
StatusCode initialize() override
PublicToolHandle< Muon::MuonEDMPrinterTool > m_printer
MuidMuonRecovery(const std::string &type, const std::string &name, const IInterface *parent)
ToolHandle< ICombinedMuonTrackBuilder > m_trackBuilder
StatusCode finalize() override
std::unique_ptr< Trk::Track > recoverableMatch(const Trk::Track &indetTrack, const Trk::Track &spectrometerTrack, const EventContext &ctx) const override
IMuidMuonRecovery interface: algorithmic code for recovering muon spectrometer using the inner detect...
std::atomic< unsigned int > m_recoveryAttempts
ToolHandle< Trk::IExtrapolator > m_extrapolator
~MuidMuonRecovery()=default
Gaudi::Property< double > m_minP
ToolHandle< Trk::IResidualPullCalculator > m_residualCalculator
ServiceHandle< Muon::IMuonEDMHelperSvc > m_edmHelperSvc
Gaudi::Property< double > m_minPt
std::atomic< unsigned int > m_recoveryFitFailure
std::atomic< unsigned int > m_recoverySuccess
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Gaudi::Property< double > m_pullCut
Gaudi Tools.