ATLAS Offline Software
Loading...
Searching...
No Matches
ActsTrk::GlobalChiSquareFitterTool Class Reference

#include <GlobalChiSquareFitterTool.h>

Inheritance diagram for ActsTrk::GlobalChiSquareFitterTool:

Public Types

using StraightPropagator_t = Acts::Propagator<Acts::StraightLineStepper, Acts::Navigator>
 Type erased track fitter function.
using CurvedPropagator_t = Acts::Propagator<Acts::EigenStepper<>, Acts::Navigator>
using StraightFitter_t = Acts::Experimental::Gx2Fitter<StraightPropagator_t, MutableTrackStateBackend>
using CurvedFitter_t = Acts::Experimental::Gx2Fitter<CurvedPropagator_t, MutableTrackStateBackend>
using Gx2FitterOptions_t = Acts::Experimental::Gx2FitterOptions<MutableTrackStateBackend>
 Abbrivation of the configuration to launch the fit.
using Gx2FitterExtension_t = Acts::Experimental::Gx2FitterExtensions<MutableTrackStateBackend>
 Abbrivation of the fitter extensions.

Public Member Functions

virtual ~GlobalChiSquareFitterTool ()=default
virtual StatusCode initialize () override
virtual std::unique_ptr< Trk::Trackfit (const EventContext &ctx, const Trk::Track &, const Trk::RunOutlierRemoval runOutlier=false, const Trk::ParticleHypothesis matEffects=Trk::nonInteracting) const override
 refit a track
virtual std::unique_ptr< Trk::Trackfit (const EventContext &ctx, const Trk::PrepRawDataSet &, const Trk::TrackParameters &, const Trk::RunOutlierRemoval runOutlier=false, const Trk::ParticleHypothesis matEffects=Trk::nonInteracting) const override
 fit a set of PrepRawData objects
virtual std::unique_ptr< Trk::Trackfit (const EventContext &ctx, const Trk::MeasurementSet &, const Trk::TrackParameters &, const Trk::RunOutlierRemoval runOutlier=false, const Trk::ParticleHypothesis matEffects=Trk::nonInteracting) const override
 fit a set of MeasurementBase objects
virtual std::unique_ptr< Trk::Trackfit (const EventContext &ctx, const Trk::Track &, const Trk::PrepRawDataSet &, const Trk::RunOutlierRemoval runOutlier=false, const Trk::ParticleHypothesis matEffects=Trk::nonInteracting) const override
 extend a track fit including a new set of PrepRawData objects
virtual std::unique_ptr< MutableTrackContainerfit (const std::vector< ATLASUncalibSourceLink > &clusterList, const Acts::BoundTrackParameters &initialParams, const Acts::GeometryContext &tgContext, const Acts::MagneticFieldContext &mfContext, const Acts::CalibrationContext &calContext, const Acts::Surface *targetSurface=nullptr) const override
 fit a set of xAOD uncalibrated Measurements
virtual std::unique_ptr< Trk::Trackfit (const EventContext &ctx, const Trk::Track &, const Trk::MeasurementSet &, const Trk::RunOutlierRemoval runOutlier=false, const Trk::ParticleHypothesis matEffects=Trk::nonInteracting) const override
 extend a track fit including a new set of MeasurementBase objects
virtual std::unique_ptr< Trk::Trackfit (const EventContext &ctx, const Trk::Track &intrk1, const Trk::Track &intrk2, const Trk::RunOutlierRemoval runOutlier=false, const Trk::ParticleHypothesis matEffects=Trk::nonInteracting) const override
 combined track fit
virtual std::unique_ptr< MutableTrackContainerfit (const Seed &seed, const Acts::BoundTrackParameters &initialParams, const Acts::GeometryContext &tgContext, const Acts::MagneticFieldContext &mfContext, const Acts::CalibrationContext &calContext, const Acts::Surface &targetSurface) const override
 Acts seed fit.
virtual StatusCode fit (const EventContext &ctx, const TrackContainer::ConstTrackProxy &track, MutableTrackContainer &trackContainer, const Acts::PerigeeSurface &pSurface) const override

Private Types

using TrackFitResult_t = IActsToTrkConverterTool::TrackFitResult_t

Private Member Functions

TrackFitResult_t fit (const std::vector< Acts::SourceLink > &soureLinks, const Acts::BoundTrackParameters &initialPars, const Gx2FitterOptions_t &gx2fOptions, MutableTrackContainer &tracks) const
 Calls the underlying Acts::Gx2Fitter for a given configuration of measurements.
Gx2FitterOptions_t configureFit (const Acts::GeometryContext &tgContext, const Acts::MagneticFieldContext &mfContext, const Acts::CalibrationContext &calContext, const Acts::Surface *surface, detail::SourceLinkType slType) const
 Helper method to pack the last information (Calibration, Alignment, B-Field, etc.) for the fit.
const Acts::Logger & logger () const
 Private access to the logger.

Private Attributes

ToolHandle< ActsTrk::IExtrapolationToolm_extrapolationTool {this, "ExtrapolationTool", ""}
PublicToolHandle< ITrackingGeometryToolm_trackingGeometryTool {this, "TrackingGeometryTool", ""}
ToolHandle< IActsToTrkConverterToolm_ATLASConverterTool {this, "ATLASConverterTool", ""}
ToolHandle< MuonR4::ISpacePointCalibratorm_muonCalibrator {this, "MuonCalibrationTool", ""}
ToolHandle< Trk::IRIO_OnTrackCreatorm_ROTcreator {this, "RotCreatorTool", ""}
Gaudi::Property< double > m_option_outlierChi2Cut {this, "OutlierChi2Cut", 12.5}
 Chi2 cut used by the outlier finder.
Gaudi::Property< unsigned > m_option_maxPropagationStep {this, "MaxPropagationStep", 5000}
 Maximum number of steps per propagation call.
Gaudi::Property< unsigned > m_option_maxNavSurfaces {this, "MaxSurfacesPerNavStep", 100}
 Number of maximum surfaces to be tried before the navigrator aborts.
Gaudi::Property< bool > m_option_includeELoss {this, "IncludeELoss", true}
 Consider particle's energy loss in the fit.
Gaudi::Property< bool > m_option_includeScat {this, "IncludeScattering", true}
 Consider multiple scattering of the particle.
Gaudi::Property< bool > m_doReFitFromPRD {this, "DoReFitFromPRD", false}
 Convert the PRD to a ROT during the calibration.
