Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
TMVA::MethodCuts Class Reference

Multivariate optimisation of signal efficiency for given background efficiency, applying rectangular minimum and maximum requirements.

Also implemented is a "decorrelate/diagonalized cuts approach", which improves over the uncorrelated cuts approach by transforming linearly the input variables into a diagonal space, using the square-root of the covariance matrix.

Other optimisation criteria, such as maximising the signal significance- squared, \( \frac{S^2}{(S+B)} \), with S and B being the signal and background yields, correspond to a particular point in the optimised background rejection versus signal efficiency curve. This working point requires the knowledge of the expected yields, which is not the case in general. Note also that for rare signals, Poissonian statistics should be used, which modifies the significance criterion.

The rectangular cut of a volume in the variable space is performed using a binary tree to sort the training events. This provides a significant reduction in computing time (up to several orders of magnitudes, depending on the complexity of the problem at hand).

Technically, optimisation is achieved in TMVA by two methods:

  1. Monte Carlo generation using uniform priors for the lower cut value, and the cut width, thrown within the variable ranges.
  2. A Genetic Algorithm (GA) searches for the optimal ("fittest") cut sample. The GA is configurable by many external settings through the option string. For difficult cases (such as many variables), some tuning may be necessary to achieve satisfying results

Attempts to use Minuit fits (Simplex ot Migrad) instead have not shown superior results, and often failed due to convergence at local minima.

The tests we have performed so far showed that in generic applications, the GA is superior to MC sampling, and hence GA is the default method. It is worthwhile trying both anyway.

Decorrelated (or "diagonalized") Cuts**

See class description for Method Likelihood for a detailed explanation.

Definition at line 61 of file MethodCuts.h.

Public Member Functions

 MethodCuts (const TString &jobName, const TString &methodTitle, DataSetInfo &theData, const TString &theOption="MC:150:10000:")
 standard constructor
 
 MethodCuts (DataSetInfo &theData, const TString &theWeightFile)
 construction from weight file
 
virtual ~MethodCuts (void)
 destructor
 
void AddWeightsXMLTo (void *parent) const
 create XML description for LD classification and regression (for arbitrary number of output classes/targets)
 
void CheckSetup ()
 check may be overridden by derived class (sometimes, eg, fitters are used which can only be implemented during training phase)
 
Double_t ComputeEstimator (std::vector< Double_t > &)
 returns estimator for "cut fitness" used by GA.
 
const RankingCreateRanking ()
 
void DeclareOptions ()
 define the options (their key words) that can be set in the option string.
 
Double_t EstimatorFunction (Int_t ievt1, Int_t ievt2)
 for full event scan
 
Double_t EstimatorFunction (std::vector< Double_t > &)
 returns estimator for "cut fitness" used by GA
 
Double_t GetCuts (Double_t effS, Double_t *cutMin, Double_t *cutMax) const
 retrieve cut values for given signal efficiency assume vector of correct size !!
 
Double_t GetCuts (Double_t effS, std::vector< Double_t > &cutMin, std::vector< Double_t > &cutMax) const
 retrieve cut values for given signal efficiency
 
Double_t GetEfficiency (const TString &, Types::ETreeType, Double_t &)
 Overloaded function to create background efficiency (rejection) versus signal efficiency plot (first call of this function).
 
Double_t GetmuTransform (TTree *)
 
Double_t GetMvaValue (Double_t *err=0, Double_t *errUpper=0)
 cut evaluation: returns 1.0 if event passed, 0.0 otherwise
 
Double_t GetRarity (Double_t, Types::ESBType) const
 compute rarity:
 
Double_t GetSeparation (PDF *=0, PDF *=0) const
 compute "separation" defined as
 
Double_t GetSeparation (TH1 *, TH1 *) const
 compute "separation" defined as
 
Double_t GetSignificance (void) const
 compute significance of mean difference
 
Double_t GetTrainingEfficiency (const TString &)
 Overloaded function to create background efficiency (rejection) versus signal efficiency plot (first call of this function).
 
virtual Bool_t HasAnalysisType (Types::EAnalysisType type, UInt_t numberClasses, UInt_t numberTargets)
 Cuts can only handle classification with 2 classes.
 
void PrintCuts (Double_t effS) const
 print cuts
 
void ProcessOptions ()
 process user options.
 
virtual void ReadWeightsFromStream (std::istream &)=0
 
void ReadWeightsFromStream (std::istream &i)
 read the cuts from stream
 
virtual void ReadWeightsFromStream (TFile &)
 
void ReadWeightsFromXML (void *wghtnode)
 read coefficients from xml weight file
 
void SetTestSignalEfficiency (Double_t effS)
 
void TestClassification ()
 nothing to test
 
void Train (void)
 training method: here the cuts are optimised for the training sample
 
void WriteMonitoringHistosToFile (void) const
 write histograms and PDFs to file for monitoring purposes
 
- Public Member Functions inherited from TMVA::MethodBase
 MethodBase (const TString &jobName, Types::EMVA methodType, const TString &methodTitle, DataSetInfo &dsi, const TString &theOption="")
 standard constructor
 
 MethodBase (Types::EMVA methodType, DataSetInfo &dsi, const TString &weightFile)
 constructor used for Testing + Application of the MVA, only (no training), using given WeightFiles
 
virtual ~MethodBase ()
 destructor
 
void AddOutput (Types::ETreeType type, Types::EAnalysisType analysisType)
 
TDirectoryBaseDir () const
 returns the ROOT directory where info/histograms etc of the corresponding MVA method instance are stored
 
DataSetData () const
 
DataSetInfoDataInfo () const
 
