You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
After producing the workspace identify the RooAddPdf for the channel that needs to be masked
Get a list of its dependent variables
Replace each variable with a function that evaluates to zero outside the valid range and the original parameter value inside it
Finally can rebuild the full RooSimultaneous replacing the pdfs that were modified
Now when we go outside the range the channel NLL no longer changes as a function of the parameters, just leaves a constant term which shouldn't affect the minimisation at all.
The text was updated successfully, but these errors were encountered:
After some discussion we decided that this wasn't such a great way to go, and instead it will be better, and simpler, to do the masking at the CachingSimNLL level.
We introduce a RooAbsReal per category, named like mask_CHANNEL that tells the NLL to skip evaluating that category when mask_CHANNEL != 0. By default these are just RooRealVars, created in the new PhysicsModel method getChannelMask(bin), but in our combination physics models we can override this to write formulae that do the masking. Eventually we could also mix and match with masking expressions in the datacards themselves, a bit like how rateParam formulae can be specified, but would need some more work.
Possible way to do it without modifying combine:
Now when we go outside the range the channel NLL no longer changes as a function of the parameters, just leaves a constant term which shouldn't affect the minimisation at all.
The text was updated successfully, but these errors were encountered: