New ht thcovmat
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:
- 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. - The values in
yshiftare the magnitudes of the prior. -
nodescontains 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_correctionsis specified but the parameters are not given? - [ ] Change the name
httoname(?) - [ ] Something else?
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:!
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.
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:!
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