#!/usr/bin/env python3 

from ROOT import RooWorkspace
from ROOT import RooArgSet
import ROOT.RooFit
print( ROOT.RooFit)

def run():
    """ Example of normalization warning
    """

    w = RooWorkspace("w","w")

    w.factory("x[0,10]")
    w.factory("SUM::test(f[0,1]*EXPR::a('x',x),EXPR::b('1/(x+10)',x))")
    test = w.pdf("test")

    print(("===== Before calling any normalization ========"))
    print(("="*50))
    print(test.getVal())
    print(("="*50))
    print()

    print(("===== After calling fixCoefNormalization() ======="))
    print(("="*50))
    test.fixCoefNormalization(RooArgSet(w.var("x")))
    test.fixCoefRange("fitRange")
    print(test.getVal())
    print(("="*50))
    print()

    print(("===== After calling fixAddCoefNormalization() ===="))
    print(("="*50))
    test.fixAddCoefNormalization(RooArgSet(w.var("x")),True)
    test.fixAddCoefRange("fitRange",True)
    print(test.getVal())
    print(("="*50))
    print()

    # This looks good:
    print(("===== Calling getCoefNormalization() looks ok ===="))
    print(("="*50))
    test.getCoefNormalization().Print()
    print(("="*50))


if __name__=="__main__":
    run()
