-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #59 from N3PDF/feature/TMC
TMC
- Loading branch information
Showing
8 changed files
with
284 additions
and
101 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.