==> Start TMVAMulticlassApp
                         : Booking "BDTG method" of type "BDT" from dataset/weights/TMVAMulticlass_BDTG.weights.xml.
                         : Reading weight file: dataset/weights/TMVAMulticlass_BDTG.weights.xml
<HEADER> DataSetInfo              : [Default] : Added class "Signal"
<HEADER> DataSetInfo              : [Default] : Added class "bg0"
<HEADER> DataSetInfo              : [Default] : Added class "bg1"
<HEADER> DataSetInfo              : [Default] : Added class "bg2"
                         : Booked classifier "BDTG" of type: "BDT"
                         : Booking "DL_CPU method" of type "DL" from dataset/weights/TMVAMulticlass_DL_CPU.weights.xml.
                         : Reading weight file: dataset/weights/TMVAMulticlass_DL_CPU.weights.xml
                         : Booked classifier "DL_CPU" of type: "DL"
TMVAMultiClassApplication: Skip DL_GPU method since it has not been trained !
TMVAMultiClassApplication: Skip FDA_GA method since it has not been trained !
                         : Booking "MLP method" of type "MLP" from dataset/weights/TMVAMulticlass_MLP.weights.xml.
                         : Reading weight file: dataset/weights/TMVAMulticlass_MLP.weights.xml
<HEADER> MLP                      : Building Network. 
                         : Initializing weights
                         : Booked classifier "MLP" of type: "MLP"
                         : Booking "PDEFoam method" of type "PDEFoam" from dataset/weights/TMVAMulticlass_PDEFoam.weights.xml.
                         : Reading weight file: dataset/weights/TMVAMulticlass_PDEFoam.weights.xml
                         : Read foams from file: dataset/weights/TMVAMulticlass_PDEFoam.weights_foams.root
                         : Booked classifier "PDEFoam" of type: "PDEFoam"
--- TMVAMulticlassApp : Using input file: ./files/tmva_multiclass_example.root
--- Select signal sample
                         : Rebuilding Dataset Default
--- End of event loop: Real time 0:00:00, CP time 0.670
--- Created root file: "TMVMulticlassApp.root" containing the MVA output histograms
==> TMVAMulticlassApp is done!
 
   
 
#include <cstdlib>
#include <iostream>
#include <map>
#include <string>
#include <vector>
 
 
 
 
void TMVAMulticlassApplication( 
TString myMethodList = 
"" )
 
{
 
 
   
   
   std::map<std::string,int> Use;
   Use["MLP"]             = 1;
   Use["BDTG"]            = 1;
   Use["DL_CPU"]          = 1;
   Use["DL_GPU"]          = 1;
   Use["FDA_GA"]          = 1;
   Use["PDEFoam"]         = 1;
   
 
   std::cout << std::endl;
   std::cout << "==> Start TMVAMulticlassApp" << std::endl;
   if (myMethodList != "") {
      for (std::map<std::string,int>::iterator it = Use.begin(); it != Use.end(); it++) it->second = 0;
 
      std::vector<TString> mlist = gTools().
SplitString( myMethodList, 
',' );
 
      for (
UInt_t i=0; i<mlist.size(); i++) {
 
         std::string regMethod(mlist[i]);
 
         if (Use.find(regMethod) == Use.end()) {
            std::cout << "Method \"" << regMethod << "\" not known in TMVA under this name. Choose among the following:" << std::endl;
            for (std::map<std::string,int>::iterator it = Use.begin(); it != Use.end(); it++) std::cout << it->first << " " << std::endl;
            std::cout << std::endl;
            return;
         }
         Use[regMethod] = 1;
      }
   }
 
 
   
 
   
   
   
 
   
 
   for (std::map<std::string,int>::iterator it = Use.begin(); it != Use.end(); it++) {
      if (it->second) {
        
           
           reader->
BookMVA( methodName, weightfile );
 
        else {
           std::cout << "TMVAMultiClassApplication: Skip " << methodName << " since it has not been trained !" << std::endl;
           it->second = 0;
        }
      }
   }
 
   
   TH1F *histMLP_signal(0), *histBDTG_signal(0), *histFDAGA_signal(0), *histPDEFoam_signal(0);
 
   TH1F *histDLCPU_signal(0), *histDLGPU_signal(0);
 
   if (Use["MLP"])
      histMLP_signal    = 
new TH1F( 
"MVA_MLP_signal",    
"MVA_MLP_signal",    nbin, 0., 1.1 );
 
   if (Use["BDTG"])
      histBDTG_signal  = 
new TH1F( 
"MVA_BDTG_signal",   
"MVA_BDTG_signal",   nbin, 0., 1.1 );
 
   if (Use["DL_CPU"])
      histDLCPU_signal = 
new TH1F(
"MVA_DLCPU_signal", 
"MVA_DLCPU_signal", nbin, 0., 1.1);
 
   if (Use["DL_GPU"])
      histDLGPU_signal = 
new TH1F(
"MVA_DLGPU_signal", 
"MVA_DLGPU_signal", nbin, 0., 1.1);
 
   if (Use["FDA_GA"])
      histFDAGA_signal = 
new TH1F( 
"MVA_FDA_GA_signal", 
"MVA_FDA_GA_signal", nbin, 0., 1.1 );
 
   if (Use["PDEFoam"])
      histPDEFoam_signal = 
new TH1F( 
"MVA_PDEFoam_signal", 
"MVA_PDEFoam_signal", nbin, 0., 1.1 );
 
 
 
   TString fname = 
"./tmva_example_multiclass.root";
 
   }
   else {
      input = 
TFile::Open(
"http://root.cern.ch/files/tmva_multiclass_example.root", 
"CACHEREAD");
 
   }
      std::cout << "ERROR: could not open data file" << std::endl;
      exit(1);
   }
   std::cout << 
"--- TMVAMulticlassApp : Using input file: " << 
input->GetName() << std::endl;
 
 
   
   
   
   
 
   std::cout << "--- Select signal sample" << std::endl;
 
   std::cout << 
"--- Processing: " << theTree->
GetEntries() << 
" events" << std::endl;
 
 
      if (ievt%1000 == 0){
         std::cout << "--- ... Processing event: " << ievt << std::endl;
      }
 
      if (Use["MLP"])
      if (Use["BDTG"])
      if (Use["DL_CPU"])
      if (Use["DL_GPU"])
      if (Use["FDA_GA"])
      if (Use["PDEFoam"])
 
   }
 
   
   std::cout << 
"--- End of event loop: "; sw.
Print();
 
 
   if (Use["MLP"])
      histMLP_signal->Write();
   if (Use["BDTG"])
      histBDTG_signal->Write();
   if (Use["DL_CPU"])
      histDLCPU_signal->Write();
   if (Use["DL_GPU"])
      histDLGPU_signal->Write();
   if (Use["FDA_GA"])
      histFDAGA_signal->Write();
   if (Use["PDEFoam"])
      histPDEFoam_signal->Write();
 
   std::cout << "--- Created root file: \"TMVMulticlassApp.root\" containing the MVA output histograms" << std::endl;
 
   delete reader;
 
   std::cout << "==> TMVAMulticlassApp is done!" << std::endl << std::endl;
}
 
int main( 
int argc, 
char** argv )
 
{
   
   for (int i=1; i<argc; i++) {
      if(regMethod=="-b" || regMethod=="--batch") continue;
      methodList += regMethod;
   }
   TMVAMulticlassApplication(methodList);
   return 0;
}
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void input
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t target
 
R__EXTERN TSystem * gSystem
 
A ROOT file is a suite of consecutive data records (TKey instances) with a well defined format.
 
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.
 
1-D histogram with a float per channel (see TH1 documentation)}
 
The Reader class serves to use the MVAs in a specific analysis context.
 
IMethod * BookMVA(const TString &methodTag, const TString &weightfile)
read method name from weight file
 
const std::vector< Float_t > & EvaluateMulticlass(const TString &methodTag, Double_t aux=0)
evaluates MVA for given set of input variables
 
void AddVariable(const TString &expression, Float_t *)
Add a float variable or expression to the reader.
 
void Start(Bool_t reset=kTRUE)
Start the stopwatch.
 
void Stop()
Stop the stopwatch.
 
void Print(Option_t *option="") const override
Print the real and cpu time passed between the start and stop events.
 
virtual Bool_t AccessPathName(const char *path, EAccessMode mode=kFileExists)
Returns FALSE if one can access a file using the specified access mode.
 
A TTree represents a columnar dataset.
 
virtual Int_t GetEntry(Long64_t entry, Int_t getall=0)
Read all branches of entry and return total number of bytes read.
 
virtual Int_t SetBranchAddress(const char *bname, void *add, TBranch **ptr=nullptr)
Change branch address, dealing with clone trees properly.
 
virtual Long64_t GetEntries() const
 
create variable transformations