5#ifndef AmbiguityProcessorBase_h
6#define AmbiguityProcessorBase_h
17#include "GaudiKernel/ToolHandle.h"
82 Counter& stat,
int trackId,
int subtrackId)
const;
93 virtual std::unique_ptr<Trk::Track>
fit(
98 std::vector<std::unique_ptr<const Trk::Track> >& trackDustbin,
99 Counter& stat,
int parentTrackId)
const;
137 "track scoring tool"};
141 this,
"ObserverTool",
"",
"track observer within ambiguity solver"};
143 this,
"TrackSummaryTool",
"InDetTrackSummaryToolNoHoleSearch"};
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
AmbiguityProcessorBase(const std::string &, const std::string &, const IInterface *)
@ kNscoreZeroBremRefitFailed
@ kNscoreZeroBremRefitScoreZero
AmbiguityProcessorBase::UniqueClusterSplitProbabilityContainerPtr createAndRecordClusterSplitProbContainer(const EventContext &ctx) const
Create a new cluster splitting probability container and (optionally) record it in storegate The new ...
AmbiCounter< CounterIndex > Counter
ToolHandle< Trk::IExtendedTrackSummaryTool > m_trackSummaryTool
void addTrack(Trk::Track *in_track, const bool fitted, TrackScoreMap &trackScoreTrackMap, std::vector< std::unique_ptr< const Trk::Track > > &trackDustbin, Counter &stat, int parentTrackId) const
SG::WriteHandleKey< Trk::ClusterSplitProbabilityContainer > m_clusterSplitProbContainerOut
std::unique_ptr< Trk::ClusterSplitProbabilityContainer, void(*)(Trk::ClusterSplitProbabilityContainer *)> UniqueClusterSplitProbabilityContainerPtr
StatusCode initializeClusterSplitProbContainer()
Initialize read and write handles for ClusterSplitProbabilityContainers.
Trk::ParticleHypothesis m_particleHypothesis
virtual Trk::Track * refitPrds(const Trk::Track *track, Trk::PRDtoTrackMap &prdToTrackMap, Counter &stat) const =0
Track * refitTrack(const Trk::Track *track, Trk::PRDtoTrackMap &prdToTrackMap, Counter &stat, int trackId, int subtrackId) const
refit track
virtual std::unique_ptr< Trk::Track > fit(const Track &track, bool flag, Trk::ParticleHypothesis hypo) const =0
ToolHandle< ITrackScoringTool > m_scoringTool
Scoring tool This tool is used to 'score' the tracks, i.e.
int m_matEffects
read in as an integer and convert to particle hypothesis
bool m_tryBremFit
brem recovery mode with brem fit ?
std::vector< float > m_etaBounds
eta intervals for internal monitoring
bool m_forceRefit
by default tracks at input get refitted
const TrackParameters * getTrackParameters(const Trk::Track *track) const
virtual std::unique_ptr< Trk::Track > doBremRefit(const Trk::Track &track) const =0
std::multimap< TrackScore, TrackPtr > TrackScoreMap
SG::ReadHandleKey< Trk::ClusterSplitProbabilityContainer > m_clusterSplitProbContainerIn
bool shouldTryBremRecovery(const Trk::Track &track) const
PublicToolHandle< Trk::ITrkObserverTool > m_observerTool
Observer tool This tool is used to observe the tracks and their 'score'.
virtual ~AmbiguityProcessorBase()=default
bool m_suppressHoleSearch
virtual Trk::Track * refitRots(const Trk::Track *track, Counter &stat) const
Counter m_stat ATLAS_THREAD_SAFE
Container to associate Cluster with cluster splitting probabilities.
Ensure that the ATLAS eigen extensions are properly loaded.
ParticleHypothesis
Enumeration for Particle hypothesis respecting the interaction with material.
ParametersBase< TrackParametersDim, Charged > TrackParameters