#ifndef ROOT_TMVA_MethodCuts
#define ROOT_TMVA_MethodCuts
#include <vector>
#include <map>
#ifndef ROOT_TMVA_MethodBase
#include "TMVA/MethodBase.h"
#endif
#ifndef ROOT_TMVA_BinarySearchTree
#include "TMVA/BinarySearchTree.h"
#endif
#ifndef ROOT_TMVA_PDF
#include "TMVA/PDF.h"
#endif
#ifndef ROOT_TMVA_TMatrixD
#include "TMatrixD.h"
#endif
#ifndef ROOT_TMVA_IFitterTarget
#include "IFitterTarget.h"
#endif
class TRandom;
namespace TMVA {
class Interval;
class MethodCuts : public MethodBase, public IFitterTarget {
public:
MethodCuts( const TString& jobName,
const TString& methodTitle,
DataSet& theData,
const TString& theOption = "MC:150:10000:",
TDirectory* theTargetFile = 0 );
MethodCuts( DataSet& theData,
const TString& theWeightFile,
TDirectory* theTargetDir = NULL );
virtual ~MethodCuts( void );
void Train( void );
using MethodBase::WriteWeightsToStream;
using MethodBase::ReadWeightsFromStream;
void WriteWeightsToStream( ostream& o ) const;
void ReadWeightsFromStream( istream& istr );
Double_t GetMvaValue();
void WriteMonitoringHistosToFile( void ) const;
void Test( TTree* theTestTree );
Double_t GetSeparation ( TH1*, TH1* ) const { return 0; }
Double_t GetSeparation ( PDF* = 0, PDF* = 0 ) const { return 0; }
Double_t GetSignificance( void ) const { return 0; }
Double_t GetmuTransform ( TTree *) { return 0; }
Double_t GetEfficiency ( TString, TTree *, Double_t& );
Double_t GetTrainingEfficiency( TString );
Double_t GetRarity( Double_t, Types::ESBType ) const { return 0; }
Double_t ComputeEstimator( std::vector<Double_t> & );
Double_t EstimatorFunction( std::vector<Double_t> & );
Double_t EstimatorFunction( Int_t ievt1, Int_t ievt2 );
void SetTestSignalEfficiency( Double_t effS ) { fTestSignalEff = effS; }
void PrintCuts( Double_t effS ) const;
void GetCuts ( Double_t effS, std::vector<Double_t>& cutMin, std::vector<Double_t>& cutMax ) const;
void GetCuts ( Double_t effS, Double_t* cutMin, Double_t* cutMax ) const;
const Ranking* CreateRanking() { return 0; }
void DeclareOptions();
void ProcessOptions();
static const Double_t fgMaxAbsCutVal;
protected:
void MakeClassSpecific( std::ostream&, const TString& ) const;
void GetHelpMessage() const;
private:
enum EFitMethodType { kUseMonteCarlo = 0,
kUseGeneticAlgorithm,
kUseSimulatedAnnealing,
kUseMinuit,
kUseEventScan,
kUseMonteCarloEvents };
enum EEffMethod { kUseEventSelection = 0,
kUsePDFs };
enum EFitParameters { kNotEnforced = 0,
kForceMin,
kForceMax,
kForceSmart,
kForceVerySmart };
TString fFitMethodS;
EFitMethodType fFitMethod;
TString fEffMethodS;
EEffMethod fEffMethod;
vector<EFitParameters>* fFitParams;
Double_t fTestSignalEff;
Double_t* fCutRangeMin;
Double_t* fCutRangeMax;
vector<Interval*> fCutRange;
BinarySearchTree* fBinaryTreeS;
BinarySearchTree* fBinaryTreeB;
Int_t fNRandCuts;
Double_t** fCutMin;
Double_t** fCutMax;
Double_t* fTmpCutMin;
Double_t* fTmpCutMax;
TString* fAllVarsI;
Int_t fNpar;
Double_t fEffRef;
vector<Int_t>* fRangeSign;
TRandom* fRandom;
vector<Double_t>* fMeanS;
vector<Double_t>* fMeanB;
vector<Double_t>* fRmsS;
vector<Double_t>* fRmsB;
TH1* fEffBvsSLocal;
vector<TH1*>* fVarHistS;
vector<TH1*>* fVarHistB;
vector<TH1*>* fVarHistS_smooth;
vector<TH1*>* fVarHistB_smooth;
vector<PDF*>* fVarPdfS;
vector<PDF*>* fVarPdfB;
void MatchParsToCuts( const std::vector<Double_t>&, Double_t*, Double_t* );
void MatchParsToCuts( Double_t*, Double_t*, Double_t* );
void MatchCutsToPars( std::vector<Double_t>&, Double_t*, Double_t* );
void MatchCutsToPars( std::vector<Double_t>&, Double_t**, Double_t**, Int_t ibin );
void CreateVariablePDFs( void );
Bool_t SanityChecks( void );
void GetEffsfromSelection( Double_t* cutMin, Double_t* cutMax,
Double_t& effS, Double_t& effB);
void GetEffsfromPDFs( Double_t* cutMin, Double_t* cutMax,
Double_t& effS, Double_t& effB );
void InitCuts( void );
ClassDef(MethodCuts,0)
};
}
#endif
Last change: Sat Nov 1 10:21:44 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.