-
Notifications
You must be signed in to change notification settings - Fork 421
Open
Description
The issue is that for simple count cards that do not use shapes FAKE, the resulting PDF is evaluated not in log space, so for cases with large counts and/or some mild tension between data and simulation, we get float underflow errors and subsequent fit failures.
For example, this simplified version of a real case:
Combination of simplecard.txt
imax 2 number of bins
jmax 3 number of processes minus 1
kmax 2 number of nuisance parameters
----------------------------------------------------------------------------------------------------------------------------------
bin ch1_chC ch1_chD
observation 59144 57148
----------------------------------------------------------------------------------------------------------------------------------
bin ch1_chC ch1_chC ch1_chC ch1_chC ch1_chD ch1_chD ch1_chD ch1_chD
process pih pi0 bkg bkg2 pih pi0 bkg bkg2
process -1 0 1 2 -1 0 1 2
rate 323 124 43015.6 16128.4 163 78 51447.2 5700.77
----------------------------------------------------------------------------------------------------------------------------------
lumi lnN 1.025 1.025 - - 1.025 1.025 - -
bkg_uncertainty lnN - - 1.2 - - - 1.2 -
fails at r=20
$ combine -M MultiDimFit --setParameters r=20 --freezeParameters r simplecard.txt --saveWorkspace
<<< Combine >>>
<<< v10.1.0 >>>
>>> Random number generator seed is 123456
>>> Method used is MultiDimFit
Set Default Value of Parameter r To : 20
Doing initial fit:
---------------------------
WARNING: MultiDimFit failed
---------------------------
--- MultiDimFit ---
best fit parameter values:
r : +20.000
Done in 0.00 min (cpu), 0.00 min (real)
due to float underflow that is readily apparent when printing the RooWorkspace from higgsCombineTest.MultiDimFit.mH120.root:
p.d.f.s
-------
SimpleGaussianConstraint::bkg_uncertainty_Pdf[ x=bkg_uncertainty mean=bkg_uncertainty_In sigma=1 ] = 1
SimpleGaussianConstraint::lumi_Pdf[ x=lumi mean=lumi_In sigma=1 ] = 1
RooProdPdf::modelObs_b[ pdf_binch1_chC_bonly * pdf_binch1_chD_bonly ] = 2.73756e-06
RooProdPdf::modelObs_s[ pdf_binch1_chC * pdf_binch1_chD ] = 0
RooProdPdf::model_b[ modelObs_b * nuisancePdf ] = 2.73756e-06
RooProdPdf::model_s[ modelObs_s * nuisancePdf ] = 0
RooProdPdf::nuisancePdf[ lumi_Pdf * bkg_uncertainty_Pdf ] = 1
RooPoisson::pdf_binch1_chC[ x=n_obs_binch1_chC mean=n_exp_binch1_chC ] = 2.25661e-270
RooPoisson::pdf_binch1_chC_bonly[ x=n_obs_binch1_chC mean=n_exp_binch1_chC_bonly ] = 0.00164042
RooPoisson::pdf_binch1_chD[ x=n_obs_binch1_chD mean=n_exp_binch1_chD ] = 4.12988e-87
Note RooProdPdf::modelObs_s[ pdf_binch1_chC * pdf_binch1_chD ] = 0 evaluates to zero!
Metadata
Metadata
Assignees
Labels
No labels