to determine a significance, I compare the NLL differences for both, my nominal model and a null hypothesis (i.e. the nominal model with N_sig forced to be zero). Unfortunately, this only includes the uncertainties from the fit itself (statistical uncertaintes). I now want to determine a significance, where both uncertainties are included, the statistical and systematic one. What I read is that this could be accomplished by convoluting the likelihood with a Gaussian function, with the width being the relative systematic uncertainty.
Here is a toy example of my mass model:
val_mean = 5366 val_sigma = 20 val_lambda = -0.001 val_nsig = 30 val_nbkg = 40 obs_mass = ROOT.RooRealVar('obs_mass', 'obs_mass', 5000, 5600) par_mean = ROOT.RooRealVar('par_mean', 'par_mean', val_mean, 5300, 5400) par_sigma = ROOT.RooRealVar('par_sigma', 'par_sigma', val_sigma, 10, 30) par_lambda = ROOT.RooRealVar('par_lambda', 'par_lambda', val_lambda, -0.001, 0) par_nsig = ROOT.RooRealVar('par_nsig', 'par_nsig', val_nsig, 0, 100) par_nbkg = ROOT.RooRealVar('par_nbkg', 'par_nbkg', val_nbkg, 0, 1000) # Signal model pdf_gaus = ROOT.RooGaussian( 'pdf_gaus', 'pdf_gaus', obs_mass, par_mean, par_sigma ) # Background model pdf_exp = ROOT.RooExponential( 'pdf_exp', 'pdf_exp', obs_mass, par_lambda ) pdf_combined = ROOT.RooAddPdf( 'pdf_combined', 'pdf_combined', ROOT.RooArgList(pdf_gaus, pdf_exp), ROOT.RooArgList(par_nsig, par_nbkg) ) data = pdf_combined.generate(ROOT.RooArgSet(obs_mass), val_nsig + val_nbkg)
I know that I am able to receive the NLL via
nll = pdf_combined.createNLL(data) minuit = ROOT.RooMinuit(pdf_nll) minuit.migrad() fitres_minuit = minuit.save()
So is there a convenient way to manipulated the likelihood (or NLL)?
Thanks in advance,
P.S.: Basically the same question was asked about 10 years ago (Likelihood distribution). But like shencp, I do not really understand the answer Wouter provided. Is multiplying a Gaussian to the PDF the same as convolving the likelihood with a Gaussian?