|
ATLAS Offline Software
|
Go to the documentation of this file.
5 #ifndef TRKIPATFITTER_IPATFITTER_H
6 #define TRKIPATFITTER_IPATFITTER_H
13 #include "GaudiKernel/EventContext.h"
14 #include "GaudiKernel/ToolHandle.h"
33 class TrackStateOnSurface;
43 const IInterface*
parent,
bool isGlobalFit =
false);
54 virtual std::unique_ptr<Track>
fit(
55 const EventContext& ctx,
const Track&,
61 virtual std::unique_ptr<Track>
fit(
68 virtual std::unique_ptr<Track>
fit(
76 virtual std::unique_ptr<Track>
fit(
84 virtual std::unique_ptr<Track>
fit(
92 virtual std::unique_ptr<Track>
fit(
93 const EventContext& ctx,
const Track&,
const Track&,
113 m_measurements = std::make_unique<std::vector<FitMeasurement*>>();
120 throw std::runtime_error(
"no measurements exist");
128 throw std::runtime_error(
"no measurements exist");
142 std::pair<std::unique_ptr<Track>, std::unique_ptr<FitState>>
fitWithState(
143 const EventContext& ctx,
const Track&,
157 std::vector<FitMeasurement*>& measurements,
164 const EventContext& ctx, std::vector<FitMeasurement*>& measurements,
187 Gaudi::Property<bool>
m_lineFit{
this,
"LineFit",
false};
192 this,
"MaterialAllocator",
"Trk::MaterialAllocator/MaterialAllocator"};
194 this,
"RungeKuttaIntersector",
195 "Trk::RungeKuttaIntersector/RungeKuttaIntersector"};
197 this,
"SolenoidalIntersector",
198 "Trk::SolenoidalIntersector/SolenoidalIntersector"};
200 this,
"Propagator",
"Trk::STEP_Propagator/AtlasSTEP_Propagator"};
202 this,
"StraightLineIntersector",
203 "Trk::StraightLineIntersector/StraightLineIntersector"};
205 this,
"TrackingVolumesSvc",
"TrackingVolumesSvc/TrackingVolumesSvc"};
207 this,
"TrackSummaryTool",
"MuonTrackSummaryTool"};
213 this,
"MaxNumberOfWarnings", 10,
214 "Maximum number of permitted WARNING messages per message type."};
218 this,
"ConstrainedAlignmentEffects",
false};
221 this,
"ForcedRefitsForValidation", 0};
243 #endif // TRKIPATFITTER_IPATFITTER_H
Gaudi::Property< bool > m_constrainedAlignmentEffects
Contains information about the 'fitter' of this track.
std::unique_ptr< Track > performFit(FitState &fitState, const ParticleHypothesis particleHypothesis, const TrackInfo &trackInfo, const Trk::TrackStates *leadingTSOS, const FitQuality *perigeeQuality, Garbage_t &garbage) const
std::vector< const PrepRawData * > PrepRawDataSet
vector of clusters and drift circles
ToolHandle< IMaterialAllocator > m_materialAllocator
Gaudi::Property< int > m_forcedRefitsForValidation
std::unique_ptr< MessageHelper > m_messageHelper
ToolHandle< IIntersector > m_rungeKuttaIntersector
ToolHandle< IPropagator > m_stepPropagator
void deleteMeasurements()
iPatFitter(const std::string &type, const std::string &name, const IInterface *parent, bool isGlobalFit=false)
bool hasMeasurements() const
std::atomic< unsigned > m_countRefitIterations
virtual StatusCode initialize() override
Main Fitter tool providing the implementation for the different fitting, extension and refitting use ...
Gaudi::Property< bool > m_lineFit
virtual std::unique_ptr< Track > fit(const EventContext &ctx, const Track &, const RunOutlierRemoval runOutlier=false, const ParticleHypothesis particleHypothesis=Trk::nonInteracting) const override
RE-FIT A TRACK.
std::atomic< unsigned > m_countRefitAttempts
std::atomic< unsigned > m_countGoodRefits
bool RunOutlierRemoval
switch to toggle quality processing after fit
Gaudi::Property< unsigned > m_maxWarnings
std::unique_ptr< std::vector< FitMeasurement * > > m_measurements
ServiceHandle< ITrackingVolumesSvc > m_trackingVolumesSvc
std::unique_ptr< FitParameters > parameters
Gaudi::Property< double > m_orderingTolerance
void addMeasurements(const EventContext &ctx, std::vector< FitMeasurement * > &measurements, const MeasurementSet &measurementSet, const FitParameters ¶meters) const
Gaudi::Property< double > m_lineMomentum
std::atomic< unsigned > m_countFitAttempts
Gaudi::Property< int > m_maxIterations
Gaudi::Property< bool > m_extendedDebug
Gaudi::Property< bool > m_aggregateMaterial
::StatusCode StatusCode
StatusCode definition for legacy code.
void refit(const EventContext &ctx, FitState &fitState, const Track &track, const RunOutlierRemoval runOutlier, const ParticleHypothesis particleHypothesis) const
std::unique_ptr< FitProcedure > m_fitProcedure
std::vector< std::unique_ptr< const TrackStateOnSurface > > Garbage_t
std::mutex m_fitProcedureMutex
Class to represent and store fit qualities from track reconstruction in terms of and number of degre...
std::unique_ptr< Trk::Volume > m_calorimeterVolume
std::vector< const MeasurementBase * > MeasurementSet
vector of fittable measurements
ToolHandle< IIntersector > m_solenoidalIntersector
Trk::MagneticFieldProperties m_stepField
std::atomic< unsigned > m_countIterations
Ensure that the ATLAS eigen extensions are properly loaded.
const std::vector< FitMeasurement * > & getMeasurements() const
virtual StatusCode finalize() override
Gaudi::Property< bool > m_asymmetricCaloEnergy
IMaterialAllocator::Garbage_t Garbage_t
std::pair< std::unique_ptr< Track >, std::unique_ptr< FitState > > fitWithState(const EventContext &ctx, const Track &, const RunOutlierRemoval runOutlier=false, const ParticleHypothesis particleHypothesis=Trk::nonInteracting) const
Gaudi::Property< bool > m_fullCombinedFit
ToolHandle< IIntersector > m_straightLineIntersector
void printTSOS(const Track &) const
ToolHandle< Trk::IExtendedTrackSummaryTool > m_trackSummaryTool
virtual ~iPatFitter()=default
std::vector< FitMeasurement * > & getMeasurements()
std::atomic< unsigned > m_countGoodFits
std::unique_ptr< Trk::Volume > m_indetVolume