Skip to content

Commit

Permalink
Merge pull request #59 from N3PDF/feature/TMC
Browse files Browse the repository at this point in the history
TMC
  • Loading branch information
felixhekhorn authored Jun 12, 2020
2 parents 2e8ddf9 + 488bb15 commit 70102f5
Show file tree
Hide file tree
Showing 8 changed files with 284 additions and 101 deletions.
15 changes: 1 addition & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,30 +18,17 @@ use the ones provided by shields.io:
note: in order to make shields.io the repo must be public (or accessible to it in some way)
wanted:
- Workflows (github):
- yadism-tests: /github/workflow/status/N3PDF/dis/yadism
- docs: /github/workflow/status/N3PDF/dis/docs
- Test coverage:
- codecov: /codecov/c/:vcsName/:user/:repo?token=abc123def456
- Python version/s:
- pypi: /pypi/pyversions/:packageName
- github: /github/pipenv/locked/python-version/:user/:repo
- Package version
- pypi: /pypi/v/:packageName
- github: /github/v/release/:user/:repo?sort=semver
- Dependency on 'eko':
- /librariesio/github/:user/:repo
- or anything else
optional:
- Release-date (github):
- /github/release-date/:user/:repo
- Last-commit (github):
- /github/last-commit/:user/:repo
- Downloads:
- github: /github/downloads/:user/:repo/total
- pypi: /pypi/:period/:packageName
License:
- License:
- pypi-license: /pypi/l/:packageName
- github-license: /github/license/:user/:repo
- Activity:
Expand Down
1 change: 1 addition & 0 deletions docs/sphinx/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -253,6 +253,7 @@
# "members": "var1, var2",
# "member-order": "bysource",
"special-members": True,
"private-members": True,
# "inherited-members": True,
# "undoc-members": True,
"exclude-members": "__weakref__, __init__, __dict__, __module__"
Expand Down
4 changes: 2 additions & 2 deletions docs/sphinx/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@ Features
~~~~~~~~
Current features:

- |LO| structure functions (|NC|)
- |NLO| structure functions (|NC|)
- |LO| structure functions (|EM|)
- |NLO| structure functions (|EM|)
- |NLO| scale variations


Expand Down
10 changes: 10 additions & 0 deletions docs/sphinx/source/refs.bib
Original file line number Diff line number Diff line change
Expand Up @@ -89,3 +89,13 @@ @article{tmc-iranian
volume = "101",
year = "2020"
}
@article{tmc-georgi,
author = "Georgi, Howard and Politzer, H.David",
title = "{Freedom at Moderate Energies: Masses in Color Dynamics}",
reportNumber = "Print-76-0479 (HARVARD)",
doi = "10.1103/PhysRevD.14.1829",
journal = "Phys. Rev. D",
volume = "14",
pages = "1829",
year = "1976"
}
3 changes: 3 additions & 0 deletions docs/sphinx/source/shared/abbreviations.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@
.. |NC| replace::
:abbr:`NC (Neutral Current)`

.. |EM| replace::
:abbr:`EM (Electromagnetic Current)`

.. -------------------
perturbative orders
-------------------
Expand Down
65 changes: 65 additions & 0 deletions docs/sphinx/source/theory/TMC.rst
Original file line number Diff line number Diff line change
@@ -1,4 +1,69 @@
.. _tmc-page:

Target Mass Corrections
=======================

:cite:`tmc-review`, :cite:`tmc-iranian`




-----


Work in Progress notes
======================


Runner: holds a list of structure functions instances, that will act as our
"soft singletons"
StructureFunction: holds a reference to his parent runner, in this way its also
able to access its StructureFunctions siblings (like F2 from FL, in order to
compute TMCs, e.g.)

Caching: it is managed at the level of StructureFunction, while the values are
kept at the level of ESF (so the StructureFunction is just routing the caller to
the correct instance of ESF to ask for values)

Note 1
------
Here is the third time that we are proliferating the SF classes to all the
flavours and kinds (SF/ESFTMC/ESF x 2/L x light/c/b/t), but at the bottom level
they are needed (ESF implementation are actually different for every option, so
it makes sense to have different classes).
The classes one level above (SF/ESFTMC) are simply shadowing the ones below in
order to route to the correct one. The same business can be done with a `switch`
pattern (actually `if...elif...elif...` in python), but the only difference is
how many lines of code you are saving.
**Proposal** for a better layout in which we don't need to explicitly shadow
from level to level (and we don't need to route with `if` as well) are liked and
likeòy to be accepted.

Note 2 (caching)
----------------
Since the responsibility of caching is of SF as written above we decided the
following layout:

- SF instantiate ESF or ESFTMC according to TMC flag in theory dictionary,
and append it to `self.__ESFs` at load time, i.e. in `self.load()` (these
are the observables to be computed)
- when asked for output if noTMC a ESF is called and the instance is
registered

- `self.get_ouput()` is used for getting the result passing through:
- `self.get_ESF()` is used for getting the instance and register to the
cache

- if TMC a ESFTMC is called, and whenever he needs an ESF instance to
compute a point it will ask its parent SF with `SF.get_ESF()` method, in
this way passing through the cache

Note 3 (physics)
----------------
There 3 schemes in the reference:

- **exact**: is the full and involves integration
- **approximate**: is stemming from the exact, but the strcture functions in
the integrand are evaluated at the bottom end
- **APFEL**: the one used in APFEL, similar to the exact but with g2 in
the review (Schienbein et al.) set to 0
4 changes: 2 additions & 2 deletions docs/sphinx/source/yadism.rst
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ The :eqref:`2.3`. |DIS|
.. toctree::
:maxdepth: 2

Structure <package-structure/index>
API <modules/index>
Structure <package-structure/index.rst>
API <modules/yadism.rst>


.. todo::
Expand Down
Loading

0 comments on commit 70102f5

Please sign in to comment.