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

#include <GaussianSumFitterTool.h>

Inheritance diagram for ActsTrk::GaussianSumFitterTool:

Public Member Functions

virtual ~GaussianSumFitterTool ()=default
virtual StatusCode initialize () override
virtual std::unique_ptr< ActsTrk::MutableTrackContainerfit (const ActsTrk::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 std::unique_ptr< ActsTrk::MutableTrackContainerfit (const std::vector< const xAOD::UncalibratedMeasurement * > &clusterList, const Acts::BoundTrackParameters &initialParams, const Acts::GeometryContext &tgContext, const Acts::MagneticFieldContext &mfContext, const Acts::CalibrationContext &calContext, const Acts::Surface *targetSurface) const override
virtual StatusCode fit (const EventContext &ctx, const ActsTrk::TrackContainer::ConstTrackProxy &track, ActsTrk::MutableTrackContainer &trackContainer, const Acts::PerigeeSurface &pSurface) const override
virtual std::unique_ptr< MutableTrackContainerfit (const std::vector< Acts::SourceLink > &sourceLinks, 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 source links

Private Types

using FitterOptions_t = Acts::GsfOptions<ActsTrk::MutableTrackStateBackend>
using TrackState_t = MutableTrackStateBackend::TrackStateProxy
 Abrivate the track state proxy.
using xAODUnCalibrator_t = detail::OnTrackCalibrator<MutableTrackStateBackend>
 Calibrator of the uncalibrated measurements.
using Fitter
 Type erased track fitter function.
using DirectFitter
using FitterExtension_t = Acts::GsfExtensions<ActsTrk::MutableTrackStateBackend>

Private Member Functions

FitterOptions_t configureFit (const Acts::GeometryContext &tgContext, const Acts::MagneticFieldContext &mfContext, const Acts::CalibrationContext &calContext, const Acts::PerigeeSurface &surface, detail::SourceLinkType slType) const
const Acts::Logger & logger () const
 Private access to the logger.

Private Attributes

ServiceHandle< ActsTrk::ITrackingGeometrySvcm_trackingGeometrySvc {this, "TrackingGeometrySvc", "ActsTrackingGeometrySvc"}
PublicToolHandle< IGeometryRealmConvToolm_geometryConvTool {this, "GeometryRealmConvTool", ""}
ContextUtility m_ctxProvider {this}
 Utility to fetch the geometry, magnetic field and calibration context in the event.
ToolHandle< Trk::IRIO_OnTrackCreatorm_ROTcreator {this, "RotCreatorTool", ""}
Gaudi::Property< double > m_option_outlierChi2Cut
Gaudi::Property< int > m_option_maxPropagationStep
Gaudi::Property< int > m_maxComponents
Gaudi::Property< bool > m_useDirectNavigation
Gaudi::Property< double > m_weightCutOff
Gaudi::Property< std::string > m_option_componentMergeMethod
Acts::ComponentMergeMethod m_componentMergeMethod
detail::TrkMeasurementCalibrator m_trkCalibrator {}
 Calibrator for the Trk::MeasurementBase track states (legacy EDM).
detail::TrkPrepRawDataCalibrator m_prdCalibrator {}
 Calibrator for the Trk::PrepRawData track states (legacy EDM).
xAODUnCalibrator_t m_uncalibMeasCalibrator {}
std::unique_ptr< detail::RefittingCalibratorm_refitCalibrator {nullptr}
std::unique_ptr< Fitterm_fitter {nullptr}
std::unique_ptr< DirectFitterm_directFitter {nullptr}
std::array< FitterExtension_t, s_nExtensionsm_gsfExtensions {}
detail::TrkMeasSurfaceAccessor m_trkSurfAcc {}
 Accessor to fetch surfaces from the Trk::MeasurementBase track states (legacy EDM).
detail::TrkPrepRawDataSurfaceAcc m_prdSurfAcc {}
 Surface accessor for the Trk::PrepRawData track states (legacy EDM).
detail::xAODUncalibMeasSurfAcc m_unalibMeasSurfAcc {}
 Accessor to fetch surfaces from the xAOD::UncalibratedMeasurements (Phase-II EDM).
ActsTrk::detail::FitterHelperFunctions::ATLASOutlierFinder m_outlierFinder {0}
std::unique_ptr< const Acts::Logger > m_logger {nullptr}
 logging instance

Static Private Attributes

static constexpr unsigned s_nExtensions = static_cast<unsigned>(detail::SourceLinkType::nTypes)

Detailed Description

Definition at line 43 of file GaussianSumFitterTool.h.

Member Typedef Documentation

◆ DirectFitter

Initial value:
Acts::GaussianSumFitter< Acts::Propagator<Acts::MultiEigenStepperLoop<>, Acts::DirectNavigator>,
Acts::VectorMultiTrajectory MutableTrackStateBackend

Definition at line 146 of file GaussianSumFitterTool.h.

◆ Fitter

Initial value:
Acts::GaussianSumFitter< Acts::Propagator<Acts::MultiEigenStepperLoop<>, Acts::Navigator>,

Type erased track fitter function.

Definition at line 142 of file GaussianSumFitterTool.h.

◆ FitterExtension_t

◆ FitterOptions_t

◆ TrackState_t

using ActsTrk::GaussianSumFitterTool::TrackState_t = MutableTrackStateBackend::TrackStateProxy
private

Abrivate the track state proxy.

Definition at line 105 of file GaussianSumFitterTool.h.

◆ xAODUnCalibrator_t

Constructor & Destructor Documentation

◆ ~GaussianSumFitterTool()

virtual ActsTrk::GaussianSumFitterTool::~GaussianSumFitterTool ( )
virtualdefault

Member Function Documentation

◆ configureFit()

GaussianSumFitterTool::FitterOptions_t ActsTrk::GaussianSumFitterTool::configureFit ( const Acts::GeometryContext & tgContext,
const Acts::MagneticFieldContext & mfContext,
const Acts::CalibrationContext & calContext,
const Acts::PerigeeSurface & surface,
detail::SourceLinkType slType ) const
private

Definition at line 167 of file GaussianSumFitterTool.cxx.

172{
173 //slType can be 3
174 const auto& gsfExtensions = m_gsfExtensions.at(Acts::toUnderlying(slType));
175
176 Acts::PropagatorPlainOptions propagationOption(tgContext, mfContext);
177 propagationOption.maxSteps = m_option_maxPropagationStep;
178
179 FitterOptions_t gsfOptions(tgContext, mfContext, calContext);
180 gsfOptions.extensions=gsfExtensions;
181 gsfOptions.propagatorPlainOptions=std::move(propagationOption);
182 gsfOptions.referenceSurface = &surface;
183
184 // Set abortOnError to false, else the refitting crashes if no forward propagation is done. Here, we just skip the event and continue.
185 gsfOptions.abortOnError = false;
186 gsfOptions.maxComponents = m_maxComponents;
187 gsfOptions.weightCutoff = m_weightCutOff;
188 gsfOptions.componentMergeMethod = m_componentMergeMethod;
189
190 return gsfOptions;
191}
Gaudi::Property< double > m_weightCutOff
Gaudi::Property< int > m_option_maxPropagationStep
Acts::ComponentMergeMethod m_componentMergeMethod
std::array< FitterExtension_t, s_nExtensions > m_gsfExtensions
Acts::GsfOptions< ActsTrk::MutableTrackStateBackend > FitterOptions_t

◆ fit() [1/4]

std::unique_ptr< ActsTrk::MutableTrackContainer > ActsTrk::GaussianSumFitterTool::fit ( const ActsTrk::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 195 of file GaussianSumFitterTool.cxx.

201{
202 ATH_MSG_VERBOSE("ACTS seed refit is not implemented in GaussianSumFitterTool");
203 return nullptr;
204}
#define ATH_MSG_VERBOSE(x)

◆ fit() [2/4]

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

Definition at line 219 of file GaussianSumFitterTool.cxx.

223 {
224 ATH_MSG_VERBOSE("GaussianSumFitterTool::fit(TrackProxy) called");
225
226 const Acts::BoundTrackParameters initialParams = track.createParametersAtReference();
227 std::vector<Acts::SourceLink> sourceLinks;
228
229 for (auto ts : track.trackStates()){
230 if (!ts.hasCalibrated()) {
231 continue;
232 }
233 if (ts.typeFlags().hasMeasurement()) {
234 sourceLinks.push_back(ts.getUncalibratedSourceLink());
235 }
236 }
237
238 if (sourceLinks.size() < 2) {
239 ATH_MSG_DEBUG("called to refit 0 or 1 sourceLink with too little information, reject fit");
240 return StatusCode::SUCCESS;
241 }
242
243 const Acts::GeometryContext tgContext{m_ctxProvider.getGeometryContext(ctx)};
244 const Acts::MagneticFieldContext mfContext{m_ctxProvider.getMagneticFieldContext(ctx)};
245 const Acts::CalibrationContext calContext{m_ctxProvider.getCalibrationContext(ctx)};
246
247 std::unique_ptr< ActsTrk::MutableTrackContainer > refittedTracks =
248 fit(sourceLinks, initialParams, tgContext, mfContext, calContext, &pSurface);
249
250 if (!refittedTracks) {
251 ATH_MSG_WARNING("Refit failed");
252 return StatusCode::SUCCESS;
253 }
254
256 trackContainer.ensureDynamicColumns(*refittedTracks);
257
258 for (auto trkProxy : *refittedTracks) {
260
261 auto destProxy = trackContainer.getTrack(trackContainer.addTrack());
262 destProxy.copyFrom(trkProxy);
263 }
264
265 return StatusCode::SUCCESS;
266}
#define ATH_MSG_WARNING(x)
#define ATH_MSG_DEBUG(x)
virtual std::unique_ptr< ActsTrk::MutableTrackContainer > fit(const ActsTrk::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.
ContextUtility m_ctxProvider
Utility to fetch the geometry, magnetic field and calibration context in the event.
int ts
Definition globals.cxx:24
@ GaussianSumFilter
Tracks from Gaussian Sum Filter.
static void addFitterTypeProperty(track_container_t &tracksContainer)
add fitter column to the track container
static void setFitterType(trackproxy_t &trackProxy, xAOD::TrackFitter fitterType)
set fitter type of a track

◆ fit() [3/4]

std::unique_ptr< MutableTrackContainer > ActsTrk::GaussianSumFitterTool::fit ( const std::vector< Acts::SourceLink > & sourceLinks,
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 source links

Definition at line 270 of file GaussianSumFitterTool.cxx.

275 {
276 if (sourceLinks.empty()) {
277 ATH_MSG_DEBUG("No measurements given. Nothing to do");
278 return nullptr;
279 }
280 // Construct a perigee surface as the target surface
281 auto pSurface = Acts::Surface::makeShared<Acts::PerigeeSurface>(Acts::Vector3::Zero());
282
284
285 FitterOptions_t gsfOptions = configureFit(tgContext, mfContext, calContext, *pSurface, slType);
286
287 ActsTrk::MutableTrackBackend trackContainerBackEnd;
288 ActsTrk::MutableTrackStateBackend multiTrajBackEnd;
289 auto tracks = std::make_unique<MutableTrackContainer>(std::move(trackContainerBackEnd),
290 std::move(multiTrajBackEnd));
291
292 bool fitSuccess = false;
294
295 std::vector<const Acts::Surface*> surfaces;
296 surfaces.reserve(sourceLinks.size());
297 switch (slType) {
299 std::ranges::for_each(sourceLinks, [this, &surfaces](const Acts::SourceLink& sl) {
300 surfaces.push_back(m_trkSurfAcc(sl));
301 });
302 break;
303 }
305 std::ranges::for_each(sourceLinks, [this, &surfaces](const Acts::SourceLink& sl) {
306 surfaces.push_back(m_prdSurfAcc(sl));
307 });
308 break;
309 }
311 std::ranges::for_each(sourceLinks, [this, &surfaces](const Acts::SourceLink& sl) {
312 surfaces.push_back(m_unalibMeasSurfAcc(sl));
313 });
314 break;
315 }
316 default:
317 ATH_MSG_ERROR("Unsupported source link type for KalmanFitterTool::fit");
318 return nullptr;
319 }
320 fitSuccess = m_directFitter->fit(sourceLinks.begin(), sourceLinks.end(),
321 initialParams, gsfOptions, surfaces, *tracks).ok();
322
323 } else {
324 fitSuccess = m_fitter->fit(sourceLinks.begin(), sourceLinks.end(),
325 initialParams, gsfOptions, *tracks).ok();
326 }
327
328 if (!fitSuccess) {
329 ATH_MSG_VERBOSE("Fitter has failed");
330 return nullptr;
331 }
332
334 for (auto trkProxy : *tracks) {
336 }
337 return tracks;
338}
#define ATH_MSG_ERROR(x)
detail::TrkPrepRawDataSurfaceAcc m_prdSurfAcc
Surface accessor for the Trk::PrepRawData track states (legacy EDM).
FitterOptions_t configureFit(const Acts::GeometryContext &tgContext, const Acts::MagneticFieldContext &mfContext, const Acts::CalibrationContext &calContext, const Acts::PerigeeSurface &surface, detail::SourceLinkType slType) const
Gaudi::Property< bool > m_useDirectNavigation
std::unique_ptr< Fitter > m_fitter
std::unique_ptr< DirectFitter > m_directFitter
detail::xAODUncalibMeasSurfAcc m_unalibMeasSurfAcc
Accessor to fetch surfaces from the xAOD::UncalibratedMeasurements (Phase-II EDM).
detail::TrkMeasSurfaceAccessor m_trkSurfAcc
Accessor to fetch surfaces from the Trk::MeasurementBase track states (legacy EDM).
static SourceLinkType getType(const Acts::SourceLink &sl)
Returns the enumeration corresponding to the object type cached within the Acts::SourceLink.
SourceLinkType
Enumeration to distinguish between the ATLAS EDM -> Acts::SourceLink variants.
@ xAODUnCalibMeas
UnCalibrated Trk::PrepRawData objects.
@ TrkPrepRawData
Calibrated Trk::MeasurementBase objects.
Acts::VectorTrackContainer MutableTrackBackend

◆ fit() [4/4]

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

Definition at line 207 of file GaussianSumFitterTool.cxx.

213{
214 ATH_MSG_VERBOSE("ACTS uncalib slink refit is not implemented in GaussianSumFitterTool");
215 return nullptr;
216}

◆ initialize()

StatusCode ActsTrk::GaussianSumFitterTool::initialize ( )
overridevirtual

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

Configure the fit extensions for the Trk::PrepRawData fits

Configure the fit extensions for the uncalibrated measurement fits

Definition at line 59 of file GaussianSumFitterTool.cxx.

59 {
60 ATH_MSG_DEBUG(name() << "::" << __FUNCTION__);
62 ATH_CHECK(m_ctxProvider.initialize());
63 ATH_CHECK(m_geometryConvTool.retrieve());
64 ATH_CHECK(m_ROTcreator.retrieve(EnableTool{!m_ROTcreator.empty()}));
65 m_logger = makeActsAthenaLogger(this, "Acts Gaussian Sum Refit");
66
67 auto field = std::make_shared<ATLASMagneticFieldWrapper>();
68
69 Acts::MultiEigenStepperLoop<> stepper(field);
70
71 // Use the GeantSim Bethe-Heitler parameterisation, which clamps at X/X0=0.20
72 // matching the behaviour in Trk::ElectronCombinedMaterialEffects. The files
73 // store coefficients in logit(z) space; transform=true applies sigmoid/exp to
74 // recover physical z in (0,1).
75 const std::string bhLow = PathResolver::find_file("GeantSim_LT01_cdf_nC6_O5.par", "DATAPATH");
76 const std::string bhHigh = PathResolver::find_file("GeantSim_GT01_cdf_nC6_O5.par", "DATAPATH");
77 ATH_MSG_INFO("ACTS GSF: loading GeantSim BH parameterisation (" << bhLow << ", " << bhHigh << ")");
78 auto bha = std::make_shared<Acts::AtlasBetheHeitlerApprox>(
79 readBHParFile(bhLow), readBHParFile(bhHigh),
80 /*lowTransform=*/true, /*highTransform=*/true,
81 /*lowLimit=*/0.1, /*highLimit=*/0.2, /*clampToRange=*/true,
82 /*noChangeLimit=*/0.0001, /*singleGaussianLimit=*/0.002);
83
84
86 // Direct Fitter
87 Acts::DirectNavigator directNavigator( logger().cloneWithSuffix("DirectNavigator") );
88 Acts::MultiEigenStepperLoop<> stepperDirect(field);
89 Acts::Propagator<Acts::MultiEigenStepperLoop<>, Acts::DirectNavigator> directPropagator(std::move(stepperDirect),
90 std::move(directNavigator),
91 logger().cloneWithSuffix("DirectPropagator"));
92 m_directFitter = std::make_unique<DirectFitter>(std::move(directPropagator), bha,
93 logger().cloneWithSuffix("DirectGaussianSumFitter"));
94
95 } else {
96 Acts::Navigator navigator(Acts::Navigator::Config{ m_trackingGeometrySvc->trackingGeometry() },
97 logger().cloneWithSuffix("Navigator") );
98 Acts::Propagator<Acts::MultiEigenStepperLoop<>, Acts::Navigator> propagator(std::move(stepper),
99 std::move(navigator),
100 logger().cloneWithSuffix("Prop"));
101 m_fitter = std::make_unique<Fitter>(std::move(propagator), bha,
102 logger().cloneWithSuffix("GaussianSumFitter"));
103 }
104
105 m_outlierFinder.StateChiSquaredPerNumberDoFCut = m_option_outlierChi2Cut;
106
107 FitterExtension_t gsfExtensionsTemplate;
108 gsfExtensionsTemplate.outlierFinder.connect<&ActsTrk::detail::FitterHelperFunctions::ATLASOutlierFinder::operator()<ActsTrk::MutableTrackStateBackend>>(&m_outlierFinder);
110 gsfExtensionsTemplate.mixtureReducer.connect<&Acts::reduceMixtureWithKLDistance>();
111
113 {
114 m_trkSurfAcc = detail::TrkMeasSurfaceAccessor{m_geometryConvTool.get()};
115
117 configureMe = gsfExtensionsTemplate;
118 //coverity has hard time matching arguments to these passed parameters
119 //coverity[RW.NO_MATCHING_FUNCTION:FALSE]
121 configureMe.surfaceAccessor.connect<&detail::TrkMeasSurfaceAccessor::operator()>(&m_trkSurfAcc);
122 }
124 {
125 m_prdCalibrator = detail::TrkPrepRawDataCalibrator{m_geometryConvTool.get(), m_ROTcreator.get()};
126 m_prdSurfAcc = detail::TrkPrepRawDataSurfaceAcc{m_geometryConvTool.get()};
127
129 configureMe = gsfExtensionsTemplate;
130 //coverity[RW.NO_MATCHING_FUNCTION:FALSE]
132 configureMe.surfaceAccessor.connect<&detail::TrkPrepRawDataSurfaceAcc::operator()>(&m_prdSurfAcc);
133 }
135 {
136 m_unalibMeasSurfAcc = detail::xAODUncalibMeasSurfAcc{m_trackingGeometrySvc.get()};
138
139 m_refitCalibrator = std::make_unique<detail::RefittingCalibrator>(m_geometryConvTool.get(), m_ROTcreator.get());
142
144 configureMe = gsfExtensionsTemplate;
145 configureMe.surfaceAccessor.connect<&detail::xAODUncalibMeasSurfAcc::operator()>(&m_unalibMeasSurfAcc);
146 configureMe.calibrator.connect<&detail::RefittingCalibrator::calibrate>(m_refitCalibrator.get());
147 }
148
149 if(m_option_componentMergeMethod == "Mean" ){
150 m_componentMergeMethod = Acts::ComponentMergeMethod::eMean;
151 }else if(m_option_componentMergeMethod == "MaxWeight"){
152 m_componentMergeMethod = Acts::ComponentMergeMethod::eMaxWeight;
153 }else{
154 throw std::runtime_error("Unknown option for ComponentMergeMethod: " + m_option_componentMergeMethod.value());
155 }
156
157 ATH_MSG_INFO("ACTS GSF direct nav " << m_useDirectNavigation.value());
158 ATH_MSG_INFO("ACTS GSF max cmps " << m_maxComponents.value());
159 ATH_MSG_INFO("ACTS GSF merge meth " << m_option_componentMergeMethod.value());
160 ATH_MSG_INFO("ACTS GSF weight ctf " << m_weightCutOff.value());
161 ATH_MSG_INFO("ACTS GSF outlier chi2 " << m_option_outlierChi2Cut.value());
162
163 return StatusCode::SUCCESS;
164}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_INFO(x)
std::unique_ptr< const Acts::Logger > makeActsAthenaLogger(IMessageSvc *svc, const std::string &name, int level, std::optional< std::string > parent_name)
const Acts::Logger & logger() const
Private access to the logger.
Gaudi::Property< std::string > m_option_componentMergeMethod
std::unique_ptr< detail::RefittingCalibrator > m_refitCalibrator
ToolHandle< Trk::IRIO_OnTrackCreator > m_ROTcreator
PublicToolHandle< IGeometryRealmConvTool > m_geometryConvTool
detail::TrkMeasurementCalibrator m_trkCalibrator
Calibrator for the Trk::MeasurementBase track states (legacy EDM).
ServiceHandle< ActsTrk::ITrackingGeometrySvc > m_trackingGeometrySvc
Gaudi::Property< double > m_option_outlierChi2Cut
Acts::GsfExtensions< ActsTrk::MutableTrackStateBackend > FitterExtension_t
std::unique_ptr< const Acts::Logger > m_logger
logging instance
detail::TrkPrepRawDataCalibrator m_prdCalibrator
Calibrator for the Trk::PrepRawData track states (legacy EDM).
ActsTrk::detail::FitterHelperFunctions::ATLASOutlierFinder m_outlierFinder
void calibrate(const Acts::GeometryContext &geoctx, const Acts::CalibrationContext &cctx, const Acts::SourceLink &link, TrackStateProxy state) const
static OnTrackCalibrator NoCalibration(const ActsTrk::ITrackingGeometrySvc *trackGeoSvc)
void calibrate(const Acts::GeometryContext &gctx, const Acts::CalibrationContext &cctx, const Acts::SourceLink &sourceLink, MutableTrackStateProxy trackState) const
void calibrate(const Acts::GeometryContext &gctx, const Acts::CalibrationContext &cctx, const Acts::SourceLink &sl, proxy_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, proxy_t trackState) const
Calibrator delegate implementation to calibrate the ActsTrk fit from Trk::PrepRawData objects.
static std::string find_file(const std::string &logical_file_name, const std::string &search_path)
Acts::Result< void > gainMatrixUpdate(const Acts::GeometryContext &gctx, typename trajectory_t::TrackStateProxy trackState, const Acts::Logger &logger)

