PrKalmanFilter uses classic smoothing (rather than bi-directional smoothing) in Moore monitoring configuration
The 'classical smoother' is needed for for alignment, but it is actually expensive and not needed for normal processing. In the current way the logic in PrKalmanFilter is such that the smoothing is only run as a post-processing step if the 'fitresult' is created:
Therefore, the classical smoother is only run if both the flags 'ClassicSmoothing' and 'FillFitResult' are set to true.
The classical smoother is run /after/ the states on the output track are filled. These are the states used in selections etc. On the other hand, the alignment uses the states in the nodes, computed with classical smoothing. To make this consistent, I would like to change this such that also the states on the track are computed with the 'classical smoother'. Therefore, I need to put it slightly earlier in the logic and make classical smoothing independent of the 'FillFitResult' flag.
When implementing this I realized that the default value of ClassicSmoothing is actually set to true:
That means that when you 'FillFitResult=True', you also automatically get the classical smoothing.
To fill residuals in track monitors we do need 'FillFitResult=True'. Therefore, in monitoring configuration in Moore we use 'FillFitResult=True'. This means that in the current configuration the Moore monitoring always fills results with classical smoothing, rather than the ordinary smoothing. I don't think that this is intentional so I would like to change the default value of ClassicalSmoothing to False.
Any other thoughts?