virtual void DeclareCompatibilityOptions ()
 options that are used ONLY for the READER to ensure backward compatibility they are hence without any effect (the reader is only reading the training options that HAD been used at the training of the .xml weight file at hand
 
void DisableWriting (Bool_t setter)
 
Bool_t DoMulticlass () const
 
Bool_t DoRegression () const
 
void ExitFromTraining ()
 
Types::EAnalysisType GetAnalysisType () const
 
UInt_t GetCurrentIter ()
 
const EventGetEvent () const
 
const EventGetEvent (const TMVA::Event *ev) const
 
const EventGetEvent (Long64_t ievt) const
 
const EventGetEvent (Long64_t ievt, Types::ETreeType type) const
 
const std::vector< TMVA::Event * > & GetEventCollection (Types::ETreeType type)
 returns the event collection (i.e.
 
TFileGetFile () const
 
const TStringGetInputLabel (Int_t i) const
 
const char * GetInputTitle (Int_t i) const
 
const TStringGetInputVar (Int_t i) const
 
TMultiGraphGetInteractiveTrainingError ()
 
const TStringGetJobName () const
 
virtual Double_t GetKSTrainingVsTest (Char_t SorB, TString opt="X")
 
virtual Double_t GetMaximumSignificance (Double_t SignalEvents, Double_t BackgroundEvents, Double_t &optimal_significance_value) const
 plot significance, \( \frac{S}{\sqrt{S^2 + B^2}} \), curve for given number of signal and background events; returns cut for maximum significance also returned via reference is the maximum significance
 
UInt_t GetMaxIter ()
 
Double_t GetMean (Int_t ivar) const
 
const TStringGetMethodName () const
 
Types::EMVA GetMethodType () const
 
TString GetMethodTypeName () const
 
virtual TMatrixD GetMulticlassConfusionMatrix (Double_t effB, Types::ETreeType type)
 Construct a confusion matrix for a multiclass classifier.
 
virtual std::vector< Float_tGetMulticlassEfficiency (std::vector< std::vector< Float_t > > &purity)
 
virtual std::vector< Float_tGetMulticlassTrainingEfficiency (std::vector< std::vector< Float_t > > &purity)
 
virtual const std::vector< Float_t > & GetMulticlassValues ()
 
Double_t GetMvaValue (const TMVA::Event *const ev, Double_t *err=0, Double_t *errUpper=0)
 
const char * GetName () const
 
UInt_t GetNEvents () const
 
UInt_t GetNTargets () const
 
UInt_t GetNvar () const
 
UInt_t GetNVariables () const
 
virtual Double_t GetProba (const Event *ev)
 
virtual Double_t GetProba (Double_t mvaVal, Double_t ap_sig)
 compute likelihood ratio
 
const TString GetProbaName () const
 
virtual void GetRegressionDeviation (UInt_t tgtNum, Types::ETreeType type, Double_t &stddev, Double_t &stddev90Percent) const
 
virtual const std::vector< Float_t > & GetRegressionValues ()
 
const std::vector< Float_t > & GetRegressionValues (const TMVA::Event *const ev)
 
Double_t GetRMS (Int_t ivar) const
 
virtual Double_t GetROCIntegral (PDF *pdfS=0, PDF *pdfB=0) const
 calculate the area (integral) under the ROC curve as a overall quality measure of the classification
 
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
 
Double_t GetSignalReferenceCut () const
 
Double_t GetSignalReferenceCutOrientation () const
 
const EventGetTestingEvent (Long64_t ievt) const
 
Double_t GetTestTime () const
 
const TStringGetTestvarName () const
 
const EventGetTrainingEvent (Long64_t ievt) const
 
virtual const std::vector< Float_t > & GetTrainingHistory (const char *)
 
UInt_t GetTrainingROOTVersionCode () const
 
TString GetTrainingROOTVersionString () const
 calculates the ROOT version string from the training version code on the fly
 
UInt_t GetTrainingTMVAVersionCode () const
 
TString GetTrainingTMVAVersionString () const
 calculates the TMVA version string from the training version code on the fly
 
Double_t GetTrainTime () const
 
TransformationHandlerGetTransformationHandler (Bool_t takeReroutedIfAvailable=true)
 
const TransformationHandlerGetTransformationHandler (Bool_t takeReroutedIfAvailable=true) const
 
TString GetWeightFileName () const
 retrieve weight file name
 
Double_t GetXmax (Int_t ivar) const
 
Double_t GetXmin (Int_t ivar) const
 
Bool_t HasMVAPdfs () const
 
void InitIPythonInteractive ()
 
Bool_t IsModelPersistence () const
 
virtual Bool_t IsSignalLike ()
 uses a pre-set cut on the MVA output (SetSignalReferenceCut and SetSignalReferenceCutOrientation) for a quick determination if an event would be selected as signal or background
 
virtual Bool_t IsSignalLike (Double_t mvaVal)
 uses a pre-set cut on the MVA output (SetSignalReferenceCut and SetSignalReferenceCutOrientation) for a quick determination if an event with this mva output value would be selected as signal or background
 
Bool_t IsSilentFile () const
 
virtual void MakeClass (const TString &classFileName=TString("")) const
 create reader class for method (classification only at present)
 
TDirectoryMethodBaseDir () const
 returns the ROOT directory where all instances of the corresponding MVA method are stored
 
virtual std::map< TString, Double_tOptimizeTuningParameters (TString fomType="ROCIntegral", TString fitType="FitGA")
 call the Optimizer with the set of parameters and ranges that are meant to be tuned.
 
void PrintHelpMessage () const
 prints out method-specific help method
 
void ProcessSetup ()
 process all options the "CheckForUnusedOptions" is done in an independent call, since it may be overridden by derived class (sometimes, eg, fitters are used which can only be implemented during training phase)
 
void ReadStateFromFile ()
 Function to write options and weights to file.
 
void ReadStateFromStream (std::istream &tf)
 read the header from the weight files of the different MVA methods
 
void ReadStateFromStream (TFile &rf)
 write reference MVA distributions (and other information) to a ROOT type weight file
 
void ReadStateFromXMLString (const char *xmlstr)
 for reading from memory
 
void RerouteTransformationHandler (TransformationHandler *fTargetTransformation)
 
virtual void Reset ()
 
virtual void SetAnalysisType (Types::EAnalysisType type)
 
void SetBaseDir (TDirectory *methodDir)
 
void SetFile (TFile *file)
 
void SetMethodBaseDir (TDirectory *methodDir)
 
void SetMethodDir (TDirectory *methodDir)
 
void SetModelPersistence (Bool_t status)
 
void SetSignalReferenceCut (Double_t cut)
 
void SetSignalReferenceCutOrientation (Double_t cutOrientation)
 
void SetSilentFile (Bool_t status)
 
void SetTestTime (Double_t testTime)
 
void SetTestvarName (const TString &v="")
 
void SetTrainTime (Double_t trainTime)
 
virtual void SetTuneParameters (std::map< TString, Double_t > tuneParameters)
 set the tuning parameters according to the argument This is just a dummy .
 
void SetupMethod ()
 setup of methods
 
virtual void TestMulticlass ()
 test multiclass classification
 
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
 
bool TrainingEnded ()
 
void TrainMethod ()
 
virtual void WriteEvaluationHistosToFile (Types::ETreeType treetype)
 writes all MVA evaluation histograms to file
 
void WriteStateToFile () const
 write options and weights to file note that each one text file for the main configuration information and one ROOT file for ROOT objects are created
 
- Public Member Functions inherited from TMVA::IMethod
 IMethod ()
 
virtual ~IMethod ()
 
- Public Member Functions inherited from TMVA::Configurable
 Configurable (const TString &theOption="")
 constructor
 
virtual ~Configurable ()
 default destructor
 
void AddOptionsXMLTo (void *parent) const
 write options to XML file
 
template<class T >
void AddPreDefVal (const T &)
 
template<class T >
void AddPreDefVal (const TString &optname, const T &)
 
void CheckForUnusedOptions () const
 checks for unused options in option string
 
template<class T >
TMVA::OptionBaseDeclareOptionRef (T &ref, const TString &name, const TString &desc)
 
template<class T >
OptionBaseDeclareOptionRef (T &ref, const TString &name, const TString &desc="")
 
template<class T >
TMVA::OptionBaseDeclareOptionRef (T *&ref, Int_t size, const TString &name, const TString &desc)
 
template<class T >
OptionBaseDeclareOptionRef (T *&ref, Int_t size, const TString &name, const TString &desc="")
 
const char * GetConfigDescription () const
 
const char * GetConfigName () const
 
const TStringGetOptions () const
 
MsgLoggerLog () const
 
virtual void ParseOptions ()
 options parser
 
void PrintOptions () const
 prints out the options set in the options string and the defaults
 
void ReadOptionsFromStream (std::istream &istr)
 read option back from the weight file
 
void ReadOptionsFromXML (void *node)
 
void SetConfigDescription (const char *d)
 
void SetConfigName (const char *n)
 
void SetMsgType (EMsgType t)
 
void SetOptions (const TString &s)
 
void WriteOptionsToStream (std::ostream &o, const TString &prefix) const
 write options to output stream (e.g. in writing the MVA weight files
 
- Public Member Functions inherited from TNamed
 TNamed ()
 
 TNamed (const char *name, const char *title)
 
 TNamed (const TNamed &named)
 TNamed copy ctor.
 
 TNamed (const TString &name, const TString &title)
 
virtual ~TNamed ()
 TNamed destructor.
 
virtual void Clear (Option_t *option="")
 Set name and title to empty strings ("").
 
virtual TObjectClone (const char *newname="") const
 Make a clone of an object using the Streamer facility.
 
virtual Int_t Compare (const TObject *obj) const
 Compare two TNamed objects.
 
virtual void Copy (TObject &named) const
 Copy this to obj.
 
virtual void FillBuffer (char *&buffer)
 Encode TNamed into output buffer.
 
virtual const char * GetTitle () const
 Returns title of object.
 
virtual ULong_t Hash () const
 Return hash value for this object.
 
virtual Bool_t IsSortable () const
 
virtual void ls (Option_t *option="") const
 List TNamed name and title.
 
TNamedoperator= (const TNamed &rhs)
 TNamed assignment operator.
 
virtual void Print (Option_t *option="") const
 Print TNamed name and title.
 
virtual void SetName (const char *name)
 Set the name of the TNamed.
 
virtual void SetNameTitle (const char *name, const char *title)
 Set all the TNamed parameters (name and title).
 
virtual void SetTitle (const char *title="")
 Set the title of the TNamed.
 
virtual Int_t Sizeof () const
 Return size of the TNamed part of the TObject.
 
- Public Member Functions inherited from TObject
 TObject ()
 TObject constructor.
 
 TObject (const TObject &object)
 TObject copy ctor.
 
virtual ~TObject ()
 TObject destructor.
 
void AbstractMethod (const char *method) const
 Use this method to implement an "abstract" method that you don't want to leave purely abstract.
 
virtual void AppendPad (Option_t *option="")
 Append graphics object to current pad.
 
virtual void Browse (TBrowser *b)
 Browse object. May be overridden for another default action.
 
ULong_t CheckedHash ()
 Check and record whether this class has a consistent Hash/RecursiveRemove setup (*) and then return the regular Hash value for this object.
 
virtual const char * ClassName () const
 Returns name of class to which the object belongs.
 
virtual void Delete (Option_t *option="")
 Delete this object.
 
virtual Int_t DistancetoPrimitive (Int_t px, Int_t py)
 Computes distance from point (px,py) to the object.
 
virtual void Draw (Option_t *option="")
 Default Draw method for all objects.
 
virtual void DrawClass () const
 Draw class inheritance tree of the class to which this object belongs.
 
virtual TObjectDrawClone (Option_t *option="") const
 Draw a clone of this object in the current selected pad for instance with: gROOT->SetSelectedPad(gPad).
 
virtual void Dump () const
 Dump contents of object on stdout.
 
virtual void Error (const char *method, const char *msgfmt,...) const
 Issue error message.
 
virtual void Execute (const char *method, const char *params, Int_t *error=0)
 Execute method on this object with the given parameter string, e.g.
 
virtual void Execute (TMethod *method, TObjArray *params, Int_t *error=0)
 Execute method on this object with parameters stored in the TObjArray.
 
virtual void ExecuteEvent (Int_t event, Int_t px, Int_t py)
 Execute action corresponding to an event at (px,py).
 
virtual void Fatal (const char *method, const char *msgfmt,...) const
 Issue fatal error message.
 
virtual TObjectFindObject (const char *name) const
 Must be redefined in derived classes.
 
virtual TObjectFindObject (const TObject *obj) const
 Must be redefined in derived classes.
 
virtual Option_tGetDrawOption () const
 Get option used by the graphics system to draw this object.
 
virtual const char * GetIconName () const
 Returns mime type name of object.
 
virtual char * GetObjectInfo (Int_t px, Int_t py) const
 Returns string containing info about the object at position (px,py).
 
virtual Option_tGetOption () const
 
virtual UInt_t GetUniqueID () const
 Return the unique object id.
 
virtual Bool_t HandleTimer (TTimer *timer)
 Execute action in response of a timer timing out.
 
Bool_t HasInconsistentHash () const
 Return true is the type of this object is known to have an inconsistent setup for Hash and RecursiveRemove (i.e.
 
virtual void Info (const char *method, const char *msgfmt,...) const
 Issue info message.
 
virtual Bool_t InheritsFrom (const char *classname) const
 Returns kTRUE if object inherits from class "classname".
 
virtual Bool_t InheritsFrom (const TClass *cl) const
 Returns kTRUE if object inherits from TClass cl.
 
virtual void Inspect () const
 Dump contents of this object in a graphics canvas.
 
void InvertBit (UInt_t f)
 
Bool_t IsDestructed () const
 IsDestructed.
 
virtual Bool_t IsEqual (const TObject *obj) const
 Default equal comparison (objects are equal if they have the same address in memory).
 
virtual Bool_t IsFolder () const
 Returns kTRUE in case object contains browsable objects (like containers or lists of other objects).
 
R__ALWAYS_INLINE Bool_t IsOnHeap () const
 
R__ALWAYS_INLINE Bool_t IsZombie () const
 
void MayNotUse (const char *method) const
 Use this method to signal that a method (defined in a base class) may not be called in a derived class (in principle against good design since a child class should not provide less functionality than its parent, however, sometimes it is necessary).
 
virtual Bool_t Notify ()
 This method must be overridden to handle object notification.
 
void Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const
 Use this method to declare a method obsolete.
 
void operator delete (void *ptr)
 Operator delete.
 
void operator delete[] (void *ptr)
 Operator delete [].
 
voidoperator new (size_t sz)
 
voidoperator new (size_t sz, void *vp)
 
voidoperator new[] (size_t sz)
 
voidoperator new[] (size_t sz, void *vp)
 
TObjectoperator= (const TObject &rhs)
 TObject assignment operator.
 
virtual void Paint (Option_t *option="")
 This method must be overridden if a class wants to paint itself.
 
virtual void Pop ()
 Pop on object drawn in a pad to the top of the display list.
 
virtual Int_t Read (const char *name)
 Read contents of object with specified name from the current directory.
 
virtual void RecursiveRemove (TObject *obj)
 Recursively remove this object from a list.
 
void ResetBit (UInt_t f)
 
virtual void SaveAs (const char *filename="", Option_t *option="") const
 Save this object in the file specified by filename.
 
virtual void SavePrimitive (std::ostream &out, Option_t *option="")
 Save a primitive as a C++ statement(s) on output stream "out".
 
void SetBit (UInt_t f)
 
void SetBit (UInt_t f, Bool_t set)
 Set or unset the user status bits as specified in f.
 
virtual void SetDrawOption (Option_t *option="")
 Set drawing option for object.
 
virtual void SetUniqueID (UInt_t uid)
 Set the unique object id.
 
virtual void SysError (const char *method, const char *msgfmt,...) const
 Issue system error message.
 
R__ALWAYS_INLINE Bool_t TestBit (UInt_t f) const
 
Int_t TestBits (UInt_t f) const
 
virtual void UseCurrentStyle ()
 Set current style settings in this object This function is called when either TCanvas::UseCurrentStyle or TROOT::ForceStyle have been invoked.
 
virtual void Warning (const char *method, const char *msgfmt,...) const
 Issue warning message.
 
virtual Int_t Write (const char *name=0, Int_t option=0, Int_t bufsize=0)
 Write this object to the current directory.
 
virtual Int_t Write (const char *name=0, Int_t option=0, Int_t bufsize=0) const
 Write this object to the current directory.
 
- Public Member Functions inherited from TMVA::IFitterTarget
 IFitterTarget ()
 constructor
 
virtual ~IFitterTarget ()
 
virtual void ProgressNotifier (TString, TString)
 

Static Public Member Functions

static MethodCutsDynamicCast (IMethod *method)
 
- Static Public Member Functions inherited from TObject
static Longptr_t GetDtorOnly ()
 Return destructor only flag.
 
static Bool_t GetObjectStat ()
 Get status of object stat flag.
 
static void SetDtorOnly (void *obj)
 Set destructor only flag.
 
static void SetObjectStat (Bool_t stat)
 Turn on/off tracking of objects in the TObjectTable.
 

Static Public Attributes

static const Double_t fgMaxAbsCutVal = 1.0e30
 

Protected Member Functions

void GetHelpMessage () const
 get help message text
 
void MakeClassSpecific (std::ostream &, const TString &) const
 write specific classifier response
 
- Protected Member Functions inherited from TMVA::MethodBase
virtual std::vector< Double_tGetDataMvaValues (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
 
const TStringGetInternalVarName (Int_t ivar) const
 
virtual std::vector< Double_tGetMvaValues (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
 
const TStringGetOriginalVarName (Int_t ivar) const
 
const TStringGetWeightFileDir () const
 
Bool_t HasTrainingTree () const
 
Bool_t Help () const
 
Bool_t IgnoreEventsWithNegWeightsInTraining () const
 
Bool_t IsConstructedFromWeightFile () const
 
Bool_t IsNormalised () const
 
virtual void MakeClassSpecificHeader (std::ostream &, const TString &="") const
 
void NoErrorCalc (Double_t *const err, Double_t *const errUpper)
 
void SetNormalised (Bool_t norm)
 
void SetWeightFileDir (TString fileDir)
 set directory of weight file
 
void SetWeightFileName (TString)
 set the weight file name (depreciated)
 
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 they are or for normalised variables (in the range of 0-1) if "norm" is set to kTRUE
 
Bool_t TxtWeightsOnly () const
 
Bool_t Verbose () const
 
- Protected Member Functions inherited from TMVA::Configurable
void EnableLooseOptions (Bool_t b=kTRUE)
 
const TStringGetReferenceFile () const
 
Bool_t LooseOptionCheckingEnabled () const
 
void ResetSetFlag ()
 resets the IsSet flag for all declare options to be called before options are read from stream
 
void WriteOptionsReferenceToFile ()
 write complete options to output stream
 
- Protected Member Functions inherited from TObject
virtual void DoError (int level, const char *location, const char *fmt, va_list va) const
 Interface to ErrorHandler (protected).
 
void MakeZombie ()
 

Private Types

enum  EEffMethod { kUseEventSelection = 0 , kUsePDFs }
 
enum  EFitMethodType {
  kUseMonteCarlo = 0 , kUseGeneticAlgorithm , kUseSimulatedAnnealing , kUseMinuit ,
  kUseEventScan , kUseMonteCarloEvents
}
 
enum  EFitParameters { kNotEnforced = 0 , kForceMin , kForceMax , kForceSmart }
 

Private Member Functions

void CreateVariablePDFs (void)
 for PDF method: create efficiency reference histograms and PDFs
 
void GetEffsfromPDFs (Double_t *cutMin, Double_t *cutMax, Double_t &effS, Double_t &effB)
 compute signal and background efficiencies from PDFs for given cut sample
 
void GetEffsfromSelection (Double_t *cutMin, Double_t *cutMax, Double_t &effS, Double_t &effB)
 compute signal and background efficiencies from event counting for given cut sample
 
void Init (void)
 default initialisation called by all constructors
 
void MatchCutsToPars (std::vector< Double_t > &, Double_t **, Double_t **, Int_t ibin)
 translate the cuts into parameters (obsolete function)
 
void MatchCutsToPars (std::vector< Double_t > &, Double_t *, Double_t *)
 translates cuts into parameters
 
void MatchParsToCuts (const std::vector< Double_t > &, Double_t *, Double_t *)
 translates parameters into cuts
 
void MatchParsToCuts (Double_t *, Double_t *, Double_t *)
 

Private Attributes

TStringfAllVarsI
 
BinarySearchTreefBinaryTreeB
 
BinarySearchTreefBinaryTreeS
 
Double_t ** fCutMax
 
Double_t ** fCutMin
 
std::vector< Interval * > fCutRange
 
Double_tfCutRangeMax
 
Double_tfCutRangeMin
 
TH1fEffBvsSLocal
 
EEffMethod fEffMethod
 
TString fEffMethodS
 
Double_t fEffRef
 
Double_t fEffSMax
 
Double_t fEffSMin
 
EFitMethodType fFitMethod
 
TString fFitMethodS
 
std::vector< EFitParameters > * fFitParams
 
std::vector< Double_t > * fMeanB
 
std::vector< Double_t > * fMeanS
 
Bool_t fNegEffWarning
 
Int_t fNpar
 
TRandomfRandom
 
std::vector< Int_t > * fRangeSign
 
std::vector< Double_t > * fRmsB
 
std::vector< Double_t > * fRmsS
 
Double_t fTestSignalEff
 
Double_tfTmpCutMax
 
Double_tfTmpCutMin
 
std::vector< TH1 * > * fVarHistB
 
std::vector< TH1 * > * fVarHistB_smooth
 
std::vector< TH1 * > * fVarHistS
 
std::vector< TH1 * > * fVarHistS_smooth
 
std::vector< PDF * > * fVarPdfB
 
std::vector< PDF * > * fVarPdfS
 

Additional Inherited Members

- Public Types inherited from TMVA::MethodBase
enum  EWeightFileType { kROOT =0 , kTEXT }
 
- Public Types inherited from TObject
enum  {
  kIsOnHeap = 0x01000000 , kNotDeleted = 0x02000000 , kZombie = 0x04000000 , kInconsistent = 0x08000000 ,
  kBitMask = 0x00ffffff
}
 
enum  { kSingleKey = BIT(0) , kOverwrite = BIT(1) , kWriteDelete = BIT(2) }
 
enum  EDeprecatedStatusBits { kObjInCanvas = BIT(3) }
 
enum  EStatusBits {
  kCanDelete = BIT(0) , kMustCleanup = BIT(3) , kIsReferenced = BIT(4) , kHasUUID = BIT(5) ,
  kCannotPick = BIT(6) , kNoContextMenu = BIT(8) , kInvalidObject = BIT(13)
}
 
- Public Attributes inherited from TMVA::MethodBase
Bool_t fSetupCompleted
 
TrainingHistory fTrainHistory
 
- Protected Types inherited from TObject
enum  { kOnlyPrepStep = BIT(3) }
 
- Protected Attributes inherited from TMVA::MethodBase
Types::EAnalysisType fAnalysisType
 
UInt_t fBackgroundClass
 
bool fExitFromTraining = false
 
std::vector< TString > * fInputVars
 
IPythonInteractivefInteractive = nullptr
 temporary dataset used when evaluating on a different data (used by MethodCategory::GetMvaValues)
 
UInt_t fIPyCurrentIter = 0
 
UInt_t fIPyMaxIter = 0
 
std::vector< Float_t > * fMulticlassReturnVal
 
Int_t fNbins
 
Int_t fNbinsH
 
Int_t fNbinsMVAoutput
 
RankingfRanking
 
std::vector< Float_t > * fRegressionReturnVal
 
ResultsfResults
 
UInt_t fSignalClass
 
DataSetfTmpData = nullptr
 temporary event when testing on a different DataSet than the own one
 
const EventfTmpEvent
 
- Protected Attributes inherited from TMVA::Configurable
MsgLoggerfLogger
 
- Protected Attributes inherited from TNamed
TString fName
 
TString fTitle
 

#include <TMVA/MethodCuts.h>

Inheritance diagram for TMVA::MethodCuts:
[legend]

Member Enumeration Documentation

◆ EEffMethod

Enumerator
kUseEventSelection 
kUsePDFs 

Definition at line 157 of file MethodCuts.h.

◆ EFitMethodType

Enumerator
kUseMonteCarlo 
kUseGeneticAlgorithm 
kUseSimulatedAnnealing 
kUseMinuit 
kUseEventScan 
kUseMonteCarloEvents 

Definition at line 146 of file MethodCuts.h.

◆ EFitParameters

Enumerator
kNotEnforced 
kForceMin 
kForceMax 
kForceSmart 

Definition at line 161 of file MethodCuts.h.

Constructor & Destructor Documentation

◆ MethodCuts() [1/2]

TMVA::MethodCuts::MethodCuts ( const TString jobName,
const TString methodTitle,
DataSetInfo theData,
const TString theOption = "MC:150:10000:" 
)

standard constructor

Definition at line 129 of file MethodCuts.cxx.

◆ MethodCuts() [2/2]

TMVA::MethodCuts::MethodCuts ( DataSetInfo theData,
const TString theWeightFile 
)

construction from weight file

Definition at line 171 of file MethodCuts.cxx.

◆ ~MethodCuts()

TMVA::MethodCuts::~MethodCuts ( void  )
virtual

destructor

Definition at line 270 of file MethodCuts.cxx.

Member Function Documentation

◆ AddWeightsXMLTo()

void TMVA::MethodCuts::AddWeightsXMLTo ( void parent) const
virtual

create XML description for LD classification and regression (for arbitrary number of output classes/targets)

Implements TMVA::MethodBase.

Definition at line 1287 of file MethodCuts.cxx.

◆ CheckSetup()

void TMVA::MethodCuts::CheckSetup ( )
inlinevirtual

check may be overridden by derived class (sometimes, eg, fitters are used which can only be implemented during training phase)

Reimplemented from TMVA::MethodBase.

Definition at line 133 of file MethodCuts.h.

◆ ComputeEstimator()

Double_t TMVA::MethodCuts::ComputeEstimator ( std::vector< Double_t > &  pars)

returns estimator for "cut fitness" used by GA.

there are two requirements:

  1. the signal efficiency must be equal to the required one in the efficiency scan
  2. the background efficiency must be as small as possible

the requirement 1. has priority over 2.

Definition at line 893 of file MethodCuts.cxx.

◆ CreateRanking()

const Ranking * TMVA::MethodCuts::CreateRanking ( )
inlinevirtual

Implements TMVA::MethodBase.

Definition at line 124 of file MethodCuts.h.

◆ CreateVariablePDFs()

void TMVA::MethodCuts::CreateVariablePDFs ( void  )
private

for PDF method: create efficiency reference histograms and PDFs

Definition at line 1106 of file MethodCuts.cxx.

◆ DeclareOptions()

void TMVA::MethodCuts::DeclareOptions ( )
virtual

define the options (their key words) that can be set in the option string.

know options:

  • Method <string> Minimisation method. Available values are:
    • MC Monte Carlo <default>
    • GA Genetic Algorithm
    • SA Simulated annealing
  • EffMethod <string> Efficiency selection method. Available values are:
    • EffSel <default>
    • EffPDF
  • VarProp <string> Property of variable 1 for the MC method (taking precedence over the globale setting. The same values as for the global option are available. Variables 1..10 can be set this way
  • CutRangeMin/Max <float> user-defined ranges in which cuts are varied

Implements TMVA::MethodBase.

Definition at line 319 of file MethodCuts.cxx.

◆ DynamicCast()

static MethodCuts * TMVA::MethodCuts::DynamicCast ( IMethod method)
inlinestatic

Definition at line 74 of file MethodCuts.h.

◆ EstimatorFunction() [1/2]

Double_t TMVA::MethodCuts::EstimatorFunction ( Int_t  ievt1,
Int_t  ievt2 
)

for full event scan

Definition at line 834 of file MethodCuts.cxx.

◆ EstimatorFunction() [2/2]

Double_t TMVA::MethodCuts::EstimatorFunction ( std::vector< Double_t > &  pars)
virtual

returns estimator for "cut fitness" used by GA

Implements TMVA::IFitterTarget.

Definition at line 878 of file MethodCuts.cxx.

◆ GetCuts() [1/2]

Double_t TMVA::MethodCuts::GetCuts ( Double_t  effS,
Double_t cutMin,
Double_t cutMax 
) const

retrieve cut values for given signal efficiency assume vector of correct size !!

Definition at line 536 of file MethodCuts.cxx.

◆ GetCuts() [2/2]

Double_t TMVA::MethodCuts::GetCuts ( Double_t  effS,
std::vector< Double_t > &  cutMin,
std::vector< Double_t > &  cutMax 
) const

retrieve cut values for given signal efficiency

Definition at line 551 of file MethodCuts.cxx.

◆ GetEfficiency()

Double_t TMVA::MethodCuts::GetEfficiency ( const TString theString,
Types::ETreeType  type,
Double_t effSerr 
)
virtual

Overloaded function to create background efficiency (rejection) versus signal efficiency plot (first call of this function).

The function returns the signal efficiency at background efficiency indicated in theString

"theString" must have two entries:

  • [0]: "Efficiency"
  • [1]: the value of background efficiency at which the signal efficiency is to be returned

Reimplemented from TMVA::MethodBase.

Definition at line 1555 of file MethodCuts.cxx.

◆ GetEffsfromPDFs()

void TMVA::MethodCuts::GetEffsfromPDFs ( Double_t cutMin,
Double_t cutMax,
Double_t effS,
Double_t effB 
)
private

compute signal and background efficiencies from PDFs for given cut sample

Definition at line 1023 of file MethodCuts.cxx.

◆ GetEffsfromSelection()

void TMVA::MethodCuts::GetEffsfromSelection ( Double_t cutMin,
Double_t cutMax,
Double_t effS,
Double_t effB 
)
private

compute signal and background efficiencies from event counting for given cut sample

Definition at line 1050 of file MethodCuts.cxx.

◆ GetHelpMessage()

void TMVA::MethodCuts::GetHelpMessage ( ) const
protectedvirtual

get help message text

typical length of text line: "|--------------------------------------------------------------|"

Implements TMVA::IMethod.

Definition at line 1719 of file MethodCuts.cxx.

◆ GetmuTransform()

Double_t TMVA::MethodCuts::GetmuTransform ( TTree )
inline

Definition at line 103 of file MethodCuts.h.

◆ GetMvaValue()

Double_t TMVA::MethodCuts::GetMvaValue ( Double_t err = 0,
Double_t errUpper = 0 
)
virtual

cut evaluation: returns 1.0 if event passed, 0.0 otherwise

Implements TMVA::MethodBase.

Definition at line 432 of file MethodCuts.cxx.

◆ GetRarity()

Double_t TMVA::MethodCuts::GetRarity ( Double_t  mvaVal,
Types::ESBType  reftype 
) const
inlinevirtual

compute rarity:

\[ R(x) = \int_{[-\infty..x]} { PDF(x') dx' } \]

where PDF(x) is the PDF of the classifier's signal or background distribution

Reimplemented from TMVA::MethodBase.

Definition at line 108 of file MethodCuts.h.

◆ GetSeparation() [1/2]

Double_t TMVA::MethodCuts::GetSeparation ( PDF pdfS = 0,
PDF pdfB = 0 
) const
inlinevirtual

compute "separation" defined as

\[ <s2> = \frac{1}{2} \int_{-\infty}^{+\infty} { \frac{(S(x) - B(x))^2}{(S(x) + B(x))} dx } \]

Reimplemented from TMVA::MethodBase.

Definition at line 101 of file MethodCuts.h.

◆ GetSeparation() [2/2]

Double_t TMVA::MethodCuts::GetSeparation ( TH1 histoS,
TH1 histoB 
) const
inlinevirtual

compute "separation" defined as

\[ <s2> = \frac{1}{2} \int_{-\infty}^{+\infty} { \frac{(S(x) - B(x))^2}{(S(x) + B(x))} dx } \]

Reimplemented from TMVA::MethodBase.

Definition at line 100 of file MethodCuts.h.

◆ GetSignificance()

Double_t TMVA::MethodCuts::GetSignificance ( void  ) const
inlinevirtual

compute significance of mean difference

\[ significance = \frac{|<S> - <B>|}{\sqrt{RMS_{S2} + RMS_{B2}}} \]

Reimplemented from TMVA::MethodBase.

Definition at line 102 of file MethodCuts.h.

◆ GetTrainingEfficiency()

Double_t TMVA::MethodCuts::GetTrainingEfficiency ( const TString theString)
virtual

Overloaded function to create background efficiency (rejection) versus signal efficiency plot (first call of this function).

The function returns the signal efficiency at background efficiency indicated in theString

"theString" must have two entries:

  • [0]: "Efficiency"
  • [1]: the value of background efficiency at which the signal efficiency is to be returned

Reimplemented from TMVA::MethodBase.

Definition at line 1442 of file MethodCuts.cxx.

◆ HasAnalysisType()

Bool_t TMVA::MethodCuts::HasAnalysisType ( Types::EAnalysisType  type,
UInt_t  numberClasses,
UInt_t  numberTargets 
)
virtual

Cuts can only handle classification with 2 classes.

Implements TMVA::IMethod.

Definition at line 211 of file MethodCuts.cxx.

◆ Init()

void TMVA::MethodCuts::Init ( void  )
privatevirtual

default initialisation called by all constructors

Implements TMVA::MethodBase.

Definition at line 220 of file MethodCuts.cxx.

◆ MakeClassSpecific()

void TMVA::MethodCuts::MakeClassSpecific ( std::ostream &  fout,
const TString className 
) const
protectedvirtual

write specific classifier response

Reimplemented from TMVA::MethodBase.

Definition at line 1707 of file MethodCuts.cxx.

◆ MatchCutsToPars() [1/2]

void TMVA::MethodCuts::MatchCutsToPars ( std::vector< Double_t > &  pars,
Double_t **  cutMinAll,
Double_t **  cutMaxAll,
Int_t  ibin 
)
private

translate the cuts into parameters (obsolete function)

Definition at line 987 of file MethodCuts.cxx.

◆ MatchCutsToPars() [2/2]

void TMVA::MethodCuts::MatchCutsToPars ( std::vector< Double_t > &  pars,
Double_t cutMin,
Double_t cutMax 
)
private

translates cuts into parameters

Definition at line 1009 of file MethodCuts.cxx.

◆ MatchParsToCuts() [1/2]

void TMVA::MethodCuts::MatchParsToCuts ( const std::vector< Double_t > &  pars,
Double_t cutMin,
Double_t cutMax 
)
private

translates parameters into cuts

Definition at line 974 of file MethodCuts.cxx.

◆ MatchParsToCuts() [2/2]

void TMVA::MethodCuts::MatchParsToCuts ( Double_t ,
Double_t ,
Double_t  
)
private

◆ PrintCuts()

void TMVA::MethodCuts::PrintCuts ( Double_t  effS) const

print cuts

Definition at line 465 of file MethodCuts.cxx.

◆ ProcessOptions()

void TMVA::MethodCuts::ProcessOptions ( )
virtual

process user options.

sanity check, do not allow the input variables to be normalised, because this only creates problems when interpreting the cuts

Implements TMVA::MethodBase.

Definition at line 363 of file MethodCuts.cxx.

◆ ReadWeightsFromStream() [1/3]

virtual void TMVA::MethodBase::ReadWeightsFromStream ( std::istream &  )
virtual

Implements TMVA::MethodBase.

◆ ReadWeightsFromStream() [2/3]

void TMVA::MethodCuts::ReadWeightsFromStream ( std::istream &  i)
virtual

read the cuts from stream

Implements TMVA::MethodBase.

Definition at line 1217 of file MethodCuts.cxx.

◆ ReadWeightsFromStream() [3/3]

virtual void TMVA::MethodBase::ReadWeightsFromStream ( TFile )
inlinevirtual

Reimplemented from TMVA::MethodBase.

Definition at line 266 of file MethodBase.h.

◆ ReadWeightsFromXML()

void TMVA::MethodCuts::ReadWeightsFromXML ( void wghtnode)
virtual

read coefficients from xml weight file

Implements TMVA::MethodBase.

Definition at line 1327 of file MethodCuts.cxx.

◆ SetTestSignalEfficiency()

void TMVA::MethodCuts::SetTestSignalEfficiency ( Double_t  effS)
inline

Definition at line 116 of file MethodCuts.h.

◆ TestClassification()

void TMVA::MethodCuts::TestClassification ( )
virtual

nothing to test

Reimplemented from TMVA::MethodBase.

Definition at line 827 of file MethodCuts.cxx.

◆ Train()

void TMVA::MethodCuts::Train ( void  )
virtual

training method: here the cuts are optimised for the training sample

Implements TMVA::MethodBase.

Definition at line 578 of file MethodCuts.cxx.

◆ WriteMonitoringHistosToFile()

void TMVA::MethodCuts::WriteMonitoringHistosToFile ( void  ) const
virtual

write histograms and PDFs to file for monitoring purposes

Reimplemented from TMVA::MethodBase.

Definition at line 1411 of file MethodCuts.cxx.

Member Data Documentation

◆ fAllVarsI

TString* TMVA::MethodCuts::fAllVarsI
private

Definition at line 188 of file MethodCuts.h.

◆ fBinaryTreeB

BinarySearchTree* TMVA::MethodCuts::fBinaryTreeB
private

Definition at line 181 of file MethodCuts.h.

◆ fBinaryTreeS

BinarySearchTree* TMVA::MethodCuts::fBinaryTreeS
private

Definition at line 180 of file MethodCuts.h.

◆ fCutMax

Double_t** TMVA::MethodCuts::fCutMax
private

Definition at line 185 of file MethodCuts.h.

◆ fCutMin

Double_t** TMVA::MethodCuts::fCutMin
private

Definition at line 184 of file MethodCuts.h.

◆ fCutRange

std::vector<Interval*> TMVA::MethodCuts::fCutRange
private

Definition at line 177 of file MethodCuts.h.

◆ fCutRangeMax

Double_t* TMVA::MethodCuts::fCutRangeMax
private

Definition at line 176 of file MethodCuts.h.

◆ fCutRangeMin

Double_t* TMVA::MethodCuts::fCutRangeMin
private

Definition at line 175 of file MethodCuts.h.

◆ fEffBvsSLocal

TH1* TMVA::MethodCuts::fEffBvsSLocal
private

Definition at line 202 of file MethodCuts.h.

◆ fEffMethod

EEffMethod TMVA::MethodCuts::fEffMethod
private

Definition at line 170 of file MethodCuts.h.

◆ fEffMethodS

TString TMVA::MethodCuts::fEffMethodS
private

Definition at line 169 of file MethodCuts.h.

◆ fEffRef

Double_t TMVA::MethodCuts::fEffRef
private

Definition at line 192 of file MethodCuts.h.

◆ fEffSMax

Double_t TMVA::MethodCuts::fEffSMax
private

Definition at line 174 of file MethodCuts.h.

◆ fEffSMin

Double_t TMVA::MethodCuts::fEffSMin
private

Definition at line 173 of file MethodCuts.h.

◆ fFitMethod

EFitMethodType TMVA::MethodCuts::fFitMethod
private

Definition at line 168 of file MethodCuts.h.

◆ fFitMethodS

TString TMVA::MethodCuts::fFitMethodS
private

Definition at line 167 of file MethodCuts.h.

◆ fFitParams

std::vector<EFitParameters>* TMVA::MethodCuts::fFitParams
private

Definition at line 171 of file MethodCuts.h.

◆ fgMaxAbsCutVal

const Double_t TMVA::MethodCuts::fgMaxAbsCutVal = 1.0e30
static

Definition at line 130 of file MethodCuts.h.

◆ fMeanB

std::vector<Double_t>* TMVA::MethodCuts::fMeanB
private

Definition at line 198 of file MethodCuts.h.

◆ fMeanS

std::vector<Double_t>* TMVA::MethodCuts::fMeanS
private

Definition at line 197 of file MethodCuts.h.

◆ fNegEffWarning

Bool_t TMVA::MethodCuts::fNegEffWarning
private

Definition at line 213 of file MethodCuts.h.

◆ fNpar

Int_t TMVA::MethodCuts::fNpar
private

Definition at line 191 of file MethodCuts.h.

◆ fRandom

TRandom* TMVA::MethodCuts::fRandom
private

Definition at line 194 of file MethodCuts.h.

◆ fRangeSign

std::vector<Int_t>* TMVA::MethodCuts::fRangeSign
private

Definition at line 193 of file MethodCuts.h.

◆ fRmsB

std::vector<Double_t>* TMVA::MethodCuts::fRmsB
private

Definition at line 200 of file MethodCuts.h.

◆ fRmsS

std::vector<Double_t>* TMVA::MethodCuts::fRmsS
private

Definition at line 199 of file MethodCuts.h.

◆ fTestSignalEff

Double_t TMVA::MethodCuts::fTestSignalEff
private

Definition at line 172 of file MethodCuts.h.

◆ fTmpCutMax

Double_t* TMVA::MethodCuts::fTmpCutMax
private

Definition at line 187 of file MethodCuts.h.

◆ fTmpCutMin

Double_t* TMVA::MethodCuts::fTmpCutMin
private

Definition at line 186 of file MethodCuts.h.

◆ fVarHistB

std::vector<TH1*>* TMVA::MethodCuts::fVarHistB
private

Definition at line 206 of file MethodCuts.h.

◆ fVarHistB_smooth

std::vector<TH1*>* TMVA::MethodCuts::fVarHistB_smooth
private

Definition at line 208 of file MethodCuts.h.

◆ fVarHistS

std::vector<TH1*>* TMVA::MethodCuts::fVarHistS
private

Definition at line 205 of file MethodCuts.h.

◆ fVarHistS_smooth

std::vector<TH1*>* TMVA::MethodCuts::fVarHistS_smooth
private

Definition at line 207 of file MethodCuts.h.

◆ fVarPdfB

std::vector<PDF*>* TMVA::MethodCuts::fVarPdfB
private

Definition at line 210 of file MethodCuts.h.

◆ fVarPdfS

std::vector<PDF*>* TMVA::MethodCuts::fVarPdfS
private

Definition at line 209 of file MethodCuts.h.

Libraries for TMVA::MethodCuts:

The documentation for this class was generated from the following files: