Demonstrate the basic usage of RFile.
import ROOT
import os
def write_hist_to_rfile(fileName):
hist = ROOT.TH1D("hist", "hist", 10, 0, 100)
hist.FillRandom("gaus", 1000)
file.Put(hist.GetName(), hist)
file.Put(f"a/{hist.GetName()}", hist)
file.Put(f"a/b/{hist.GetName()}", hist)
def read_hist_from_rfile(fileName):
for key in file.ListKeys():
hist = file.Get(key.GetPath())
if hist is not None:
continue
print(f"{key.GetClassName()} at {key.GetPath()};{key.GetCycle()}:")
print(f" entries: {hist.GetEntries()}")
fileName = "rfile_basics_py.root"
try:
write_hist_to_rfile(fileName)
read_hist_from_rfile(fileName)
os.remove(fileName)
except FileNotFoundError:
pass
static std::unique_ptr< RFile > Open(std::string_view path, const ROpenOptions &opts=ROpenOptions())
Opens the file for reading.
static std::unique_ptr< RFile > Recreate(std::string_view path, const RRecreateOptions &opts=RRecreateOptions())
Opens the file for reading/writing, overwriting it if it already exists.