Gaudi::Property< bool > m_doStraightLine {this, "DoStraightLine" , false}
 Option to toggle whether a straight line fitter shall be used.
Gaudi::Property< bool > m_doJacobianCorr {this, "DoFreeToBoundCorrection", false }
 Account for non linear effects from free -> bound jacobian.
Gaudi::Property< unsigned > m_nIterMax {this, "MaxIterations", 5}
 Number of iterations a fit may take.
detail::TrkMeasurementCalibrator m_trkMeasCalibrator {}
 Pass through calibrator of the Trk::MeasurementBase objects from the TrackState container.
detail::TrkPrepRawDataCalibrator m_prdCalibrator {}
 Calibrator of the uncalibrated Trk::PrepRawData objects to RIO_OnTrack objects.
detail::TrkMeasSurfaceAccessor m_trkMeasSurfAcc {}
 Surface accessor delegate for Trk::MeasurementBase objects.
detail::TrkPrepRawDataSurfaceAcc m_prdSurfaceAcc {}
 Surface accessor delegate for Trk::PrepRawData objects.
detail::xAODUncalibMeasSurfAcc m_unalibMeasSurfAcc {}
 Surface accessor delegate for xAOD::UncalibratedMeasurement objects.
detail::xAODUncalibMeasCalibrator m_uncalibMeasCalibrator {}
 Calibrator for the uncalibrated xAOD::UnCalibratedMeasurement objects.
std::array< Gx2FitterExtension_t, s_nExtensionsm_gx2fExtensions {}
std::unique_ptr< CurvedFitter_tm_fitter {nullptr}
 The underlying curved Acts fitter.
std::unique_ptr< StraightFitter_tm_slFitter {nullptr}
 The underlying straight line Acts fitter.
detail::FitterHelperFunctions::ATLASOutlierFinder m_outlierFinder {0}
std::unique_ptr< const Acts::Logger > m_logger
 logging instance

Static Private Attributes

static constexpr unsigned s_nExtensions = static_cast<unsigned>(detail::SourceLinkType::nTypes)
 Array of all configured fitter extensions depending on which source link type is in use.

Detailed Description

Definition at line 64 of file GlobalChiSquareFitterTool.h.

Member Typedef Documentation

◆ CurvedFitter_t

◆ CurvedPropagator_t

using ActsTrk::GlobalChiSquareFitterTool::CurvedPropagator_t = Acts::Propagator<Acts::EigenStepper<>, Acts::Navigator>

Definition at line 149 of file GlobalChiSquareFitterTool.h.

◆ Gx2FitterExtension_t

Abbrivation of the fitter extensions.

Definition at line 157 of file GlobalChiSquareFitterTool.h.

◆ Gx2FitterOptions_t

Abbrivation of the configuration to launch the fit.

Definition at line 155 of file GlobalChiSquareFitterTool.h.

◆ StraightFitter_t

◆ StraightPropagator_t

using ActsTrk::GlobalChiSquareFitterTool::StraightPropagator_t = Acts::Propagator<Acts::StraightLineStepper, Acts::Navigator>

Type erased track fitter function.

Definition at line 148 of file GlobalChiSquareFitterTool.h.

◆ TrackFitResult_t

Constructor & Destructor Documentation

◆ ~GlobalChiSquareFitterTool()

virtual ActsTrk::GlobalChiSquareFitterTool::~GlobalChiSquareFitterTool ( )
virtualdefault

Member Function Documentation

◆ configureFit()

GlobalChiSquareFitterTool::Gx2FitterOptions_t ActsTrk::GlobalChiSquareFitterTool::configureFit ( const Acts::GeometryContext & tgContext,
const Acts::MagneticFieldContext & mfContext,
const Acts::CalibrationContext & calContext,
const Acts::Surface * surface,
detail::SourceLinkType slType ) const
private

Helper method to pack the last information (Calibration, Alignment, B-Field, etc.) for the fit.

The parsed context objects need to prevail the call of the fit

Parameters
tgContextReference to the geometry context
mfContextReference to the passed magnetic field context
calContextReference to the calibration context
surfaceTarget surface on which the fit result is expressed.
slTypeSwitch of which source link type shall be used to access the surfaces from the measurements & for calibration

Definition at line 130 of file GlobalChiSquareFitterTool.cxx.

134 {
135 Acts::PropagatorPlainOptions propagationOption{tgContext, mfContext};
136 propagationOption.maxSteps = m_option_maxPropagationStep;
137 propagationOption.maxTargetSkipping = m_option_maxNavSurfaces;
138 // Set the Gx2Fitter options
139 return Gx2FitterOptions_t{tgContext, mfContext, calContext,
140 m_gx2fExtensions[static_cast<int>(slType)],
141 std::move(propagationOption),
142 surface, m_option_includeScat,
144 Acts::FreeToBoundCorrection{m_doJacobianCorr},
145 m_nIterMax};
146}
Acts::Experimental::Gx2FitterOptions< MutableTrackStateBackend > Gx2FitterOptions_t
Abbrivation of the configuration to launch the fit.
Gaudi::Property< bool > m_doJacobianCorr
Account for non linear effects from free -> bound jacobian.
std::array< Gx2FitterExtension_t, s_nExtensions > m_gx2fExtensions
Gaudi::Property< unsigned > m_option_maxPropagationStep
Maximum number of steps per propagation call.
Gaudi::Property< bool > m_option_includeScat
Consider multiple scattering of the particle.
Gaudi::Property< bool > m_option_includeELoss
Consider particle's energy loss in the fit.
Gaudi::Property< unsigned > m_option_maxNavSurfaces
Number of maximum surfaces to be tried before the navigrator aborts.
Gaudi::Property< unsigned > m_nIterMax
Number of iterations a fit may take.

◆ fit() [1/10]

StatusCode ActsTrk::GlobalChiSquareFitterTool::fit ( const EventContext & ctx,
const TrackContainer::ConstTrackProxy & track,
MutableTrackContainer & trackContainer,
const Acts::PerigeeSurface & pSurface ) const
overridevirtual

Definition at line 514 of file GlobalChiSquareFitterTool.cxx.

519{
520 ATH_MSG_ERROR("Track refit method not implemented in GlobalChiSquareFitterTool yet");
521 return StatusCode::FAILURE;
522}
#define ATH_MSG_ERROR(x)

◆ fit() [2/10]

