diff --git a/Tracking/TrkTools/TrkToolInterfaces/TrkToolInterfaces/IResidualPullCalculator.h b/Tracking/TrkTools/TrkToolInterfaces/TrkToolInterfaces/IResidualPullCalculator.h index b094bff73cb852ac7d0ca595cf930ae7abe3bc54..11814fa52101cb611de2040edf8d618f320ab4af 100755 --- a/Tracking/TrkTools/TrkToolInterfaces/TrkToolInterfaces/IResidualPullCalculator.h +++ b/Tracking/TrkTools/TrkToolInterfaces/TrkToolInterfaces/IResidualPullCalculator.h @@ -23,6 +23,7 @@ namespace Trk { static const InterfaceID IID_IResidualPullCalculator("IResidualPullCalculator",1,0); class MeasurementBase; +class AlignmentEffectsOnTrack; /** @class IResidualPullCalculator @brief provides the interface for tools which calculate residuals and pulls. @@ -48,6 +49,22 @@ public: const Trk::TrackParameters*, const Trk::ResidualPull::ResidualType residualType, const TrackState::MeasurementType = TrackState::unidentified) const = 0; + + /**This function returns (creates!) a Trk::ResidualPull object, which contains the values + * of residual and pull for the given measurement and track state, and the Alignment effects. + * The track state can be an unbiased one (which can be retrieved by the Trk::IUpdator), + * a biased one (which contains the measurement), + * or a truth state. + * The enum residualTyp must be set according to this, otherwise the pulls will be wrong. + * Residuals differ in all three cases; please be aware of this. + * + * This function determines the sub-detector type itself by using the ID helper*/ + virtual const Trk::ResidualPull* residualPull( + const Trk::MeasurementBase* , + const Trk::TrackParameters* , + const Trk::ResidualPull::ResidualType , + const Trk::TrackState::MeasurementType, + const std::vector<Trk::AlignmentEffectsOnTrack*>& ) const { return (Trk::ResidualPull*) 0; } /** This function is a light-weight version of the function above, designed for track fitters * where speed is critical. The user has to provide a std::vector of size 5, which gets