-
Notifications
You must be signed in to change notification settings - Fork 0
Mask intrinsic bottom/top contributions when building FK tables #253
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
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,13 @@ | ||
| [workspace] | ||
| authors = ["Tanjona R. Rabemananjara <tanjona.hepc@gmail.com>"] | ||
| channels = ["conda-forge"] | ||
| name = "pineko" | ||
| platforms = ["linux-64"] | ||
| version = "0.1.0" | ||
|
|
||
| [tasks] | ||
|
|
||
| [dependencies] | ||
| python = "3.13.*" | ||
| lhapdf = ">=6.5.6,<7" | ||
| pip = ">=26.1.2,<27" |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -27,6 +27,16 @@ | |
|
|
||
| logger = logging.getLogger(__name__) | ||
|
|
||
| # EKO marks any heavy quark flavor with index > nf as "intrinsic" (i.e. frozen, | ||
| # identity-evolved) at every scale. However, intrinsic bottom and top must never | ||
| # leak into the FK table, so their flavor-basis columns are masked whenever EKO | ||
| # would otherwise treat them as intrinsic (flavor index > nf). Charm is excluded | ||
| # here, since intrinsic charm is the supported feature. | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think I disagree with this. Either that or the removal should be informed by the theory card.
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. In hindsight, I would tend to agree with that for the main reason that doing it in this way will make PineAPPL grids and EKOs (by themselves) completely useless without |
||
| _INTRINSIC_HEAVY_FLAVOR_IDX = { | ||
| 5: tuple(basis_rotation.flavor_basis_pids.index(pid) for pid in (-5, 5)), | ||
| 6: tuple(basis_rotation.flavor_basis_pids.index(pid) for pid in (-6, 6)), | ||
| } | ||
|
|
||
|
|
||
| def sv_scheme(tcard): | ||
| """Infere the factorization scale_variation scheme to be used from the theory card. | ||
|
|
@@ -479,14 +489,19 @@ def evolve_grid( | |
|
|
||
| def prepare(operator, convolution_types): | ||
| """Match the raw operator with its relevant metadata.""" | ||
| for (q2, _), op in operator.items(): | ||
| for (q2, nf), op in operator.items(): | ||
| # reshape the x-grid output | ||
| op = manipulate.xgrid_reshape( | ||
| op, | ||
| operator.xgrid, | ||
| opcard.configs.interpolation_polynomial_degree, | ||
| targetgrid=XGrid(x_grid), | ||
| ) | ||
| # mask out intrinsic bottom/top before they get mixed into the | ||
| # evolution basis by `to_evol` | ||
| for intr_fl, flavor_idx in _INTRINSIC_HEAVY_FLAVOR_IDX.items(): | ||
| if intr_fl > nf: | ||
| op.operator[:, :, flavor_idx, :] = 0.0 | ||
| # rotate the input to evolution basis | ||
| op = manipulate.to_evol(op, source=True) | ||
| check.check_grid_and_eko_compatible(grid, x_grid, q2, xif, max_as, max_al) | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm totally in favour of dropping poetry for pixi.
But I'm against having two competing lock files in the repository. Either one or the other.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think I agree with this. The point of the
pixiconfig here is to simply and easily provide LHAPDF for the regression in an isolated environment. It doesn't do anything more than that. And as you can see in the CI,poetryis still the one that orchestrates the build/installation.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So, in this sense, there isn't a competing lock files at all. Of course we might say we want to fully switch to
pixibut that'll involve a non-negligible amount of changes that should not be part of this PR.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Then I would not commit the lockfile to the repo nor I would add a global pixi.toml file.
You can add a pixi subfield to the pyproject.toml if you want to use it for the tests.