nnpdf icon indicating copy to clipboard operation
nnpdf copied to clipboard

New ht thcovmat

Open achiefa opened this issue 1 year ago • 4 comments

This PR allows for the inclusion of theory uncertainties due to the effect of power corrections. The theory covariance matrix is constructed by computing the shifts for the theoretical predictions as done for the MHOUs. The shift is computed at the level of the structure functions. Then, the shifts for the structure functions are combined to reconstruct the shift for the xsec. For this reason, the calculation of the shift depends on the dataset. Currently, only 1-JET and DIS (NC and CC) are supported.

At the level of the runcard, power corrections are specified as follows

theorycovmatconfig:
  point_prescriptions: ["power corrections"]
  pc_parameters:
  - {ht: H2p, yshift: [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.0], nodes: [0.0, 0.001, 0.01, 0.1, 0.3, 0.5, 0.7, 0.9, 1]}
  - {ht: H2d, yshift: [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.0], nodes: [0.0, 0.001, 0.01, 0.1, 0.3, 0.5, 0.7, 0.9, 1]}
  - {ht: HLp, yshift: [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.0], nodes: [0.0, 0.001, 0.01, 0.1, 0.3, 0.5, 0.7, 0.9, 1]}
  - {ht: HLd, yshift: [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.0], nodes: [0.0, 0.001, 0.01, 0.1, 0.3, 0.5, 0.7, 0.9, 1]}
  - {ht: H3p, yshift: [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.0], nodes: [0.0, 0.001, 0.01, 0.1, 0.3, 0.5, 0.7, 0.9, 1]}
  - {ht: H3d, yshift: [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.0], nodes: [0.0, 0.001, 0.01, 0.1, 0.3, 0.5, 0.7, 0.9, 1]}
  - {ht: Hj, yshift: [2.0, 2.0, 2.0, 2.0, 2.0, 2.0], nodes: [0.25, 0.75, 1.25, 1.75, 2.25, 2.75]}
  func_type: "linear" 
  pc_included_procs: ["JETS", "DIS NC", "DIS CC"]
  pc_excluded_exps: [HERA_NC_318GEV_EAVG_CHARM-SIGMARED,
                     HERA_NC_318GEV_EAVG_BOTTOM-SIGMARED]
  pdf: 240701-02-rs-nnpdf40-baseline
  use_thcovmat_in_fitting: true
  use_thcovmat_in_sampling: true

For each process/sf implemented, we need to specify a series of information:

  1. The name of the power correction, under the key ht. This is useful to identify the type of power correction, in particular when computing the posterior.
  2. The values in yshift are the magnitudes of the prior.
  3. nodes contains the points where the prior is shifted

The array pc_included_procs specifies the processes for which the shifts are computed. I've also implemented the possibility to exclude some particular datasets within the selected processes, and this can be done by specifying the names in pc_excluded_exps.

The key func_type is temporary and will be deleted once we decide which function to use to construct the prior.

All the relevant details for this PR are contained in the module higher_twist_functions.py. For each observable for which the shift has to be computed, I implemented a factory that constructs a function which will then compute the shift. I thought it was kind of necessary to make the shift dependent on the shift parameters (yshift and nodes) and on the prescription according to which we vary the parameters (which for now is fixed), and not on the kinematics (I think this is known as currying in computer science).

TO DO

  • [ ] Add documentation
  • [ ] Remove func_type
  • [ ] What happens if power_corrections is specified but the parameters are not given?
  • [ ] Change the name ht to name (?)
  • [ ] Something else?

achiefa avatar Jul 15 '24 10:07 achiefa

Greetings from your nice fit :robot: ! I have good news for you, I just finished my tasks:

  • Fit Name: NNBOT-2ad60a7b9-2024-07-15
  • Fit Report wrt master: https://vp.nnpdf.science/f0TNPeX3SlO5uwbJkr7I8Q==
  • Fit Report wrt latest stable reference: https://vp.nnpdf.science/X6jx-wHfT5iJuz14nPatnQ==
  • Fit Data: https://data.nnpdf.science/fits/NNBOT-2ad60a7b9-2024-07-15.tar.gz

Check the report carefully, and please buy me a :coffee: , or better, a GPU :wink:!

github-actions[bot] avatar Jul 15 '24 11:07 github-actions[bot]

Hi @Roy, I've updated the code so that now the covmat for power corrections can be constructed as in the case of scale variations. Please, look and let me know if something is unclear. I'd like if you could double-check the functions that compute the shifts, in particular when normalisation factors and conversion factors are used.

There are few things that I still don't like here and there, but you're free to propose modifications.

achiefa avatar Jan 14 '25 14:01 achiefa

Greetings from your nice fit :robot: ! I have good news for you, I just finished my tasks:

  • Fit Name: NNBOT-701fd3dd4-2025-01-14
  • Fit Report wrt master: https://vp.nnpdf.science/LhL3COHERwuMwHEEeGvymg==
  • Fit Report wrt latest stable reference: https://vp.nnpdf.science/-y7-UpCPSFGPxzP_41VXLA==
  • Fit Data: https://data.nnpdf.science/fits/NNBOT-701fd3dd4-2025-01-14.tar.gz

Check the report carefully, and please buy me a :coffee: , or better, a GPU :wink:!

github-actions[bot] avatar Jan 14 '25 15:01 github-actions[bot]

There have been some big changes in master, including the pineappl version, so it's probably a good idea to rebase this sooner rather than later

RoyStegeman avatar Jul 01 '25 22:07 RoyStegeman