Skip to content
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

Move permanent part of fkutils here #12

Merged
merged 37 commits into from
Mar 29, 2022
Merged
Show file tree
Hide file tree
Changes from 34 commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
006280c
Move towards datasets
felixhekhorn Mar 1, 2022
1e9cb65
Expose opcard generation for datasets
felixhekhorn Mar 1, 2022
5ff8e64
Add theory_ekos
felixhekhorn Mar 1, 2022
fc6ed74
Attempt on logging
felixhekhorn Mar 1, 2022
6ee0fb1
Drop Configurations class
felixhekhorn Mar 3, 2022
4eb7947
Fix eko logging
felixhekhorn Mar 3, 2022
f2b3d29
Upgrade syntax with pylint
felixhekhorn Mar 3, 2022
1d1d10e
Add theory_fks
felixhekhorn Mar 3, 2022
1d3c2b7
Add FK comparison log
felixhekhorn Mar 3, 2022
68cd123
Merge branch 'main' into fkutils-move
felixhekhorn Mar 9, 2022
e7ef4a6
Add comparison after evolution
felixhekhorn Mar 9, 2022
512332a
Init TheoryBuilder
felixhekhorn Mar 9, 2022
096f760
Move theory opcards
felixhekhorn Mar 10, 2022
a0d58fd
Reshuffle fks into theory
felixhekhorn Mar 14, 2022
784dee8
Regroup theory cli
felixhekhorn Mar 14, 2022
3a53e56
Update config
felixhekhorn Mar 15, 2022
cb516d5
Add inherit-grids command
felixhekhorn Mar 15, 2022
4900d4a
Drop paths.grids.common, add Readme
felixhekhorn Mar 15, 2022
e0bffc4
Fix Readme
felixhekhorn Mar 15, 2022
36205d7
Move old stuff
felixhekhorn Mar 15, 2022
2e4829e
Introduce overwrite option and skipping
felixhekhorn Mar 15, 2022
c2e3459
Make inherit-grids more consistent
felixhekhorn Mar 16, 2022
1e35e50
Make inherit-grids yet more consistent
felixhekhorn Mar 16, 2022
11e52ae
Update Readme
felixhekhorn Mar 16, 2022
9c3dd18
Add inherit-ekos command
felixhekhorn Mar 16, 2022
a10887b
Drop config.add_scope
felixhekhorn Mar 16, 2022
23449b6
Improve logging
felixhekhorn Mar 16, 2022
b464b52
Improve logging
felixhekhorn Mar 16, 2022
19ccfee
Adjust README a bit
cschwan Mar 16, 2022
f5702e5
Remove common grids dir
felixhekhorn Mar 21, 2022
d2018a4
Move pylint and apply some suggestions
felixhekhorn Mar 22, 2022
24674cf
Remove old code and folder
felixhekhorn Mar 22, 2022
b69353e
Drop module entry point
felixhekhorn Mar 22, 2022
ada17a4
Update parser
felixhekhorn Mar 22, 2022
3bf4bbc
Fix compare arg names
felixhekhorn Mar 23, 2022
0e0b141
Recover file base operations
felixhekhorn Mar 24, 2022
ee6b9da
Run poetry update
felixhekhorn Mar 24, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
pineko.toml

# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
Expand Down
91 changes: 89 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,91 @@
# Pineko
# `pineko` = `PineAPPL` + `eko`

This repository contains specifications for the apfelcomb code replacement.
`pineko` converts

