ATLAS Offline Software
MuonErrorOptimisationTool.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 MUONERROROPTIMISATIONTOOL_H
6 #define MUONERROROPTIMISATIONTOOL_H
7 
9 #include "GaudiKernel/ServiceHandle.h"
10 #include "GaudiKernel/ToolHandle.h"
16 
17 namespace Muon {
18 
20  public:
22  MuonErrorOptimisationTool(const std::string& ty, const std::string& na, const IInterface* pa);
23 
25  virtual ~MuonErrorOptimisationTool() = default;
26 
27  virtual StatusCode initialize() override;
28  virtual StatusCode finalize() override;
29 
31  virtual std::unique_ptr<Trk::Track> optimiseErrors(Trk::Track& track, const EventContext& ctx) const override;
32 
33  private:
34  ServiceHandle<IMuonEDMHelperSvc> m_edmHelperSvc{this, "edmHelper", "Muon::MuonEDMHelperSvc/MuonEDMHelperSvc",
35  "Handle to the service providing the IMuonEDMHelperSvc interface"};
36 
37  PublicToolHandle<MuonEDMPrinterTool> m_printer{this, "EDMPrinter", "Muon::MuonEDMPrinterTool/MuonEDMPrinterTool",
38  "helper to nicely print out tracks"};
39  ToolHandle<Trk::ITrackSummaryHelperTool> m_trackSummaryTool{this, "TrackSummaryTool",
40  "Muon::MuonTrackSummaryHelperTool/MuonTrackSummaryHelperTool"};
41  ToolHandle<IMuonRefitTool> m_refitTool{this, "RefitTool", "Muon::MuonRefitTool/MuonRefitTool"};
42 
43  Gaudi::Property<double> m_chi2NdofCutRefit{this, "Chi2NDofCutRefit", 5.};
44  Gaudi::Property<double> m_lowPtThreshold{this, "LowPtThreshold", 5000.};
45  mutable std::atomic_uint m_nrefitAll{0};
46  mutable std::atomic_uint m_nrefitAllLowPt{0};
47  mutable std::atomic_uint m_nrefitOk{0};
48  mutable std::atomic_uint m_nrefit{0};
49  mutable std::atomic_uint m_nrefitLowPt{0};
50  mutable std::atomic_uint m_nrefitPrecise{0};
51  mutable std::atomic_uint m_nrefitPreciseLowPt{0};
52  mutable std::atomic_uint m_nbetterPreciseFit{0};
53  mutable std::atomic_uint m_nbetterFit{0};
54 
56  };
57 } // namespace Muon
58 
59 #endif
Muon::MuonErrorOptimisationTool::MuonErrorOptimisationTool
MuonErrorOptimisationTool(const std::string &ty, const std::string &na, const IInterface *pa)
Constructor with parameters:
Definition: MuonErrorOptimisationTool.cxx:17
Muon::MuonErrorOptimisationTool::m_nbetterFit
std::atomic_uint m_nbetterFit
Definition: MuonErrorOptimisationTool.h:53
IMuonRefitTool.h
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
MuonEDMPrinterTool.h
Muon::IMuonRefitTool::Settings
Definition: IMuonRefitTool.h:21
Muon::MuonErrorOptimisationTool::m_edmHelperSvc
ServiceHandle< IMuonEDMHelperSvc > m_edmHelperSvc
Definition: MuonErrorOptimisationTool.h:34
Muon::MuonErrorOptimisationTool::m_trackSummaryTool
ToolHandle< Trk::ITrackSummaryHelperTool > m_trackSummaryTool
Definition: MuonErrorOptimisationTool.h:39
Muon::MuonErrorOptimisationTool::m_nbetterPreciseFit
std::atomic_uint m_nbetterPreciseFit
Definition: MuonErrorOptimisationTool.h:52
Muon::MuonErrorOptimisationTool::m_nrefitAllLowPt
std::atomic_uint m_nrefitAllLowPt
Definition: MuonErrorOptimisationTool.h:46
Muon
This class provides conversion from CSC RDO data to CSC Digits.
Definition: TrackSystemController.h:49
Muon::MuonErrorOptimisationTool::m_nrefitAll
std::atomic_uint m_nrefitAll
Definition: MuonErrorOptimisationTool.h:45
Muon::MuonErrorOptimisationTool::m_lowPtThreshold
Gaudi::Property< double > m_lowPtThreshold
Definition: MuonErrorOptimisationTool.h:44
Muon::MuonErrorOptimisationTool::m_nrefitLowPt
std::atomic_uint m_nrefitLowPt
Definition: MuonErrorOptimisationTool.h:49
Muon::MuonErrorOptimisationTool::~MuonErrorOptimisationTool
virtual ~MuonErrorOptimisationTool()=default
Destructor:
IMuonErrorOptimisationTool.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
Muon::MuonErrorOptimisationTool::optimiseErrors
virtual std::unique_ptr< Trk::Track > optimiseErrors(Trk::Track &track, const EventContext &ctx) const override
optimise the error strategy used for the track
Definition: MuonErrorOptimisationTool.cxx:66
IMuonEDMHelperSvc.h
Muon::MuonErrorOptimisationTool::m_nrefitPreciseLowPt
std::atomic_uint m_nrefitPreciseLowPt
Definition: MuonErrorOptimisationTool.h:51
Muon::MuonErrorOptimisationTool::m_refitTool
ToolHandle< IMuonRefitTool > m_refitTool
Definition: MuonErrorOptimisationTool.h:41
ITrackSummaryHelperTool.h
Muon::MuonErrorOptimisationTool::finalize
virtual StatusCode finalize() override
Definition: MuonErrorOptimisationTool.cxx:42
Muon::MuonErrorOptimisationTool::m_nrefitPrecise
std::atomic_uint m_nrefitPrecise
Definition: MuonErrorOptimisationTool.h:50
Muon::MuonErrorOptimisationTool::m_nrefitOk
std::atomic_uint m_nrefitOk
Definition: MuonErrorOptimisationTool.h:47
Muon::MuonErrorOptimisationTool::m_refitSettings
IMuonRefitTool::Settings m_refitSettings
Definition: MuonErrorOptimisationTool.h:55
Muon::MuonErrorOptimisationTool::initialize
virtual StatusCode initialize() override
Definition: MuonErrorOptimisationTool.cxx:31
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
AthAlgTool
Definition: AthAlgTool.h:26
Muon::MuonErrorOptimisationTool::m_chi2NdofCutRefit
Gaudi::Property< double > m_chi2NdofCutRefit
Definition: MuonErrorOptimisationTool.h:43
Muon::MuonErrorOptimisationTool::m_printer
PublicToolHandle< MuonEDMPrinterTool > m_printer
Definition: MuonErrorOptimisationTool.h:37
Muon::MuonErrorOptimisationTool
Definition: MuonErrorOptimisationTool.h:19
Muon::IMuonErrorOptimisationTool
The IMuonSegmentMaker is a pure virtual interface for tools to find tracks starting from MuonSegmentC...
Definition: IMuonErrorOptimisationTool.h:17
ServiceHandle
Definition: ClusterMakerTool.h:37
Muon::MuonErrorOptimisationTool::m_nrefit
std::atomic_uint m_nrefit
Definition: MuonErrorOptimisationTool.h:48