A NormalizationIntegralUnfolder takes the top node of a computation graph and a normalization set for its constructor.
The normalization integrals for the PDFs in that graph will be created, and placed into the computation graph itself, rewiring the existing RooAbsArgs. When the unfolder goes out of scope, all changes to the computation graph will be reverted.
It also performs some other optimizations of the computation graph that are reverted when the object goes out of scope:
Note that for evaluation, the original topNode should not be used anymore, because if it is a pdf there is now a new normalized pdf wrapping it, serving as the new top node. This normalized top node can be retreived by NormalizationIntegralUnfolder::arg().