Make a n3fit.io provider
Created by: wilsonmr
duplicate the parts of n3fit.io.reader which get called by fit, but transform into validphys style providers.
I haven't looked at the integrability or positivity sets, although they looked kind of trivial in comparison from a scan (famous last words).
The idea here was to change to using providers in n3fit but still driven by libnnpdf so hopefully nothing changes in a fit. I don't think this breaks hyperopt or conflicts with any PRs out there. Obviously a run fit bot will test this fully.
The next step would be to replace the calling of libnnpdf with providers from the various destroy c++ PRs. I would probably move the location of this new module somewhere else and call it something better as well - this was more of a proof of principle. Change the module name and moving it just requires updating the providers list in n3fit_exec so very easy to do without breaking anything.
I added some inefficieny with the mask functions but the upside is we expose the masks for each dataset. This action is easy to modify to remove the dependency on theoryid
taking group_name
and dataset_inputs_loaded_cd_with_cuts
instead. I don't think these functions are anywhere near the bottleneck though so I can't be bothered to think of a better way to do this.