ROOT logo
ROOT » TMVA » TMVA::MethodPDERS

class TMVA::MethodPDERS: public TMVA::MethodBase


/* This is a generalization of the above Likelihood methods to Nvar dimensions, where Nvar is the number of input variables used in the MVA. If the multi-dimensional probability density functions (PDFs) for signal and background were known, this method contains the entire physical information, and is therefore optimal. Usually, kernel estimation methods are used to approximate the PDFs using the events from the training sample.

A very simple probability density estimator (PDE) has been suggested in hep-ex/0211019. The PDE for a given test event is obtained from counting the (normalized) number of signal and background (training) events that occur in the "vicinity" of the test event. The volume that describes "vicinity" is user-defined. A search method based on binary-trees is used to effectively reduce the selection time for the range search. Three different volume definitions are optional:

  • MinMax: the volume is defined in each dimension with respect to the full variable range found in the training sample.
  • RMS: the volume is defined in each dimensions with respect to the RMS estimated from the training sample.
  • Adaptive: a volume element is defined in each dimensions with respect to the RMS estimated from the training sample. The overall scale of the volume element is then determined for each event so that the total number of events confined in the volume be within a user-defined range.

The adaptive range search is used by default.

Function Members (Methods)

public:
virtual~MethodPDERS()
voidTObject::AbstractMethod(const char* method) const
voidTMVA::Configurable::AddOptionsXMLTo(void* parent) const
voidTMVA::MethodBase::AddOutput(TMVA::Types::ETreeType type, TMVA::Types::EAnalysisType analysisType)
virtual voidAddWeightsXMLTo(void* parent) const
virtual voidTObject::AppendPad(Option_t* option = "")
TDirectory*TMVA::MethodBase::BaseDir() const
virtual voidTObject::Browse(TBrowser* b)
voidTMVA::Configurable::CheckForUnusedOptions() const
virtual voidTMVA::MethodBase::CheckSetup()
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTObject::Compare(const TObject* obj) const
TMVA::ConfigurableTMVA::Configurable::Configurable(const TString& theOption = "")
virtual voidTObject::Copy(TObject& object) const
TMVA::DataSet*TMVA::MethodBase::Data() const
TMVA::DataSetInfo&TMVA::MethodBase::DataInfo() const
virtual voidTMVA::MethodBase::DeclareCompatibilityOptions()
virtual voidTObject::Delete(Option_t* option = "")MENU
voidTMVA::MethodBase::DisableWriting(Bool_t setter)
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
Bool_tTMVA::MethodBase::DoRegression() const
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
TMVA::Types::EAnalysisTypeTMVA::MethodBase::GetAnalysisType() const
const char*TMVA::Configurable::GetConfigDescription() const
const char*TMVA::Configurable::GetConfigName() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual Double_tTMVA::MethodBase::GetEfficiency(const TString&, TMVA::Types::ETreeType, Double_t& err)
const TMVA::Event*TMVA::MethodBase::GetEvent() const
const TMVA::Event*TMVA::MethodBase::GetEvent(const TMVA::Event* ev) const
const TMVA::Event*TMVA::MethodBase::GetEvent(Long64_t ievt) const
const TMVA::Event*TMVA::MethodBase::GetEvent(Long64_t ievt, TMVA::Types::ETreeType type) const
const vector<TMVA::Event*>&TMVA::MethodBase::GetEventCollection(TMVA::Types::ETreeType type)
virtual const char*TObject::GetIconName() const
const TString&TMVA::MethodBase::GetInputLabel(Int_t i) const
const TString&TMVA::MethodBase::GetInputTitle(Int_t i) const
const TString&TMVA::MethodBase::GetInputVar(Int_t i) const
const TString&TMVA::MethodBase::GetJobName() const
virtual Double_tTMVA::MethodBase::GetMaximumSignificance(Double_t SignalEvents, Double_t BackgroundEvents, Double_t& optimal_significance_value) const
Double_tTMVA::MethodBase::GetMean(Int_t ivar) const
const TString&TMVA::MethodBase::GetMethodName() const
TMVA::Types::EMVATMVA::MethodBase::GetMethodType() const
TStringTMVA::MethodBase::GetMethodTypeName() const
virtual Double_tGetMvaValue(Double_t* err = 0)
virtual const char*TMVA::MethodBase::GetName() const
UInt_tTMVA::MethodBase::GetNEvents() const
UInt_tTMVA::MethodBase::GetNTargets() const
UInt_tTMVA::MethodBase::GetNvar() const
UInt_tTMVA::MethodBase::GetNVariables() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
const TString&TMVA::Configurable::GetOptions() const
virtual Double_tTMVA::MethodBase::GetProba(Double_t mvaVal, Double_t ap_sig)
const TStringTMVA::MethodBase::GetProbaName() const
virtual Double_tTMVA::MethodBase::GetRarity(Double_t mvaVal, TMVA::Types::ESBType reftype = Types::kBackground) const
virtual const vector<Float_t>&GetRegressionValues()
Double_tTMVA::MethodBase::GetRMS(Int_t ivar) const
virtual Double_tTMVA::MethodBase::GetROCIntegral(TMVA::PDF* pdfS = 0, TMVA::PDF* pdfB = 0) const
virtual Double_tTMVA::MethodBase::GetSeparation(TH1*, TH1*) const
virtual Double_tTMVA::MethodBase::GetSeparation(TMVA::PDF* pdfS = 0, TMVA::PDF* pdfB = 0) const
Double_tTMVA::MethodBase::GetSignalReferenceCut() const
virtual Double_tTMVA::MethodBase::GetSignificance() const
const TMVA::Event*TMVA::MethodBase::GetTestingEvent(Long64_t ievt) const
Double_tTMVA::MethodBase::GetTestTime() const
const TString&TMVA::MethodBase::GetTestvarName() const
virtual const char*TObject::GetTitle() const
virtual Double_tTMVA::MethodBase::GetTrainingEfficiency(const TString&)
const TMVA::Event*TMVA::MethodBase::GetTrainingEvent(Long64_t ievt) const
UInt_tTMVA::MethodBase::GetTrainingROOTVersionCode() const
TStringTMVA::MethodBase::GetTrainingROOTVersionString() const
UInt_tTMVA::MethodBase::GetTrainingTMVAVersionCode() const
TStringTMVA::MethodBase::GetTrainingTMVAVersionString() const
Double_tTMVA::MethodBase::GetTrainTime() const
TMVA::TransformationHandler&TMVA::MethodBase::GetTransformationHandler()
const TMVA::TransformationHandler&TMVA::MethodBase::GetTransformationHandler() const
virtual UInt_tTObject::GetUniqueID() const
Double_tGetVolumeContentForRoot(Double_t)
TStringTMVA::MethodBase::GetWeightFileName() const
Double_tTMVA::MethodBase::GetXmax(Int_t ivar) const
Double_tTMVA::MethodBase::GetXmin(Int_t ivar) const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual Bool_tHasAnalysisType(TMVA::Types::EAnalysisType type, UInt_t numberClasses, UInt_t numberTargets)
virtual ULong_tTObject::Hash() const
Bool_tTMVA::MethodBase::HasMVAPdfs() const
static Double_tIGetVolumeContentForRoot(Double_t)
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTMVA::MethodBase::IsSignalLike()
virtual Bool_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTObject::ls(Option_t* option = "") const
virtual voidTMVA::MethodBase::MakeClass(const TString& classFileName = TString("")) const
voidTObject::MayNotUse(const char* method) const
TDirectory*TMVA::MethodBase::MethodBaseDir() const
TMVA::MethodPDERSMethodPDERS(TMVA::DataSetInfo& theData, const TString& theWeightFile, TDirectory* theTargetDir = NULL)
TMVA::MethodPDERSMethodPDERS(const TString& jobName, const TString& methodTitle, TMVA::DataSetInfo& theData, const TString& theOption, TDirectory* theTargetDir = 0)
virtual Bool_tTMVA::MethodBase::MonitorBoost(TMVA::MethodBoost*)
virtual Bool_tTObject::Notify()
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
TMVA::IMethod&TMVA::IMethod::operator=(const TMVA::IMethod&)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTMVA::Configurable::ParseOptions()
virtual voidTObject::Pop()
virtual voidTObject::Print(Option_t* option = "") const
virtual voidTMVA::MethodBase::PrintHelpMessage() const
voidTMVA::Configurable::PrintOptions() const
voidTMVA::MethodBase::ProcessSetup()
virtual Int_tTObject::Read(const char* name)
voidTMVA::Configurable::ReadOptionsFromStream(istream& istr)
voidTMVA::Configurable::ReadOptionsFromXML(void* node)
voidTMVA::MethodBase::ReadStateFromFile()
virtual voidReadWeightsFromStream(istream& istr)
virtual voidReadWeightsFromStream(TFile& istr)
virtual voidReadWeightsFromXML(void* wghtnode)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
virtual voidTMVA::MethodBase::SetAnalysisType(TMVA::Types::EAnalysisType type)
voidTMVA::MethodBase::SetBaseDir(TDirectory* methodDir)
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidTMVA::Configurable::SetConfigDescription(const char* d)
voidTMVA::Configurable::SetConfigName(const char* n)
virtual voidTMVA::MethodBase::SetCurrentEvent(Long64_t ievt) const
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidTMVA::MethodBase::SetMethodBaseDir(TDirectory* methodDir)
voidTMVA::MethodBase::SetMethodDir(TDirectory* methodDir)
voidTMVA::Configurable::SetMsgType(TMVA::EMsgType t)
static voidTObject::SetObjectStat(Bool_t stat)
voidTMVA::Configurable::SetOptions(const TString& s)
voidTMVA::MethodBase::SetSignalReferenceCut(Double_t cut)
voidTMVA::MethodBase::SetTestTime(Double_t testTime)
voidTMVA::MethodBase::SetTestvarName(const TString& v = "")
voidTMVA::MethodBase::SetTrainTime(Double_t trainTime)
virtual voidTObject::SetUniqueID(UInt_t uid)
voidTMVA::MethodBase::SetupMethod()
virtual voidShowMembers(TMemberInspector& insp, char* parent)
virtual voidStreamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTMVA::MethodBase::TestClassification()
virtual voidTMVA::MethodBase::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, TMVA::Types::ETreeType type)
static TMVA::MethodPDERS*ThisPDERS()
virtual voidTrain()
voidTMVA::MethodBase::TrainMethod()
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
virtual voidTMVA::MethodBase::WriteEvaluationHistosToFile(TMVA::Types::ETreeType treetype)
virtual voidTMVA::MethodBase::WriteMonitoringHistosToFile() const
voidTMVA::Configurable::WriteOptionsToStream(ostream& o, const TString& prefix) const
voidTMVA::MethodBase::WriteStateToFile() const
voidWriteWeightsToStream(TFile& rf) const
protected:
Double_tApplyKernelFunction(Double_t normalized_distance)
Double_tCKernelEstimate(const TMVA::Event&, vector<const TMVA::BinarySearchTreeNode*,allocator<const TMVA::BinarySearchTreeNode*> >&, TMVA::Volume&)
virtual const TMVA::Ranking*CreateRanking()
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTMVA::Configurable::EnableLooseOptions(Bool_t b = kTRUE)
TMVA::BinarySearchTree*GetBinaryTree() const
virtual voidGetHelpMessage() const
const TString&TMVA::MethodBase::GetInternalVarName(Int_t ivar) const
Double_tGetNormalizedDistance(const TMVA::Event& base_event, const TMVA::BinarySearchTreeNode& sample_event, Double_t* dim_normalization)
const TString&TMVA::MethodBase::GetOriginalVarName(Int_t ivar) const
const TString&TMVA::Configurable::GetReferenceFile() const
static TMVA::MethodBase*TMVA::MethodBase::GetThisBase()
Float_tTMVA::MethodBase::GetTWeight(const TMVA::Event* ev) const
const TString&TMVA::MethodBase::GetWeightFileDir() const
Bool_tTMVA::MethodBase::HasTrainingTree() const
Bool_tTMVA::MethodBase::Help() const
Bool_tTMVA::MethodBase::IgnoreEventsWithNegWeightsInTraining() const
Bool_tTMVA::MethodBase::IsConstructedFromWeightFile() const
Bool_tTMVA::MethodBase::IsNormalised() const
Double_tKernelNormalization(Double_t pdf)
Double_tLanczosFilter(Int_t level, Double_t x)
TMVA::MsgLogger&TMVA::Configurable::Log() const
Bool_tTMVA::Configurable::LooseOptionCheckingEnabled() const
virtual voidMakeClassSpecific(ostream&, const TString&) const
virtual voidTMVA::MethodBase::MakeClassSpecificHeader(ostream&, const TString& = "") const
voidTObject::MakeZombie()
Double_tNormSinc(Double_t x)
voidTMVA::Configurable::ResetSetFlag()
voidRKernelEstimate(const TMVA::Event&, vector<const TMVA::BinarySearchTreeNode*,allocator<const TMVA::BinarySearchTreeNode*> >&, TMVA::Volume&, vector<Float_t>* pdfSum)
voidTMVA::MethodBase::SetNormalised(Bool_t norm)
voidTMVA::MethodBase::SetWeightFileDir(TString fileDir)
voidTMVA::MethodBase::SetWeightFileName(TString)
voidTMVA::MethodBase::Statistics(TMVA::Types::ETreeType treeType, const TString& theVarName, Double_t&, Double_t&, Double_t&, Double_t&, Double_t&, Double_t&)
Bool_tTMVA::MethodBase::TxtWeightsOnly() const
Bool_tTMVA::MethodBase::Verbose() const
voidTMVA::Configurable::WriteOptionsReferenceToFile()
private:
voidCalcAverages()
voidCreateBinarySearchTree(TMVA::Types::ETreeType type)
Double_tCRScalc(const TMVA::Event&)
virtual voidDeclareOptions()
Float_tGetError(Float_t countS, Float_t countB, Float_t sumW2S, Float_t sumW2B) const
voidGetSample(const TMVA::Event& e, vector<const TMVA::BinarySearchTreeNode*,allocator<const TMVA::BinarySearchTreeNode*> >& events, TMVA::Volume* volume)
virtual voidInit()
virtual voidProcessOptions()
voidRRScalc(const TMVA::Event&, vector<Float_t>* count)
voidSetVolumeElement()
voidUpdateThis()

Data Members

public:
enum EVolumeRangeMode { kUnsupported
kMinMax
kRMS
kAdaptive
kUnscaled
kkNN
};
enum EKernelEstimator { kBox
kSphere
kTeepee
kGauss
kSinc3
kSinc5
kSinc7
kSinc9
kSinc11
kLanczos2
kLanczos3
kLanczos5
kLanczos8
kTrim
};
enum TMVA::MethodBase::EWeightFileType { kROOT
kTEXT
};
enum TMVA::MethodBase::ECutOrientation { kNegative
kPositive
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
public:
Bool_tTMVA::MethodBase::fSetupCompletedis method setup
const TMVA::Event*TMVA::MethodBase::fTmpEvent! temporary event when testing on a different DataSet than the own one
protected:
TMVA::Types::EAnalysisTypeTMVA::MethodBase::fAnalysisTypemethod-mode : true --> regression, false --> classification
UInt_tTMVA::MethodBase::fBackgroundClassindex of the Background-class
Int_tfFcnCallnumber of external function calls (RootFinder)
TMVA::Volume*fHelpVolumeauxiliary variable
vector<TString>*TMVA::MethodBase::fInputVarsvector of input variables used in MVA
Int_tTMVA::MethodBase::fNbinsnumber of bins in representative histograms
Int_tTMVA::MethodBase::fNbinsHnumber of bins in evaluation histograms
TMVA::Ranking*TMVA::MethodBase::fRankingpointer to ranking object (created by derived classifiers)
vector<Float_t>*TMVA::MethodBase::fRegressionReturnValholds the return-value for the regression
UInt_tTMVA::MethodBase::fSignalClassindex of the Signal-class
private:
vector<Float_t>fAverageRMSaverage RMS of signal and background
TMVA::BinarySearchTree*fBinaryTreebinary tree
vector<Float_t>*fDeltasize of volume
Float_tfDeltaFracfraction of RMS
Double_tfGaussSigmasize of Gauss in adaptive volume
Double_tfGaussSigmaNormsize of Gauss in adaptive volume (normalised to dimensions)
Float_tfInitialScaleinitial scale for adaptive volume
Bool_tfInitializedVolumeEleis volume element initialized ?
TMVA::MethodPDERS::EKernelEstimatorfKernelEstimator
TStringfKernelStringoption kernel estimator
Float_tfMaxVIterationsmaximum number of iterations to adapt volume size
Double_tfMax_distancemaximum distance
Float_tfNEventsMaxmaximum number of events in adaptive volume
Float_tfNEventsMinminimum number of events in adaptive volume
Double_tfNRegOutnumber of output dimensions for regression
Bool_tfNormTreebinary-search tree is normalised
Bool_tfPrintedprint
Float_tfScaleBweight for background events
Float_tfScaleSweight for signal events
vector<Float_t>*fShiftvolume center
TMVA::MethodPDERS::EVolumeRangeModefVRangeMode
TStringfVolumeRangeoption volume range
static TMVA::MethodPDERS*fgThisPDERSthis pointer (required by root finder)
Int_tfkNNMaxmax number of events in kNN tree
Int_tfkNNMinmin number of events in kNN tree

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

MethodPDERS(const TString& jobName, const TString& methodTitle, TMVA::DataSetInfo& theData, const TString& theOption, TDirectory* theTargetDir = 0)
 standard constructor for the PDERS method
MethodPDERS(TMVA::DataSetInfo& theData, const TString& theWeightFile, TDirectory* theTargetDir = NULL)
 construct MethodPDERS through from file
Bool_t HasAnalysisType(TMVA::Types::EAnalysisType type, UInt_t numberClasses, UInt_t numberTargets)
 PDERS can handle classification with 2 classes and regression with one or more regression-targets
void Init( void )
 default initialisation routine called by all constructors
~MethodPDERS( void )
 destructor
void DeclareOptions()
 define the options (their key words) that can be set in the option string
 know options:
 VolumeRangeMode   <string>  Method to determine volume range
    available values are:        MinMax
                                 Unscaled
                                 RMS
                                 kNN
                                 Adaptive <default>

 KernelEstimator   <string>  Kernel estimation function
    available values are:        Box <default>
                                 Sphere
                                 Teepee
                                 Gauss
                                 Sinc3
                                 Sinc5
                                 Sinc7
                                 Sinc9
                                 Sinc11
                                 Lanczos2
                                 Lanczos3
                                 Lanczos5
                                 Lanczos8
                                 Trim

 DeltaFrac         <float>   Ratio of #EventsMin/#EventsMax for MinMax and RMS volume range
 NEventsMin        <int>     Minimum number of events for adaptive volume range
 NEventsMax        <int>     Maximum number of events for adaptive volume range
 MaxVIterations    <int>     Maximum number of iterations for adaptive volume range
 InitialScale      <float>   Initial scale for adaptive volume range
 GaussSigma        <float>   Width with respect to the volume size of Gaussian kernel estimator
void ProcessOptions()
 process the options specified by the user
void Train( void )
 this is a dummy training: the preparation work to do is the construction
 of the binary tree as a pointer chain. It is easier to directly save the
 trainingTree in the weight file, and to rebuild the binary tree in the
 test phase from scratch
Double_t GetMvaValue(Double_t* err = 0)
 init the size of a volume element using a defined fraction of the
 volume containing the entire events
const std::vector< Float_t >& GetRegressionValues()
void CalcAverages()
 compute also average RMS values required for adaptive Gaussian
void CreateBinarySearchTree(TMVA::Types::ETreeType type)
 create binary search trees for signal and background
void SetVolumeElement( void )
 defines volume dimensions
Double_t IGetVolumeContentForRoot(Double_t )
 Interface to RootFinder
Double_t GetVolumeContentForRoot(Double_t )
 count number of events in rescaled volume
void GetSample(const TMVA::Event& e, vector<const TMVA::BinarySearchTreeNode*,allocator<const TMVA::BinarySearchTreeNode*> >& events, TMVA::Volume* volume)
Double_t CRScalc(const TMVA::Event& )
void RRScalc(const TMVA::Event& , vector<Float_t>* count)
Double_t CKernelEstimate(const TMVA::Event& , vector<const TMVA::BinarySearchTreeNode*,allocator<const TMVA::BinarySearchTreeNode*> >& , TMVA::Volume& )
 normalization factors so we can work with radius 1 hyperspheres
void RKernelEstimate(const TMVA::Event& , vector<const TMVA::BinarySearchTreeNode*,allocator<const TMVA::BinarySearchTreeNode*> >& , TMVA::Volume& , vector<Float_t>* pdfSum)
 normalization factors so we can work with radius 1 hyperspheres
Double_t ApplyKernelFunction(Double_t normalized_distance)
 from the normalized euclidean distance calculate the distance
 for a certain kernel
Double_t KernelNormalization(Double_t pdf)
 Calculating the normalization factor only once (might need a reset at some point.
 Can the method be restarted with different params?)
Double_t GetNormalizedDistance(const TMVA::Event& base_event, const TMVA::BinarySearchTreeNode& sample_event, Double_t* dim_normalization)
 We use Euclidian metric here. Might not be best or most efficient.
Double_t NormSinc(Double_t x)
Double_t LanczosFilter(Int_t level, Double_t x)
 Lanczos Filter
Float_t GetError(Float_t countS, Float_t countB, Float_t sumW2S, Float_t sumW2B) const
 statistical error estimate for RS estimator
void AddWeightsXMLTo(void* parent) const
 write weights to xml file
void ReadWeightsFromXML(void* wghtnode)
void ReadWeightsFromStream( istream& istr)
 read weight info from file
void WriteWeightsToStream(TFile& rf) const
 write training sample (TTree) to file
void ReadWeightsFromStream( TFile& /*rf*/ )
 read training sample from file
void MakeClassSpecific(ostream& , const TString& ) const
 write specific classifier response
void GetHelpMessage() const
 get help message text

 typical length of text line:
         "|--------------------------------------------------------------|"
MethodPDERS* ThisPDERS( void )
 static pointer to this object
{ return fgThisPDERS; }
BinarySearchTree* GetBinaryTree( void )
 accessors
{ return fBinaryTree; }
const Ranking* CreateRanking()
 ranking of input variables
{ return 0; }
void UpdateThis()
{ fgThisPDERS = this; }