Fill a 1D histogram from a user-defined parametric function.
ĝoW␅
import numpy as np
import ROOT
form1 = ROOT.TFormula("form1", "abs(sin(x)/x)")
rangeMin = 0.0
rangeMax = 10.0
sqroot = ROOT.TF1("sqroot", "x*gaus(0) + [3]*form1", rangeMin, rangeMax)
gausScale = 10.0
gausMean = 4.0
gausVar = 1.0
form1Scale = 20.0
sqroot.SetParameters(gausScale, gausMean, gausVar, form1Scale)
h1d = ROOT.TH1D("h1d", "Test random numbers", 200, rangeMin, rangeMax)
h1d.Fill(np.array([sqroot.GetRandom() for _ in range(10000)]))
with ROOT.TFile.Open("fillrandom_userfunc_py_uhi.root", "RECREATE") as myFile:
myFile.WriteObject(form1, form1.GetName())
myFile.WriteObject(sqroot, sqroot.GetName())
myFile.WriteObject(h1d, h1d.GetName())
- Date
- July 2025
- Author
- Rene Brun, Giacomo Parolini, Nursena Bitirgen
Definition in file hist002_TH1_fillrandom_userfunc_uhi.py.