◆ logger()

const Acts::Logger & ActsTrk::GaussianSumFitterTool::logger ( ) const
private

Private access to the logger.

Definition at line 342 of file GaussianSumFitterTool.cxx.

343{
344 return *m_logger;
345}

Member Data Documentation

◆ m_componentMergeMethod

Acts::ComponentMergeMethod ActsTrk::GaussianSumFitterTool::m_componentMergeMethod
private

Definition at line 130 of file GaussianSumFitterTool.h.

◆ m_ctxProvider

ContextUtility ActsTrk::GaussianSumFitterTool::m_ctxProvider {this}
private

Utility to fetch the geometry, magnetic field and calibration context in the event.

Definition at line 109 of file GaussianSumFitterTool.h.

109{this};

◆ m_directFitter

std::unique_ptr<DirectFitter> ActsTrk::GaussianSumFitterTool::m_directFitter {nullptr}
private

Definition at line 148 of file GaussianSumFitterTool.h.

148{nullptr};

◆ m_fitter

std::unique_ptr<Fitter> ActsTrk::GaussianSumFitterTool::m_fitter {nullptr}
private

Definition at line 144 of file GaussianSumFitterTool.h.

144{nullptr};

◆ m_geometryConvTool

PublicToolHandle<IGeometryRealmConvTool> ActsTrk::GaussianSumFitterTool::m_geometryConvTool {this, "GeometryRealmConvTool", ""}
private

Definition at line 107 of file GaussianSumFitterTool.h.

107{this, "GeometryRealmConvTool", ""};

◆ m_gsfExtensions

std::array<FitterExtension_t, s_nExtensions> ActsTrk::GaussianSumFitterTool::m_gsfExtensions {}
private

Definition at line 152 of file GaussianSumFitterTool.h.

152{};

◆ m_logger

std::unique_ptr<const Acts::Logger> ActsTrk::GaussianSumFitterTool::m_logger {nullptr}
private

logging instance

Definition at line 164 of file GaussianSumFitterTool.h.

164{nullptr};

◆ m_maxComponents

Gaudi::Property< int > ActsTrk::GaussianSumFitterTool::m_maxComponents
private
Initial value:
{this, "MaxComponents", 12,
"Maximum number of components in GSF"}

Definition at line 118 of file GaussianSumFitterTool.h.

118 {this, "MaxComponents", 12,
119 "Maximum number of components in GSF"};

◆ m_option_componentMergeMethod

Gaudi::Property<std::string> ActsTrk::GaussianSumFitterTool::m_option_componentMergeMethod
private
Initial value:
{this, "ComponentMergeMethod", "MaxWeight"
, "method to merge components {Mean, MaxWeight}"}

Definition at line 127 of file GaussianSumFitterTool.h.

127 {this, "ComponentMergeMethod", "MaxWeight"
128 , "method to merge components {Mean, MaxWeight}"};

◆ m_option_maxPropagationStep

Gaudi::Property< int > ActsTrk::GaussianSumFitterTool::m_option_maxPropagationStep
private
Initial value:
{this, "MaxPropagationStep", 5000,
"Maximum number of steps for one propagate call"}

Definition at line 115 of file GaussianSumFitterTool.h.

115 {this, "MaxPropagationStep", 5000,
116 "Maximum number of steps for one propagate call"};

◆ m_option_outlierChi2Cut

Gaudi::Property< double > ActsTrk::GaussianSumFitterTool::m_option_outlierChi2Cut
private
Initial value:
{this, "OutlierChi2Cut", 12.5,
"Chi2 cut used by the outlier finder" }

Definition at line 113 of file GaussianSumFitterTool.h.

113 {this, "OutlierChi2Cut", 12.5,
114 "Chi2 cut used by the outlier finder" };

◆ m_outlierFinder

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

Definition at line 161 of file GaussianSumFitterTool.h.

161{0};

◆ m_prdCalibrator

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

Calibrator for the Trk::PrepRawData track states (legacy EDM).

Definition at line 135 of file GaussianSumFitterTool.h.

135{};

