This tutorial demonstrates the usage of the TContext class as a Python context manager.
This functionality is related with how TFile works, so it is suggested to also take a look at the tfile_context_manager.py tutorial.
import os
import sys
import ROOT
from ROOT import TDirectory, TFile, gROOT
path = str(gROOT.GetTutorialDir()) + '/io/'
file_1 =
TFile(path+
"tcontext_1.root",
"recreate")
file_2 =
TFile(path+
"tcontext_2.root",
"recreate")
print("Current directory: '{}'.\n".format(ROOT.gDirectory.GetName()))
print("Current directory: '{}'.\n".format(ROOT.gDirectory.GetName()))
histo_1 = ROOT.TH1F("histo_1", "histo_1", 10, 0, 10)
file_1.WriteObject(histo_1, "my_histogram")
print("Current directory: '{}'.\n".format(ROOT.gDirectory.GetName()))
if file_1.IsOpen() and file_2.IsOpen():
print("'{}' and '{}' are open.\n".format(file_1.GetName(), file_2.GetName()))
print("Current directory: '{}'.\n".format(ROOT.gDirectory.GetName()))
histo_2 = ROOT.TH1F("histo_2", "histo_2", 10, 0, 10)
f.WriteObject(histo_2, "another_histogram")
print("Current directory: '{}'.\n".format(ROOT.gDirectory.GetName()))
file_1.Close();
file_2.Close();
for i in range(1, 4):
os.remove(path+"tcontext_{}.root".format(i))
TDirectory::TContext keeps track and restore the current directory.
A file, usually with extension .root, that stores data and code in the form of serialized objects in ...
- Date
- March 2022
- Author
- Vincenzo Eduardo Padulano CERN/UPV
Definition in file tcontext_context_manager.py.