-
Notifications
You must be signed in to change notification settings - Fork 2
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
SMEFT 4-fermion corrections #306
base: master
Are you sure you want to change the base?
Conversation
# Need to specify Wilson coefficient? | ||
C_4F = 1/4 | ||
# Modify with more precise value | ||
alpha = 1 / 137 | ||
# Should get it from param card | ||
BSM_scale = 1000 | ||
eta_ph4F = ((C_4F) / (4 * np.pi*alpha)) *(Q2/BSM_scale**2) |
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 guess, all three parameters should come from the outside? Then I wonder if we should condense them all into one eta_ph4f = Q2/P2
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.
In practice there is a redundancy between
It could make sense to condense the prefactor
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 would say this depends if there is another dependency on either of these things - if there is not, I think we should collapse them to avoid an ambiguous configuration
Can you please add a link to the paper here in the head of the PR? We also need to add something to the documentation; I'm not 100% sure yet where, but maybe we just make a new page "SMEFT" (or similar) or we add it to the misc page https://yadism.readthedocs.io/en/latest/theory/misc.html ? |
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.
|
||
# BSM couplings ------------------------------------------------------- | ||
# Temporary couplings to Olq3 | ||
self.BSM_coupling_vectorial = {21: 0} |
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 wonder is "BSM" too generic? i.e. should we be more specific, like e.g. "4F"*? please tell me! because from my non-existent BSM experience I only know there are many BSM models 🙃
*Python variables can not start with a number, but we can solve that problem 🙃
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.
Indeed you are right! I realise I have already started mixing up BSM and 4F labels, 4F is a more precise one and I'll try to stick with it
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'd even be more specific and use Olq3
, as you can have multiple 4F operators right?
The test failure makes sense since I did not modify the However, I have run a real life test and was able to generate grids without errors with the code as it is but when I checked the prediction when convoluted with nnpdf4.0, I had zeros everywhere so something is off... |
Actually I have the same problem with the master branch with a pipeline successfully tested with the pip install version. Any idea what is up? |
yes, of course we need to adjust all the other calls
the "fl11" is another flavour combination which opens at N3LO and which is not tight to a specific "heavyness"
Mmm can you give a bit more context? like theory and obscard; also we don't really need the pineline - yadism on it's own is good enough to compute an observable (of course you can do it also through pinefarm). Stating the obvious: start with the simplest options everywhere, but the new feature (so LO, no IC, no SV, etc ) |
The thing that confuses me is that the issue seems to come from the python environment I use rather than the cards. I have two environments, The observable cards look like this:
And here is the theory one:
I generate the grids with this script:
|
Ok, I figured out that This script gives me predictions which agree with what I had in my environment
Something goes wrong when I do:
I guess the issue comes from a conflict with the |
The recommended way is to make use of the standard Python "extras" (see e.g. here). In this case the extra is called "box", so poetry install -E box should do the trick
however, the above command should pull in again a similar version (meaning the latest of the 0.8 series), so I don't know if that would help. Let me ping @giacomomagni : did you run recently yadism (e.g. for the polarized stuff)? which pineappl version did you use?
that at least is good to hear 🙃 |
So if I recall correctly we versions above |
|
||
# BSM couplings ------------------------------------------------------- | ||
# Temporary couplings to Olq3 | ||
self.BSM_coupling_vectorial = {21: 0} |
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'd even be more specific and use Olq3
, as you can have multiple 4F operators right?
projectile_v = self.vectorial_coupling(abs(projectile_pid)) | ||
projectile_a = self.weak_isospin_3[abs(projectile_pid)] | ||
projectile_BSM_v = self.BSM_coupling_vectorial[abs(projectile_pid)] |
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.
Maybe for consistency you should also rename projectile_v
to projectile_Z_v
and same for _a
.
Or maybe this has to be even generalized more if you have multiple operators...
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.
Hi Giacomo,
This makes good sense, thanks! I have implemented it
This did the trick thanks! I'm not completely sure what caused the issue but I think a function got renamed between version 0.7 and 0.8 and it was messing my script up. Anyway, it seems to work now! |
Implementation of the semi-leptonic SMEFT 4-fermion operators corrections.
The goal is to implement equations from 16 to 19 in https://arxiv.org/pdf/2204.07557