#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( const TString& jobName,
const TString& methodTitle,
DataSet& theData,
const TString& theOption,
TDirectory* theTargetDir = 0 );
MethodPDERS( DataSet& theData,
const TString& theWeightFile,
TDirectory* theTargetDir = NULL );
virtual ~MethodPDERS( void );
void Train( void );
void WriteWeightsToStream( ostream& o ) const;
void WriteWeightsToStream( TFile& rf ) const;
void ReadWeightsFromStream( istream& istr );
void ReadWeightsFromStream( TFile& istr );
Double_t GetMvaValue();
public:
static Double_t IGetVolumeContentForRoot( Double_t );
Double_t GetVolumeContentForRoot( Double_t );
static MethodPDERS* ThisPDERS( void ) { return fgThisPDERS; }
protected:
void MakeClassSpecific( std::ostream&, const TString& ) const;
void GetHelpMessage() const;
Volume* fHelpVolume;
Int_t fFcnCall;
BinarySearchTree* GetBinaryTreeSig( void ) const { return fBinaryTreeS; }
BinarySearchTree* GetBinaryTreeBkg( void ) const { return fBinaryTreeB; }
Double_t KernelEstimate( const Event&, std::vector<const BinarySearchTreeNode*>&, Volume& );
Double_t ApplyKernelFunction( Double_t normalized_distance );
Double_t KernelNormalization( Double_t pdf );
Double_t GetNormalizedDistance( const TMVA::Event &base_event,
const BinarySearchTreeNode &sample_event,
Double_t *dim_normalization);
Double_t NormSinc( Double_t x );
Double_t LanczosFilter( Int_t level, Double_t x );
const Ranking* CreateRanking() { return 0; }
private:
void DeclareOptions();
void ProcessOptions();
void CalcAverages();
void CreateBinarySearchTrees( TTree* tree );
TString fVolumeRange;
TString fKernelString;
enum EVolumeRangeMode {
kUnsupported = 0,
kMinMax,
kRMS,
kAdaptive,
kUnscaled,
kkNN
} fVRangeMode;
enum EKernelEstimator {
kBox = 0,
kSphere,
kTeepee,
kGauss,
kSinc3,
kSinc5,
kSinc7,
kSinc9,
kSinc11,
kLanczos2,
kLanczos3,
kLanczos5,
kLanczos8,
kTrim
} fKernelEstimator;
BinarySearchTree* fBinaryTreeS;
BinarySearchTree* fBinaryTreeB;
vector<Float_t>* fDelta;
vector<Float_t>* fShift;
vector<Float_t> fAverageRMS;
Float_t fScaleS;
Float_t fScaleB;
Float_t fDeltaFrac;
Double_t fGaussSigma;
Double_t fGaussSigmaNorm;
Float_t fNEventsMin;
Float_t fNEventsMax;
Float_t fMaxVIterations;
Float_t fInitialScale;
Bool_t fInitializedVolumeEle;
Int_t fkNNMin;
Int_t fkNNMax;
Int_t fkNNTests;
Double_t fMax_distance;
Bool_t fPrinted;
Bool_t fNormTree;
void SetVolumeElement ( void );
Float_t RScalc ( const Event& );
Float_t GetError ( Float_t countS, Float_t countB,
Float_t sumW2S, Float_t sumW2B ) const;
static MethodPDERS* fgThisPDERS;
void UpdateThis() { fgThisPDERS = this; }
void InitPDERS( void );
ClassDef(MethodPDERS,0)
};
}
#endif // MethodPDERS_H
Last change: Sat Nov 1 10:21:53 2008
Last generated: 2008-11-01 10:21
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.