ATLAS Offline Software
IResidualPullCalculator.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // IResidualPullCalculator.h
7 // Header file for interface of ResidualPullCalculator
9 // (c) ATLAS Detector software
11 // Sebastian.Fleischmann@cern.ch
13 
14 #ifndef TRK_IRESIDUALPULLCALCULATOR_H
15 #define TRK_IRESIDUALPULLCALCULATOR_H
16 
17 #include "GaudiKernel/IAlgTool.h"
18 #include "TrkParameters/TrackParameters.h" // typedef
21 #include <array>
22 #include <optional>
23 
24 namespace Trk {
25 static const InterfaceID IID_IResidualPullCalculator("IResidualPullCalculator",1,0);
26 
27 class MeasurementBase;
28 class AlignmentEffectsOnTrack;
29 
35 class IResidualPullCalculator : virtual public IAlgTool {
36 public:
38  static const InterfaceID& interfaceID();
39 
49  virtual std::optional<Trk::ResidualPull> residualPull(
51  const Trk::ResidualPull::ResidualType residualType,
53 
64  virtual std::optional<Trk::ResidualPull> residualPull(
65  const Trk::MeasurementBase*,
66  const Trk::TrackParameters*,
69  const std::vector<const Trk::AlignmentEffectsOnTrack*>&) const {
70  return std::nullopt;
71  }
72 
77  virtual std::array<double,5> residuals(
78  const Trk::MeasurementBase*,
79  const Trk::TrackParameters*,
80  const Trk::ResidualPull::ResidualType residualType,
82 };
83 
84 inline const InterfaceID& Trk::IResidualPullCalculator::interfaceID() {
85  return IID_IResidualPullCalculator;
86 }
87 
88 } // end of namespace
89 
90 #endif // TRK_IRESIDUALPULLCALCULATOR_H
TrackParameters.h
TrackStateDefs.h
Trk::IResidualPullCalculator
provides the interface for tools which calculate residuals and pulls.
Definition: IResidualPullCalculator.h:35
Trk::IResidualPullCalculator::residualPull
virtual std::optional< Trk::ResidualPull > residualPull(const Trk::MeasurementBase *, const Trk::TrackParameters *, const Trk::ResidualPull::ResidualType residualType, const TrackState::MeasurementType=TrackState::unidentified) const =0
This function returns a Trk::ResidualPull object, which contains the values of residual and pull for ...
Trk::TrackState::unidentified
@ unidentified
Definition: TrackStateDefs.h:27
Trk::IResidualPullCalculator::residualPull
virtual std::optional< Trk::ResidualPull > residualPull(const Trk::MeasurementBase *, const Trk::TrackParameters *, const Trk::ResidualPull::ResidualType, const Trk::TrackState::MeasurementType, const std::vector< const Trk::AlignmentEffectsOnTrack * > &) const
This function returns (creates!) a Trk::ResidualPull object, which contains the values of residual an...
Definition: IResidualPullCalculator.h:64
ResidualPull.h
Trk::TrackState::MeasurementType
MeasurementType
enum describing the flavour of MeasurementBase
Definition: TrackStateDefs.h:26
Trk::ParametersBase
Definition: ParametersBase.h:55
Trk::MeasurementBase
Definition: MeasurementBase.h:58
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::IResidualPullCalculator::residuals
virtual std::array< double, 5 > residuals(const Trk::MeasurementBase *, const Trk::TrackParameters *, const Trk::ResidualPull::ResidualType residualType, const TrackState::MeasurementType=TrackState::unidentified) const =0
This function is a light-weight version of the function above, designed for track fitters where speed...
Trk::ResidualPull::ResidualType
ResidualType
Definition: ResidualPull.h:53
Trk::IResidualPullCalculator::interfaceID
static const InterfaceID & interfaceID()
Interface ID, declared here, and defined below.
Definition: IResidualPullCalculator.h:84