Я использую Py ROOT, чтобы попытаться l oop над файлами в папке, получить указанную гистограмму c, которая присутствует во всех файлах (два в минимальном тесте) и нарисовать все гистограммы в том же холсте. Минимальный пример, который я запускаю только с двумя гистограммами, следующий:
import ROOT
import os
inputDir = "inputExample/"
outputDir = "outputExample/"
c1 = ROOT.TCanvas('c1', 'c1')
for filename in os.listdir(inputDir):
inputFile = ROOT.TFile.Open(inputDir+filename)
hist = inputFile.Get("variables/Method_BDT/BDT/MVA_BDT_trainingRejBvsS")
if filename == "first.root":
hist.Draw("")
else:
hist.Draw("SAME")
c1.SaveAs(outputDir+"Superimposed.png")
Я не понимаю, почему сохраняется только вторая гистограмма. Вот еще один минимальный пример, который, как я ожидаю, будет эквивалентен и работает правильно (обе гистограммы нарисованы на одном и том же холсте).
import ROOT
inputDir = "inputExample/"
outputDir = "outputExample/"
c1 = ROOT.TCanvas('c1', 'c1')
inputFile1 = ROOT.TFile.Open(inputDir+"first.root")
hist = inputFile1.Get("variables/Method_BDT/BDT/MVA_BDT_trainingRejBvsS")
hist.Draw("")
inputFile2 = ROOT.TFile.Open(inputDir+"second.root")
hist = inputFile2.Get("variables/Method_BDT/BDT/MVA_BDT_trainingRejBvsS")
hist.Draw("SAME")
c1.SaveAs(outputDir+"Superimposed.png")