-
Notifications
You must be signed in to change notification settings - Fork 4.2k
/
MvaBoostedDoubleSecondaryVertexEstimator.cc
57 lines (45 loc) · 2.3 KB
/
MvaBoostedDoubleSecondaryVertexEstimator.cc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include "RecoBTag/SecondaryVertex/interface/MvaBoostedDoubleSecondaryVertexEstimator.h"
#include "CommonTools/Utils/interface/TMVAZipReader.h"
MvaBoostedDoubleSecondaryVertexEstimator::MvaBoostedDoubleSecondaryVertexEstimator(const std::string & weightFile)
{
TMVAReader = new TMVA::Reader("Color:Silent:Error");
TMVAReader->SetVerbose(false);
TMVAReader->AddVariable("PFLepton_ptrel", &mva_PFLepton_ptrel);
TMVAReader->AddVariable("z_ratio1", &mva_z_ratio);
TMVAReader->AddVariable("tau_dot", &mva_tau_dot);
TMVAReader->AddVariable("SV_mass_0", &mva_SV_mass_0);
TMVAReader->AddVariable("SV_vtx_EnergyRatio_0", &mva_SV_EnergyRatio_0);
TMVAReader->AddVariable("SV_vtx_EnergyRatio_1", &mva_SV_EnergyRatio_1);
TMVAReader->AddVariable("PFLepton_IP2D", &mva_PFLepton_IP2D);
TMVAReader->AddVariable("tau2/tau1", &mva_tau21);
TMVAReader->AddVariable("nSL", &mva_nSL);
TMVAReader->AddVariable("jetNTracksEtaRel", &mva_jetNTracksEtaRel);
TMVAReader->AddSpectator("massGroomed", &mva_massGroomed);
TMVAReader->AddSpectator("flavour", &mva_flavour);
TMVAReader->AddSpectator("nbHadrons", &mva_nbHadrons);
TMVAReader->AddSpectator("ptGroomed", &mva_ptGroomed);
TMVAReader->AddSpectator("etaGroomed", &mva_etaGroomed);
reco::details::loadTMVAWeights(TMVAReader, "BDTG", weightFile.c_str());
}
MvaBoostedDoubleSecondaryVertexEstimator::~MvaBoostedDoubleSecondaryVertexEstimator()
{
delete TMVAReader;
}
float MvaBoostedDoubleSecondaryVertexEstimator::mvaValue(float PFLepton_ptrel, float z_ratio, float tau_dot, float SV_mass_0,
float SV_EnergyRatio_0, float SV_EnergyRatio_1, float PFLepton_IP2D,
float tau21, float nSL, float jetNTracksEtaRel)
{
mva_PFLepton_ptrel = PFLepton_ptrel;
mva_z_ratio = z_ratio;
mva_tau_dot = tau_dot;
mva_SV_mass_0 = SV_mass_0;
mva_SV_EnergyRatio_0 = SV_EnergyRatio_0;
mva_SV_EnergyRatio_1 = SV_EnergyRatio_1;
mva_PFLepton_IP2D = PFLepton_IP2D;
mva_tau21 = tau21;
mva_nSL = nSL;
mva_jetNTracksEtaRel = jetNTracksEtaRel;
// evaluate the MVA
float value = TMVAReader->EvaluateMVA("BDTG");
return value;
}