31 |
|
|
32 |
|
using namespace TMVA; |
33 |
|
|
34 |
+ |
//-------------------------------------------------------------------- |
35 |
+ |
|
36 |
+ |
void fillUnderOverFlow(TH1F *h1, float value, float weight = 1) |
37 |
+ |
{ |
38 |
+ |
float min = h1->GetXaxis()->GetXmin(); |
39 |
+ |
float max = h1->GetXaxis()->GetXmax(); |
40 |
+ |
|
41 |
+ |
if (value > max) value = h1->GetBinCenter(h1->GetNbinsX()); |
42 |
+ |
if (value < min) value = h1->GetBinCenter(1); |
43 |
+ |
|
44 |
+ |
h1->Fill(value, weight); |
45 |
+ |
} |
46 |
+ |
|
47 |
+ |
//-------------------------------------------------------------------- |
48 |
+ |
|
49 |
|
void Classify_HWW( TString myMethodList = "" ) |
50 |
|
{ |
51 |
|
#ifdef __CINT__ |
52 |
|
gROOT->ProcessLine( ".O0" ); // turn off optimization in CINT |
53 |
|
#endif |
54 |
|
|
55 |
+ |
//-------------------------------------------------------------------- |
56 |
+ |
// path to weights dir (this is where MVA training info is stored) |
57 |
+ |
//-------------------------------------------------------------------- |
58 |
+ |
|
59 |
+ |
//TString path = "Trainings/H130_WW_GGWW_WJets_4vars/"; |
60 |
+ |
TString path = "Trainings/H130_allbkg_4vars/"; |
61 |
+ |
|
62 |
+ |
//----------------------------------- |
63 |
+ |
// select samples to run over |
64 |
+ |
//----------------------------------- |
65 |
+ |
|
66 |
+ |
char* babyPath = "/tas/cerati/HtoWWmvaBabies/latest"; |
67 |
+ |
|
68 |
+ |
vector<char*> samples; |
69 |
+ |
samples.push_back("WWTo2L2Nu"); |
70 |
+ |
samples.push_back("GluGluToWWTo4L"); |
71 |
+ |
samples.push_back("WZ"); |
72 |
+ |
samples.push_back("ZZ"); |
73 |
+ |
samples.push_back("TTJets"); |
74 |
+ |
samples.push_back("tW"); |
75 |
+ |
samples.push_back("WJetsToLNu"); |
76 |
+ |
samples.push_back("DY"); |
77 |
+ |
samples.push_back("Higgs130"); |
78 |
+ |
// samples.push_back("Higgs160"); |
79 |
+ |
// samples.push_back("Higgs200"); |
80 |
+ |
|
81 |
+ |
//-------------------------------------------------------------------------------- |
82 |
+ |
// IMPORTANT: set the following variables to the same set used for MVA training!!! |
83 |
+ |
//-------------------------------------------------------------------------------- |
84 |
+ |
|
85 |
+ |
std::map<std::string,int> mvaVar; |
86 |
+ |
mvaVar[ "lephard_pt" ] = 1; |
87 |
+ |
mvaVar[ "lepsoft_pt" ] = 1; |
88 |
+ |
mvaVar[ "dil_dphi" ] = 1; |
89 |
+ |
mvaVar[ "dil_mass" ] = 1; |
90 |
+ |
mvaVar[ "event_type" ] = 0; |
91 |
+ |
mvaVar[ "met_projpt" ] = 0; |
92 |
+ |
mvaVar[ "met_pt" ] = 0; |
93 |
+ |
mvaVar[ "mt_lephardmet" ] = 0; |
94 |
+ |
mvaVar[ "mt_lepsoftmet" ] = 0; |
95 |
+ |
mvaVar[ "dphi_lephardmet" ] = 0; |
96 |
+ |
mvaVar[ "dphi_lepsoftmet" ] = 0; |
97 |
+ |
|
98 |
|
//--------------------------------------------------------------- |
99 |
|
|
100 |
|
// This loads the library |
191 |
|
|
192 |
|
// -------------------------------------------------------------------------------------------------- |
193 |
|
|
136 |
– |
//----------------------------------- |
137 |
– |
//select samples to run over |
138 |
– |
//----------------------------------- |
139 |
– |
|
140 |
– |
vector<char*> samples; |
141 |
– |
samples.push_back("WWTo2L2Nu"); |
142 |
– |
samples.push_back("GluGluToWWTo4L"); |
143 |
– |
samples.push_back("WZ"); |
144 |
– |
samples.push_back("ZZ"); |
145 |
– |
samples.push_back("TTJets"); |
146 |
– |
samples.push_back("tW"); |
147 |
– |
samples.push_back("WJetsToLNu"); |
148 |
– |
samples.push_back("DY"); |
149 |
– |
samples.push_back("Higgs130"); |
150 |
– |
// samples.push_back("Higgs160"); |
151 |
– |
// samples.push_back("Higgs200"); |
152 |
– |
|
194 |
|
const unsigned int nsamples = samples.size(); |
195 |
< |
|
195 |
> |
|
196 |
|
for( unsigned int i = 0 ; i < nsamples ; ++i ){ |
197 |
|
|
198 |
|
// --- Create the Reader object |
212 |
|
Float_t lepsoft_pt; |
213 |
|
Float_t dil_dphi; |
214 |
|
Float_t dil_mass; |
215 |
< |
|
216 |
< |
reader->AddVariable( "lephard_pt" , &lephard_pt ); |
217 |
< |
reader->AddVariable( "lepsoft_pt" , &lepsoft_pt ); |
218 |
< |
reader->AddVariable( "dil_dphi" , &dil_dphi ); |
219 |
< |
reader->AddVariable( "dil_mass" , &dil_mass ); |
215 |
> |
Float_t event_type; |
216 |
> |
Float_t met_projpt; |
217 |
> |
Float_t met_pt; |
218 |
> |
Float_t mt_lephardmet; |
219 |
> |
Float_t mt_lepsoftmet; |
220 |
> |
Float_t dphi_lephardmet; |
221 |
> |
Float_t dphi_lepsoftmet; |
222 |
> |
|
223 |
> |
if( mvaVar["lephard_pt"]) reader->AddVariable( "lephard_pt" , &lephard_pt ); |
224 |
> |
if( mvaVar["lepsoft_pt"]) reader->AddVariable( "lepsoft_pt" , &lepsoft_pt ); |
225 |
> |
if( mvaVar["dil_dphi"]) reader->AddVariable( "dil_dphi" , &dil_dphi ); |
226 |
> |
if( mvaVar["dil_mass"]) reader->AddVariable( "dil_mass" , &dil_mass ); |
227 |
> |
if( mvaVar["event_type"]) reader->AddVariable( "event_type" , &event_type ); |
228 |
> |
if( mvaVar["met_projpt"]) reader->AddVariable( "met_projpt" , &met_pt ); |
229 |
> |
if( mvaVar["met_pt"]) reader->AddVariable( "met_pt" , &met_pt ); |
230 |
> |
if( mvaVar["mt_lephardmet"]) reader->AddVariable( "mt_lephardmet" , &mt_lephardmet ); |
231 |
> |
if( mvaVar["mt_lepsoftmet"]) reader->AddVariable( "mt_lepsoftmet" , &mt_lepsoftmet ); |
232 |
> |
if( mvaVar["dphi_lephardmet"]) reader->AddVariable( "dphi_lephardmet" , &dphi_lephardmet ); |
233 |
> |
if( mvaVar["dphi_lepsoftmet"]) reader->AddVariable( "dphi_lepsoftmet" , &dphi_lepsoftmet ); |
234 |
> |
|
235 |
|
|
236 |
|
// Spectator variables declared in the training have to be added to the reader, too |
237 |
|
// Float_t spec1,spec2; |
257 |
|
//TString dir = "weights/"; |
258 |
|
//TString path = "Trainings/H130_WWTo2L2Nu/"; |
259 |
|
//TString path = "Trainings/H130_WWTo2L2Nu_WJetsToLNu/"; |
260 |
< |
TString path = "Trainings/H130_allbkg/"; |
260 |
> |
|
261 |
|
TString dir = path + "weights/"; |
262 |
|
TString outdir = path + "output/"; |
263 |
|
|
280 |
|
TH1F *histNnC(0), *histNnT(0), *histBdt(0), *histBdtG(0), *histBdtD(0), *histRf(0), *histSVMG(0); |
281 |
|
TH1F *histSVMP(0), *histSVML(0), *histFDAMT(0), *histFDAGA(0), *histCat(0), *histPBdt(0); |
282 |
|
|
283 |
< |
if (Use["Likelihood"]) histLk = new TH1F( "MVA_Likelihood", "MVA_Likelihood", nbin, -1, 1 ); |
283 |
> |
if (Use["Likelihood"]) histLk = new TH1F( "MVA_Likelihood", "MVA_Likelihood", nbin, -1, 1 ); |
284 |
|
if (Use["LikelihoodD"]) histLkD = new TH1F( "MVA_LikelihoodD", "MVA_LikelihoodD", nbin, -1, 0.9999 ); |
285 |
|
if (Use["LikelihoodPCA"]) histLkPCA = new TH1F( "MVA_LikelihoodPCA", "MVA_LikelihoodPCA", nbin, -1, 1 ); |
286 |
|
if (Use["LikelihoodKDE"]) histLkKDE = new TH1F( "MVA_LikelihoodKDE", "MVA_LikelihoodKDE", nbin, -0.00001, 0.99999 ); |
299 |
|
if (Use["MLPBNN"]) histNnbnn = new TH1F( "MVA_MLPBNN", "MVA_MLPBNN", nbin, -1.25, 1.5 ); |
300 |
|
if (Use["CFMlpANN"]) histNnC = new TH1F( "MVA_CFMlpANN", "MVA_CFMlpANN", nbin, 0, 1 ); |
301 |
|
if (Use["TMlpANN"]) histNnT = new TH1F( "MVA_TMlpANN", "MVA_TMlpANN", nbin, -1.3, 1.3 ); |
302 |
< |
if (Use["BDT"]) histBdt = new TH1F( "MVA_BDT", "MVA_BDT", nbin, -0.8, 0.8 ); |
302 |
> |
if (Use["BDT"]) histBdt = new TH1F( "MVA_BDT", "MVA_BDT", nbin, -1.5, 0.5 ); |
303 |
|
if (Use["BDTD"]) histBdtD = new TH1F( "MVA_BDTD", "MVA_BDTD", nbin, -0.8, 0.8 ); |
304 |
|
if (Use["BDTG"]) histBdtG = new TH1F( "MVA_BDTG", "MVA_BDTG", nbin, -1.0, 1.0 ); |
305 |
|
if (Use["RuleFit"]) histRf = new TH1F( "MVA_RuleFit", "MVA_RuleFit", nbin, -2.0, 2.0 ); |
311 |
|
if (Use["Category"]) histCat = new TH1F( "MVA_Category", "MVA_Category", nbin, -2., 2. ); |
312 |
|
if (Use["Plugin"]) histPBdt = new TH1F( "MVA_PBDT", "MVA_BDT", nbin, -0.8, 0.8 ); |
313 |
|
|
314 |
+ |
if (Use["Likelihood"]) histLk ->Sumw2(); |
315 |
+ |
if (Use["LikelihoodD"]) histLkD ->Sumw2(); |
316 |
+ |
if (Use["LikelihoodPCA"]) histLkPCA ->Sumw2(); |
317 |
+ |
if (Use["LikelihoodKDE"]) histLkKDE ->Sumw2(); |
318 |
+ |
if (Use["LikelihoodMIX"]) histLkMIX ->Sumw2(); |
319 |
+ |
if (Use["PDERS"]) histPD ->Sumw2(); |
320 |
+ |
if (Use["PDERSD"]) histPDD ->Sumw2(); |
321 |
+ |
if (Use["PDERSPCA"]) histPDPCA ->Sumw2(); |
322 |
+ |
if (Use["KNN"]) histKNN ->Sumw2(); |
323 |
+ |
if (Use["HMatrix"]) histHm ->Sumw2(); |
324 |
+ |
if (Use["Fisher"]) histFi ->Sumw2(); |
325 |
+ |
if (Use["FisherG"]) histFiG ->Sumw2(); |
326 |
+ |
if (Use["BoostedFisher"]) histFiB ->Sumw2(); |
327 |
+ |
if (Use["LD"]) histLD ->Sumw2(); |
328 |
+ |
if (Use["MLP"]) histNn ->Sumw2(); |
329 |
+ |
if (Use["MLPBFGS"]) histNnbfgs ->Sumw2(); |
330 |
+ |
if (Use["MLPBNN"]) histNnbnn ->Sumw2(); |
331 |
+ |
if (Use["CFMlpANN"]) histNnC ->Sumw2(); |
332 |
+ |
if (Use["TMlpANN"]) histNnT ->Sumw2(); |
333 |
+ |
if (Use["BDT"]) histBdt ->Sumw2(); |
334 |
+ |
if (Use["BDTD"]) histBdtD ->Sumw2(); |
335 |
+ |
if (Use["BDTG"]) histBdtG ->Sumw2(); |
336 |
+ |
if (Use["RuleFit"]) histRf ->Sumw2(); |
337 |
+ |
if (Use["SVM_Gauss"]) histSVMG ->Sumw2(); |
338 |
+ |
if (Use["SVM_Poly"]) histSVMP ->Sumw2(); |
339 |
+ |
if (Use["SVM_Lin"]) histSVML ->Sumw2(); |
340 |
+ |
if (Use["FDA_MT"]) histFDAMT ->Sumw2(); |
341 |
+ |
if (Use["FDA_GA"]) histFDAGA ->Sumw2(); |
342 |
+ |
if (Use["Category"]) histCat ->Sumw2(); |
343 |
+ |
if (Use["Plugin"]) histPBdt ->Sumw2(); |
344 |
+ |
|
345 |
|
// PDEFoam also returns per-event error, fill in histogram, and also fill significance |
346 |
|
if (Use["PDEFoam"]) { |
347 |
|
histPDEFoam = new TH1F( "MVA_PDEFoam", "MVA_PDEFoam", nbin, 0, 1 ); |
356 |
|
rarityHistFi = new TH1F( "MVA_Fisher_Rarity", "MVA_Fisher_Rarity", nbin, 0, 1 ); |
357 |
|
} |
358 |
|
|
359 |
+ |
TH1F *hdilmass_BDT = new TH1F("hdilmass_BDT", "",100,0,200); |
360 |
+ |
TH1F *hdilmass_MLPBNN = new TH1F("hdilmass_MLPBNN","",100,0,200); |
361 |
+ |
|
362 |
|
// Prepare input tree (this must be replaced by your data source) |
363 |
|
// in this example, there is a toy tree with signal and one with background events |
364 |
|
// we'll later on use only the "signal" events for the test in this example. |
365 |
|
// |
366 |
|
|
367 |
< |
char* prefix = "babies/v3"; |
367 |
> |
|
368 |
|
TChain *ch = new TChain("Events"); |
369 |
|
|
370 |
|
if( strcmp( samples.at(i) , "DY" ) == 0 ){ |
371 |
< |
ch -> Add( Form("%s/DYToMuMuM20_PU_testFinal_baby.root",prefix) ); |
372 |
< |
ch -> Add( Form("%s/DYToMuMuM10To20_PU_testFinal_baby.root",prefix) ); |
373 |
< |
ch -> Add( Form("%s/DYToEEM20_PU_testFinal_baby.root",prefix) ); |
374 |
< |
ch -> Add( Form("%s/DYToEEM10To20_PU_testFinal_baby.root",prefix) ); |
375 |
< |
ch -> Add( Form("%s/DYToTauTauM20_PU_testFinal_baby.root",prefix) ); |
376 |
< |
ch -> Add( Form("%s/DYToTauTauM10To20_PU_testFinal_baby.root",prefix) ); |
371 |
> |
ch -> Add( Form("%s/DYToMuMuM20_PU_testFinal_baby.root",babyPath) ); |
372 |
> |
ch -> Add( Form("%s/DYToMuMuM10To20_PU_testFinal_baby.root",babyPath) ); |
373 |
> |
ch -> Add( Form("%s/DYToEEM20_PU_testFinal_baby.root",babyPath) ); |
374 |
> |
ch -> Add( Form("%s/DYToEEM10To20_PU_testFinal_baby.root",babyPath) ); |
375 |
> |
ch -> Add( Form("%s/DYToTauTauM20_PU_testFinal_baby.root",babyPath) ); |
376 |
> |
ch -> Add( Form("%s/DYToTauTauM10To20_PU_testFinal_baby.root",babyPath) ); |
377 |
|
} |
378 |
|
else if( strcmp( samples.at(i) , "Higgs130" ) == 0 ){ |
379 |
< |
ch -> Add( Form("%s/HToWWTo2L2NuM130_PU_testFinal_baby.root",prefix) ); |
380 |
< |
ch -> Add( Form("%s/HToWWToLNuTauNuM130_PU_testFinal_baby.root",prefix) ); |
381 |
< |
ch -> Add( Form("%s/HToWWTo2Tau2NuM130_PU_testFinal_baby.root",prefix) ); |
379 |
> |
ch -> Add( Form("%s/HToWWTo2L2NuM130_PU_testFinal_baby.root",babyPath) ); |
380 |
> |
ch -> Add( Form("%s/HToWWToLNuTauNuM130_PU_testFinal_baby.root",babyPath) ); |
381 |
> |
ch -> Add( Form("%s/HToWWTo2Tau2NuM130_PU_testFinal_baby.root",babyPath) ); |
382 |
|
} |
383 |
|
else if( strcmp( samples.at(i) , "Higgs160" ) == 0 ){ |
384 |
< |
ch -> Add( Form("%s/HToWWTo2L2NuM160_PU_testFinal_baby.root",prefix) ); |
385 |
< |
ch -> Add( Form("%s/HToWWToLNuTauNuM160_PU_testFinal_baby.root",prefix) ); |
386 |
< |
ch -> Add( Form("%s/HToWWTo2Tau2NuM160_PU_testFinal_baby.root",prefix) ); |
384 |
> |
ch -> Add( Form("%s/HToWWTo2L2NuM160_PU_testFinal_baby.root",babyPath) ); |
385 |
> |
ch -> Add( Form("%s/HToWWToLNuTauNuM160_PU_testFinal_baby.root",babyPath) ); |
386 |
> |
ch -> Add( Form("%s/HToWWTo2Tau2NuM160_PU_testFinal_baby.root",babyPath) ); |
387 |
|
} |
388 |
|
else if( strcmp( samples.at(i) , "Higgs200" ) == 0 ){ |
389 |
< |
ch -> Add( Form("%s/HToWWTo2L2NuM200_PU_testFinal_baby.root",prefix) ); |
390 |
< |
ch -> Add( Form("%s/HToWWToLNuTauNuM200_PU_testFinal_baby.root",prefix) ); |
391 |
< |
ch -> Add( Form("%s/HToWWTo2Tau2NuM200_PU_testFinal_baby.root",prefix) ); |
389 |
> |
ch -> Add( Form("%s/HToWWTo2L2NuM200_PU_testFinal_baby.root",babyPath) ); |
390 |
> |
ch -> Add( Form("%s/HToWWToLNuTauNuM200_PU_testFinal_baby.root",babyPath) ); |
391 |
> |
ch -> Add( Form("%s/HToWWTo2Tau2NuM200_PU_testFinal_baby.root",babyPath) ); |
392 |
|
} |
393 |
|
else{ |
394 |
< |
ch -> Add( Form("%s/%s_PU_testFinal_baby.root",prefix,samples.at(i)) ); |
394 |
> |
ch -> Add( Form("%s/%s_PU_testFinal_baby.root",babyPath,samples.at(i)) ); |
395 |
|
} |
396 |
|
|
397 |
|
|
420 |
|
Float_t lepsoft_pt_; |
421 |
|
Float_t dil_dphi_; |
422 |
|
Float_t dil_mass_; |
423 |
< |
Int_t event_type_; |
423 |
> |
Float_t event_type_; |
424 |
|
Float_t met_projpt_; |
425 |
|
Int_t jets_num_; |
426 |
|
Int_t extralep_num_; |
427 |
|
Int_t lowptbtags_num_; |
428 |
|
Int_t softmu_num_; |
429 |
|
Float_t event_scale1fb_; |
430 |
< |
|
431 |
< |
theTree->SetBranchAddress( "lephard_pt_" , &lephard_pt_ ); |
432 |
< |
theTree->SetBranchAddress( "lepsoft_pt_" , &lepsoft_pt_ ); |
433 |
< |
theTree->SetBranchAddress( "dil_dphi_" , &dil_dphi_ ); |
434 |
< |
theTree->SetBranchAddress( "dil_mass_" , &dil_mass_ ); |
435 |
< |
theTree->SetBranchAddress( "event_type_" , &event_type_ ); |
436 |
< |
theTree->SetBranchAddress( "met_projpt_" , &met_projpt_ ); |
437 |
< |
theTree->SetBranchAddress( "jets_num_" , &jets_num_ ); |
438 |
< |
theTree->SetBranchAddress( "extralep_num_" , &extralep_num_ ); |
439 |
< |
theTree->SetBranchAddress( "lowptbtags_num_" , &lowptbtags_num_ ); |
440 |
< |
theTree->SetBranchAddress( "softmu_num_" , &softmu_num_ ); |
441 |
< |
theTree->SetBranchAddress( "event_scale1fb_" , &event_scale1fb_ ); |
430 |
> |
Float_t met_pt_; |
431 |
> |
Int_t lepsoft_passTighterId_; |
432 |
> |
Float_t mt_lephardmet_; |
433 |
> |
Float_t mt_lepsoftmet_; |
434 |
> |
Float_t dphi_lephardmet_; |
435 |
> |
Float_t dphi_lepsoftmet_; |
436 |
> |
|
437 |
> |
theTree->SetBranchAddress( "lephard_pt_" , &lephard_pt_ ); |
438 |
> |
theTree->SetBranchAddress( "lepsoft_pt_" , &lepsoft_pt_ ); |
439 |
> |
theTree->SetBranchAddress( "dil_dphi_" , &dil_dphi_ ); |
440 |
> |
theTree->SetBranchAddress( "dil_mass_" , &dil_mass_ ); |
441 |
> |
theTree->SetBranchAddress( "event_type_" , &event_type_ ); |
442 |
> |
theTree->SetBranchAddress( "met_projpt_" , &met_projpt_ ); |
443 |
> |
theTree->SetBranchAddress( "jets_num_" , &jets_num_ ); |
444 |
> |
theTree->SetBranchAddress( "extralep_num_" , &extralep_num_ ); |
445 |
> |
theTree->SetBranchAddress( "lowptbtags_num_" , &lowptbtags_num_ ); |
446 |
> |
theTree->SetBranchAddress( "softmu_num_" , &softmu_num_ ); |
447 |
> |
theTree->SetBranchAddress( "event_scale1fb_" , &event_scale1fb_ ); |
448 |
> |
theTree->SetBranchAddress( "lepsoft_passTighterId_" , &lepsoft_passTighterId_ ); |
449 |
> |
theTree->SetBranchAddress( "event_type_" , &event_type_ ); |
450 |
> |
theTree->SetBranchAddress( "met_pt_" , &met_pt_ ); |
451 |
> |
theTree->SetBranchAddress( "mt_lephardmet_" , &mt_lephardmet_ ); |
452 |
> |
theTree->SetBranchAddress( "mt_lepsoftmet_" , &mt_lepsoftmet_ ); |
453 |
> |
theTree->SetBranchAddress( "dphi_lephardmet_" , &dphi_lephardmet_ ); |
454 |
> |
theTree->SetBranchAddress( "dphi_lepsoftmet_" , &dphi_lepsoftmet_ ); |
455 |
|
|
456 |
|
// Efficiency calculator for cut method |
457 |
|
Int_t nSelCutsGA = 0; |
476 |
|
//------------------------------------------------------- |
477 |
|
|
478 |
|
//em |
479 |
< |
if( event_type_ == 1 || event_type == 2 ){ |
479 |
> |
if( event_type_ > 0.5 && event_type_ < 2.5 ){ |
480 |
|
if( met_projpt_ < 20. ) continue; |
481 |
|
} |
482 |
|
//ee/mm |
483 |
< |
if( event_type_ == 0 || event_type == 3 ){ |
483 |
> |
if( event_type_ < 0.5 || event_type_ > 2.5 ){ |
484 |
|
if( met_projpt_ < 35. ) continue; |
485 |
|
} |
486 |
|
|
487 |
|
if( lephard_pt_ < 20. ) continue; |
488 |
< |
//if( lepsoft_pt_ < 10. ) continue; |
489 |
< |
if( lepsoft_pt_ < 20. ) continue; |
488 |
> |
if( lepsoft_pt_ < 10. ) continue; |
489 |
> |
//if( lepsoft_pt_ < 20. ) continue; |
490 |
|
if( jets_num_ > 0 ) continue; |
491 |
|
if( extralep_num_ > 0 ) continue; |
492 |
|
if( lowptbtags_num_ > 0 ) continue; |
493 |
|
if( softmu_num_ > 0 ) continue; |
494 |
|
if( dil_mass_ < 12. ) continue; |
495 |
+ |
if( lepsoft_passTighterId_ == 0 ) continue; |
496 |
+ |
if( dil_mass_ > 90. ) continue; |
497 |
|
|
498 |
|
float weight = event_scale1fb_ * 0.0355; |
499 |
|
|
501 |
|
// important: here we associate branches to MVA variables |
502 |
|
//-------------------------------------------------------- |
503 |
|
|
504 |
< |
lephard_pt = lephard_pt_; |
505 |
< |
lepsoft_pt = lepsoft_pt_; |
506 |
< |
dil_mass = dil_mass_; |
507 |
< |
dil_dphi = dil_dphi_; |
504 |
> |
lephard_pt = lephard_pt_; |
505 |
> |
lepsoft_pt = lepsoft_pt_; |
506 |
> |
dil_mass = dil_mass_; |
507 |
> |
dil_dphi = dil_dphi_; |
508 |
> |
event_type = event_type_; |
509 |
> |
met_pt = met_pt_; |
510 |
> |
met_projpt = met_projpt_; |
511 |
> |
mt_lephardmet = mt_lephardmet_; |
512 |
> |
mt_lepsoftmet = mt_lepsoftmet_; |
513 |
> |
dphi_lephardmet = dphi_lephardmet_; |
514 |
> |
dphi_lepsoftmet = dphi_lepsoftmet_; |
515 |
|
|
516 |
|
npass++; |
517 |
|
// var1 = userVar1 + userVar2; |
556 |
|
if (Use["Category" ]) histCat ->Fill( reader->EvaluateMVA( "Category method" ) , weight); |
557 |
|
if (Use["Plugin" ]) histPBdt ->Fill( reader->EvaluateMVA( "P_BDT method" ) , weight); |
558 |
|
|
559 |
+ |
if( reader->EvaluateMVA( "BDT method" ) < -0.8 ){ |
560 |
+ |
fillUnderOverFlow( hdilmass_BDT , dil_mass_ , weight ); |
561 |
+ |
} |
562 |
+ |
if( reader->EvaluateMVA( "MLPBNN method" ) < 0.1 ){ |
563 |
+ |
fillUnderOverFlow( hdilmass_MLPBNN , dil_mass_ , weight ); |
564 |
+ |
} |
565 |
+ |
|
566 |
|
// Retrieve also per-event error |
567 |
|
if (Use["PDEFoam"]) { |
568 |
|
Double_t val = reader->EvaluateMVA( "PDEFoam method" ); |
649 |
|
if (Use["FDA_GA" ]) histFDAGA ->Write(); |
650 |
|
if (Use["Category" ]) histCat ->Write(); |
651 |
|
if (Use["Plugin" ]) histPBdt ->Write(); |
652 |
+ |
hdilmass_BDT->Write(); |
653 |
+ |
hdilmass_MLPBNN->Write(); |
654 |
|
|
655 |
|
// Write also error and significance histos |
656 |
|
if (Use["PDEFoam"]) { histPDEFoam->Write(); histPDEFoamErr->Write(); histPDEFoamSig->Write(); } |