#ifndef ROOT_TMVA_MethodPDERS
#define ROOT_TMVA_MethodPDERS
#ifndef ROOT_TMVA_MethodBase
#include "TMVA/MethodBase.h"
#endif
#ifndef ROOT_TMVA_BinarySearchTree
#include "TMVA/BinarySearchTree.h"
#endif
#ifndef ROOT_TMVA_TVector
#include "TVector.h"
#endif
namespace TMVA {
class Volume;
class Event;
class MethodPDERS : public MethodBase {
public:
MethodPDERS( TString jobName,
vector<TString>* theVariables,
TTree* theTree = 0,
TString theOption = "Adaptive:100:200:50:0.99",
TDirectory* theTargetDir = 0 );
MethodPDERS( vector<TString> *theVariables,
TString theWeightFile,
TDirectory* theTargetDir = NULL );
virtual ~MethodPDERS( void );
virtual void Train( void );
virtual void WriteWeightsToFile( void );
virtual void ReadWeightsFromFile( void );
virtual Double_t GetMvaValue( Event *e );
virtual void WriteHistosToFile( void );
public:
static Double_t IGetVolumeContentForRoot( Double_t );
Double_t GetVolumeContentForRoot( Double_t );
static MethodPDERS* ThisPDERS( void ) { return fgThisPDERS; }
protected:
Volume* fHelpVolume;
Int_t fFcnCall;
BinarySearchTree* GetBinaryTreeSig( void ) const { return fBinaryTreeS; }
BinarySearchTree* GetBinaryTreeBkg( void ) const { return fBinaryTreeB; }
Double_t KernelEstimate( Event&, std::vector<Event*>&, Volume& );
private:
enum VolumeRangeMode { kMinMax = 0, kRMS, kAdaptive } fVRangeMode;
BinarySearchTree* fBinaryTreeS;
BinarySearchTree* fBinaryTreeB;
vector<Float_t>* fDelta;
vector<Float_t>* fShift;
Float_t fScaleS;
Float_t fScaleB;
Float_t fDeltaFrac;
Float_t fNEventsMin;
Float_t fNEventsMax;
Float_t fMaxVIterations;
Float_t fInitialScale;
TFile* fFin;
Bool_t fInitializedVolumeEle;
void SetVolumeElement ( void );
Float_t RScalc ( Event *e );
Float_t GetError ( Float_t countS, Float_t countB,
Float_t sumW2S, Float_t sumW2B ) const;
static MethodPDERS* fgThisPDERS;
void InitPDERS( void );
ClassDef(MethodPDERS,0)
};
}
#endif // MethodPDERS_H
ROOT page - Class index - Class Hierarchy - Top of the page
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.