-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Theory covmats with matched cuts #305
Comments
ISTM that what we want is to first collect
and then everything else should follow (either with a fair amount of duplicated functions that only call the old functions or with NNPDF/reportengine#63 ). |
Note that we already have |
I think the runcard should look something like this. Please note there is this annoying bug at the moment NNPDF/reportengine#16 fit: XXX
use_cuts: "fromfit"
pdf: YYY
dataspecs:
- theoryid: ZZZ
experiments: ... # Probably has to go here for now. Sorry!
- theoryid: XYXY
experiments: ...
... and then the actions would collect over:
or something like that. Note that this is the same as the shift matrix business. |
Any progress with this? Any problems I could help with? |
Yes I'm still having problems with the runcards. Currently I have:
and I am getting the error
|
I also don't really understand whether this action I am doing is the right thing - I haven't yet altered anything in the code either as I am not really able to debug without getting a basic runcard to work. |
sorry that was an accident |
Note the runcard above is wrong it that it has the structure:
rather that:
which is what the error message is telling you. |
I don't understand sorry, I tried taking the '-' away from the start of "experiments" but this didn't help |
What does didn't help mean? I don't think it can give the same error. |
Ah, initially I left one with a dash by accident but now it says
|
This is because |
I'm really confused, in that case what do I put in the runcard? What is wrong with teh current runcard? |
Have a look at this runcard: https://vp.nnpdf.science/NlltmlyWRRqCtSeJbi1xIQ==/input/runcard.yaml and and the corresponding code and try to work out how things get passed around (maybe run it with |
Also we don't want to call make_scale_var_covmat right? Because that won't correlate between process types in the correct way. Ultimately we want to call |
Sorry Zahari, this is the runcard I have been looking at most of the day and I just really don't understand it and can't get it to work properly for some reason |
I just don't understand how to extend it to the point prescription case, I don't think it is an obvious extension |
Incidentally ISTM that the runcard works well, which makes the bug in re even more confusing. |
Wait what, the runcard I pasted above? |
The one with the shift plots. |
Ah no I mean I think I understand how the shift plots work but I just am having difficulty doing an equivalent because a) I don't understand how to adjust the runcard
Then writing a new Is this correct? Is there any part of this which is wrong? |
ISTM that everything could be adapted more or less easily (but not trivially) by changing the namespaces the various actions collect over. E.g. this
could become:
and then maybe you'll need some function to get the right dataframe index (I wrote the functionality inside some other provider). |
@RosalynLP Yes, what you are doing seems like what I said. |
OK great but I keep getting this problem:
Initially I had
and I tried changing it to
but I still get the issue because of |
I only need the names of the experiments for this so I could take it from any dataspec but I am not sure how to do the syntax for this |
OK I did this instead
|
@Zaharid when you say "and then maybe you'll need some function to get the right dataframe index (I wrote the functionality inside some other provider)." I presume what you mean is the fact
but I don't understand what the statement "I wrote the functionality inside some other provider" means - what are the different providers? So the issue is |
So we want to take in only the datasets which are mutual, i.e. those in |
@Zaharid this whole thing makes no sense to me, even if I calculate the theory covmats using this runcard and |
On Wed, Oct 17, 2018 at 4:24 PM RosalynLP ***@***.***> wrote:
@Zaharid <https://github.com/Zaharid> this whole thing makes no sense to
me, even if I calculate the theory covmats using this runcard and
matched_datsets_from_dataspecs, it is taking the dataspecs to be the
different scale varied dataspecs, not the two dataspecs for NLO and NNLO
with NNPDF3.1. So I somehow want to have two kinds of groupings in the
runcard, one for the scale varied dataspecs, and one for the shift
dataspecs. We then need the shift dataspecs to do as your functions already
do and compute the shift matrix, and we need the other dataspecs to do the
theory covmat stuff which previously existed. But we want to do all that
just for the points belonging to the matched datasets from the OTHER
(shift) dataspecs. Do you know how to separate these two things?
This is can be solved with various kinds of namespaces:
shiftconfig:
dataspecs:
- ... #nlo vs nnlo
thcovconfig:
dataspecs:
- ... # bazillion theories
#TODO: find better names
shift_mat_for_comparison = collect('shift_matrix_whatever_was_called',
['shiftconfig'])
th_mat_for_comparison = collect('thcovmat_custom_whatever',
['thcovmatconfig'])
def do_some_comparison(shift_mat_for_comparison, th_mat_for_comparison):
#because collect always returns a list
shift_mat = th_mat_for_comparison[0]
th_mat = th_mat_for_comparison[0]
...
… —
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#305 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AFabUnVxiSfzygCm5oJvSNf0OtadBvTtks5ul0uogaJpZM4Xd-Z5>
.
|
mmm probably the fact that collect always returns a list is annoying enough
to justify a collect_one or somesuch. Anyhow, lets get the thcovmat done
first!
…On Wed, Oct 17, 2018 at 4:51 PM Zahari Dim ***@***.***> wrote:
On Wed, Oct 17, 2018 at 4:24 PM RosalynLP ***@***.***>
wrote:
> @Zaharid <https://github.com/Zaharid> this whole thing makes no sense to
> me, even if I calculate the theory covmats using this runcard and
> matched_datsets_from_dataspecs, it is taking the dataspecs to be the
> different scale varied dataspecs, not the two dataspecs for NLO and NNLO
> with NNPDF3.1. So I somehow want to have two kinds of groupings in the
> runcard, one for the scale varied dataspecs, and one for the shift
> dataspecs. We then need the shift dataspecs to do as your functions already
> do and compute the shift matrix, and we need the other dataspecs to do the
> theory covmat stuff which previously existed. But we want to do all that
> just for the points belonging to the matched datasets from the OTHER
> (shift) dataspecs. Do you know how to separate these two things?
>
This is can be solved with various kinds of namespaces:
shiftconfig:
dataspecs:
- ... #nlo vs nnlo
thcovconfig:
dataspecs:
- ... # bazillion theories
#TODO: find better names
shift_mat_for_comparison = collect('shift_matrix_whatever_was_called',
['shiftconfig'])
th_mat_for_comparison = collect('thcovmat_custom_whatever',
['thcovmatconfig'])
def do_some_comparison(shift_mat_for_comparison, th_mat_for_comparison):
#because collect always returns a list
shift_mat = th_mat_for_comparison[0]
th_mat = th_mat_for_comparison[0]
...
> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub
> <#305 (comment)>, or mute
> the thread
> <https://github.com/notifications/unsubscribe-auth/AFabUnVxiSfzygCm5oJvSNf0OtadBvTtks5ul0uogaJpZM4Xd-Z5>
> .
>
|
OK so when are the matched cuts being applied? Before this collect function presumably? In which case how do they know which dataspsecs to pick? Or does the fact you collect over a certain namespace have an effect? I basically still don't see that this will make the theory covmat have the matched cuts for the shift comparison. |
I don't understand how the collect function is working here, for the shift matrix the workflow is essentially
So I don't see how this works: first the And then as for theories it won't know which dataspecs to use to evaluate the theory covmat, you'll end up with it using at best the mutual cuts from the scale varied theories, which aren't the same as for the NLO/NNLO mutual cuts, and then you will collect over all the theories, so end up with a list of matrices. But as far as I can see it will fail before this stage. Regardless, I am having problems just getting the formatting on the runcard to work as it doesn't like all the different blocks:
|
I am trying to work on creating theory covmats with cuts that match those of the shift matrices here: https://vp.nnpdf.science/NlltmlyWRRqCtSeJbi1xIQ==/.
Currently the theory covmats take in
so I have tried to alter them to take in
each_dataset_results_matched = collect('results_bytheoryids', ['dataspecs_with_matched_cuts']).
However, I am getting the error
and I am not sure why. Is this the way I should be trying to do this?
The text was updated successfully, but these errors were encountered: