Logo ROOT  
Reference Guide
Loading...
Searching...
No Matches
TMVA_SOFIE_RDataFrame.C File Reference

Detailed Description

View in nbviewer Open in SWAN
This macro provides an example of using a trained model with Keras and make inference using SOFIE and RDataFrame This macro uses as input a Keras model generated with the Python tutorial TMVA_SOFIE_Keras_HiggsModel.py You need to run that macro before to generate the trained Keras model and also the corresponding header file with SOFIE which can then be used for inference

Execute in this order:

python3 TMVA_SOFIE_Keras_HiggsModel.py
root TMVA_SOFIE_RDataFrame.C
using namespace TMVA::Experimental;
// need to add the current directory (from where we are running this macro)
// to the include path for Cling
#include "HiggsModel.hxx"
using namespace TMVA::Experimental;
void TMVA_SOFIE_RDataFrame(int nthreads = 2){
std::string inputFileName = "Higgs_data.root";
std::string inputFile = std::string{gROOT->GetTutorialDir()} + "/machine_learning/data/" + inputFileName;
ROOT::RDataFrame df1("sig_tree", inputFile);
int nslots = df1.GetNSlots();
std::cout << "Running using " << nslots << " threads" << std::endl;
auto h1 = df1.DefineSlot("DNN_Value", SofieFunctor<7, TMVA_SOFIE_HiggsModel::Session>(nslots),
{"m_jj", "m_jjj", "m_lv", "m_jlv", "m_bb", "m_wbb", "m_wwbb"})
.Histo1D({"h_sig", "", 100, 0, 1}, "DNN_Value");
ROOT::RDataFrame df2("bkg_tree", inputFile);
nslots = df2.GetNSlots();
auto h2 = df2.DefineSlot("DNN_Value", SofieFunctor<7, TMVA_SOFIE_HiggsModel::Session>(nslots),
{"m_jj", "m_jjj", "m_lv", "m_jlv", "m_bb", "m_wbb", "m_wwbb"})
.Histo1D({"h_bkg", "", 100, 0, 1}, "DNN_Value");
h1->SetLineColor(kRed);
h2->SetLineColor(kBlue);
auto c1 = new TCanvas();
gStyle->SetOptStat(0);
h2->DrawClone();
h1->DrawClone("SAME");
c1->BuildLegend();
}
#define R__ADD_INCLUDE_PATH(PATH)
Definition Rtypes.h:475
@ kRed
Definition Rtypes.h:67
@ kBlue
Definition Rtypes.h:67
#define gROOT
Definition TROOT.h:417
externTStyle * gStyle
Definition TStyle.h:442
ROOT's RDataFrame offers a modern, high-level interface for analysis of data stored in TTree ,...
The Canvas class.
Definition TCanvas.h:23
return c1
Definition legend1.C:41
TH1F * h1
Definition legend1.C:5
void EnableImplicitMT(UInt_t numthreads=0)
Enable ROOT's implicit multi-threading for all objects and methods that provide an internal paralleli...
Definition TROOT.cxx:613
auto SofieFunctor(unsigned int nslots=0, const std::string &weightsFile="") -> SofieFunctorHelper< std::make_index_sequence< N >, Session_t, float >
SofieFunctor : used to wrap the infer function of the generated model by SOFIE in a RDF compatible si...
Author
Lorenzo Moneta

Definition in file TMVA_SOFIE_RDataFrame.C.