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
signal.AddNormFactor("myNorm", 1, 0, 2);
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.
PS: I am running ROOT 6.22.06 on lxplus, invoked by
hf001_example_modified.C (2.5 KB)
Have one of you had a chance to look at this?
Thanks in advance,
Hi @avenkate ,
sorry for the high latency. I think we need @moneta or @jonas , let’s see if they can help.
I am back to bother you. Have one of you had a chance to look at this?
Thanks a lot,
Hi @avankate, apologies for the very late answer!
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.
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.