Home | News | Documentation | Download

sPlot / RooFit - Impact of defined range on sWeigths outside this range and fit-results in general

Hi there,
I think I do have some kind of followup to this solved issue:

The questions concerns the Range() behaviour of RooFit and its impact on analysis results and sWeights.

Imagine some mass-distribution in a RooDataSet with a defined ‘fit-range’ as basis. The pdf is already fit. And with the same pdf the range-patched RooStats::SPlot is run.
Now I enrolled some tests

  • If I use ‘reduce()’ of RooAbsPdf on my dataset before my initial fit I get different results. Shouldn’t this have no impact on the result, as a defined range is basically the same as the cut dataset? This leads me to the conclusion that events outside of the defined fit-range do have a strong impact on the fit that should only be enrolled inside the range.
  • Checking my sWeights in the output dataset for events outside the defined fit-region of the RooStats::SPlot I see weights deviating from 0. I’m not sure if I might have mistaken the theory, but wouldn’t I expect them to be forced to 0 as my fitted function could strongly deviate from the dataset outside the fit-range?
  • Testing both previous quotes on a sub-range of the fit-range strangely results into the same fit-results and sWeights

UPDATE: How should I handle weights for events outside the fit-region?

At first look, this could be another range bug. Are you using multiple ranges? If yes, this could be the problem:

Hi Stephan,
no, I think my problem was more on the user side. I’m using a RooSimultaneous to fit. At some point I must have come across to fit like such:
pdf.fitTo(…, RooFit::SplitRange(), …)
I just checked with the example fit of the tutorials (https://root.cern.ch/root/html/tutorials/roofit/rf501_simultaneouspdf.C.html) but this SplitRange() option is not coded there. Not sure when I picked this up, but this somehow let the fit ignore the given range via the ‘Range()’ option.


This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.