Supported workflows are event-by-event inference, batch inference and pipelines with RDataFrame.
void tmva103_Application()
{
const char* model_filename = "tmva101.json";
Info(
"tmva103_Application.C",
"%s does not exist", model_filename);
return;
}
RBDT bdt = RBDT::LoadXGBoost(model_filename);
std::cout <<
"Apply model on a single input vector: " <<
y1[0] << std::endl;
float data[8] = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0};
std::cout << "Apply model on a batch of inputs:";
for (
const auto &output :
y2)
std::cout << " " << output;
std::cout << std::endl;
ROOT::RDataFrame df(
"Events",
"root://eospublic.cern.ch//eos/root-eos/cms_opendata_2012_nanoaod/SMHiggsToZZTo4L.root");
auto df2 = df.Filter("nMuon >= 2")
.Filter("nElectron >= 2")
.Define("Muon_pt_1", "Muon_pt[0]")
.Define("Muon_pt_2", "Muon_pt[1]")
.Define("Electron_pt_1", "Electron_pt[0]")
.Define("Electron_pt_2", "Electron_pt[1]")
.Define("y",
Compute<4, float>(bdt),
{"Muon_pt_1", "Muon_pt_2", "Electron_pt_1", "Electron_pt_2"});
std::cout << "Mean response on the signal sample: " << *df2.Mean("y") << std::endl;
}
void Info(const char *location, const char *msgfmt,...)
Use this function for informational messages.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void data
Option_t Option_t TPoint TPoint const char y2
Option_t Option_t TPoint TPoint const char y1
R__EXTERN TSystem * gSystem
ROOT's RDataFrame offers a modern, high-level interface for analysis of data stored in TTree ,...
Vector Compute(const Vector &x) const
Compute model prediction on a single event.
virtual Bool_t AccessPathName(const char *path, EAccessMode mode=kFileExists)
Returns FALSE if one can access a file using the specified access mode.
Apply model on a single input vector: 0.000386276
Apply model on a batch of inputs: 0.000386276 0.158641
Mean response on the signal sample: 0.64075