void run() { auto inputFile = TFile::Open("Higgs_data.root"); inputFile->ls(); TMVA::DataLoader loader("dataset"); // add variables to loader loader.AddVariable("m_jj"); loader.AddVariable("m_jjj"); loader.AddVariable("m_lv"); loader.AddVariable("m_jlv"); loader.AddVariable("m_bb"); loader.AddVariable("m_wbb"); loader.AddVariable("m_wwbb"); //TMVA::gConfig().SetDrawProgressBar( false); TCut mycuts; TCut mycutb; auto tsignal = (TTree*) inputFile->Get("sig_tree"); auto tbackground = (TTree*) inputFile->Get("bkg_tree"); loader.AddSignalTree (tsignal, 1.0); //signal weight = 1 loader.AddBackgroundTree(tbackground, 1.0); //background weight = 1 loader.PrepareTrainingAndTestTree(mycuts, mycutb, "nTrain_Signal=1000:nTrain_Background=1000:nTest_Signal=500:nTest_Background=50:" "SplitMode=Random:NormMode=NumEvents:V" ); TMVA::HyperParameterOptimisation optim(&loader); TStopwatch tw; std::cout << "booking method " << std::endl; optim.BookMethod(TMVA::Types::kBDT, "BDT", "V:NTrees=100:MinNodeSize=2.5%:MaxDepth=3:BoostType=AdaBoost:AdaBoostBeta=0.5:" "UseBaggedBoost:BaggedSampleFraction=0.5:SeparationType=GiniIndex:nCuts=20" ); optim.SetFitter("Minuit"); optim.SetNumFolds(3); optim.SetVerbose(1); tw.Start(); std::cout << "evaluating method " << std::endl; optim.Evaluate(); tw.Print(); auto results=optim.GetResults(); results.Print(); auto graph = results.GetROCCurves(); graph->Draw(); gPad->Draw(); }