Hi @Konwel,
- Personally, I would write the constraint as
Gauss(glob | alpha, sigma)
, but that shouldn’t be a problem since the Gaussian is symmetric in x and mean. It’s probably just a convention. - Next, you don’t need to limit the range of the global observable. It can well run from -inf to inf, as any “
x
”, i.e. observable for a gaussian might. I still don’t think that this is a problem, because when the gaussian gets integrated over the limited range, you simply get a probability that’s less than 1, but RooFit will divide by that integral to normalise the PDF properly. - The part where you set
alpha_lumi
constant is probably wrong, unless you want to do a fit without systematics.alpha
needs to move in order for the systematic uncertainties to impact the fit. - The set of global observables should only contain
glob_lumi
, unless I missed one. In general, global observables are the observables of the constraint terms. So, for two systematics, the likelihood would look like this:
LH_con = LH(x, y, ... | alpha_1, alpha_2, ..., <unconstrained parameters>)
* Gauss(glob_1 | alpha_1, sigma_1) * Gauss(glob_2 | alpha_2, sigma_2)
Here, x, y, ...
are observables, the alphas are parameters (and they are shared between likelihood and constraint terms!), glob_i
are the global observables (only in the constraints), and the sigma_i
are the “widths” of the constraints (also only in the constraint terms).
lumi_nom
by the way is just a constant. Set it to const, and don’t put it in any set.- The nuisance parameters are parameters of the likelihood, so all the
alpha_i
that are getting constrained and also all other parameters without constraints should be added to this set. Parameters are the things that should be optimised by the fitter. You definitely should not addglob_lumi
to this set!
- Most of the time, you will get a different limit. That’s because the higher the uncertainties of your model, the weaker the limit. So, if you switch on a systematic, the limit will get worse. When setting up the model as I outlined above, switching on a systematic is just to set the parameter to “not const”. That’s nice by the way for studies on how much certain parameters impact the uncertainties of your model.
- No, this is an artifact of the wrong setup. Follow the instructions above to correctly disentangle parameters and observables and constants.
I hope that I didn’t miss anything. Let me know if it works.