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.
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.
In practice there is a redundancy between
It could make sense to condense the prefactor
There was a problem hiding this comment.
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 ? |
|
|
||
| # BSM couplings ------------------------------------------------------- | ||
| # Temporary couplings to Olq3 | ||
| self.BSM_coupling_vectorial = {21: 0} |
There was a problem hiding this comment.
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.
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.
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 boxshould 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.
I'd even be more specific and use Olq3, as you can have multiple 4F operators right?
| if mode in ["phZ", "ZZ", "Z4F"]: | ||
| 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.
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.
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