Skip to content
Snippets Groups Projects

integrability check in postfit

Merged Emanuele Roberto Nocera requested to merge iteg-postfit into master

Created by: tgiani

As agreed I ve open a new branch from the current master and I ve cherry picked the relevant commits from the other PR #1004 , which now I m going to close. I ve run a test on this branch using using the new setup, and I ve run postfit with a very high intergrablity threshold, to keep all the replicas. Here the comparison with the current best candidate https://vp.nnpdf.science/fdcPxZOdQ72VqqYNSmvZnA==/

Looks alright, the only thing which confuses me a little bit is that some distributions, like T8, are a bit different at small x, even if the runcard is exactly the same (and the postfit check is not doing anything here because I m using a very high value for the threshold). Is this expected?

@scarlehoff just to be sure, is the theory 53 you are using to produce the fits up to date?

Also, I noticed that the small-x preprocessing range for T8 is set to [0.7167,1.102]. I think that, as discussed few month ago, we should set it to [0.7167,1.00], otherwise it s not compatible with integrability.

Merge request reports

Merged by avatar (Apr 8, 2025 4:44am UTC)

Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • Created by: tgiani

    I think this is ready to be reviewed. I m now going to try different values of the threshold for the fit I ve produced, to see what s the effect

  • Created by: scarlehoff

    I can't see anything in the commits that could generate so many changes... the changes that worry me is that in general the behavior at small x for you is a straight line.

    The only two things different from ours setups (that I can see) are the tensorflow version (2.1 vs 2.2) and that I ran 130 replicas and you ran 150. I wonder whether there is something wrong right now in the code for tf 2.1 (you should update to 2.2 anyway) because it hasn't been tested for that version in a long time.

    Also, I noticed that the small-x preprocessing range for T8 is set to [0.7167,1.102]. I think that, as discussed few month ago, we should set it to [0.7167,1.00], otherwise it s not compatible with integrability.

    Ah, sorry I just ran it through the vp-nextruncard

    @scarlehoff just to be sure, is the theory 53 you are using to produce the fits up to date?

    I really hope so, from when are the latest changes? Not sure how can I check without refitting... otherwise I'll just redownload it and refit

  • Created by: tgiani

    I can't see anything in the commits that could generate so many changes... the changes that worry me is that in general the behavior at small x for you is a straight line.

    yeah exactly, which could be consistent with having lagrange multipliers for integrability, that s why I was wondering about the theory you re using, maybe it has not the correct integrability obs

    The only two things different from ours setups (that I can see) are the tensorflow version (2.1 vs 2.2) and that I ran 130 replicas and you ran 150. I wonder whether there is something wrong right now in the code for tf 2.1 (you should update to 2.2 anyway) because it hasn't been tested for that version in a long time.

    ah ok, I m going to update it

    I really hope so, from when are the latest changes? Not sure how can I check without refitting... otherwise I'll just redownload it and refit

    not sure, maybe a month ago or so? Maybe it worth try redownloading it, the two fits we have produced are a bit different

  • Created by: scarlehoff

    Yeah I'll redownload and refit. Better safe than sorry. I have to do a new fit with the updated range anyway I guess? (and with the changes that will be introduced to the dataset...)

  • Created by: tgiani

    Yeah I'll redownload and refit. Better safe than sorry.

    ok I agree. Also recompile the code, just to be sure that the pseudodata for integ datasets are up-to-date (sorry I know you know, just to be sure on everything). I ll update tensorflow and rerun the test as well

  • Created by: scarlehoff

    Sure. If you want a quicker thing to run you can do the prehera from here https://www.wiki.ed.ac.uk/display/nnpdfwiki/NNPDF+4.0+Candidate+studies

7 7 from n3fit.layers import xDivide, MSR_Normalization, xIntegrator
8 8 from n3fit.backends import operations
9 9 from n3fit.backends import MetaModel
10 from validphys.arclength import arc_lengths
10 from validphys.arclength import arc_lengths, integrability_number
  • 148 148 """
    149 149 ret = arc_lengths(n3pdf, [1.65], "evolution", ["sigma", "gluon", "V", "V3", "V8"])
    150 150 return ret.stats.central_value()
    151
    152 def compute_integrability_number(n3pdf):
    153 """
    154 Given the layer with the fit basis computes the integrability number
    155 for the distributions V, V3, V8, T3, T8
    156 Parameters
    157 ----------
    158 n3pdf: pdf function has received by the writer or ``pdf_model``
  • Emanuele Roberto Nocera
  • Emanuele Roberto Nocera
  • Emanuele Roberto Nocera
  • Created by: tgiani

    I ll just run the global I think, just a matter of entering the queue

  • Created by: scarlehoff

    The bot failed because by default it seems the check in postfit is removing all replicas from the fit (due to integ_3). Maybe by default it would be better not to remove anything to recover the previous behavior? (at least until we converge in a value that we consider safe)

  • Created by: tgiani

    yeah I put as a default a very low value for the threshold, smt like 0.2, while it should be more like 0.5. The size of the threshold must be decided when we are sure that things are fine, I mean if I use 0.3 in the test I did most replicas pass integ_3, but I m pretty sure that they wouldn t pass in the case of the test you did (the best candidate)

  • Created by: tgiani

    so yeah I agree, but at some point we do want a not too high value for the threshold

  • 148 148 """
    149 149 ret = arc_lengths(n3pdf, [1.65], "evolution", ["sigma", "gluon", "V", "V3", "V8"])
    150 150 return ret.stats.central_value()
    151
    152 def compute_integrability_number(n3pdf):
    153 """
    154 Given the layer with the fit basis computes the integrability number
    155 for the distributions V, V3, V8, T3, T8
    156 Parameters
    157 ----------
    158 n3pdf: pdf function has received by the writer or ``pdf_model``
    159 """
    160 ret = integrability_number(n3pdf, [1.65], flavours=['V', 'T3', 'V3', 'T8', 'V8'])
  • Emanuele Roberto Nocera
  • Emanuele Roberto Nocera
  • Emanuele Roberto Nocera
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Please register or sign in to reply
    Loading