13#ifndef MUIDTRACKBUILDER_COMBINEDMUONTRACKFITTER_H
14#define MUIDTRACKBUILDER_COMBINEDMUONTRACKFITTER_H
19#include "GaudiKernel/ServiceHandle.h"
20#include "GaudiKernel/ToolHandle.h"
45 using base_class::base_class;
49 virtual StatusCode
finalize()
override;
63 std::unique_ptr<Trk::Track>
fit(
const EventContext& ctx,
const Trk::Track& indetTrack,
Trk::Track& extrapolatedTrack,
85 "Muon::MuonTrackCleaner/MuidTrackCleaner",
90 "Trk::iPatFitter/iPatFitter",
95 "Trk::iPatFitter/iPatSLFitter",
99 ToolHandle<Rec::IMuidCaloTrackStateOnSurface>
m_caloTSOS{
106 "MuonErrorOptimizer",
112 "Muon::MuonEDMPrinterTool/MuonEDMPrinterTool",
117 "Rec::MuonTrackQuery/MuonTrackQuery",
122 "Trk::TrackSummaryTool/MuidTrackSummaryTool",
126 "CaloMaterialProvider",
134 "Name of the Magnetic Field conditions object key"};
141 "Maximum number of permitted WARNING messages per message type."};
146 Gaudi::Property<double>
m_zECToroid{
this,
"zECToroid", 10. * Gaudi::Units::meter};
155 std::unique_ptr<MessageHelper>
m_messageHelper{std::make_unique<MessageHelper>(*
this, 50)};
Local cache for magnetic field (based on MagFieldServices/AtlasFieldSvcTLS.h)
std::atomic_uint m_countExtensionCleanerVeto
virtual ~CombinedMuonTrackFitter()
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCacheCondObjInputKey
ToolHandle< Muon::IMuonErrorOptimisationTool > m_muonErrorOptimizer
bool optimizeErrors(const EventContext &ctx, Trk::Track &track) const
ToolHandle< Trk::ITrkMaterialProviderTool > m_materialUpdator
Gaudi::Property< unsigned > m_maxWarnings
Gaudi::Property< bool > m_useCaloTG
Gaudi::Property< double > m_badFitChi2
Gaudi::Property< double > m_zECToroid
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
virtual StatusCode initialize() override
std::unique_ptr< MessageHelper > m_messageHelper
ServiceHandle< Trk::ITrackingVolumesSvc > m_trackingVolumesSvc
ToolHandle< Trk::ITrackSummaryTool > m_trackSummary
ToolHandle< Muon::IMuonTrackCleaner > m_cleaner
ToolHandle< Trk::ITrackFitter > m_fitterSL
ToolHandle< Rec::IMuidCaloTrackStateOnSurface > m_caloTSOS
virtual std::unique_ptr< Trk::Track > fit(const EventContext &ctx, const Trk::Track &track, const Trk::RunOutlierRemoval runOutlier, const Trk::ParticleHypothesis particleHypothesis) const override
double normalizedChi2(const Trk::Track &track) const
unsigned int countAEOTs(const Trk::Track &track, const std::string &txt) const
std::unique_ptr< const Trk::Volume > m_calorimeterVolume
bool checkTrack(std::string_view txt, const Trk::Track *newTrack) const
std::atomic_uint m_countCombinedCleanerVeto
ToolHandle< Trk::ITrackFitter > m_fitter
virtual StatusCode finalize() override
bool loadMagneticField(const EventContext &ctx, MagField::AtlasFieldCache &field_cache) const
PublicToolHandle< Muon::MuonEDMPrinterTool > m_printer
std::atomic_uint m_countStandaloneCleanerVeto
Gaudi::Property< bool > m_updateWithCaloTG
std::unique_ptr< const Trk::Volume > m_indetVolume
Gaudi::Property< bool > m_allowCleanerVeto
ToolHandle< Rec::IMuonTrackQuery > m_trackQuery
std::vector< const MeasurementBase * > MeasurementSet
vector of fittable measurements
bool RunOutlierRemoval
switch to toggle quality processing after fit
ParticleHypothesis
Enumeration for Particle hypothesis respecting the interaction with material.
ParametersBase< TrackParametersDim, Charged > TrackParameters