-
Notifications
You must be signed in to change notification settings - Fork 393
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
Accelerated interference models #842
Conversation
I'm thinking to leave some work for a future PR because what is here already is a significant (100x) performance improvement for the TOP-22-006 model. |
This allows to extend the array at the end when adding new terms
Thanks to @Andrew42 for pointing out that lower triangular storage makes more sense. |
I'm in favour of merging this now and leaving the remaining items to a future PR. I would prioritise adding the functionality to CMSHistSum as this is what we use in the Higgs combination (which will likely be the first implementation of this model for EFT shape effects). I had a few comments that I will leave here for archiving/discussion.
|
I have been testing this PR with the datacards from HIG PAG, haven't found any issue, but I think making it work with the CMSHistSum is very important. Agree that we can merge this PR, but we probably should resolve the conflicts first |
This should make extending external morphs, e.g. to replace RooParametricHist, much simpler.
Ok, conflicts removed and now CMSHistSum should work. |
Alright, happy to merge! (will wait until the end of the week in case of objections) |
Looks good, 👍 |
For binned fits, the inability to have a negative template makes implementing certain interference models rather challenging. Previous approaches such as https://github.com/amassiro/AnalyticAnomalousCoupling work hard to rewrite the amplitude components to all be positive templates, which then can be used with CMSHistFunc or CMSHistSum (what you get with
autoMCStats
, and with--use-histsum
, respectively) as if they were normal signal processes.What I propose here is to directly modify the nominal yield prior to any nuisance parameter morphing directly inside CMSHistFunc/CMSHistSum. The
test_interference.py
shows an example setup.Plan:
text2workspace.py
commandCMSInterferenceFunc
For future PR
RooParametricHist
-like functionality with autoMCStats