ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/benhoob/HWW/Classify_HWW.C
(Generate patch)

Comparing UserCode/benhoob/HWW/Classify_HWW.C (file contents):
Revision 1.4 by benhoob, Mon Feb 14 12:50:27 2011 UTC vs.
Revision 1.5 by benhoob, Mon Feb 21 14:30:47 2011 UTC

# Line 31 | Line 31
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
# Line 133 | Line 191 | void Classify_HWW( TString myMethodList
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
# Line 171 | Line 212 | void Classify_HWW( TString myMethodList
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;
# Line 201 | Line 257 | void Classify_HWW( TString myMethodList
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  
# Line 224 | Line 280 | void Classify_HWW( TString myMethodList
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 );
# Line 243 | Line 299 | void Classify_HWW( TString myMethodList
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 );
# Line 255 | Line 311 | void Classify_HWW( TString myMethodList
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 );
# Line 269 | Line 356 | void Classify_HWW( TString myMethodList
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  
# Line 330 | Line 420 | void Classify_HWW( TString myMethodList
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;
# Line 373 | Line 476 | void Classify_HWW( TString myMethodList
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  
# Line 396 | Line 501 | void Classify_HWW( TString myMethodList
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;
# Line 444 | Line 556 | void Classify_HWW( TString myMethodList
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" );
# Line 530 | Line 649 | void Classify_HWW( TString myMethodList
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(); }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines