Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
MethodBase.h
Go to the documentation of this file.
1// @(#)root/tmva $Id$
2// Author: Andreas Hoecker, Peter Speckmayer, Joerg Stelzer, Helge Voss, Kai Voss, Eckhard von Toerne, Jan Therhaag
3
4/**********************************************************************************
5 * Project: TMVA - a Root-integrated toolkit for multivariate data analysis *
6 * Package: TMVA *
7 * Class : MethodBase *
8 * *
9 * *
10 * Description: *
11 * Virtual base class for all MVA method *
12 * *
13 * Authors (alphabetical): *
14 * Andreas Hoecker <Andreas.Hocker@cern.ch> - CERN, Switzerland *
15 * Peter Speckmayer <peter.speckmayer@cern.ch> - CERN, Switzerland *
16 * Joerg Stelzer <Joerg.Stelzer@cern.ch> - CERN, Switzerland *
17 * Jan Therhaag <Jan.Therhaag@cern.ch> - U of Bonn, Germany *
18 * Eckhard v. Toerne <evt@uni-bonn.de> - U of Bonn, Germany *
19 * Helge Voss <Helge.Voss@cern.ch> - MPI-K Heidelberg, Germany *
20 * Kai Voss <Kai.Voss@cern.ch> - U. of Victoria, Canada *
21 * *
22 * Copyright (c) 2005-2011: *
23 * CERN, Switzerland *
24 * U. of Victoria, Canada *
25 * MPI-K Heidelberg, Germany *
26 * U. of Bonn, Germany *
27 * *
28 * Redistribution and use in source and binary forms, with or without *
29 * modification, are permitted according to the terms listed in LICENSE *
30 * (see tmva/doc/LICENSE) *
31 **********************************************************************************/
32
33#ifndef ROOT_TMVA_MethodBase
34#define ROOT_TMVA_MethodBase
35
36//////////////////////////////////////////////////////////////////////////
37// //
38// MethodBase //
39// //
40// Virtual base class for all TMVA method //
41// //
42//////////////////////////////////////////////////////////////////////////
43
44#include <iosfwd>
45#include <vector>
46#include <map>
47#include "assert.h"
48
49#include "TString.h"
50
51#include "TMVA/IMethod.h"
52#include "TMVA/Configurable.h"
53#include "TMVA/Types.h"
54#include "TMVA/DataSet.h"
55#include "TMVA/Event.h"
57#include <TMVA/Results.h>
59
60#include <TFile.h>
61
62class TGraph;
63class TTree;
64class TDirectory;
65class TSpline;
66class TH1F;
67class TH1D;
68class TMultiGraph;
69
70/*! \class TMVA::IPythonInteractive
71\ingroup TMVA
72
73This class is needed by JsMVA, and it's a helper class for tracking errors during
74the training in Jupyter notebook. It’s only initialized in Jupyter notebook context.
75In initialization we specify some title, and a TGraph will be created for every title.
76We can add new data points easily to all TGraphs. These graphs are added to a
77TMultiGraph, and during an interactive training we get this TMultiGraph object
78and plot it with JsROOT.
79*/
80
81namespace TMVA {
82
83 class Ranking;
84 class PDF;
85 class TSpline1;
86 class MethodCuts;
87 class MethodBoost;
88 class DataSetInfo;
89 namespace Experimental {
90 class Classification;
91 }
92 class TrainingHistory;
93
95 public:
98 void Init(std::vector<TString>& graphTitles);
99 void ClearGraphs();
101 void AddPoint(std::vector<Double_t>& dat);
102 inline TMultiGraph* Get() {return fMultiGraph;}
103 inline bool NotInitialized(){ return fNumGraphs==0;};
104 private:
106 std::vector<TGraph*> fGraphs;
109 };
110
111 class MethodBase : virtual public IMethod, public Configurable {
112
113 friend class CrossValidation;
114 friend class Factory;
115 friend class RootFinder;
116 friend class MethodBoost;
119
120 public:
121
123
124 // default constructor
125 MethodBase( const TString& jobName,
127 const TString& methodTitle,
129 const TString& theOption = "" );
130
131 // constructor used for Testing + Application of the MVA, only (no training),
132 // using given weight file
135 const TString& weightFile );
136
137 // default destructor
138 virtual ~MethodBase();
139
140 // declaration, processing and checking of configuration options
141 void SetupMethod();
142 void ProcessSetup();
143 virtual void CheckSetup(); // may be overwritten by derived classes
144
145 // ---------- main training and testing methods ------------------------------
146
147 // prepare tree branch with the method's discriminating variable
149
150 // performs classifier training
151 // calls methods Train() implemented by derived classes
152 void TrainMethod();
153
154 // optimize tuning parameters
155 virtual std::map<TString,Double_t> OptimizeTuningParameters(TString fomType="ROCIntegral", TString fitType="FitGA");
156 virtual void SetTuneParameters(std::map<TString,Double_t> tuneParameters);
157
158 void Train() override = 0;
159
160 // store and retrieve time used for training
162 Double_t GetTrainTime() const { return fTrainTime; }
163
164 // store and retrieve time used for testing
166 Double_t GetTestTime () const { return fTestTime; }
167
168 // performs classifier testing
169 virtual void TestClassification();
171
172 // performs multiclass classifier testing
173 virtual void TestMulticlass();
174
175 // performs regression testing
176 virtual void TestRegression( Double_t& bias, Double_t& biasT,
179 Double_t& mInf, Double_t& mInfT, // mutual information
180 Double_t& corr,
182
183 // options treatment
184 void Init() override = 0;
185 void DeclareOptions() override = 0;
186 void ProcessOptions() override = 0;
187 virtual void DeclareCompatibilityOptions(); // declaration of past options
188
189 // reset the Method --> As if it was not yet trained, just instantiated
190 // virtual void Reset() = 0;
191 //for the moment, I provide a dummy (that would not work) default, just to make
192 // compilation/running w/o parameter optimisation still possible
193 virtual void Reset(){return;}
194
195 // classifier response:
196 // some methods may return a per-event error estimate
197 // error calculation is skipped if err==0
198 Double_t GetMvaValue( Double_t* errLower = nullptr, Double_t* errUpper = nullptr) override = 0;
199
200 // signal/background classification response
201 Double_t GetMvaValue( const TMVA::Event* const ev, Double_t* err = nullptr, Double_t* errUpper = nullptr );
202
203 protected:
204 // helper function to set errors to -1
205 void NoErrorCalc(Double_t* const err, Double_t* const errUpper);
206
207 // signal/background classification response for all current set of data
208 virtual std::vector<Double_t> GetMvaValues(Long64_t firstEvt = 0, Long64_t lastEvt = -1, Bool_t logProgress = false);
209 // same as above but using a provided data set (used by MethodCategory)
210 virtual std::vector<Double_t> GetDataMvaValues(DataSet *data = nullptr, Long64_t firstEvt = 0, Long64_t lastEvt = -1, Bool_t logProgress = false);
211
212 virtual std::vector<Float_t> GetAllRegressionValues();
213 virtual std::vector<Float_t> GetAllMulticlassValues();
214
215 public:
216 // regression response
217 const std::vector<Float_t>& GetRegressionValues(const TMVA::Event* const ev){
218 fTmpEvent = ev;
219 const std::vector<Float_t>* ptr = &GetRegressionValues();
220 fTmpEvent = nullptr;
221 return (*ptr);
222 }
223
224 virtual const std::vector<Float_t>& GetRegressionValues() {
225 std::vector<Float_t>* ptr = new std::vector<Float_t>(0);
226 return (*ptr);
227 }
228
229 // multiclass classification response
230 virtual const std::vector<Float_t>& GetMulticlassValues() {
231 std::vector<Float_t>* ptr = new std::vector<Float_t>(0);
232 return (*ptr);
233 }
234
235 // Training history
236 virtual const std::vector<Float_t>& GetTrainingHistory(const char* /*name*/ ) {
237 std::vector<Float_t>* ptr = new std::vector<Float_t>(0);
238 return (*ptr);
239 }
240
241 // probability of classifier response (mvaval) to be signal (requires "CreateMvaPdf" option set)
242 virtual Double_t GetProba( const Event *ev); // the simple one, automatically calculates the mvaVal and uses the SAME sig/bkg ratio as given in the training sample (typically 50/50 .. (NormMode=EqualNumEvents) but can be different)
244
245 // Rarity of classifier response (signal or background (default) is uniform in [0,1])
247
248 // create ranking
249 const Ranking* CreateRanking() override = 0;
250
251 // make ROOT-independent C++ class
252 void MakeClass( const TString& classFileName = TString("") ) const override;
253
254 // print help message
255 void PrintHelpMessage() const override;
256
257 //
258 // streamer methods for training information (creates "weight" files) --------
259 //
260 public:
261 void WriteStateToFile () const;
262 void ReadStateFromFile ();
263
264 protected:
265 // the actual "weights"
266 virtual void AddWeightsXMLTo ( void* parent ) const = 0;
267 virtual void ReadWeightsFromXML ( void* wghtnode ) = 0;
268 void ReadWeightsFromStream( std::istream& ) override = 0; // backward compatibility
269 virtual void ReadWeightsFromStream( TFile& ) {} // backward compatibility
270
271 private:
272 friend class MethodCategory;
274 void WriteStateToXML ( void* parent ) const;
275 void ReadStateFromXML ( void* parent );
276 void WriteStateToStream ( std::ostream& tf ) const; // needed for MakeClass
277 void WriteVarsToStream ( std::ostream& tf, const TString& prefix = "" ) const; // needed for MakeClass
278
279
280 public: // these two need to be public, they are used to read in-memory weight-files
281 void ReadStateFromStream ( std::istream& tf ); // backward compatibility
282 void ReadStateFromStream ( TFile& rf ); // backward compatibility
283 void ReadStateFromXMLString( const char* xmlstr ); // for reading from memory
284
285 private:
286 // the variable information
287 void AddVarsXMLTo ( void* parent ) const;
288 void AddSpectatorsXMLTo ( void* parent ) const;
289 void AddTargetsXMLTo ( void* parent ) const;
290 void AddClassesXMLTo ( void* parent ) const;
291 void ReadVariablesFromXML ( void* varnode );
292 void ReadSpectatorsFromXML( void* specnode);
293 void ReadTargetsFromXML ( void* tarnode );
294 void ReadClassesFromXML ( void* clsnode );
295 void ReadVarsFromStream ( std::istream& istr ); // backward compatibility
296
297 public:
298 // ---------------------------------------------------------------------------
299
300 // write evaluation histograms into target file
302
303 // write classifier-specific monitoring information to target file
304 void WriteMonitoringHistosToFile() const override;
305
306 // ---------- public evaluation methods --------------------------------------
307
308 // individual initialization for testing of each method
309 // overload this one for individual initialisation of the testing,
310 // it is then called automatically within the global "TestInit"
311
312 // variables (and private member functions) for the Evaluation:
313 // get the efficiency. It fills a histogram for efficiency/vs/bkg
314 // and returns the one value fo the efficiency demanded for
315 // in the TString argument. (Watch the string format)
316 virtual Double_t GetEfficiency( const TString&, Types::ETreeType, Double_t& err );
317 virtual Double_t GetTrainingEfficiency(const TString& );
318 virtual std::vector<Float_t> GetMulticlassEfficiency( std::vector<std::vector<Float_t> >& purity );
319 virtual std::vector<Float_t> GetMulticlassTrainingEfficiency(std::vector<std::vector<Float_t> >& purity );
321 virtual Double_t GetSignificance() const;
322 virtual Double_t GetROCIntegral(TH1D *histS, TH1D *histB) const;
323 virtual Double_t GetROCIntegral(PDF *pdfS=nullptr, PDF *pdfB=nullptr) const;
326 virtual Double_t GetSeparation( TH1*, TH1* ) const;
327 virtual Double_t GetSeparation( PDF* pdfS = nullptr, PDF* pdfB = nullptr ) const;
328
330 // ---------- public accessors -----------------------------------------------
331
332 // classifier naming (a lot of names ... aren't they ;-)
333 const TString& GetJobName () const { return fJobName; }
334 const TString& GetMethodName () const { return fMethodName; }
335 TString GetMethodTypeName() const { return Types::Instance().GetMethodName(fMethodType); }
337 const char* GetName () const override { return fMethodName.Data(); }
338 const TString& GetTestvarName () const { return fTestvar; }
339 const TString GetProbaName () const { return fTestvar + "_Proba"; }
341
342 // build classifier name in Test tree
343 // MVA prefix (e.g., "TMVA_")
344 void SetTestvarName ( const TString & v="" ) { fTestvar = (v=="") ? ("MVA_" + GetMethodName()) : v; }
345
346 // number of input variable used by classifier
347 UInt_t GetNvar() const { return DataInfo().GetNVariables(); }
349 UInt_t GetNTargets() const { return DataInfo().GetNTargets(); };
350
351 // internal names and expressions of input variables
352 const TString& GetInputVar ( Int_t i ) const { return DataInfo().GetVariableInfo(i).GetInternalName(); }
353 const TString& GetInputLabel( Int_t i ) const { return DataInfo().GetVariableInfo(i).GetLabel(); }
354 const char * GetInputTitle( Int_t i ) const { return DataInfo().GetVariableInfo(i).GetTitle(); }
355
356 // normalisation and limit accessors
361
362 // sets the minimum requirement on the MVA output to declare an event signal-like
365
366 // sets the minimum requirement on the MVA output to declare an event signal-like
369
370 // pointers to ROOT directories
371 TDirectory* BaseDir() const;
372 TDirectory* MethodBaseDir() const;
373 TFile* GetFile() const {return fFile;}
374
378 void SetFile(TFile* file){fFile=file;}
379
380 //Silent file
381 void SetSilentFile(Bool_t status) {fSilentFile=status;}
383
384 //Model Persistence
385 void SetModelPersistence(Bool_t status){fModelPersistence=status;}//added support to create/remove dir here if exits or not
387
388 // the TMVA version can be obtained and checked using
389 // if (GetTrainingTMVAVersionCode()>TMVA_VERSION(3,7,2)) {...}
390 // or
391 // if (GetTrainingROOTVersionCode()>ROOT_VERSION(5,15,5)) {...}
396
405
407
408 // ---------- event accessors ------------------------------------------------
409
410 // returns reference to data set
411 // NOTE: this DataSet is the "original" dataset, i.e. the one seen by ALL Classifiers WITHOUT transformation
412 DataSet* Data() const { return (fTmpData) ? fTmpData : DataInfo().GetDataSet(); }
413 DataSetInfo& DataInfo() const { return fDataSetInfo; }
414
415
416 // event reference and update
417 // NOTE: these Event accessors make sure that you get the events transformed according to the
418 // particular classifiers transformation chosen
419 UInt_t GetNEvents () const { return Data()->GetNEvents(); }
420 const Event* GetEvent () const;
421 const Event* GetEvent ( const TMVA::Event* ev ) const;
422 const Event* GetEvent ( Long64_t ievt ) const;
423 const Event* GetEvent ( Long64_t ievt , Types::ETreeType type ) const;
424 const Event* GetTrainingEvent( Long64_t ievt ) const;
425 const Event* GetTestingEvent ( Long64_t ievt ) const;
426 const std::vector<TMVA::Event*>& GetEventCollection( Types::ETreeType type );
427
429 // ---------- public auxiliary methods ---------------------------------------
430
431 // this method is used to decide whether an event is signal- or background-like
432 // the reference cut "xC" is taken to be where
433 // Int_[-oo,xC] { PDF_S(x) dx } = Int_[xC,+oo] { PDF_B(x) dx }
434 virtual Bool_t IsSignalLike();
436
437
438 Bool_t HasMVAPdfs() const { return fHasMVAPdfs; }
443
444 // setter method for suppressing writing to XML and writing of standalone classes
446
447 protected:
448 mutable const Event *fTmpEvent; //! temporary event when testing on a different DataSet than the own one
449 DataSet *fTmpData = nullptr; //! temporary dataset used when evaluating on a different data (used by MethodCategory::GetMvaValues)
450 // helper variables for JsMVA
452 bool fExitFromTraining = false;
454
455 public:
456
457 // initializing IPythonInteractive class (for JsMVA only)
459 if (fInteractive) delete fInteractive;
461 }
462
463 // get training errors (for JsMVA only)
465
466 // stop's the training process (for JsMVA only)
467 inline void ExitFromTraining(){
468 fExitFromTraining = true;
469 }
470
471 // check's if the training ended (for JsMVA only)
472 inline bool TrainingEnded(){
474 delete fInteractive;
475 fInteractive = nullptr;
476 }
477 return fExitFromTraining;
478 }
479
480 // get fIPyMaxIter
481 inline UInt_t GetMaxIter(){ return fIPyMaxIter; }
482
483 // get fIPyCurrentIter
485
486 protected:
487
488 // ---------- protected accessors -------------------------------------------
489
490 //TDirectory* LocalTDir() const { return Data().LocalRootDir(); }
491
492 // weight file name and directory (given by global config variable)
494
495 const TString& GetWeightFileDir() const { return fFileDir; }
497
498 // are input variables normalised ?
499 Bool_t IsNormalised() const { return fNormalise; }
501
502 // set number of input variables (only used by MethodCuts, could perhaps be removed)
503 // void SetNvar( Int_t n ) { fNvar = n; }
504
505 // verbose and help flags
506 Bool_t Verbose() const { return fVerbose; }
507 Bool_t Help () const { return fHelp; }
508
509 // ---------- protected event and tree accessors -----------------------------
510
511 // names of input variables (if the original names are expressions, they are
512 // transformed into regexps)
513 const TString& GetInternalVarName( Int_t ivar ) const { return (*fInputVars)[ivar]; }
515
516 Bool_t HasTrainingTree() const { return Data()->GetNTrainingEvents() != 0; }
517
518 // ---------- protected auxiliary methods ------------------------------------
519
520 protected:
521
522 // make ROOT-independent C++ class for classifier response (classifier-specific implementation)
523 void MakeClassSpecific( std::ostream&, const TString& = "" ) const override {}
524
525 // header and auxiliary classes
526 virtual void MakeClassSpecificHeader( std::ostream&, const TString& = "" ) const {}
527
528 // static pointer to this object - required for ROOT finder (to be solved differently)(solved by Omar)
529 //static MethodBase* GetThisBase();
530
531 // some basic statistical analysis
535
536 // if TRUE, write weights only to text files
537 Bool_t TxtWeightsOnly() const { return kTRUE; }
538
539 protected:
540
541 // access to event information that needs method-specific information
542
544
545 private:
546
547 // ---------- private definitions --------------------------------------------
548 // Initialisation
549 void InitBase();
550 void DeclareBaseOptions();
551 void ProcessBaseOptions();
552
553 // used in efficiency computation
556
557 // ---------- private accessors ---------------------------------------------
558
559 // reset required for RootFinder
561
562 // ---------- private auxiliary methods --------------------------------------
563
564 // PDFs for classifier response (required to compute signal probability and Rarity)
565 void CreateMVAPdfs();
566
567 // for root finder
568 //virtual method to find ROOT
569 virtual Double_t GetValueForRoot ( Double_t ); // implementation
570
571 // used for file parsing
572 Bool_t GetLine( std::istream& fin, char * buf );
573
574 // fill test tree with classification or regression results
579
580 private:
581
582 void AddInfoItem( void* gi, const TString& name,
583 const TString& value) const;
584
585 // ========== class members ==================================================
586
587 protected:
588
589 // direct accessors
590 Ranking* fRanking; // pointer to ranking object (created by derived classifiers)
591 std::vector<TString>* fInputVars; // vector of input variables used in MVA
592
593 // histogram binning
594 Int_t fNbins; // number of bins in input variable histograms
595 Int_t fNbinsMVAoutput; // number of bins in MVA output histograms
596 Int_t fNbinsH; // number of bins in evaluation histograms
597
598 Types::EAnalysisType fAnalysisType; // method-mode : true --> regression, false --> classification
599
600 std::vector<Float_t>* fRegressionReturnVal; // holds the return-values for the regression
601 std::vector<Float_t>* fMulticlassReturnVal; // holds the return-values for the multiclass classification
602
603 private:
604
605 // MethodCuts redefines some of the evaluation variables and histograms -> must access private members
606 friend class MethodCuts;
607
608
609 // data sets
610 DataSetInfo& fDataSetInfo; //! the data set information (sometimes needed)
611
612 Double_t fSignalReferenceCut; // minimum requirement on the MVA output to declare an event signal-like
613 Double_t fSignalReferenceCutOrientation; // minimum requirement on the MVA output to declare an event signal-like
614 Types::ESBType fVariableTransformType; // this is the event type (sig or bgd) assumed for variable transform
615
616 // naming and versioning
617 TString fJobName; // name of job -> user defined, appears in weight files
618 TString fMethodName; // name of the method (set in derived class)
619 Types::EMVA fMethodType; // type of method (set in derived class)
620 TString fTestvar; // variable used in evaluation, etc (mostly the MVA)
621 UInt_t fTMVATrainingVersion; // TMVA version used for training
622 UInt_t fROOTTrainingVersion; // ROOT version used for training
623 Bool_t fConstructedFromWeightFile; // is it obtained from weight file?
624
625 // Directory structure: dataloader/fMethodBaseDir/fBaseDir
626 // where the first directory name is defined by the method type
627 // and the second is user supplied (the title given in Factory::BookMethod())
628 TDirectory* fBaseDir; // base directory for the instance, needed to know where to jump back from localDir
629 mutable TDirectory* fMethodBaseDir; // base directory for the method
630 //this will be the next way to save results
632
633 //SilentFile
635 //Model Persistence
637
638 TString fParentDir; ///< method parent name, like booster name
639
640 TString fFileDir; ///< unix sub-directory for weight files (default: DataLoader's Name + "weights")
641 TString fWeightFile; ///< weight file name
642
643 private:
644
645 TH1* fEffS; ///< efficiency histogram for rootfinder
646
647 PDF* fDefaultPDF; ///< default PDF definitions
648 PDF* fMVAPdfS; ///< signal MVA PDF
649 PDF* fMVAPdfB; ///< background MVA PDF
650
651 // TH1D* fmvaS; ///< PDFs of MVA distribution (signal)
652 // TH1D* fmvaB; ///< PDFs of MVA distribution (background)
653 PDF* fSplS; ///< PDFs of MVA distribution (signal)
654 PDF* fSplB; ///< PDFs of MVA distribution (background)
655 TSpline* fSpleffBvsS; ///< splines for signal eff. versus background eff.
656
657 PDF* fSplTrainS; ///< PDFs of training MVA distribution (signal)
658 PDF* fSplTrainB; ///< PDFs of training MVA distribution (background)
659 TSpline* fSplTrainEffBvsS; ///< splines for training signal eff. versus background eff.
660
661 private:
662
663 // basic statistics quantities of MVA
664 Double_t fMeanS; ///< mean (signal)
665 Double_t fMeanB; ///< mean (background)
666 Double_t fRmsS; ///< RMS (signal)
667 Double_t fRmsB; ///< RMS (background)
668 Double_t fXmin; ///< minimum (signal and background)
669 Double_t fXmax; ///< maximum (signal and background)
670
671 // variable preprocessing
672 TString fVarTransformString; ///< labels variable transform method
673
674 TransformationHandler* fTransformationPointer; ///< pointer to the rest of transformations
675 TransformationHandler fTransformation; ///< the list of transformations
676
677
678 // help and verbosity
679 Bool_t fVerbose; ///< verbose flag
680 TString fVerbosityLevelString; ///< verbosity level (user input string)
681 EMsgType fVerbosityLevel; ///< verbosity level
682 Bool_t fHelp; ///< help flag
683 Bool_t fHasMVAPdfs; ///< MVA Pdfs are created for this classifier
684
685 Bool_t fIgnoreNegWeightsInTraining; ///< If true, events with negative weights are not used in training
686
687 protected:
688
690
691 // for signal/background
692 UInt_t fSignalClass; // index of the Signal-class
693 UInt_t fBackgroundClass; // index of the Background-class
694
695 private:
696
697 // timing variables
698 Double_t fTrainTime; // for timing measurements
699 Double_t fTestTime; // for timing measurements
700
701 // orientation of cut: depends on signal and background mean values
702 ECutOrientation fCutOrientation; // +1 if Sig>Bkg, -1 otherwise
703
704 // for root finder
705 TSpline1* fSplRefS; // helper splines for RootFinder (signal)
706 TSpline1* fSplRefB; // helper splines for RootFinder (background)
707
708 TSpline1* fSplTrainRefS; // helper splines for RootFinder (signal)
709 TSpline1* fSplTrainRefB; // helper splines for RootFinder (background)
710
711 mutable std::vector<const std::vector<TMVA::Event*>*> fEventCollections; // if the method needs the complete event-collection, the transformed event coll. ist stored here.
712
713 public:
714 Bool_t fSetupCompleted; // is method setup
715
716 private:
717
718 // This is a workaround for OSx where static thread_local data members are
719 // not supported. The C++ solution would indeed be the following:
720// static MethodBase*& GetThisBaseThreadLocal() {TTHREAD_TLS(MethodBase*) fgThisBase(nullptr); return fgThisBase; };
721
722 // ===== depreciated options, kept for backward compatibility =====
723 private:
724
725 Bool_t fNormalise; // normalise input variables
726 Bool_t fUseDecorr; // synonymous for decorrelation
727 TString fVariableTransformTypeString; // labels variable transform type
728 Bool_t fTxtWeightsOnly; // if TRUE, write weights only to text files
729 Int_t fNbinsMVAPdf; // number of bins used in histogram that creates PDF
730 Int_t fNsmoothMVAPdf; // number of times a histogram is smoothed before creating the PDF
731
732 protected:
734 ClassDefOverride(MethodBase,0); // Virtual base class for all TMVA method
735
736 };
737} // namespace TMVA
738
739
740
741
742
743
744
745// ========== INLINE FUNCTIONS =========================================================
746
747
748//_______________________________________________________________________
750{
752}
753
755{
756 if(fTmpEvent)
757 return GetTransformationHandler().Transform(fTmpEvent);
758 else
759 return GetTransformationHandler().Transform(Data()->GetEvent());
760}
761
763{
764 assert(fTmpEvent==nullptr);
765 return GetTransformationHandler().Transform(Data()->GetEvent(ievt));
766}
767
769{
770 assert(fTmpEvent==nullptr);
771 return GetTransformationHandler().Transform(Data()->GetEvent(ievt, type));
772}
773
775{
776 assert(fTmpEvent==nullptr);
777 return GetEvent(ievt, Types::kTraining);
778}
779
781{
782 assert(fTmpEvent==nullptr);
783 return GetEvent(ievt, Types::kTesting);
784}
785
786#endif
char Char_t
Character 1 byte (char)
Definition RtypesCore.h:51
constexpr Bool_t kFALSE
Definition RtypesCore.h:108
double Double_t
Double 8 bytes.
Definition RtypesCore.h:73
long long Long64_t
Portable signed long integer 8 bytes.
Definition RtypesCore.h:83
constexpr Bool_t kTRUE
Definition RtypesCore.h:107
#define ClassDefOverride(name, id)
Definition Rtypes.h:348
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
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 GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void value
Option_t Option_t TPoint TPoint const char y2
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 Atom_t Time_t type
Option_t Option_t TPoint TPoint const char y1
char name[80]
Definition TGX11.cxx:110
Describe directory structure in memory.
Definition TDirectory.h:45
A ROOT file is an on-disk file, usually with extension .root, that stores objects in a file-system-li...
Definition TFile.h:130
A TGraph is an object made of two arrays X and Y with npoints each.
Definition TGraph.h:41
1-D histogram with a double per channel (see TH1 documentation)
Definition TH1.h:926
1-D histogram with a float per channel (see TH1 documentation)
Definition TH1.h:878
TH1 is the base class of all histogram classes in ROOT.
Definition TH1.h:109
Class to perform two class classification.
Class to perform cross validation, splitting the dataloader into folds.
Class that contains all the data information.
Definition DataSetInfo.h:62
UInt_t GetNVariables() const
UInt_t GetNTargets() const
DataSet * GetDataSet() const
returns data set
VariableInfo & GetVariableInfo(Int_t i)
Class that contains all the data information.
Definition DataSet.h:58
Long64_t GetNEvents(Types::ETreeType type=Types::kMaxTreeType) const
Definition DataSet.h:206
Long64_t GetNTrainingEvents() const
Definition DataSet.h:68
This is the main MVA steering class.
Definition Factory.h:80
Interface for all concrete MVA method implementations.
Definition IMethod.h:53
This class is needed by JsMVA, and it's a helper class for tracking errors during the training in Jup...
Definition MethodBase.h:94
void Init(std::vector< TString > &graphTitles)
This function gets some title and it creates a TGraph for every title.
IPythonInteractive()
standard constructor
TMultiGraph * fMultiGraph
Definition MethodBase.h:105
std::vector< TGraph * > fGraphs
Definition MethodBase.h:106
~IPythonInteractive()
standard destructor
TMultiGraph * Get()
Definition MethodBase.h:102
void ClearGraphs()
This function sets the point number to 0 for all graphs.
void AddPoint(Double_t x, Double_t y1, Double_t y2)
This function is used only in 2 TGraph case, and it will add new data points to graphs.
Virtual base Class for all MVA method.
Definition MethodBase.h:111
TransformationHandler * fTransformationPointer
pointer to the rest of transformations
Definition MethodBase.h:674
void ProcessOptions() override=0
virtual void MakeClassSpecificHeader(std::ostream &, const TString &="") const
Definition MethodBase.h:526
TString fVerbosityLevelString
verbosity level (user input string)
Definition MethodBase.h:680
TDirectory * MethodBaseDir() const
returns the ROOT directory where all instances of the corresponding MVA method are stored
virtual const std::vector< Float_t > & GetRegressionValues()
Definition MethodBase.h:224
const std::vector< Float_t > & GetRegressionValues(const TMVA::Event *const ev)
Definition MethodBase.h:217
PDF * fSplB
PDFs of MVA distribution (background)
Definition MethodBase.h:654
Bool_t fVerbose
verbose flag
Definition MethodBase.h:679
virtual Double_t GetKSTrainingVsTest(Char_t SorB, TString opt="X")
MethodBase(const TString &jobName, Types::EMVA methodType, const TString &methodTitle, DataSetInfo &dsi, const TString &theOption="")
standard constructor
TString fMethodName
Definition MethodBase.h:618
TFile * GetFile() const
Definition MethodBase.h:373
void PrintHelpMessage() const override
prints out method-specific help method
virtual std::vector< Float_t > GetAllMulticlassValues()
Get all multi-class values.
virtual Double_t GetSeparation(TH1 *, TH1 *) const
compute "separation" defined as
TString fFileDir
unix sub-directory for weight files (default: DataLoader's Name + "weights")
Definition MethodBase.h:640
DataSet * fTmpData
temporary event when testing on a different DataSet than the own one
Definition MethodBase.h:449
Bool_t HasTrainingTree() const
Definition MethodBase.h:516
const char * GetName() const override
Definition MethodBase.h:337
void SetSilentFile(Bool_t status)
Definition MethodBase.h:381
void ReadClassesFromXML(void *clsnode)
read number of classes from XML
TMultiGraph * GetInteractiveTrainingError()
Definition MethodBase.h:464
void SetWeightFileDir(TString fileDir)
set directory of weight file
void WriteStateToXML(void *parent) const
general method used in writing the header of the weight files where the used variables,...
void DeclareBaseOptions()
define the options (their key words) that can be set in the option string here the options valid for ...
UInt_t GetMaxIter()
Definition MethodBase.h:481
Double_t fRmsB
RMS (background)
Definition MethodBase.h:667
Double_t GetXmin(Int_t ivar) const
Definition MethodBase.h:359
Bool_t Verbose() const
Definition MethodBase.h:506
virtual void TestRegression(Double_t &bias, Double_t &biasT, Double_t &dev, Double_t &devT, Double_t &rms, Double_t &rmsT, Double_t &mInf, Double_t &mInfT, Double_t &corr, Types::ETreeType type)
calculate <sum-of-deviation-squared> of regression output versus "true" value from test sample
Double_t GetMean(Int_t ivar) const
Definition MethodBase.h:357
virtual void DeclareCompatibilityOptions()
options that are used ONLY for the READER to ensure backward compatibility they are hence without any...
PDF * fSplTrainB
PDFs of training MVA distribution (background)
Definition MethodBase.h:658
TString GetMethodTypeName() const
Definition MethodBase.h:335
Bool_t DoMulticlass() const
Definition MethodBase.h:442
virtual Double_t GetSignificance() const
compute significance of mean difference
void DisableWriting(Bool_t setter)
Definition MethodBase.h:445
Bool_t fTxtWeightsOnly
Definition MethodBase.h:728
virtual void ReadWeightsFromXML(void *wghtnode)=0
virtual Double_t GetProba(const Event *ev)
TH1 * fEffS
efficiency histogram for rootfinder
Definition MethodBase.h:645
TString fParentDir
method parent name, like booster name
Definition MethodBase.h:638
virtual const std::vector< Float_t > & GetMulticlassValues()
Definition MethodBase.h:230
TSpline * fSplTrainEffBvsS
splines for training signal eff. versus background eff.
Definition MethodBase.h:659
Types::EAnalysisType GetAnalysisType() const
Definition MethodBase.h:440
virtual TMatrixD GetMulticlassConfusionMatrix(Double_t effB, Types::ETreeType type)
Construct a confusion matrix for a multiclass classifier.
UInt_t GetTrainingTMVAVersionCode() const
Definition MethodBase.h:392
UInt_t fTMVATrainingVersion
Definition MethodBase.h:621
Bool_t IsModelPersistence() const
Definition MethodBase.h:386
Double_t fXmax
maximum (signal and background)
Definition MethodBase.h:669
Double_t fMeanS
mean (signal)
Definition MethodBase.h:664
Types::ESBType fVariableTransformType
Definition MethodBase.h:614
const TString & GetInputVar(Int_t i) const
Definition MethodBase.h:352
PDF * fSplTrainS
PDFs of training MVA distribution (signal)
Definition MethodBase.h:657
void SetMethodDir(TDirectory *methodDir)
Definition MethodBase.h:375
const TString & GetJobName() const
Definition MethodBase.h:333
Bool_t IgnoreEventsWithNegWeightsInTraining() const
Definition MethodBase.h:689
Double_t fTrainTime
Definition MethodBase.h:698
virtual void WriteEvaluationHistosToFile(Types::ETreeType treetype)
writes all MVA evaluation histograms to file
virtual void TestMulticlass()
test multiclass classification
Bool_t fModelPersistence
Definition MethodBase.h:636
const TString & GetTestvarName() const
Definition MethodBase.h:338
const std::vector< TMVA::Event * > & GetEventCollection(Types::ETreeType type)
returns the event collection (i.e.
virtual std::vector< Double_t > GetDataMvaValues(DataSet *data=nullptr, Long64_t firstEvt=0, Long64_t lastEvt=-1, Bool_t logProgress=false)
get all the MVA values for the events of the given Data type
void SetupMethod()
setup of methods
TDirectory * BaseDir() const
returns the ROOT directory where info/histograms etc of the corresponding MVA method instance are sto...
const Event * GetTestingEvent(Long64_t ievt) const
Definition MethodBase.h:780
virtual std::vector< Float_t > GetMulticlassEfficiency(std::vector< std::vector< Float_t > > &purity)
UInt_t GetNTargets() const
Definition MethodBase.h:349
EMsgType fVerbosityLevel
verbosity level
Definition MethodBase.h:681
const TString GetProbaName() const
Definition MethodBase.h:339
TransformationHandler fTransformation
the list of transformations
Definition MethodBase.h:675
void AddInfoItem(void *gi, const TString &name, const TString &value) const
xml writing
TDirectory * fMethodBaseDir
Definition MethodBase.h:629
virtual void AddClassifierOutputProb(Types::ETreeType type)
prepare tree branch with the method's discriminating variable
PDF * fSplS
PDFs of MVA distribution (signal)
Definition MethodBase.h:653
Double_t fSignalReferenceCutOrientation
Definition MethodBase.h:613
virtual Double_t GetEfficiency(const TString &, Types::ETreeType, Double_t &err)
fill background efficiency (resp.
TString GetTrainingTMVAVersionString() const
calculates the TMVA version string from the training version code on the fly
TSpline * fSpleffBvsS
splines for signal eff. versus background eff.
Definition MethodBase.h:655
TString fVariableTransformTypeString
Definition MethodBase.h:727
TSpline1 * fSplTrainRefB
Definition MethodBase.h:709
const TString & GetWeightFileDir() const
Definition MethodBase.h:495
virtual void SetAnalysisType(Types::EAnalysisType type)
Definition MethodBase.h:439
UInt_t GetCurrentIter()
Definition MethodBase.h:484
const TString & GetMethodName() const
Definition MethodBase.h:334
Bool_t TxtWeightsOnly() const
Definition MethodBase.h:537
void Statistics(Types::ETreeType treeType, const TString &theVarName, Double_t &, Double_t &, Double_t &, Double_t &, Double_t &, Double_t &)
calculates rms,mean, xmin, xmax of the event variable this can be either done for the variables as th...
virtual void ReadWeightsFromStream(TFile &)
Definition MethodBase.h:269
void ExitFromTraining()
Definition MethodBase.h:467
UInt_t GetNEvents() const
Definition MethodBase.h:419
Bool_t DoRegression() const
Definition MethodBase.h:441
std::vector< Float_t > * fRegressionReturnVal
Definition MethodBase.h:600
std::vector< Float_t > * fMulticlassReturnVal
Definition MethodBase.h:601
Double_t fRmsS
RMS (signal)
Definition MethodBase.h:666
Bool_t GetLine(std::istream &fin, char *buf)
reads one line from the input stream checks for certain keywords and interprets the line if keywords ...
const Event * GetEvent() const
Definition MethodBase.h:754
TString fVarTransformString
labels variable transform method
Definition MethodBase.h:672
void ProcessSetup()
process all options the "CheckForUnusedOptions" is done in an independent call, since it may be overr...
virtual std::vector< Double_t > GetMvaValues(Long64_t firstEvt=0, Long64_t lastEvt=-1, Bool_t logProgress=false)
get all the MVA values for the events of the current Data type
virtual Bool_t IsSignalLike()
uses a pre-set cut on the MVA output (SetSignalReferenceCut and SetSignalReferenceCutOrientation) for...
void Init() override=0
void RerouteTransformationHandler(TransformationHandler *fTargetTransformation)
Definition MethodBase.h:406
virtual ~MethodBase()
destructor
Bool_t HasMVAPdfs() const
Definition MethodBase.h:438
PDF * fMVAPdfS
signal MVA PDF
Definition MethodBase.h:648
void WriteMonitoringHistosToFile() const override
write special monitoring histograms to file dummy implementation here --------------—
const Ranking * CreateRanking() override=0
UInt_t fBackgroundClass
Definition MethodBase.h:693
Double_t fTestTime
Definition MethodBase.h:699
virtual Double_t GetMaximumSignificance(Double_t SignalEvents, Double_t BackgroundEvents, Double_t &optimal_significance_value) const
plot significance, , curve for given number of signal and background events; returns cut for maximum ...
virtual Double_t GetTrainingEfficiency(const TString &)
void SetWeightFileName(TString)
set the weight file name (depreciated)
DataSetInfo & DataInfo() const
Definition MethodBase.h:413
TString GetWeightFileName() const
retrieve weight file name
void SetTestTime(Double_t testTime)
Definition MethodBase.h:165
Types::EMVA fMethodType
Definition MethodBase.h:619
virtual void TestClassification()
initialization
void AddOutput(Types::ETreeType type, Types::EAnalysisType analysisType)
UInt_t GetNVariables() const
Definition MethodBase.h:348
Types::EAnalysisType fAnalysisType
Definition MethodBase.h:598
virtual void AddRegressionOutput(Types::ETreeType type)
prepare tree branch with the method's discriminating variable
void InitBase()
default initialization called by all constructors
std::vector< const std::vector< TMVA::Event * > * > fEventCollections
Definition MethodBase.h:711
virtual void GetRegressionDeviation(UInt_t tgtNum, Types::ETreeType type, Double_t &stddev, Double_t &stddev90Percent) const
void InitIPythonInteractive()
Definition MethodBase.h:458
void ReadStateFromXMLString(const char *xmlstr)
for reading from memory
Bool_t fSetupCompleted
Definition MethodBase.h:714
void MakeClass(const TString &classFileName=TString("")) const override
create reader class for method (classification only at present)
void CreateMVAPdfs()
Create PDFs of the MVA output variables.
TString GetTrainingROOTVersionString() const
calculates the ROOT version string from the training version code on the fly
virtual Double_t GetValueForRoot(Double_t)
returns efficiency as function of cut
UInt_t GetTrainingROOTVersionCode() const
Definition MethodBase.h:393
void ReadStateFromFile()
Function to write options and weights to file.
void WriteVarsToStream(std::ostream &tf, const TString &prefix="") const
write the list of variables (name, min, max) for a given data transformation method to the stream
void ReadVarsFromStream(std::istream &istr)
Read the variables (name, min, max) for a given data transformation method from the stream.
virtual void AddWeightsXMLTo(void *parent) const =0
void ReadSpectatorsFromXML(void *specnode)
read spectator info from XML
virtual const std::vector< Float_t > & GetTrainingHistory(const char *)
Definition MethodBase.h:236
const Event * fTmpEvent
Definition MethodBase.h:448
void SetNormalised(Bool_t norm)
Definition MethodBase.h:500
void SetTestvarName(const TString &v="")
Definition MethodBase.h:344
void ReadVariablesFromXML(void *varnode)
read variable info from XML
Bool_t fConstructedFromWeightFile
Definition MethodBase.h:623
Bool_t fHelp
help flag
Definition MethodBase.h:682
UInt_t GetNvar() const
Definition MethodBase.h:347
virtual std::map< TString, Double_t > OptimizeTuningParameters(TString fomType="ROCIntegral", TString fitType="FitGA")
call the Optimizer with the set of parameters and ranges that are meant to be tuned.
void SetTrainTime(Double_t trainTime)
Definition MethodBase.h:161
Double_t GetXmax(Int_t ivar) const
Definition MethodBase.h:360
virtual std::vector< Float_t > GetMulticlassTrainingEfficiency(std::vector< std::vector< Float_t > > &purity)
DataSetInfo & fDataSetInfo
Definition MethodBase.h:610
Bool_t fHasMVAPdfs
MVA Pdfs are created for this classifier.
Definition MethodBase.h:683
void WriteStateToStream(std::ostream &tf) const
general method used in writing the header of the weight files where the used variables,...
virtual Double_t GetRarity(Double_t mvaVal, Types::ESBType reftype=Types::kBackground) const
compute rarity:
virtual void SetTuneParameters(std::map< TString, Double_t > tuneParameters)
set the tuning parameters according to the argument This is just a dummy .
Double_t GetTrainTime() const
Definition MethodBase.h:162
void SetBaseDir(TDirectory *methodDir)
Definition MethodBase.h:376
void ReadStateFromStream(std::istream &tf)
read the header from the weight files of the different MVA methods
void AddVarsXMLTo(void *parent) const
write variable info to XML
void Train() override=0
Bool_t Help() const
Definition MethodBase.h:507
TSpline1 * fSplRefB
Definition MethodBase.h:706
UInt_t fIPyCurrentIter
Definition MethodBase.h:453
TransformationHandler & GetTransformationHandler(Bool_t takeReroutedIfAvailable=true)
Definition MethodBase.h:397
Double_t GetMvaValue(Double_t *errLower=nullptr, Double_t *errUpper=nullptr) override=0
Bool_t IsSilentFile() const
Definition MethodBase.h:382
Types::EMVA GetMethodType() const
Definition MethodBase.h:336
void AddTargetsXMLTo(void *parent) const
write target info to XML
Results * fResults
Definition MethodBase.h:733
void MakeClassSpecific(std::ostream &, const TString &="") const override
Definition MethodBase.h:523
Double_t fXmin
minimum (signal and background)
Definition MethodBase.h:668
PDF * fDefaultPDF
default PDF definitions
Definition MethodBase.h:647
void ReadTargetsFromXML(void *tarnode)
read target info from XML
void SetFile(TFile *file)
Definition MethodBase.h:378
void ProcessBaseOptions()
the option string is decoded, for available options see "DeclareOptions"
virtual void Reset()
Definition MethodBase.h:193
UInt_t fROOTTrainingVersion
Definition MethodBase.h:622
void ReadWeightsFromStream(std::istream &) override=0
void ReadStateFromXML(void *parent)
Double_t GetSignalReferenceCutOrientation() const
Definition MethodBase.h:364
void SetSignalReferenceCut(Double_t cut)
Definition MethodBase.h:367
virtual std::vector< Float_t > GetAllRegressionValues()
Get al regression values in one call.
std::vector< TString > * fInputVars
Definition MethodBase.h:591
void NoErrorCalc(Double_t *const err, Double_t *const errUpper)
Double_t fSignalReferenceCut
the data set information (sometimes needed)
Definition MethodBase.h:612
Double_t GetTestTime() const
Definition MethodBase.h:166
Double_t fMeanB
mean (background)
Definition MethodBase.h:665
const TransformationHandler & GetTransformationHandler(Bool_t takeReroutedIfAvailable=true) const
Definition MethodBase.h:401
void SetSignalReferenceCutOrientation(Double_t cutOrientation)
Definition MethodBase.h:368
TDirectory * fBaseDir
Definition MethodBase.h:628
Bool_t fIgnoreNegWeightsInTraining
If true, events with negative weights are not used in training.
Definition MethodBase.h:685
void WriteStateToFile() const
write options and weights to file note that each one text file for the main configuration information...
void DeclareOptions() override=0
void AddClassesXMLTo(void *parent) const
write class info to XML
const TString & GetInputLabel(Int_t i) const
Definition MethodBase.h:353
ECutOrientation GetCutOrientation() const
Definition MethodBase.h:555
Ranking * fRanking
Definition MethodBase.h:590
TrainingHistory fTrainHistory
Definition MethodBase.h:428
void SetMethodBaseDir(TDirectory *methodDir)
Definition MethodBase.h:377
virtual void AddClassifierOutput(Types::ETreeType type)
prepare tree branch with the method's discriminating variable
PDF * fMVAPdfB
background MVA PDF
Definition MethodBase.h:649
DataSet * Data() const
Definition MethodBase.h:412
void AddSpectatorsXMLTo(void *parent) const
write spectator info to XML
void SetModelPersistence(Bool_t status)
Definition MethodBase.h:385
TString fWeightFile
weight file name
Definition MethodBase.h:641
Bool_t IsNormalised() const
Definition MethodBase.h:499
const TString & GetInternalVarName(Int_t ivar) const
Definition MethodBase.h:513
const Event * GetTrainingEvent(Long64_t ievt) const
Definition MethodBase.h:774
Double_t GetSignalReferenceCut() const
Definition MethodBase.h:363
TSpline1 * fSplTrainRefS
Definition MethodBase.h:708
TSpline1 * fSplRefS
Definition MethodBase.h:705
virtual Double_t GetROCIntegral(TH1D *histS, TH1D *histB) const
calculate the area (integral) under the ROC curve as a overall quality measure of the classification
ECutOrientation fCutOrientation
Definition MethodBase.h:702
Double_t GetRMS(Int_t ivar) const
Definition MethodBase.h:358
IPythonInteractive * fInteractive
temporary dataset used when evaluating on a different data (used by MethodCategory::GetMvaValues)
Definition MethodBase.h:451
const char * GetInputTitle(Int_t i) const
Definition MethodBase.h:354
const TString & GetOriginalVarName(Int_t ivar) const
Definition MethodBase.h:514
virtual void AddMulticlassOutput(Types::ETreeType type)
prepare tree branch with the method's discriminating variable
Bool_t IsConstructedFromWeightFile() const
Definition MethodBase.h:543
virtual void CheckSetup()
check may be overridden by derived class (sometimes, eg, fitters are used which can only be implement...
Class for boosting a TMVA method.
Definition MethodBoost.h:58
Class for categorizing the phase space.
Virtual base class for combining several TMVA method.
Multivariate optimisation of signal efficiency for given background efficiency, applying rectangular ...
Definition MethodCuts.h:61
PDF wrapper for histograms; uses user-defined spline interpolation.
Definition PDF.h:63
Ranking for variables in method (implementation)
Definition Ranking.h:48
Class that is the base-class for a vector of result.
Definition Results.h:57
Root finding using Brents algorithm (translated from CERNLIB function RZERO)
Definition RootFinder.h:48
Linear interpolation of TGraph.
Definition TSpline1.h:43
Tracking data from training.
Class that contains all the data information.
const Event * Transform(const Event *) const
the transformation
Double_t GetRMS(Int_t ivar, Int_t cls=-1) const
Double_t GetMean(Int_t ivar, Int_t cls=-1) const
Double_t GetMin(Int_t ivar, Int_t cls=-1) const
Double_t GetMax(Int_t ivar, Int_t cls=-1) const
static Types & Instance()
The single instance of "Types" if existing already, or create it (Singleton)
Definition Types.cxx:70
@ kBackground
Definition Types.h:136
@ kMulticlass
Definition Types.h:129
@ kRegression
Definition Types.h:128
@ kTraining
Definition Types.h:143
const TString & GetLabel() const
const TString & GetExpression() const
const TString & GetInternalName() const
A TMultiGraph is a collection of TGraph (or derived) objects.
Definition TMultiGraph.h:34
const char * GetTitle() const override
Returns title of object.
Definition TNamed.h:50
Base class for spline implementation containing the Draw/Paint methods.
Definition TSpline.h:31
Basic string class.
Definition TString.h:138
const char * Data() const
Definition TString.h:384
A TTree represents a columnar dataset.
Definition TTree.h:89
Double_t x[n]
Definition legend1.C:17
create variable transformations