Skip to content

Probable bug in the better bands method of the quickLimit

In the current quickLimit, when generating the Asimov with mu=N*sigma, the NP values used are profiled from the conditional mu=N*sigma fit to the Asimov (mu=0).

In the makeAsimovData of the Asimov(mu=N*sigma), it turns off the doFit (L134). So here are the only possible lines to change the NP values by loading the snapshot, it seems want to load nominalNuis, and load tmpNuis if it is not existed. but the actual logic here is that it will load the tmpNuis no matter the nominalNuis is existed. and the tmpNuis just store the NPs before the makeAsimovData , which corresponds to the values after the getLimit (L124), in which we finally do the conditional mu=N*sigma miminzation for the Asimov (mu=0).

  if (!w->loadSnapshot("nominalNuis"))
  {
    spdlog::warn("nominalNuis doesn't exist. Saving snapshot...");
    w->saveSnapshot("nominalNuis", *mc->GetNuisanceParameters());
  }
  else
    w->loadSnapshot("tmpNuis");

Normally when generating the post-fit Asimov, NPs are profiled to the observed data. This probable be a bug to not load the nominalNuis as expected, which stores the NP values from the unconditional fit to the observed data.

Edited by Yixiang Zhang
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information