#include <map>
#ifndef ROOT_TMVA_OptimizeConfigParameters
#define ROOT_TMVA_OptimizeConfigParameters
#ifndef ROOT_Rtypes
#include "Rtypes.h"
#endif
#ifndef ROOT_TString
#include "TString.h"
#endif
#ifndef ROOT_TMVA_MethodBase
#include "TMVA/MethodBase.h"
#endif
#ifndef ROOT_TMVA_Interval
#include "TMVA/Interval.h"
#endif
#ifndef ROOT_TMVA_DataSet
#include "TMVA/DataSet.h"
#endif
#ifndef ROOT_TMVA_IFitterTarget
#ifndef ROOT_IFitterTarget
#include "IFitterTarget.h"
#endif
#endif
#ifndef ROOT_TH1
#include "TH1.h"
#endif
namespace TMVA {
class MethodBase;
class MsgLogger;
class OptimizeConfigParameters : public IFitterTarget {
public:
OptimizeConfigParameters(MethodBase * const method, std::map<TString,TMVA::Interval*> tuneParameters, TString fomType="Separation", TString optimizationType = "GA");
virtual ~OptimizeConfigParameters();
std::map<TString,Double_t> optimize();
private:
std::vector< int > GetScanIndices( int val, std::vector<int> base);
void optimizeScan();
void optimizeFit();
Double_t EstimatorFunction( std::vector<Double_t> & );
Double_t GetFOM();
MethodBase* GetMethod(){return fMethod;}
void GetMVADists();
Double_t GetSeparation();
Double_t GetROCIntegral();
Double_t GetSigEffAtBkgEff( Double_t bkgEff = 0.1);
Double_t GetBkgEffAtSigEff( Double_t sigEff = 0.5);
Double_t GetBkgRejAtSigEff( Double_t sigEff = 0.5);
MethodBase* const fMethod;
std::vector<Float_t> fFOMvsIter;
std::map<TString,TMVA::Interval*> fTuneParameters;
std::map<TString,Double_t> fTunedParameters;
std::map< std::vector<Double_t> , Double_t> fAlreadyTrainedParCombination;
TString fFOMType;
TString fOptimizationFitType;
TH1D *fMvaSig;
TH1D *fMvaBkg;
TH1D *fMvaSigFineBin;
TH1D *fMvaBkgFineBin;
Bool_t fNotDoneYet;
mutable MsgLogger* fLogger;
MsgLogger& Log() const { return *fLogger; }
ClassDef(OptimizeConfigParameters,0)
};
}
#endif
OptimizeConfigParameters.h:1 OptimizeConfigParameters.h:2 OptimizeConfigParameters.h:3 OptimizeConfigParameters.h:4 OptimizeConfigParameters.h:5 OptimizeConfigParameters.h:6 OptimizeConfigParameters.h:7 OptimizeConfigParameters.h:8 OptimizeConfigParameters.h:9 OptimizeConfigParameters.h:10 OptimizeConfigParameters.h:11 OptimizeConfigParameters.h:12 OptimizeConfigParameters.h:13 OptimizeConfigParameters.h:14 OptimizeConfigParameters.h:15 OptimizeConfigParameters.h:16 OptimizeConfigParameters.h:17 OptimizeConfigParameters.h:18 OptimizeConfigParameters.h:19 OptimizeConfigParameters.h:20 OptimizeConfigParameters.h:21 OptimizeConfigParameters.h:22 OptimizeConfigParameters.h:23 OptimizeConfigParameters.h:24 OptimizeConfigParameters.h:25 OptimizeConfigParameters.h:26 OptimizeConfigParameters.h:27 OptimizeConfigParameters.h:28 OptimizeConfigParameters.h:29 OptimizeConfigParameters.h:30 OptimizeConfigParameters.h:31 OptimizeConfigParameters.h:32 OptimizeConfigParameters.h:33 OptimizeConfigParameters.h:34 OptimizeConfigParameters.h:35 OptimizeConfigParameters.h:36 OptimizeConfigParameters.h:37 OptimizeConfigParameters.h:38 OptimizeConfigParameters.h:39 OptimizeConfigParameters.h:40 OptimizeConfigParameters.h:41 OptimizeConfigParameters.h:42 OptimizeConfigParameters.h:43 OptimizeConfigParameters.h:44 OptimizeConfigParameters.h:45 OptimizeConfigParameters.h:46 OptimizeConfigParameters.h:47 OptimizeConfigParameters.h:48 OptimizeConfigParameters.h:49 OptimizeConfigParameters.h:50 OptimizeConfigParameters.h:51 OptimizeConfigParameters.h:52 OptimizeConfigParameters.h:53 OptimizeConfigParameters.h:54 OptimizeConfigParameters.h:55 OptimizeConfigParameters.h:56 OptimizeConfigParameters.h:57 OptimizeConfigParameters.h:58 OptimizeConfigParameters.h:59 OptimizeConfigParameters.h:60 OptimizeConfigParameters.h:61 OptimizeConfigParameters.h:62 OptimizeConfigParameters.h:63 OptimizeConfigParameters.h:64 OptimizeConfigParameters.h:65 OptimizeConfigParameters.h:66 OptimizeConfigParameters.h:67 OptimizeConfigParameters.h:68 OptimizeConfigParameters.h:69 OptimizeConfigParameters.h:70 OptimizeConfigParameters.h:71 OptimizeConfigParameters.h:72 OptimizeConfigParameters.h:73 OptimizeConfigParameters.h:74 OptimizeConfigParameters.h:75 OptimizeConfigParameters.h:76 OptimizeConfigParameters.h:77 OptimizeConfigParameters.h:78 OptimizeConfigParameters.h:79 OptimizeConfigParameters.h:80 OptimizeConfigParameters.h:81 OptimizeConfigParameters.h:82 OptimizeConfigParameters.h:83 OptimizeConfigParameters.h:84 OptimizeConfigParameters.h:85 OptimizeConfigParameters.h:86 OptimizeConfigParameters.h:87 OptimizeConfigParameters.h:88 OptimizeConfigParameters.h:89 OptimizeConfigParameters.h:90 OptimizeConfigParameters.h:91 OptimizeConfigParameters.h:92 OptimizeConfigParameters.h:93 OptimizeConfigParameters.h:94 OptimizeConfigParameters.h:95 OptimizeConfigParameters.h:96 OptimizeConfigParameters.h:97 OptimizeConfigParameters.h:98 OptimizeConfigParameters.h:99 OptimizeConfigParameters.h:100 OptimizeConfigParameters.h:101 OptimizeConfigParameters.h:102 OptimizeConfigParameters.h:103 OptimizeConfigParameters.h:104 OptimizeConfigParameters.h:105 OptimizeConfigParameters.h:106 OptimizeConfigParameters.h:107 OptimizeConfigParameters.h:108 OptimizeConfigParameters.h:109 OptimizeConfigParameters.h:110 OptimizeConfigParameters.h:111 OptimizeConfigParameters.h:112 OptimizeConfigParameters.h:113 OptimizeConfigParameters.h:114 OptimizeConfigParameters.h:115 OptimizeConfigParameters.h:116 OptimizeConfigParameters.h:117