from ROOT import TMVA, TFile, TString
from array import array
from subprocess import call
from os.path import isfile
 
 
data = 
TFile.Open(
"http://root.cern.ch/files/tmva_class_example.root", 
"CACHEREAD");
 
if data is None:
    raise FileNotFoundError("Input file cannot be downloaded - exit")
 
signal = data.Get('TreeS')
background = data.Get('TreeB')
 
branches = {}
for branch in signal.GetListOfBranches():
    branchName = branch.GetName()
    branches[branchName] = array('f', [-999])
    reader.AddVariable(branchName, branches[branchName])
    signal.SetBranchAddress(branchName, branches[branchName])
    background.SetBranchAddress(branchName, branches[branchName])
 
reader.BookMVA(
'PyKeras', 
TString(
'dataset/weights/TMVAClassification_PyKeras.weights.xml'))
 
 
print('Some signal example classifications:')
for i in range(20):
    signal.GetEntry(i)
    print(reader.EvaluateMVA('PyKeras'))
print('')
 
print('Some background example classifications:')
for i in range(20):
    background.GetEntry(i)
    print(reader.EvaluateMVA('PyKeras'))
static Bool_t SetCacheFileDir(ROOT::Internal::TStringView cacheDir, Bool_t operateDisconnected=kTRUE, Bool_t forceCacheread=kFALSE)
 
static TFile * Open(const char *name, Option_t *option="", const char *ftitle="", Int_t compress=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault, Int_t netopt=0)
Create / open a file.
 
static void PyInitialize()
Initialize Python interpreter.
 
The Reader class serves to use the MVAs in a specific analysis context.