ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitHzz4l/LeptonSelection/interface/bdtiface.h
Revision: 1.4
Committed: Sun May 6 14:56:25 2012 UTC (13 years ago) by dkralph
Content type: text/plain
Branch: MAIN
CVS Tags: synched2
Changes since 1.3: +4 -3 lines
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 dkralph 1.2 #ifndef BDTIFACE
2     #define BDTIFACE
3    
4 khahn 1.1 #include <TFile.h> // file handle class
5     #include <TString.h>
6     #include <TTree.h> // class to access ntuples
7     #include <TChain.h> // class to access ntuples
8 dkralph 1.2 #include <TRegexp.h>
9     #include <stdio.h>
10 khahn 1.1 #include <iostream> // standard I/O
11     #include <iomanip> // functions to format standard I/O
12     #include <fstream> // functions for file I/O
13     #include <sstream> // class for parsing strings
14     #include <math.h>
15     #include <cassert>
16     #include <map>
17    
18     #include "TMVA/Reader.h"
19     using namespace std;
20    
21     class bdtiface
22     {
23     public:
24 dkralph 1.2 bdtiface(TString weightDir="", TString cutfile="", TString method="BDTG", TString varfile="");
25 khahn 1.1 void readBDTCuts(TString file);
26 dkralph 1.2 void getxmlvars(); // get list of variables declared in the xml files
27     void readbins(TString varfile);
28     void readvars(TString varfile);
29     void readlimits(TString varfile);
30 dkralph 1.3 TString getBinName(double pt, double eta, int isglobal=-1, int istracker=-1);
31 dkralph 1.4 double getBDTCut(double pt, double eta, TString tightness);
32 dkralph 1.2 double getBDTCut(TString binname, TString tightness);
33 dkralph 1.4 double getBDTval(Double_t pt, Double_t eta, TString method="BDTG");
34     Bool_t passBDT(Double_t pt, Double_t eta, TString tightness, TString method="BDTG");
35 dkralph 1.2 void setVals(map<TString,Float_t> floatvals);
36     void print();
37 khahn 1.1
38     private:
39 dkralph 1.2 TString weightdir_,varfile_;
40     map<TString,TMVA::Reader*> readers_; // one tmva reader for each pt/eta/era bin
41     map<TString,TString> xml_names_; // weight file name for each bin
42     unsigned max_nfloats; // maximum number of variables used in any one bin
43     map<TString,Float_t> floatvals_; // value for each input float variable (includes spectators)
44     vector<TString> binnamev_; // pt/eta/era bin names
45 dkralph 1.3 map<TString,float> ptbin_lows_,etabin_lows_; // high edges for each pt/eta bin
46     map<TString,float> ptbin_highs_,etabin_highs_; // high edges for each pt/eta bin
47     map<TString,float> glbbin_lows_,trkbin_lows_; // high edges for each glb/trk bin
48     map<TString,float> glbbin_highs_,trkbin_highs_; // high edges for each pt/trk bin
49 dkralph 1.2 map<TString,double> loosecuts_,mediumcuts_,tightcuts_; // cut values
50 dkralph 1.4 map<TString,double> cuts_;
51 dkralph 1.2 // variables names: a vector of names for each bin
52     map<TString,vector<TString> > floatvar_names_,floatvar_expressions_,floatspec_names_;
53 dkralph 1.3 map<TString,double> minima_,maxima_; // limiting values for mva input variables
54 dkralph 1.2 };
55 khahn 1.1
56 dkralph 1.2 #endif