- interpolation grids for theory predictions ('grids' for short) in the form of
[`PineAPPL`](https://github.com/N3PDF/pineappl) grids, together with
- Evolution Kernel Operators (EKO) generated by
[`eko`](https://github.com/N3PDF/eko)

into fast-kernel (FK) tables. The collection of all FK tables constitute the
theory predictions for a PDF fit and therefore is often simply called 'theory'.

`pineko` replaces [`APFELcomb`](https://github.com/NNPDF/apfelcomb), which was
used up to NNPDF4.0.

## Prerequisites

Generating a 'theory', as defined above, requires several files which are
described next.

### `pineko.toml`

You need to provide a `pineko.toml`, that provides all necessary paths to the input and output folders.
[DEBUG: Look at the debug example in this repo [1].]

### ymldb

You need all files of the `ymldb` [2]. [DEBUG: Look at the respective `load.sh` script to load from dom.]
This defines the mapping from datasets to FK tables.

### Theory Runcards

You need to provide the necessary theory runcards named with their respective theory ID inside the `<paths.theory_cards>` folder [3].

### Default Operator Card

You need to provide a default operator card for `eko` [4].
[DEBUG: Look at the respective `load.sh` script to load from dom.]

### Grids

`pineko` does **NOT** compute grids, which are instead expected input to `pineko`.
There are typically two ways to obtain grids: computing them from scratch with [`runcards`](https://github.com/NNPDF/runcards)
or reusing existing ones.

#### Generate new Grids with `rr`

You need to run `rr` with a given theory runcard and put the generated grid file with the same name
inside the `<paths.grids>/<theory_id>` folder. The name has to match the `ymldb` which is the case by default.

#### Inherit Grids from Existing Theory

You can reuse the grids from a different theory by running `pineko theory inherit-grids SOURCE_THEORY_ID TARGET_THEORY_ID DATASET1 DATASET2 ...`.
The relation between the source theory and the target theory is non-trivial [5].

## Running `pineko`

Running `pineko` consists of two steps - each of them being potentially computationally expensive:
computing the EKO and convoluting the EKO with the grid.

### Computing the EKO

#### Generating new EKOs

This is a two step process:
1. Generate the necessary operator cards with `pineko theory opcards THEORY_ID DATASET1 DATASET2 ...`
2. Generate the actual EKOs with `pineko theory ekos THEORY_ID DATASET1 DATASET2 ...`

#### Inherit EKOs from Existing Theory

You can reuse the EKOs from a different theory by running `pineko theory inherit-ekos SOURCE_THEORY_ID TARGET_THEORY_ID DATASET1 DATASET2 ...`.
The relation between the source theory and the target theory is non-trivial [6].

### Generating the FK Table

You need to have the EKOs computed in the previous step.
Then you can convolute the EKOs with the grids by running `pineko theory fks THEORY_ID DATASET1 DATASET2 ...`

---

[1] Actually, instead we should provide a concise description here - but let's wait to be stable first

[2] this is to be replaced by the new CommonData format

[3] this is to be replaced by a binding to the true theory DB

[4] I'm thinking how to improve this, because how could we provide a study on the interpolation accuracy? at the moment there just equal

[5] examples being SV, different evolution settings, etc.

[6] examples being SV, different DIS settings, etc.
1 change: 1 addition & 0 deletions data/ekos/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.tar
1 change: 1 addition & 0 deletions data/fktables/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.pineappl.lz4
1 change: 1 addition & 0 deletions data/grids/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.pineappl.lz4
8 changes: 8 additions & 0 deletions data/grids/load.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# copy from remote

# common example
# scp dom.mi.infn.it:/media/FK/fktables/data/grids/200-LHCB_DY_13TEV_DIELECTRON.pineappl.lz4 ./common/LHCB_DY_13TEV_DIELECTRON.pineappl.lz4

# theory example
# scp dom.mi.infn.it:/media/FK/fktables/data/grids/200-SLAC_NC_EM_D_F2.pineappl.lz4 ./200/SLAC_NC_EM_D_F2.pineappl.lz4
# scp dom.mi.infn.it:/media/FK/fktables/data/grids/200-SLAC_NC_EM_P_F2.pineappl.lz4 ./200/SLAC_NC_EM_P_F2.pineappl.lz4
felixhekhorn marked this conversation as resolved.
Show resolved Hide resolved
File renamed without changes.
1 change: 1 addition & 0 deletions data/theory_cards/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.yaml
1 change: 1 addition & 0 deletions data/ymldb/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.yaml
2 changes: 2 additions & 0 deletions data/ymldb/load.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# copy from remote
# scp dom.mi.infn.it:/media/FK/fktables/data/fktocommon/*.yaml .
2 changes: 0 additions & 2 deletions data1/.gitignore

This file was deleted.

114 changes: 0 additions & 114 deletions data1/observable-f2b.yaml

This file was deleted.

62 changes: 0 additions & 62 deletions data1/observable-simple.yaml

This file was deleted.

Loading