 |
ATLAS Offline Software
|
Go to the documentation of this file.
4 #ifndef MUONPATTERNHELPERS_MDTSEGMENTFITTER_H
5 #define MUONPATTERNHELPERS_MDTSEGMENTFITTER_H
16 class ISpacePointCalibrator;
17 class CalibratedSpacePoint;
23 using HitType = std::unique_ptr<CalibratedSpacePoint>;
53 using RangeArray = std::array<std::array<double,2>, Acts::toUnderlying(ParamDefs::nPars)>;
103 template <
unsigned int nDim>
110 template <
unsigned int nDim>
UpdateStatus
Status update of the parameter update.
@ noChange
The parameters drifted out of bounds -> Abortion.
@ smallStep
Ordinary parameter update keep calibration switched on.
bool updateHitSummary(SegmentFitResult &fitResult) const
Updates the hit summary from the contributing hits.
@ outOfBounds
Step size is small enough that calibration can be skipped.
std::array< std::array< double, 2 >, Acts::toUnderlying(ParamDefs::nPars)> RangeArray
Allowed parameter ranges.
unsigned int nMaxCalls
How many calls shall be executed.
void centerAlongWire(SegmentFitResult &fitResult) const
Moves the segment to the average x0 position, if the segment does not contain any measurement.
bool useSecOrderDeriv
Switch toggling whether the second order derivative shall be included.
#define AmgSymMatrix(dim)
AmgSymMatrix(Acts::toUnderlying(ParamDefs::nPars)) Covariance
static RangeArray defaultRanges()
Function that returns a set of predefined ranges for testing.
double spatialCalibCuttOff
Cutoff on the spatial paramater update to keep calibration on.
bool doTimeFit
Switch toggling whether the T0 shall be fitted or not.
void blockCovariance(const AmgSymMatrix(5)&hessian, SegmentFit::Covariance &covariance) const
Eigen::Affine3d Transform3D
Class to provide easy MsgStream access and capabilities.
std::unique_ptr< CalibratedSpacePoint > HitType
double angularCalibCutOff
Cutoff on the angular parameter update to keep the calibration on.
bool reCalibrate
Switch toggling whether the calibrator shall be called at each iteration.
SegmentFitResult fitSegment(const EventContext &ctx, HitVec &&calibHits, const Parameters &startPars, const Amg::Transform3D &localToGlobal) const
std::vector< HitType > HitVec
bool useFastFit
Use the fast Straw line fitter if there are only Mdt measurements to fit.
unsigned int noMoveIter
How many iterations with changes below tolerance.
void updateDriftSigns(const Line_t &segmentLine, SegmentFitResult &fitRes) const
Update the signs of the measurement.
UpdateStatus updateParameters(Parameters ¤tPars, Parameters &previousPars, Parameters &currGrad, Parameters &prevGrad, const AmgSymMatrix(5)&hessian) const
Update step of the segment parameters using the Hessian and the gradient.
SegmentFitResult::HitVec HitVec
Interface class to refine the space point calibration with an external seed.
This header ties the generic definitions in this package.
unsigned int nParsOutOfBounds
Abort the fit as soon as more than n parameters leave the fit range.
MdtSegmentFitter(const std::string &name, Config &&config)
Standard constructor.
SeedingAux::Line_t Line_t
Abrivation of the line with partial derivatives.
AmgVector(Acts::toUnderlying(ParamDefs::nPars)) Parameters
bool recalibrate(const EventContext &ctx, const Line_t &segmentLine, SegmentFitResult &fitResult) const
Recalibrate the measurements participating the fit based on the best straight-line knowledge.
const ISpacePointCalibrator * calibrator
Pointer to the calibrator tool.