To access directly the fitresult of DTF
The current DTF algorithm DecayTreeFitterAlgWithPV
and DecayTreeFitterAlg
provide the fitted particle as outputs, which can be used to calculate new decay length. But when I tried to compute the uncertainty of this decay length, I realized the DTF actually fits 8 parameters: vertex positions (3 parameters), four-momentum (4 parameters), and the decay length (1 parameter). This fit result is stored as a c++ struct Gaudi::Math::ParticleParams
, and can provide an 8x8 covariance matrix for computing uncertainties. But only the first 7x7 part of the covariance matrix is stored in the LHCb::Particle
. The correlation errors between (position, momentum) and decay length are missed.
In Run1/Run2, the TupleToolDecayTreeFitter
store directly the fit results of DTF, such as the decay length and its error, so what I'm thinking is maybe it is good to add extra output to the current Run3 DTF algorithm to provide a relation table which associate each particle to the corresponding Gaudi::Math::ParticleParams
object and then use a set of dedicated functors to get each interested fit results.
BTW, the current lifetime thor functor F.BPVLTIME
can anyway recompute the lifetime for the fitted particle obtained from DTF, but sometimes storing the DTF fit result directly is more interesting than recomputing the lifetime because it's unnecessary and may give a different result.