15 declareInterface<IResidualPullCalculator>(
this);
24 return StatusCode::SUCCESS;
35 if (!trkPar || !measurement)
return residuals;
46 <<
"LocalParameters structure!" );
64 if (!trkPar || !measurement)
return std::nullopt;
71 bool pullIsValid = (trkCov);
74 std::vector<double> residual(1);
75 std::vector<double> pull(1);
82 <<
"LocalParameters structure!" );
100 return std::make_optional<Trk::ResidualPull>(
101 std::move(residual), std::move(pull), pullIsValid, resType, 1);
114 const double residual,
115 const double locMesCov,
116 const double locTrkCov,
119 double ErrorSum(0.0);
121 if( locMesCov + locTrkCov > 0 ) ErrorSum = sqrt(locMesCov + locTrkCov);
123 if ((locMesCov - locTrkCov) < 0.) {
126 ErrorSum = sqrt(locMesCov - locTrkCov);
127 }
else ErrorSum = sqrt(locMesCov);
128 if (ErrorSum != 0)
return residual/ErrorSum;
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_WARNING(x)
std::vector< Identifier > ID
#define AmgSymMatrix(dim)
RPC_ResidualPullCalculator(const std::string &, const std::string &, const IInterface *)
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
static double calcPull(const double residual, const double locMesCov, const double locTrkCov, const Trk::ResidualPull::ResidualType &)
internal structuring: common method to calculate the hit pull.
virtual std::optional< Trk::ResidualPull > residualPull(const Trk::MeasurementBase *measurement, const Trk::TrackParameters *trkPar, const Trk::ResidualPull::ResidualType, const Trk::TrackState::MeasurementType) const override
This function returns (creates!) a Trk::ResidualPull object, which contains the values of residual an...
virtual StatusCode initialize() override
virtual std::array< double, 5 > residuals(const Trk::MeasurementBase *measurement, const Trk::TrackParameters *trkPar, const Trk::ResidualPull::ResidualType, const Trk::TrackState::MeasurementType) const override
This function is a light-weight version of the function above, designed for track fitters where speed...
int parameterKey() const
Identifier key for matrix expansion/reduction.
This class is the pure abstract base class for all fittable tracking measurements.
const LocalParameters & localParameters() const
Interface method to get the LocalParameters.
const Amg::MatrixX & localCovariance() const
Interface method to get the localError.
@ Biased
RP with track state including the hit.
@ Unbiased
RP with track state that has measurement not included.
MeasurementType
enum describing the flavour of MeasurementBase
ParametersBase< TrackParametersDim, Charged > TrackParameters