◆ m_prdSurfAcc

detail::TrkPrepRawDataSurfaceAcc ActsTrk::GaussianSumFitterTool::m_prdSurfAcc {}
private

Surface accessor for the Trk::PrepRawData track states (legacy EDM).

Definition at line 157 of file GaussianSumFitterTool.h.

157{};

◆ m_refitCalibrator

std::unique_ptr<detail::RefittingCalibrator> ActsTrk::GaussianSumFitterTool::m_refitCalibrator {nullptr}
private

Definition at line 139 of file GaussianSumFitterTool.h.

139{nullptr};

◆ m_ROTcreator

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

Definition at line 111 of file GaussianSumFitterTool.h.

111{this, "RotCreatorTool", ""};

◆ m_trackingGeometrySvc

ServiceHandle<ActsTrk::ITrackingGeometrySvc> ActsTrk::GaussianSumFitterTool::m_trackingGeometrySvc {this, "TrackingGeometrySvc", "ActsTrackingGeometrySvc"}
private

Definition at line 106 of file GaussianSumFitterTool.h.

106{this, "TrackingGeometrySvc", "ActsTrackingGeometrySvc"};

◆ m_trkCalibrator

detail::TrkMeasurementCalibrator ActsTrk::GaussianSumFitterTool::m_trkCalibrator {}
private

Calibrator for the Trk::MeasurementBase track states (legacy EDM).

Definition at line 133 of file GaussianSumFitterTool.h.

133{};

◆ m_trkSurfAcc

detail::TrkMeasSurfaceAccessor ActsTrk::GaussianSumFitterTool::m_trkSurfAcc {}
private

Accessor to fetch surfaces from the Trk::MeasurementBase track states (legacy EDM).

Definition at line 155 of file GaussianSumFitterTool.h.

155{};

◆ m_unalibMeasSurfAcc

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

Accessor to fetch surfaces from the xAOD::UncalibratedMeasurements (Phase-II EDM).

Definition at line 159 of file GaussianSumFitterTool.h.

159{};

◆ m_uncalibMeasCalibrator

xAODUnCalibrator_t ActsTrk::GaussianSumFitterTool::m_uncalibMeasCalibrator {}
private

Definition at line 138 of file GaussianSumFitterTool.h.

138{};

◆ m_useDirectNavigation

Gaudi::Property<bool> ActsTrk::GaussianSumFitterTool::m_useDirectNavigation
private
Initial value:
{this, "UseDirectNavigation", false,
"GSF with direct navigation when refitting measurements"}

Definition at line 121 of file GaussianSumFitterTool.h.

121 {this, "UseDirectNavigation", false,
122 "GSF with direct navigation when refitting measurements"};

◆ m_weightCutOff

Gaudi::Property< double > ActsTrk::GaussianSumFitterTool::m_weightCutOff
private
Initial value:
{this, "WeightCutOff", 1.e-4,
"component weight cut off"}

Definition at line 124 of file GaussianSumFitterTool.h.

124 {this, "WeightCutOff", 1.e-4,
125 "component weight cut off"};

◆ s_nExtensions

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

Definition at line 151 of file GaussianSumFitterTool.h.


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