When I try to add a constant parameter myNorm to the measurement in HistFactory, it complains along the following lines could not corresponding auxiliary measurement nom_myNorm
I am attaching a slightly modified version of the histfactory tutorial hf001_example.C. I have added the lines
Why does HistFactory make this complaint for the constant parameter I add, and not for the constant parameter that is added earlier in the tutorial?
I will note that in the later stages of the output that HistFactory spits out when running this code, I see
[#2] INFO:HistFactory -- setting myNorm constant
so it does set the parameter constant later. So I am even more unsure of what the error is saying.
Further, I wanted to point out that doing
signal.AddNormFactor("myNorm", 1, 0, 2, true);
does not actually make the parameter constant in the fit, clashing with the HistFactory::Sample AddNormFactor() documentation which has the last parameter as a boolean named Const.
Thanks,
Arvind.
PS: I am running ROOT 6.22.06 on lxplus, invoked by source /cvmfs/sft.cern.ch/lcg/app/releases/ROOT/6.22.06/x86_64-centos7-gcc48-opt/bin/thisroot.sh hf001_example_modified.C (2.5 KB)
First of all, there is a typo in the error message in ROOT. It should better say:
could not find corresponding auxiliary measurement nom_myNorm
If you add a systematic uncertainty e.g. with Sample::AddOverallSys, an auxiliary measurement observable is automatically created with the prefix nom_. When you set the nuisance parameter constant, the auxiliary measurement will be removed from list of global observables.
If it’s just a normalization factor added with Sample::AddNormFactor() as in your case, there will be no auxiliary observable with the nom_ prefix. However, the code doesn’t treat the normalization factors different from the systematic uncertainties when they are set constant. So it will report as an error that nom_myNorm could not be found even though that’s expected here.
In conclusion, I think you can safely ignore the error message and I should think about how to change the histfactory code such that this error message is avoided in the future.
Concerning your second question about Sample::AddNormFactor() with the flag to set it constant: this is deprecated and doesn’t work anymore. You should have seen a warning message when running the macro. I’ll see if we can just remove this parameter from AddNormFactor, as it has already been deprecated for almost a decade.
I hope my comments help, and sorry again for the late reply!
Thanks for getting back to me and clearing this up. I can see that the experts on the forum are very busy fielding everyones questions, so I very much appreciate you taking the time to help.