std::unique_ptr< Trk::Track > ActsTrk::GlobalChiSquareFitterTool::fit ( const EventContext & ctx,
const Trk::MeasurementSet & inputMeasSet,
const Trk::TrackParameters & estimatedStartParameters,
const Trk::RunOutlierRemoval runOutlier = false,
const Trk::ParticleHypothesis matEffects = Trk::nonInteracting ) const
overridevirtual

fit a set of MeasurementBase objects

Definition at line 210 of file GlobalChiSquareFitterTool.cxx.

214 {
215
216 // protection against not having measurements on the input track
217 if (inputMeasSet.size() < 2) {
218 ATH_MSG_DEBUG("Called to refit empty measurement set or a measurement set with too "
219 <<"little information, reject fit");
220 return nullptr;
221 }
222
223 // Construct a perigee surface as the target surface
224 auto pSurface = Acts::Surface::makeShared<Acts::PerigeeSurface>(Acts::Vector3::Zero());
225
226 const Acts::GeometryContext tgContext{m_trackingGeometryTool->getGeometryContext(ctx).context()};
227 const Acts::MagneticFieldContext mfContext{m_extrapolationTool->getMagneticFieldContext(ctx)};
228 const Acts::CalibrationContext calContext{getCalibrationContext(ctx)};
229
230
231
232 std::vector<Acts::SourceLink> trackSourceLinks;
233 m_ATLASConverterTool->toSourceLinks(inputMeasSet, trackSourceLinks);
234 // protection against error in the conversion from Atlas measurement to ACTS
235 // source link
236 if (trackSourceLinks.empty()) {
237 ATH_MSG_DEBUG("input contain measurement but no source link created, probable issue "
238 <<"with the converter, reject fit ");
239 return nullptr;
240 }
241
242 const auto initialParams = m_ATLASConverterTool->trkTrackParametersToActsParameters(estimatedStartParameters, tgContext);
243
244 ActsTrk::MutableTrackBackend trackContainerBackEnd;
245 ActsTrk::MutableTrackStateBackend multiTrajBackEnd;
246 ActsTrk::MutableTrackContainer tracks( std::move(trackContainerBackEnd),
247 std::move(multiTrajBackEnd));
248
249 Gx2FitterOptions_t gx2fOptions = configureFit(tgContext, mfContext, calContext,
251 // Perform the fit
252 auto result = fit(trackSourceLinks, initialParams, gx2fOptions, tracks);
253 return m_ATLASConverterTool->convertFitResult(ctx, tracks, result,
256}
#define ATH_MSG_DEBUG(x)
ToolHandle< ActsTrk::IExtrapolationTool > m_extrapolationTool
ToolHandle< IActsToTrkConverterTool > m_ATLASConverterTool
PublicToolHandle< ITrackingGeometryTool > m_trackingGeometryTool
Gx2FitterOptions_t configureFit(const Acts::GeometryContext &tgContext, const Acts::MagneticFieldContext &mfContext, const Acts::CalibrationContext &calContext, const Acts::Surface *surface, detail::SourceLinkType slType) const
Helper method to pack the last information (Calibration, Alignment, B-Field, etc.) for the fit.
virtual std::unique_ptr< Trk::Track > fit(const EventContext &ctx, const Trk::Track &, const Trk::RunOutlierRemoval runOutlier=false, const Trk::ParticleHypothesis matEffects=Trk::nonInteracting) const override
refit a track
@ GlobalChi2Fitter
Track's from Thijs' global chi^2 fitter.
Acts::VectorMultiTrajectory MutableTrackStateBackend
Acts::TrackContainer< MutableTrackBackend, MutableTrackStateBackend, Acts::detail::ValueHolder > MutableTrackContainer
Acts::CalibrationContext getCalibrationContext(const EventContext &ctx)
The Acts::Calibration context is piped through the Acts fitters to (re)calibrate the Acts::SourceLink...
Acts::VectorTrackContainer MutableTrackBackend

◆ fit() [3/10]

std::unique_ptr< Trk::Track > ActsTrk::GlobalChiSquareFitterTool::fit ( const EventContext & ctx,
const Trk::PrepRawDataSet & inputPRDColl,
const Trk::TrackParameters & estimatedStartParameters,
const Trk::RunOutlierRemoval runOutlier = false,
const Trk::ParticleHypothesis matEffects = Trk::nonInteracting ) const
overridevirtual

fit a set of PrepRawData objects

Definition at line 260 of file GlobalChiSquareFitterTool.cxx.

264 {
265
266 ATH_MSG_DEBUG("--> entering GlobalChiSquareFitterTool::fit(PRDS,TP,)");
267
268 // Construct a perigee surface as the target surface
269 auto pSurface = Acts::Surface::makeShared<Acts::PerigeeSurface>(Acts::Vector3::Zero());
270
271 const Acts::GeometryContext tgContext = m_trackingGeometryTool->getGeometryContext(ctx).context();
272 const Acts::MagneticFieldContext mfContext = m_extrapolationTool->getMagneticFieldContext(ctx);
273 const Acts::CalibrationContext calContext{getCalibrationContext(ctx)};
274
275 std::vector<Acts::SourceLink> trackSourceLinks;
276 m_ATLASConverterTool->toSourceLinks(inputPRDColl, trackSourceLinks);
277
278 // protection against error in the conversion from Atlas measurement to ACTS
279 // source link
280 if (trackSourceLinks.empty()) {
281 ATH_MSG_WARNING("input contain measurement but no source link created, probable issue "
282 "with the converter, reject fit ");
283 return nullptr;
284 }
285
286 const auto initialParams = m_ATLASConverterTool->trkTrackParametersToActsParameters(estimatedStartParameters, tgContext);
287
288
289 Gx2FitterOptions_t gx2fOptions = configureFit(tgContext, mfContext, calContext,
291
292
293 ActsTrk::MutableTrackBackend trackContainerBackEnd;
294 ActsTrk::MutableTrackStateBackend multiTrajBackEnd;
295 ActsTrk::MutableTrackContainer tracks( std::move(trackContainerBackEnd),
296 std::move(multiTrajBackEnd));
297 // Perform the fit
298 auto result = fit(trackSourceLinks, initialParams, gx2fOptions, tracks);
299
300 return m_ATLASConverterTool->convertFitResult(ctx, tracks, result,
303}
#define ATH_MSG_WARNING(x)
@ TrkPrepRawData
Calibrated Trk::MeasurementBase objects.

◆ fit() [4/10]

std::unique_ptr< Trk::Track > ActsTrk::GlobalChiSquareFitterTool::fit ( const EventContext & ctx,
const Trk::Track & inputTrack,
const Trk::MeasurementSet & addMeasColl,
const Trk::RunOutlierRemoval runOutlier = false,
const Trk::ParticleHypothesis matEffects = Trk::nonInteracting ) const
overridevirtual

extend a track fit including a new set of MeasurementBase objects

Definition at line 354 of file GlobalChiSquareFitterTool.cxx.

358 {
359 ATH_MSG_VERBOSE("--> enter GlobalChiSquareFitterTool::fit(Track,Meas'BaseSet,,)");
360 ATH_MSG_VERBOSE(" with Track from author = " << inputTrack.info().dumpInfo());
361
362 // protection, if empty MeasurementSet
363 if (addMeasColl.empty()) {
364 ATH_MSG_DEBUG("client tries to add an empty MeasurementSet to the track fit.");
365 return fit(ctx, inputTrack);
366 }
367
368 // protection against not having measurements on the input track
369 if (!inputTrack.measurementsOnTrack() || (inputTrack.measurementsOnTrack()->size() < 2 && addMeasColl.empty())) {
370 ATH_MSG_DEBUG("Called to refit empty track or track with too little information, reject fit");
371 return nullptr;
372 }
373
374 // protection against not having track parameters on the input track
375 if (!inputTrack.trackParameters() || inputTrack.trackParameters()->empty()) {
376 ATH_MSG_DEBUG("input fails to provide track parameters for seeding the GX2F, reject fit");
377 return nullptr;
378 }
379
380 // Construct a perigee surface as the target surface
381 auto pSurface = Acts::Surface::makeShared<Acts::PerigeeSurface>(Acts::Vector3::Zero());
382
383 const Acts::GeometryContext tgContext{m_trackingGeometryTool->getGeometryContext(ctx).context()};
384 const Acts::MagneticFieldContext mfContext{m_extrapolationTool->getMagneticFieldContext(ctx)};
385 const Acts::CalibrationContext calContext{getCalibrationContext(ctx)};
386
387 std::vector<Acts::SourceLink> trackSourceLinks = m_ATLASConverterTool->trkTrackToSourceLinks(inputTrack);
388 m_ATLASConverterTool->toSourceLinks(addMeasColl, trackSourceLinks);
389 // protection against error in the conversion from Atlas measurement to ACTS
390 // source link
391 if (trackSourceLinks.empty()) {
392 ATH_MSG_DEBUG("input contain measurement but no source link created, probable issue "
393 <<"with the converter, reject fit ");
394 return nullptr;
395 }
396 const auto initialParams = m_ATLASConverterTool->trkTrackParametersToActsParameters(*(inputTrack.perigeeParameters()),
397 tgContext);
398
399 ActsTrk::MutableTrackBackend trackContainerBackEnd;
400 ActsTrk::MutableTrackStateBackend multiTrajBackEnd;
401 ActsTrk::MutableTrackContainer tracks( std::move(trackContainerBackEnd),
402 std::move(multiTrajBackEnd));
403
404 Gx2FitterOptions_t gx2fOptions = configureFit(tgContext, mfContext, calContext,
406 // Perform the fit
407 auto result = fit(trackSourceLinks, initialParams, gx2fOptions, tracks);
408 return m_ATLASConverterTool->convertFitResult(ctx, tracks, result,
411}
#define ATH_MSG_VERBOSE(x)
std::string dumpInfo() const
Returns a string with the name of the fitter of this track (i.e.
const DataVector< const MeasurementBase > * measurementsOnTrack() const
return a pointer to a vector of MeasurementBase (NOT including any that come from outliers).
const DataVector< const TrackParameters > * trackParameters() const
Return a pointer to a vector of TrackParameters.
const TrackInfo & info() const
Returns a const ref to info of a const tracks.
const Perigee * perigeeParameters() const
return Perigee.

◆ fit() [5/10]

std::unique_ptr< Trk::Track > ActsTrk::GlobalChiSquareFitterTool::fit ( const EventContext & ctx,
const Trk::Track & ,
const Trk::PrepRawDataSet & ,
const Trk::RunOutlierRemoval runOutlier = false,
const Trk::ParticleHypothesis matEffects = Trk::nonInteracting ) const
overridevirtual

extend a track fit including a new set of PrepRawData objects

Definition at line 415 of file GlobalChiSquareFitterTool.cxx.

419 {
421 "Fit of Track with additional PrepRawDataSet not yet implemented");
422 return nullptr;
423}

◆ fit() [6/10]

std::unique_ptr< Trk::Track > ActsTrk::GlobalChiSquareFitterTool::fit ( const EventContext & ctx,
const Trk::Track & inputTrack,
const Trk::RunOutlierRemoval runOutlier = false,
const Trk::ParticleHypothesis matEffects = Trk::nonInteracting ) const
overridevirtual

refit a track

Definition at line 150 of file GlobalChiSquareFitterTool.cxx.

153 {
154
155 ATH_MSG_VERBOSE("--> enter GlobalChiSquareFitterTool::fit(Track,,) with Track from author = "
156 << inputTrack.info().dumpInfo());
157
158 // protection against not having measurements on the input track
159 if (!inputTrack.measurementsOnTrack() || inputTrack.measurementsOnTrack()->size() < 2) {
160 ATH_MSG_DEBUG("called to refit empty track or track with too little information, reject fit");
161 return nullptr;
162 }
163
164 // protection against not having track parameters on the input track
165 if (!inputTrack.trackParameters() || inputTrack.trackParameters()->empty()) {
166 ATH_MSG_DEBUG("input fails to provide track parameters for seeding the GX2F, reject fit");
167 return nullptr;
168 }
169
170 // Construct a perigee surface as the target surface
171 auto pSurface = Acts::Surface::makeShared<Acts::PerigeeSurface>(Acts::Vector3::Zero());
172
173 std::vector<Acts::SourceLink> trackSourceLinks = m_ATLASConverterTool->trkTrackToSourceLinks(inputTrack);
174 // protection against error in the conversion from Atlas measurement to ACTS
175 // source link
176 if (trackSourceLinks.empty()) {
177 ATH_MSG_DEBUG("input contain measurement but no source link created, probable issue "
178 <<"with the converter, reject fit ");
179 return nullptr;
180 }
181
182 const Acts::GeometryContext tgContext{m_trackingGeometryTool->getGeometryContext(ctx).context()};
183 const Acts::MagneticFieldContext mfContext{m_extrapolationTool->getMagneticFieldContext(ctx)};
184 const Acts::CalibrationContext calContext{getCalibrationContext(ctx)};
185 const auto initialParams = m_ATLASConverterTool->trkTrackParametersToActsParameters((*inputTrack.perigeeParameters()), tgContext);
186
187
188 const Acts::BoundTrackParameters initialParamsWithHypothesis(
189 initialParams.referenceSurface().getSharedPtr(),
190 initialParams.parameters(), initialParams.covariance(),
191 ParticleHypothesis::convert(hypothesis));
192
193 Gx2FitterOptions_t gx2fOptions = configureFit(tgContext, mfContext, calContext,
195
196 ActsTrk::MutableTrackBackend trackContainerBackEnd;
197 ActsTrk::MutableTrackStateBackend multiTrajBackEnd;
198 ActsTrk::MutableTrackContainer tracks( std::move(trackContainerBackEnd),
199 std::move(multiTrajBackEnd));
200 // Perform the fit
201 auto result = fit(trackSourceLinks, initialParamsWithHypothesis, gx2fOptions, tracks);
202
203 return m_ATLASConverterTool->convertFitResult(ctx, tracks, result,
206}
xAOD::ParticleHypothesis convert(Acts::ParticleHypothesis h)

◆ fit() [7/10]

std::unique_ptr< Trk::Track > ActsTrk::GlobalChiSquareFitterTool::fit ( const EventContext & ctx,
const Trk::Track & intrk1,
const Trk::Track & intrk2,
const Trk::RunOutlierRemoval runOutlier = false,
const Trk::ParticleHypothesis matEffects = Trk::nonInteracting ) const
overridevirtual

combined track fit

Definition at line 427 of file GlobalChiSquareFitterTool.cxx.

430 {
431 ATH_MSG_VERBOSE("--> enter GlobalChiSquareFitterTool::fit(Track,Track,)");
432 ATH_MSG_VERBOSE(" with Tracks from #1 = " << intrk1.info().dumpInfo()
433 << " and #2 = "
434 << intrk2.info().dumpInfo());
435
436 // protection, if empty track2
437 if (!intrk2.measurementsOnTrack()) {
438 ATH_MSG_DEBUG("input #2 is empty try to fit track 1 alone");
439 return fit(ctx, intrk1);
440 }
441
442 // protection, if empty track1
443 if (!intrk1.measurementsOnTrack()) {
444 ATH_MSG_DEBUG("input #1 is empty try to fit track 2 alone");
445 return fit(ctx, intrk2);
446 }
447
448 // protection against not having track parameters on the input track
449 if (!intrk1.trackParameters() || intrk1.trackParameters()->empty()) {
450 ATH_MSG_DEBUG("input #1 fails to provide track parameters for seeding the GX2F, reject fit");
451 return nullptr;
452 }
453
454 // Construct a perigee surface as the target surface
455 auto pSurface = Acts::Surface::makeShared<Acts::PerigeeSurface>(Acts::Vector3::Zero());
456
457 const Acts::GeometryContext tgContext{m_trackingGeometryTool->getGeometryContext(ctx).context()};
458 const Acts::MagneticFieldContext mfContext{m_extrapolationTool->getMagneticFieldContext(ctx)};
459 const Acts::CalibrationContext calContext{getCalibrationContext(ctx)};
460
461 std::vector<Acts::SourceLink> trackSourceLinks = m_ATLASConverterTool->trkTrackToSourceLinks(intrk1);
462 std::vector<Acts::SourceLink> trackSourceLinks2 = m_ATLASConverterTool->trkTrackToSourceLinks(intrk2);
463 trackSourceLinks.insert(trackSourceLinks.end(), std::make_move_iterator(trackSourceLinks2.begin()),
464 std::make_move_iterator(trackSourceLinks2.end()));
465 // protection against error in the conversion from Atlas measurement to ACTS
466 // source link
467 if (trackSourceLinks.empty()) {
468 ATH_MSG_DEBUG("input contain measurement but no source link created, probable issue "
469 <<"with the converter, reject fit ");
470 return nullptr;
471 }
472
473 const auto initialParams = m_ATLASConverterTool->trkTrackParametersToActsParameters(*(intrk1.perigeeParameters()), tgContext);
474
475
476 const Acts::BoundTrackParameters initialParamsWithHypothesis(
477 initialParams.referenceSurface().getSharedPtr(),
478 initialParams.parameters(), initialParams.covariance(),
479 ParticleHypothesis::convert(matEffects));
480
481 ActsTrk::MutableTrackBackend trackContainerBackEnd;
482 ActsTrk::MutableTrackStateBackend multiTrajBackEnd;
483 ActsTrk::MutableTrackContainer tracks( std::move(trackContainerBackEnd),
484 std::move(multiTrajBackEnd));
485
486 Gx2FitterOptions_t gx2fOptions = configureFit(tgContext, mfContext, calContext,
488 // Perform the fit
489 auto result = fit(trackSourceLinks, initialParamsWithHypothesis, gx2fOptions, tracks);
490
491 return m_ATLASConverterTool->convertFitResult(ctx, tracks, result,
494}

◆ fit() [8/10]

std::unique_ptr< MutableTrackContainer > ActsTrk::GlobalChiSquareFitterTool::fit ( const Seed & seed,
const Acts::BoundTrackParameters & initialParams,
const Acts::GeometryContext & tgContext,
const Acts::MagneticFieldContext & mfContext,
const Acts::CalibrationContext & calContext,
const Acts::Surface & targetSurface ) const
overridevirtual

Acts seed fit.

Definition at line 496 of file GlobalChiSquareFitterTool.cxx.

502 {
503
504 std::vector<ATLASUncalibSourceLink> sourceLinks;
505 sourceLinks.reserve(6);
506
507 for (const xAOD::SpacePoint* sp : seed.sp()) {
508 sourceLinks.insert(sourceLinks.end(), sp->measurements().begin(), sp->measurements().end());
509 }
510 return fit(sourceLinks, initialParams, tgContext, mfContext, calContext, &targetSurface);
511}
static Double_t sp

◆ fit() [9/10]

GlobalChiSquareFitterTool::TrackFitResult_t ActsTrk::GlobalChiSquareFitterTool::fit ( const std::vector< Acts::SourceLink > & soureLinks,
const Acts::BoundTrackParameters & initialPars,
const Gx2FitterOptions_t & gx2fOptions,
MutableTrackContainer & tracks ) const
inlineprivate

Calls the underlying Acts::Gx2Fitter for a given configuration of measurements.

Parameters
sourceLinksList of measurements to fit
initialParsInitial estimate of the track parameters
gx2fOptionsConfiguration options needed to execute the fit
tracksTrack container into which the new track is appended

Definition at line 120 of file GlobalChiSquareFitterTool.cxx.

123 {
124 return ATH_LIKELY(m_fitter) ?
125 m_fitter->fit(soureLinks.begin(), soureLinks.end(), initialPars, gx2fOptions, tracks) :
126 m_slFitter->fit(soureLinks.begin(), soureLinks.end(), initialPars, gx2fOptions, tracks);
127}
#define ATH_LIKELY(x)
std::unique_ptr< StraightFitter_t > m_slFitter
The underlying straight line Acts fitter.
std::unique_ptr< CurvedFitter_t > m_fitter
The underlying curved Acts fitter.

◆ fit() [10/10]

std::unique_ptr< MutableTrackContainer > ActsTrk::GlobalChiSquareFitterTool::fit ( const std::vector< ATLASUncalibSourceLink > & clusterList,
const Acts::BoundTrackParameters & initialParams,
const Acts::GeometryContext & tgContext,
const Acts::MagneticFieldContext & mfContext,
const Acts::CalibrationContext & calContext,
const Acts::Surface * targetSurface = nullptr ) const
overridevirtual

fit a set of xAOD uncalibrated Measurements

Definition at line 307 of file GlobalChiSquareFitterTool.cxx.

313 {
314
315 if (measList.empty()) {
316 ATH_MSG_DEBUG("No measurements given. Nothing to do");
317 return nullptr;
318 }
319 // Construct a perigee surface as the target surface
320 std::shared_ptr<Acts::Surface> pSurface{};
321 if (!targetSurface) {
322 pSurface = Acts::Surface::makeShared<Acts::PerigeeSurface>(Acts::Vector3::Zero());
323 targetSurface = pSurface.get();
324 }
325
326 std::vector<Acts::SourceLink> sourceLinks;
327 sourceLinks.reserve(measList.size());
328 std::ranges::transform(measList, std::back_inserter(sourceLinks),
329 [](const xAOD::UncalibratedMeasurement* meas){
331 });
332
333 Gx2FitterOptions_t gx2fOptions = configureFit(tgContext, mfContext, calContext,
335
336
337 ActsTrk::MutableTrackBackend trackContainerBackEnd;
338 ActsTrk::MutableTrackStateBackend multiTrajBackEnd;
339 auto tracks = std::make_unique<MutableTrackContainer>( std::move(trackContainerBackEnd),
340 std::move(multiTrajBackEnd) );
341 // Perform the fit
342 auto result = fit(sourceLinks, initialParams, gx2fOptions, *tracks);
343 if (not result.ok()) {
344 ATH_MSG_VERBOSE("Global chi2 fit failed");
345 return nullptr;
346 }
347 return tracks;
348}
static Acts::SourceLink pack(const xAOD::UncalibratedMeasurement *meas)
Helper method to pack an uncalibrated measurement to an Acts source link.
@ xAODUnCalibMeas
UnCalibrated Trk::PrepRawData objects.
UncalibratedMeasurement_v1 UncalibratedMeasurement
Define the version of the uncalibrated measurement class.

◆ initialize()

StatusCode ActsTrk::GlobalChiSquareFitterTool::initialize ( )
overridevirtual

Configure the fit extensions for Trk::MeasuremenBase pass through fits.

Configure the fit extensions for Trk::PrepRawData fits

Needs to be filled with live.

Connect the muon types with the muon calibrator

Definition at line 45 of file GlobalChiSquareFitterTool.cxx.

45 {
46
47 ATH_MSG_DEBUG(name() << "::" << __FUNCTION__);
51 ATH_CHECK(m_ROTcreator.retrieve(EnableTool{m_doReFitFromPRD}));
52 ATH_CHECK(m_muonCalibrator.retrieve(EnableTool{!m_muonCalibrator.empty()}));
53
54 m_logger = makeActsAthenaLogger(this, "Gx2fRefit");
55 if (!m_doStraightLine){
56 // Fitter
57 CurvedPropagator_t::Stepper stepper{std::make_shared<ATLASMagneticFieldWrapper>()};
58 Acts::Navigator::Config navConfig{m_trackingGeometryTool->trackingGeometry()};
59 Acts::Navigator navigator(std::move(navConfig), logger().cloneWithSuffix("Navigator"));
60 CurvedPropagator_t propagator{stepper, std::move(navigator), logger().cloneWithSuffix("Prop")};
61
62 m_fitter = std::make_unique<CurvedFitter_t>(std::move(propagator),
63 logger().cloneWithSuffix("GlobalChiSquareFitter"));
64 } else {
65 Acts::StraightLineStepper stepper{};
66 Acts::Navigator::Config navConfig{m_trackingGeometryTool->trackingGeometry()};
67 Acts::Navigator navigator(std::move(navConfig), logger().cloneWithSuffix("Navigator"));
68 StraightPropagator_t propagator{stepper, std::move(navigator), logger().cloneWithSuffix("Prop")};
69
70 m_slFitter = std::make_unique<StraightFitter_t>(std::move(propagator),
71 logger().cloneWithSuffix("GlobalChiSquareFitter"));
72 }
73
74
75 m_outlierFinder.StateChiSquaredPerNumberDoFCut = m_option_outlierChi2Cut;
76
77 Gx2FitterExtension_t extensionTemplate{};
78 extensionTemplate.outlierFinder.connect<&detail::FitterHelperFunctions::ATLASOutlierFinder::operator()
81
83 {
84 m_trkMeasCalibrator = detail::TrkMeasurementCalibrator{};
85 m_trkMeasSurfAcc = detail::TrkMeasSurfaceAccessor{m_ATLASConverterTool.get()};
86
88 configureMe = extensionTemplate;
90 configureMe.surfaceAccessor.connect<&detail::TrkMeasSurfaceAccessor::operator()>(&m_trkMeasSurfAcc);
91 }
93 {
94 m_prdCalibrator = detail::TrkPrepRawDataCalibrator{m_ATLASConverterTool.get(), m_ROTcreator.get()};
95 m_prdSurfaceAcc = detail::TrkPrepRawDataSurfaceAcc{m_ATLASConverterTool.get()};
97 configureMe = extensionTemplate;
99 configureMe.surfaceAccessor.connect<&detail::TrkPrepRawDataSurfaceAcc::operator()>(&m_prdSurfaceAcc);
100 }
101 {
102 m_unalibMeasSurfAcc = detail::xAODUncalibMeasSurfAcc{m_trackingGeometryTool.get()};
105 configureMe = extensionTemplate;
106 configureMe.surfaceAccessor.connect<&detail::xAODUncalibMeasSurfAcc::operator()>(&m_unalibMeasSurfAcc);
109 if (m_muonCalibrator.isEnabled()) {
114 }
115 }
116 }
117 return StatusCode::SUCCESS;
118}
#define ATH_CHECK
Evaluate an expression and check for errors.
std::unique_ptr< const Acts::Logger > makeActsAthenaLogger(IMessageSvc *svc, const std::string &name, int level, std::optional< std::string > parent_name)
Gaudi::Property< double > m_option_outlierChi2Cut
Chi2 cut used by the outlier finder.
std::unique_ptr< const Acts::Logger > m_logger
logging instance
detail::TrkMeasSurfaceAccessor m_trkMeasSurfAcc
Surface accessor delegate for Trk::MeasurementBase objects.
detail::TrkPrepRawDataCalibrator m_prdCalibrator
Calibrator of the uncalibrated Trk::PrepRawData objects to RIO_OnTrack objects.
Acts::Propagator< Acts::StraightLineStepper, Acts::Navigator > StraightPropagator_t
Type erased track fitter function.
const Acts::Logger & logger() const
Private access to the logger.
ToolHandle< MuonR4::ISpacePointCalibrator > m_muonCalibrator
Acts::Experimental::Gx2FitterExtensions< MutableTrackStateBackend > Gx2FitterExtension_t
Abbrivation of the fitter extensions.
detail::FitterHelperFunctions::ATLASOutlierFinder m_outlierFinder
detail::TrkPrepRawDataSurfaceAcc m_prdSurfaceAcc
Surface accessor delegate for Trk::PrepRawData objects.
ToolHandle< Trk::IRIO_OnTrackCreator > m_ROTcreator
detail::TrkMeasurementCalibrator m_trkMeasCalibrator
Pass through calibrator of the Trk::MeasurementBase objects from the TrackState container.
detail::xAODUncalibMeasSurfAcc m_unalibMeasSurfAcc
Surface accessor delegate for xAOD::UncalibratedMeasurement objects.
Acts::Propagator< Acts::EigenStepper<>, Acts::Navigator > CurvedPropagator_t
Gaudi::Property< bool > m_doStraightLine
Option to toggle whether a straight line fitter shall be used.
detail::xAODUncalibMeasCalibrator m_uncalibMeasCalibrator
Calibrator for the uncalibrated xAOD::UnCalibratedMeasurement objects.
void calibrate(const Acts::GeometryContext &gctx, const Acts::CalibrationContext &cctx, const Acts::SourceLink &sl, TrackState_t< trajectory_t > trackState) const
Calibrator delegate implementation to calibrate the ActsTrk fit from Trk::MeasurementBase objects.
void calibrate(const Acts::GeometryContext &gctx, const Acts::CalibrationContext &cctx, const Acts::SourceLink &sl, TrackState_t< trajectory_t > trackState) const
Calibrator delegate implementation to calibrate the ActsTrk fit from Trk::PrepRawData objects.
void calibrate(const Acts::GeometryContext &gctx, const Acts::CalibrationContext &cctx, const Acts::SourceLink &sl, const MutableTrackStateBackend::TrackStateProxy trackState) const
: Interface method for the Acts fitter to calibrate the trajectory track states from the source link ...
virtual void calibrateSourceLink(const Acts::GeometryContext &geoctx, const Acts::CalibrationContext &cctx, const Acts::SourceLink &link, ActsTrk::MutableTrackStateBackend::TrackStateProxy state) const =0
Function that's hooked to the calibration delegate of the implemented Acts fitters.
Acts::Result< void > gainMatrixUpdate(const Acts::GeometryContext &gctx, typename trajectory_t::TrackStateProxy trackState, const Acts::Logger &logger)

◆ logger()

const Acts::Logger & ActsTrk::GlobalChiSquareFitterTool::logger ( ) const
inlineprivate

Private access to the logger.

Definition at line 233 of file GlobalChiSquareFitterTool.h.

233{ return *m_logger; }

Member Data Documentation

◆ m_ATLASConverterTool

ToolHandle<IActsToTrkConverterTool> ActsTrk::GlobalChiSquareFitterTool::m_ATLASConverterTool {this, "ATLASConverterTool", ""}
private

Definition at line 186 of file GlobalChiSquareFitterTool.h.

186{this, "ATLASConverterTool", ""};

◆ m_doJacobianCorr

Gaudi::Property<bool> ActsTrk::GlobalChiSquareFitterTool::m_doJacobianCorr {this, "DoFreeToBoundCorrection", false }
private

Account for non linear effects from free -> bound jacobian.

Definition at line 207 of file GlobalChiSquareFitterTool.h.

207{this, "DoFreeToBoundCorrection", false };

◆ m_doReFitFromPRD

Gaudi::Property<bool> ActsTrk::GlobalChiSquareFitterTool::m_doReFitFromPRD {this, "DoReFitFromPRD", false}
private

Convert the PRD to a ROT during the calibration.

Definition at line 203 of file GlobalChiSquareFitterTool.h.

203{this, "DoReFitFromPRD", false};

◆ m_doStraightLine

Gaudi::Property<bool> ActsTrk::GlobalChiSquareFitterTool::m_doStraightLine {this, "DoStraightLine" , false}
private

Option to toggle whether a straight line fitter shall be used.

Definition at line 205 of file GlobalChiSquareFitterTool.h.

205{this, "DoStraightLine" , false};

◆ m_extrapolationTool

ToolHandle<ActsTrk::IExtrapolationTool> ActsTrk::GlobalChiSquareFitterTool::m_extrapolationTool {this, "ExtrapolationTool", ""}
private

Definition at line 184 of file GlobalChiSquareFitterTool.h.

184{this, "ExtrapolationTool", ""};

◆ m_fitter

std::unique_ptr<CurvedFitter_t> ActsTrk::GlobalChiSquareFitterTool::m_fitter {nullptr}
private

The underlying curved Acts fitter.

Definition at line 226 of file GlobalChiSquareFitterTool.h.

226{nullptr};

◆ m_gx2fExtensions

std::array<Gx2FitterExtension_t, s_nExtensions> ActsTrk::GlobalChiSquareFitterTool::m_gx2fExtensions {}
private

Definition at line 224 of file GlobalChiSquareFitterTool.h.

224{};

◆ m_logger

std::unique_ptr<const Acts::Logger> ActsTrk::GlobalChiSquareFitterTool::m_logger
private

logging instance

Definition at line 236 of file GlobalChiSquareFitterTool.h.

◆ m_muonCalibrator

ToolHandle<MuonR4::ISpacePointCalibrator> ActsTrk::GlobalChiSquareFitterTool::m_muonCalibrator {this, "MuonCalibrationTool", ""}
private

Definition at line 188 of file GlobalChiSquareFitterTool.h.

188{this, "MuonCalibrationTool", ""};

◆ m_nIterMax

Gaudi::Property<unsigned> ActsTrk::GlobalChiSquareFitterTool::m_nIterMax {this, "MaxIterations", 5}
private

Number of iterations a fit may take.

Definition at line 209 of file GlobalChiSquareFitterTool.h.

209{this, "MaxIterations", 5};

◆ m_option_includeELoss

Gaudi::Property<bool> ActsTrk::GlobalChiSquareFitterTool::m_option_includeELoss {this, "IncludeELoss", true}
private

Consider particle's energy loss in the fit.

Definition at line 199 of file GlobalChiSquareFitterTool.h.

199{this, "IncludeELoss", true};

◆ m_option_includeScat

Gaudi::Property<bool> ActsTrk::GlobalChiSquareFitterTool::m_option_includeScat {this, "IncludeScattering", true}
private

Consider multiple scattering of the particle.

Definition at line 201 of file GlobalChiSquareFitterTool.h.

201{this, "IncludeScattering", true};

◆ m_option_maxNavSurfaces

Gaudi::Property<unsigned> ActsTrk::GlobalChiSquareFitterTool::m_option_maxNavSurfaces {this, "MaxSurfacesPerNavStep", 100}
private

Number of maximum surfaces to be tried before the navigrator aborts.

Definition at line 197 of file GlobalChiSquareFitterTool.h.

197{this, "MaxSurfacesPerNavStep", 100};

◆ m_option_maxPropagationStep

Gaudi::Property<unsigned> ActsTrk::GlobalChiSquareFitterTool::m_option_maxPropagationStep {this, "MaxPropagationStep", 5000}
private

Maximum number of steps per propagation call.

Definition at line 195 of file GlobalChiSquareFitterTool.h.

195{this, "MaxPropagationStep", 5000};

◆ m_option_outlierChi2Cut

Gaudi::Property<double> ActsTrk::GlobalChiSquareFitterTool::m_option_outlierChi2Cut {this, "OutlierChi2Cut", 12.5}
private

Chi2 cut used by the outlier finder.

Definition at line 193 of file GlobalChiSquareFitterTool.h.

193{this, "OutlierChi2Cut", 12.5};

◆ m_outlierFinder

detail::FitterHelperFunctions::ATLASOutlierFinder ActsTrk::GlobalChiSquareFitterTool::m_outlierFinder {0}
private

Definition at line 230 of file GlobalChiSquareFitterTool.h.

230{0};

◆ m_prdCalibrator

detail::TrkPrepRawDataCalibrator ActsTrk::GlobalChiSquareFitterTool::m_prdCalibrator {}
private

Calibrator of the uncalibrated Trk::PrepRawData objects to RIO_OnTrack objects.

Definition at line 213 of file GlobalChiSquareFitterTool.h.

213{};

◆ m_prdSurfaceAcc

detail::TrkPrepRawDataSurfaceAcc ActsTrk::GlobalChiSquareFitterTool::m_prdSurfaceAcc {}
private

Surface accessor delegate for Trk::PrepRawData objects.

Definition at line 217 of file GlobalChiSquareFitterTool.h.

217{};

◆ m_ROTcreator

ToolHandle<Trk::IRIO_OnTrackCreator> ActsTrk::GlobalChiSquareFitterTool::m_ROTcreator {this, "RotCreatorTool", ""}
private

Definition at line 190 of file GlobalChiSquareFitterTool.h.

190{this, "RotCreatorTool", ""};

◆ m_slFitter

std::unique_ptr<StraightFitter_t> ActsTrk::GlobalChiSquareFitterTool::m_slFitter {nullptr}
private

The underlying straight line Acts fitter.

Definition at line 228 of file GlobalChiSquareFitterTool.h.

228{nullptr};

◆ m_trackingGeometryTool

PublicToolHandle<ITrackingGeometryTool> ActsTrk::GlobalChiSquareFitterTool::m_trackingGeometryTool {this, "TrackingGeometryTool", ""}
private

Definition at line 185 of file GlobalChiSquareFitterTool.h.

185{this, "TrackingGeometryTool", ""};

◆ m_trkMeasCalibrator

detail::TrkMeasurementCalibrator ActsTrk::GlobalChiSquareFitterTool::m_trkMeasCalibrator {}
private

Pass through calibrator of the Trk::MeasurementBase objects from the TrackState container.

Definition at line 211 of file GlobalChiSquareFitterTool.h.

211{};

◆ m_trkMeasSurfAcc

detail::TrkMeasSurfaceAccessor ActsTrk::GlobalChiSquareFitterTool::m_trkMeasSurfAcc {}
private

Surface accessor delegate for Trk::MeasurementBase objects.

Definition at line 215 of file GlobalChiSquareFitterTool.h.

215{};

◆ m_unalibMeasSurfAcc

detail::xAODUncalibMeasSurfAcc ActsTrk::GlobalChiSquareFitterTool::m_unalibMeasSurfAcc {}
private

Surface accessor delegate for xAOD::UncalibratedMeasurement objects.

Definition at line 219 of file GlobalChiSquareFitterTool.h.

219{};

◆ m_uncalibMeasCalibrator

detail::xAODUncalibMeasCalibrator ActsTrk::GlobalChiSquareFitterTool::m_uncalibMeasCalibrator {}
private

Calibrator for the uncalibrated xAOD::UnCalibratedMeasurement objects.

Definition at line 221 of file GlobalChiSquareFitterTool.h.

221{};

◆ s_nExtensions

unsigned ActsTrk::GlobalChiSquareFitterTool::s_nExtensions = static_cast<unsigned>(detail::SourceLinkType::nTypes)
staticconstexprprivate

Array of all configured fitter extensions depending on which source link type is in use.

Definition at line 223 of file GlobalChiSquareFitterTool.h.


The documentation for this class was generated from the following files: