The original motivations for NNPDFDataResult and ThPredictionsResult was that vp was to be used as a test bed for libnnpdf and consequently should compute as few things as possible while offloading as much as possible to the cpp code. This obviously no longer applies, and indeed it was shown to be insufficient when it turned out these things could not work so well for e.g. positivity predictions.
Instead it would be good to use the Stats classes from validphys.core, which have all the required functionality and more, everywhere in place of the the Result classes.
We could both clean up and enhance the results based providers: For example I don't believe ThPredictionsResult.make_label has been used in a non trivial way in a very long time (with the intended functionality being superseded by dataspecs), so that could go.
We could have a thing that gives you predictions without regard to any experiment or covariance matrix, measurement (or some other name) that basically gives the commondata (still without non trivial covmats) and then results (defined as the thing you need to compute a chi²) would put these things together but do not much by itself. This would allow to access things much more granularly for various future extensions and also allow to cache better computations, potentially.
The original motivations for
NNPDFDataResultandThPredictionsResultwas that vp was to be used as a test bed for libnnpdf and consequently should compute as few things as possible while offloading as much as possible to the cpp code. This obviously no longer applies, and indeed it was shown to be insufficient when it turned out these things could not work so well for e.g. positivity predictions.Instead it would be good to use the Stats classes from validphys.core, which have all the required functionality and more, everywhere in place of the the
Resultclasses.We could both clean up and enhance the results based providers: For example I don't believe
ThPredictionsResult.make_labelhas been used in a non trivial way in a very long time (with the intended functionality being superseded bydataspecs), so that could go.We could have a thing that gives you
predictionswithout regard to any experiment or covariance matrix,measurement(or some other name) that basically gives the commondata (still without non trivial covmats) and thenresults(defined as the thing you need to compute a chi²) would put these things together but do not much by itself. This would allow to access things much more granularly for various future extensions and also allow to cache better computations, potentially.