ZDC: fix for rare RPD linear algebra ROOT errors (ATLASRECTS-7967)
This merge request addresses ATLASRECTS-7967 by adding checks which predict when TLinearFitter::Eval
will fail in RPD reconstruction and, in these cases, avoiding invocation of TLinearFitter::Eval
.
TLinearFitter::Eval
generates ROOT errors upon failure:
22:12:58 TDecompChol::Decompose() 13252 4 ERROR matrix not positive definite
22:12:58 TDecompChol::Solve() 13252 4 ERROR Decomposition failed
22:12:58 TLinearFitter::Eval 13252 4 ERROR Matrix inversion failed
Such an error was thrown by RPD reconstruction code during the first reprocessing of data23_hi UPC stream, and, although the failure is identified via return value of TLinearFitter::Eval
, the ROOT error was propagated to Athena.
This merge request adds static members s_minPileupFitPoints
and s_minUniquePileupFitPoints
to RPDDataAnalyzer
to configure the number of points required to attempt a fit. s_minUniquePileupFitPoints
is set to the maximum number of parameters in fits used in RPD reconstruction, which should guarantee that the inversion of the Gram matrix in TLinearFitter::Eval
succeeds.