Add data keyword to layout
Created by: Zaharid
With the theory fits, we are effectively not using experiments
any more. We have the bigexp thing, which mixes everything up. Therefore entering data separated by a list of experiments is both cumbersome and adds uneeded complications when matching datasets and so on (and is one extra level of for loops). Instead the user should be able to write:
data:
- <dataset_name>
- {name: <dataset_name>, cfac: [<cfactypes>], sys: ..., ...}
- ...
where:
- Each dataset knows its experiment (which should always have been the case in retrospect).
- The semantics are those of #226 (closed): That is, the default for e.g. cfators is the right thing rather than the bare thing. These defaults are consequently stored somewhere. Note that the "right" thing is context dependent (e.g. NLO vs NNLO cfactors). The defaults can be overridden explicitly by entering a long form dictionary rather than just the name.
- There is a production rule
experiments_form_data
that allows to not have to rewrite half of validphys.
If this is to be implemented in python, we should see what to do with nnpdfcpp. One option would be to generate an experiments key and write it down from its input. Something more ambitious would be to have all the nnpdfcpp input processing done in python and essentially use the fit as a library. I think we would get there eventually, but it is complicated by the fact that nnpdfsettings is basically a god object.
This is a big change that would like influence and be influenced by many others.