-
Notifications
You must be signed in to change notification settings - Fork 413
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