Improvements in cuts
Created by: Zaharid
This introduces three improvements in the handling of cuts:
- Integrate the cuts with validphys a bit better. In particular, do not have different paths for internal cuts and filter. With this change, the filter action only checks some legacy options and writes files to disk.
- Allow
vp-setupfit
to take arbitrary cuts as input. One can explicitly set the value ofuse_cuts
within the runcard, and have it do various things like e.g. taking the cuts from another fit. - Add a way to specify that cuts should be computed as the intersection of various cut specifiactions. In particular, one car write something like
fit: NNPDF31_nnlo_as_0118_1000
theoryid: 53
use_cuts: fromintersection
datacuts:
from_: fit
w2min:
from_: datacuts
q2min:
from_: datacuts
cuts_intersection_spec:
- theoryid: 52
- theoryid: 53
experiments:
from_: fit
pdf:
from_: fit
actions_:
- experiments::experiment plot_fancy
with the meaning that cuts are computed within each of the two namespaces (i.e. assuming that theorid is either 52 or 53) and then the intersection of the results is taken. As always, the outer namespaces (which set the values for q2min and w2min) are used as well. This then allows to write something like:
use_cuts: "fromintersection"
cuts_intersection_spec:
- theoryid: 52
- theoryid: 53
in the fit runcard (e.g. in the datacuts section) and have the common subset of theories 52 and 53 in the fit.
One more thing that might be good to do is make the internal cuts depend on commondata rather than on dataset. At the moment not doing this requires loading fktables for no reason and awkward hacks to get rid of missing cfactor errors. That should be easy.