1 |
mingyang |
1.1 |
#include "MitPhysics/Utils/interface/PhotonTools.h"
|
2 |
|
|
#include "MitPhysics/Utils/interface/MVAVBF.h"
|
3 |
|
|
#include "MitPhysics/Utils/interface/ElectronTools.h"
|
4 |
|
|
#include "MitPhysics/Utils/interface/IsolationTools.h"
|
5 |
|
|
#include "MitAna/DataTree/interface/PFCandidateCol.h"
|
6 |
|
|
#include "MitAna/DataTree/interface/StableData.h"
|
7 |
|
|
#include <TMath.h>
|
8 |
|
|
#include <TFile.h>
|
9 |
|
|
#include <TRandom3.h>
|
10 |
|
|
#include <TSystem.h>
|
11 |
|
|
#include "TMVA/Tools.h"//MVA
|
12 |
|
|
#include "TMVA/Reader.h"//MVA
|
13 |
|
|
|
14 |
|
|
ClassImp(mithep::MVAVBF)
|
15 |
|
|
|
16 |
|
|
using namespace mithep;
|
17 |
|
|
|
18 |
|
|
//--------------------------------------------------------------------------------------------------
|
19 |
|
|
MVAVBF::MVAVBF():
|
20 |
|
|
fReader(0)
|
21 |
|
|
{
|
22 |
|
|
// Constructor.
|
23 |
|
|
}
|
24 |
|
|
|
25 |
|
|
//--------------------------------------------------------------------------------------------------
|
26 |
|
|
void MVAVBF::InitializeMVA() {
|
27 |
|
|
|
28 |
|
|
if (fReader) delete fReader;
|
29 |
|
|
|
30 |
|
|
fReader = new TMVA::Reader( "!Color:!Silent:Error" );
|
31 |
|
|
|
32 |
|
|
TString Weights;
|
33 |
|
|
|
34 |
|
|
Weights = (gSystem->Getenv("CMSSW_BASE")+
|
35 |
|
|
TString("/src/MitPhysics/data/")+
|
36 |
|
|
TString("TMVA_vbf_6var_mjj100_diphopt_phopt_BDTG.")+
|
37 |
|
|
TString("weights.xml"));
|
38 |
|
|
|
39 |
|
|
fReader->AddVariable("jet1pt",&_jet1pt);
|
40 |
|
|
fReader->AddVariable("jet2pt",&_jet2pt);
|
41 |
|
|
fReader->AddVariable("abs(jet1eta-jet2eta)",&_deltajeteta);
|
42 |
|
|
fReader->AddVariable("mj1j2",&_dijetmass);
|
43 |
|
|
fReader->AddVariable("zepp",&_zeppenfeld);
|
44 |
|
|
fReader->AddVariable("dphi",&_dphidijetgg);
|
45 |
|
|
fReader->AddVariable("diphopt/diphoM",&_diphoptOverdiphomass);
|
46 |
|
|
fReader->AddVariable("pho1pt/diphoM",&_pho1ptOverdiphomass);
|
47 |
|
|
fReader->AddVariable("pho2pt/diphoM",&_pho2ptOverdiphomass);
|
48 |
|
|
|
49 |
|
|
fReader->BookMVA("BDT method",Weights);
|
50 |
|
|
|
51 |
|
|
assert(fReader);
|
52 |
|
|
}
|
53 |
|
|
|
54 |
|
|
float MVAVBF::GetMVAbdtValue(float jet1pt, float jet2pt, float deltajeteta, float dijetmass, float zeppenfeld, float dphidijetgg, float diphoptOverdiphomass, float pho1ptOverdiphomass, float pho2ptOverdiphomass) {
|
55 |
|
|
|
56 |
|
|
_jet1pt= jet1pt;
|
57 |
|
|
_jet2pt= jet2pt;
|
58 |
|
|
_deltajeteta= deltajeteta;
|
59 |
|
|
_dijetmass= dijetmass;
|
60 |
|
|
_zeppenfeld= zeppenfeld;
|
61 |
|
|
_dphidijetgg= dphidijetgg;
|
62 |
|
|
_diphoptOverdiphomass= diphoptOverdiphomass;
|
63 |
|
|
_pho1ptOverdiphomass= pho1ptOverdiphomass;
|
64 |
|
|
_pho2ptOverdiphomass= pho2ptOverdiphomass;
|
65 |
|
|
|
66 |
|
|
TMVA::Reader* reader = NULL;
|
67 |
|
|
reader = fReader;
|
68 |
|
|
assert(reader);
|
69 |
|
|
|
70 |
|
|
return (reader->EvaluateMVA("BDT method"));
|
71 |
|
|
}
|
72 |
|
|
|