Systematic Uncertainties with RooFit/RooStats

Hi all,

I have a question about the inclusion of systematic limits into the upper limit calculation with RooStats. I already found an example doing this for a counting experiment and this seems to work for me (see SystematicUncertainties_example.py).

Now I tried to apply this more directly to my problem. I want to fit a line shape including a resonance modeled
as Breit-Wigner and an quardratic background to extract the number of signal events. From this I want to calculate an upper limit on the signal cross section. I would like to include the systematic uncertainties on the efficiency, luminosity etc. already at this stage. But up to now I did not manage to get it running. A attached the script I am using as well. Apologies if the code looks a bit unclean, but I have been playing around with this for a while. At the moment even the fit to the previously generated data fails. Could you give me a hint in the right direction how to achieve what I am trying to do. Is it possible with RooFit/RooStats at all?

Cheers,

Tobi
SystematicUncertainties_Fit.py (2.56 KB)
SystematicUncertainties_example.py (2.41 KB)

Hi all,

I have been working on my problem and I think I made some progress. I attached an example where I do a simultaneous fit with two different data sets. In both data sets I have a Gaussian signal peak, but the background
shapes are different. I calculate the number of signal events in each data set from the total events n_obs and
multiply this with the reconstruction efficiency and a branching ratio. With this I can generate and fit data and
calculate an upper limit.

Since I later on want to include systematic uncertainties on the efficiency estimate and the branching ratio I add Gaussian constraints on both quantities and create a PROD pdf. Now it is a bit unclear to me how to treat the
efficiency parameters and the new global parameter from the Gaussian constraint. At the moment I set the
efficiency at a fixed value (eff1, eff2 in the code) since I do not want the fit to vary it. The new global variables (br1g, eff1g) have a range but are set to be constant so the fit will not change these either. In the model config only
the background shapes parameters and the number of background events are used as nuisance parameters.

I am not sure if this is done correctly. Do I need to at the efficiencies eff1, eff2 to the list of nuisance parameters and do I need to define a range for them. How can I prevent the fit from changing them then?

I hope this time it is a bit more clear what I want to do. Please ask me if anything is unclear.

Cheers,

Tobi
CombinedChannels_ObservedEventsSystematic.py (3.89 KB)