ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitHzz4l/NonMCBackground/src/plotSignalFakes.cc
(Generate patch)

Comparing UserCode/MitHzz4l/NonMCBackground/src/plotSignalFakes.cc (file contents):
Revision 1.6 by dkralph, Tue Oct 23 11:22:41 2012 UTC vs.
Revision 1.7 by dkralph, Mon Dec 17 17:25:55 2012 UTC

# Line 5 | Line 5
5  
6   #include "TCanvas.h"
7   #include "TChain.h"
8 + #include "TStopwatch.h"
9   #include "TString.h"
10   #include "TStyle.h"
11   #include "TH1D.h"
# Line 18 | Line 19
19   #include "Various.h"
20   #include "CommonDefs.h"
21   #include "PlotHeaders.h"
22 + #include "HistHeaders.h"
23   #include "TriggerUtils.h"
24   #include "JetDefs.h"
25   #include "JetInfoStruct.h"
# Line 39 | Line 41 | using namespace std;
41   using namespace RooFit;
42   using namespace mithep;
43  
42 // TH1D* hpu_2011;
43 // TH1D* hpu_2012;
44 // TH1D* hpu_2011_me;
45 // TH1D* hpu_2012_me;
44   //----------------------------------------------------------------------------------------
45   TCanvas *can;
46  
49 TString dummy_integral_str(TH1D *hist, int nDecPlaces) { return TString(""); };
47   bool findGoodJets(vector<SimpleLepton> &goodJets, filestuff *fs,
48                    SimpleLepton lep1, SimpleLepton lep2, SimpleLepton lep3, SimpleLepton lep4);
49 < void fillHist(CSample *cs, TString channel, TString type, TString var, double val, double wgt, double wgt_lo=0, double wgt_hi=0);
50 < void fillAllHists(FOFlags ctrl, CSample *cs, TString channel, TString type, filestuff *fs, KinematicsStruct kine, Angles angles,
51 <                  SimpleLepton lep1, SimpleLepton lep2, SimpleLepton lep3, SimpleLepton lep4,
52 <                  double wgt, double wgt_lo=0, double wgt_hi=0);
53 < void fillAllJetHists(FOFlags ctrl,  CSample *cs, TString channel, TString type, filestuff *fs, KinematicsStruct kine,
54 <                      SimpleLepton lep1, SimpleLepton lep2, SimpleLepton lep3, SimpleLepton lep4,
55 <                      FusionMva &fusion, vector<SimpleLepton> &goodJets, JetInfoStruct ji,
56 <                      double wgt, double wgt_lo=0, double wgt_hi=0);
57 < void makeHTML(FOFlags &ctrl, TString type, TString plotLabel, TString fullOutDir);
49 > // void fillHist(CSample *cs, TString channel, TString type, TString var, double val, double wgt, double wgt_lo=0, double wgt_hi=0);
50 > // void fillAllHists(FOFlags ctrl, CSample *cs, TString channel, TString type, filestuff *fs, KinematicsStruct kine, Angles angles,
51 > //                SimpleLepton lep1, SimpleLepton lep2, SimpleLepton lep3, SimpleLepton lep4,
52 > //                double wgt, double wgt_lo=0, double wgt_hi=0);
53 > // void fillAllJetHists(FOFlags ctrl,  CSample *cs, TString channel, TString type, filestuff *fs, KinematicsStruct kine,
54 > //                    SimpleLepton lep1, SimpleLepton lep2, SimpleLepton lep3, SimpleLepton lep4,
55 > //                    FusionMva &fusion, vector<SimpleLepton> &goodJets, JetInfoStruct ji,
56 > //                    double wgt, double wgt_lo=0, double wgt_hi=0);
57 > // void makeHTML(FOFlags &ctrl, TString type, TString plotLabel, TString fullOutDir);
58   map<TString,map<TString,TH1D*>* > init_hists(FOFlags &ctrl, TString str="");
59   bool passHlt(FOFlags &ctrl, TrigInfo ti, InfoStruct *info, unsigned lep1matchBits,
60               unsigned lep2matchBits, unsigned lep3matchBits,
# Line 77 | Line 74 | double getSsofWgt(TString channel, map<T
74   //----------------------------------------------------------------------------------------
75   int main(int argc, char** argv)
76   {
77 +  // Three usage modes:
78 +  //   ctrl.faketype=="SR":    plot events in signal region, if requested including ntuples of the extrapolation from 2P2F and 3P1F regions
79 +  //   ctrl.faketype=="2P2F":  plot 2P2F region, and if requested write out ntuple which gives extrapolation to SR (ntuple would then be read by "SR", above)
80 +  //   ctrl.faketype=="3P1F":  plot 3P1F region (including the extrapolation to there from the 2P2F region), and if requested write out ntuple with SR prediction
81 +  //
82 +  // ctrl.makeFakeTuples:  write out zznt-type ntuples to be read by plotH4l or by SR mode
83 +  // ctrl.hiStatFakes:     same as makeFakeTuples, but reverse charge and flavor req's to get a larger sample for BDT training (or to plot the WrongFlavorCharge control region)
84 +  // ctrl.ssof:            look only at ssof region
85 +  // ctrl.writessofratio:  write the OS / SS ratio to text files that can be read later in ssof mode
86 +  // ctrl.plotWholeSample: plot the whole fake sample without weighting with the fake rate
87 +
88 +  TStopwatch watch;
89    SetStyle();
90    initPUWeights();
91    ControlFlags dummyCtrl;
83  // TFile * puf_me;
84  // puf_me = new TFile("data/pileup/PUWeights_S12To2012_190456-199011.root");
85  // hpu_2012_me = (TH1D*)(puf_me->Get("puWeights"));
86  // hpu_2012_me->SetDirectory(0);
87  // puf_me->Close();
88  // puf_me = new TFile("data/pileup/PUWeights_F11To2011.root");
89  // hpu_2011_me = (TH1D*)(puf_me->Get("puWeights"));
90  // hpu_2011_me->SetDirectory(0);
91  // puf_me->Close();
92  
93    vector<TString> cutstrs;
94    map<TString,int> cutvec;
95    init_cuts(cutstrs, cutvec);
96  
97 +  bool dummyStr(true); // don't add the yield numbers to legends
98 +
99    // arguments...
100    FOFlags ctrl;
101    parse_foargs( argc, argv, ctrl );
102    ctrl.dump();
103    FusionMva fusion(ctrl.uncert);//"./weights/againstZZ-fusion_BDTG.weights.xml");
104    bool makeJetTuple=false; // jet tuple for vbf mva training
105 <  assert(ctrl.faketype=="SR"   || // plot events in signal region, if requested including ntuples of the extrapolation from 2P2F and 3P1F regions
104 <         ctrl.faketype=="2P2F" || // plot 2P2F region, and if requested write out ntuple which gives extrapolation to SR (ntuple would then be read by "SR", above)
105 <         ctrl.faketype=="3P1F");  // plot 3P1F region (including the extrapolation to there from the 2P2F region), and if requested write out ntuple with SR prediction
105 >  assert(ctrl.faketype=="SR" || ctrl.faketype=="2P2F" || ctrl.faketype=="3P1F");
106    if(ctrl.heavyFlavor) assert(ctrl.faketype=="2P2F");
107    if(ctrl.ssof) assert(ctrl.faketype=="2P2F");
108  
# Line 153 | Line 153 | int main(int argc, char** argv)
153        filestuff *fs = (cs->fsv)[ifs];
154        if(ctrl.makeFakeTuples && fs->dataset_!="fakes") { // write a copy of the input trees for events that will be used for the SR fake prediction
155          TString fakefilename(fs->fname_);
156 <        fakefilename.ReplaceAll(".root","-fakes.root");
156 >        fakefilename.ReplaceAll(".root","-"+ctrl.faketype+(ctrl.ssof ? "-ssof" : "")+"-fakes.root");
157          if(ctrl.hiStatFakes) fakefilename.ReplaceAll("-fakes.root","-fakes-histat.root");
158          fs->makeOutputFile(fakefilename);
159        }
160        cout << "\t" << fs->fname_; cout.flush();
161 <      unsigned nDuplSkipped=0;
161 >      unsigned nDuplSkipped=0,nBadZs=0;
162 >      watch.Start();
163        for(unsigned ientry=0; ientry<fs->getentries("FOtree"); ientry++) {
164          fs->getentry(ientry,"FOs","FOtree");
165          fs->getentry(ientry,"Zleptons","FOtree");
166          fs->getentry(ientry,"info","zznt");
167  
168 +        if(!(ientry%15000)) {
169 +          watch.Stop();
170 +          cout << "\ntime: " << watch.RealTime() << "  (entry: " << ientry << " )" << endl;
171 +          watch.Start();
172 +        }
173          cutvec["start"] = fs->total_entries_;
174          if(fs->isdata_) {// && !(fs->dataset_=="fakes")) {
175            // WARNING: when I write the fakeTuple from here, I fill an event *twice* if it has two fake z2 candidates, so event numbers are duplicated.
# Line 175 | Line 181 | int main(int argc, char** argv)
181          }
182          cutvec["rlrmAndDupl"] += 1;
183  
178        double wgt=1;
179        if(!fs->isdata_) {
180          double xsWgt = fs->lumi_*xstab.Get(fs->dataset_)/fs->total_entries_;
181          cout << "WARNING: check the pu weihgs funciton here" << endl;
182          double puWgt = getPUWeight(fs->era_, "/029/", fs->info->npu);
183          // if(fs->era_==2012)
184          //   puWgt = hpu_2012_me->GetBinContent(hpu_2012_me->FindBin(fs->info->npu));
185          // else if(fs->era_==2011)
186          //   puWgt = hpu_2011_me->GetBinContent(hpu_2011_me->FindBin(fs->info->npu));
187          // else assert(0);
188          wgt = xsWgt*puWgt;
189          if(wgt!=wgt) cout << "xsWgt: " << xsWgt << " puWgt: " << puWgt << endl;
190        }
191        if(fs->dataset_=="fakes") { // if we're reading in the fake ntuple that we wrote out earlier, use the event weight that was stored (this should be the same as what we'd get if we calculated it below)
192          fs->getentry(ientry,"weights","zznt");
193          wgt = fs->weights->w;
194        }
195
184          unsigned npass = fs->passingL->size();
185          unsigned nfail = fs->failingL->size();
186  
187          // look for a z1
188          pair<int,int> best_z_indices;
189          double best_mz1 = findZ1(fs->passingL,best_z_indices,40);
190 <        if(best_mz1<=0) {
191 <          cout << "WARNING: best z1 mass: " << best_mz1 << endl;
204 <        }
190 >        if(best_mz1<=0) nBadZs++;
191 >        if(best_mz1 < 40 || best_mz1 > 120) continue;
192          if(ctrl.heavyFlavor && best_mz1<60) continue;
193          EventData evtdata;
194          evtdata.Z1leptons.push_back((*fs->passingL)[best_z_indices.first]);
# Line 220 | Line 207 | int main(int argc, char** argv)
207          int hiPtFailingZ2 = findZ2CandidatesPassFail(fs->failingL, z2cands, types, signFlavor, minMz2, "fail"); // 2P+2F
208          int hiPtPfZ2      = findZ2CandidatesPassFail(fs->passingL, z2cands, types, signFlavor, minMz2, "PF", &best_z_indices, fs->failingL); // 3P+1F
209  
210 <        if(ctrl.writessofratio) incrementSsofCounters(ctrl, fs, minMz2, &best_z_indices, wgt);
210 >        double wgt=1;
211 >        if(z2cands.size() > 0) {
212 >          if(!fs->isdata_) {
213 >            fs->getentry(ientry,"weights","zznt");
214 >            double xsWgt = fs->lumi_*xstab.Get(fs->dataset_)/fs->total_entries_;
215 >            double puWgt = getPUWeight(fs->era_, fs->era_==2011 ? "/025/" : "/029/", fs->info->npu);
216 >            // if(fs->era_==2012)
217 >            //   puWgt = hpu_2012_me->GetBinContent(hpu_2012_me->FindBin(fs->info->npu));
218 >            // else if(fs->era_==2011)
219 >            //   puWgt = hpu_2011_me->GetBinContent(hpu_2011_me->FindBin(fs->info->npu));
220 >            // else assert(0);
221 >            wgt = xsWgt * puWgt;//* fs->weights->won * fs->weights->woff;
222 >            if(wgt!=wgt) cout << "xsWgt: " << xsWgt << " puWgt: " << puWgt << endl;
223 >          }
224 >          if(fs->dataset_=="fakes") { // if we're reading in the fake ntuple that we wrote out earlier, use the event weight that was stored (this should be the same as what we'd get if we calculated it below)
225 >            // fs->getentry(ientry,"weights","zznt");
226 >            wgt = fs->weights->w;
227 >          }
228 >          if(ctrl.writessofratio) incrementSsofCounters(ctrl, fs, minMz2, &best_z_indices, wgt);
229 >        }
230  
231          for(unsigned iz2=0; iz2<z2cands.size(); iz2++) {
232            SimpleLepton lep1 = evtdata.Z1leptons[0];
# Line 282 | Line 288 | int main(int argc, char** argv)
288              if((fs->dataset_!="fakes") && (iz2!=hiPtPassingZ2)) continue; // for non-fakes, we only want the  highest-pt "passing" z2 (for the fakes these are by design failing z2s, and we want all of 'em)
289              cutvec["fillPass"] += 1;
290              fillAllHists( ctrl, cs, channel, "obs", fs, kine, angles, lep1, lep2, lep3, lep4, wgt);
291 <            if(doJets) fillAllJetHists( ctrl, cs, channel, "obs", fs, kine, lep1, lep2, lep3, lep4, fusion, goodJets, ji, wgt);
291 >            if(doJets) fillAllJetHists( ctrl, cs, channel, "obs", fs, kine, lep1, lep2, lep3, lep4, /*fusion,*/ /*goodJets, */ji, wgt);
292  
293            } else if(types[iz2]=="fail") { // lljj events
294              if(iz2!=hiPtFailingZ2 && ctrl.plotWholeSample) continue;
# Line 311 | Line 317 | int main(int argc, char** argv)
317                double fillwgt;
318                bool dofill=true;
319                if(ctrl.faketype=="2P2F") {
320 <                assert(fs->isdata_);
320 >                // assert(fs->isdata_);
321                  fillwgt = centr;
322                } else if(ctrl.faketype=="3P1F") {
323                  fillwgt = - wgt*(fwgts.fwgt_3*fwgts.fwgt_4 + fwgts.fwgt_4*fwgts.fwgt_3);
# Line 321 | Line 327 | int main(int argc, char** argv)
327              }
328              cutvec["fillFail"] += 1;
329              fillAllHists( ctrl, cs, channel, "pred", fs, kine, angles, lep1, lep2, lep3, lep4, centr, lo, hi);
330 <            if(doJets) fillAllJetHists( ctrl, cs, channel, "pred", fs, kine, lep1, lep2, lep3, lep4, fusion, goodJets, ji, centr, lo, hi);
330 >            if(doJets) fillAllJetHists( ctrl, cs, channel, "pred", fs, kine, lep1, lep2, lep3, lep4, /*fusion,*/ /*goodJets,*/ ji, centr, lo, hi);
331  
332            } else if(types[iz2]=="PF") { // lllj events
333              if(fs->dataset_!="fakes" && iz2!=hiPtPfZ2) continue; // shouldn't have this when I extrapolate to signal region
# Line 339 | Line 345 | int main(int argc, char** argv)
345              
346              cutvec["fillPF"] += 1;
347              fillAllHists( ctrl, cs, channel, "PF", fs, kine, angles, lep1, lep2, lep3, lep4, wgt);
348 <            if(doJets) fillAllJetHists( ctrl, cs, channel, "PF", fs, kine, lep1, lep2, lep3, lep4, fusion, goodJets, ji, wgt);
348 >            if(doJets) fillAllJetHists( ctrl, cs, channel, "PF", fs, kine, lep1, lep2, lep3, lep4, /*fusion,*/ /*goodJets,*/ ji, wgt);
349            } else assert(0);
350          }
351        }
352        if(ctrl.writessofratio) fs->writeSsofRatios();
353 <      cout << "\t\t" << setw(7) << nDuplSkipped << " duplicate events skipped" << endl;
353 >      cout << "\t\t" << setw(7) << nDuplSkipped << " duplicate events skipped (" << nBadZs << " bad Zs)" << endl;
354        if(ctrl.makeFakeTuples) {
355          fs->outFotuple->getFile()->cd();
356          fs->outFotuple->getTree()->Write();
357          fs->outtuple->WriteClose();
358        }
359 <      fs->del();
359 >      // fs->del();
360      }
361      for(unsigned icut=0; icut<cutstrs.size(); icut++) {
362        cout << setw(22) << cutstrs[icut] << setw(22) << cutvec[cutstrs[icut]] << endl;
# Line 397 | Line 403 | int main(int argc, char** argv)
403            scaleHists(hs);
404          
405          if(cs->isdata && !(cs->name=="fakes")) {
406 +          // add observation (llll events) in an 'E' hists
407            if(ctrl.faketype=="SR" || (ctrl.heavyFlavor && !ctrl.plotWholeSample) || (ctrl.ssof && !ctrl.plotWholeSample)) {
408 <            cplot.AddHist1D(hs["obs"],cs->legend+": "+integral_str(hs["obs"],0),"E");
408 >            cplot.AddHist1D(hs["obs"],cs->legend+": "+integral_str(hs["obs"],0,dummyStr),"E");
409              ymax = max(ymax,hs["obs"]->GetMaximum());
410            }
411            if(ctrl.faketype=="2P2F") {
412              if(ctrl.plotWholeSample) {
413 <              cplot.AddHist1D(hs["pred"],cs->legend+": "+integral_str(hs["pred"],0),"E");
413 >              // add 'pred' (lljj events with weight *1*) as an 'E' hist
414 >              cplot.AddHist1D(hs["pred"],cs->legend+": "+integral_str(hs["pred"],0,dummyStr),"E");
415                ymax = max(ymax,hs["pred"]->GetMaximum());
416              } else {
417 <              cplot.AddHist1D(hs["pred"],    TString("FR predic: "+integral_str(hs["pred"],3)),   "hist",kRed);
418 <              cplot.AddHist1D(hs["pred_lo"], TString(  "stat lo: "+integral_str(hs["pred_lo"],2)),"hist",kRed,kDashed);
419 <              cplot.AddHist1D(hs["pred_hi"], TString(  "stat hi: "+integral_str(hs["pred_hi"],2)),"hist",kRed,kDashed);
417 >              // add 'pred' (lljj events with weight w1*w2) as red-line hists
418 >              cplot.AddHist1D(hs["pred"],    TString("FR predic: "+integral_str(hs["pred"],3,dummyStr)),   "hist",kRed);
419 >              cplot.AddHist1D(hs["pred_lo"], TString(  "stat lo: "+integral_str(hs["pred_lo"],2,dummyStr)),"hist",kRed,kDashed);
420 >              cplot.AddHist1D(hs["pred_hi"], TString(  "stat hi: "+integral_str(hs["pred_hi"],2,dummyStr)),"hist",kRed,kDashed);
421                if(var=="m4l") {
422                  txtOutFile << "  " << type << ": " << integral_str(hs["pred"],3) << " (" << integral_str(hs["pred_lo"],2) << "," << integral_str(hs["pred_hi"],2) << ")" << endl;
423                }
# Line 416 | Line 425 | int main(int argc, char** argv)
425              }
426            }
427            if(ctrl.faketype=="3P1F") {
428 <            double ratio = 0;//integrateHist(hs["PF"]) / integrateHist(hs["pred"]);
429 <            cplot.AddHist1D(hs["PF"],TString(cs->legend+": "+integral_str(hs["PF"],0)+", ratio: "+f_to_a(ratio)),"E",cs->color);
428 >            // add 'PF' (lllj events with weight 1) as an 'E' hist
429 >            // double ratio = 0;//integrateHist(hs["PF"]) / integrateHist(hs["pred"]);
430 >            // cplot.AddHist1D(hs["PF"],TString(cs->legend+": "+integral_str(hs["PF"],0,dummyStr)+", ratio: "+f_to_a(ratio)),"E",cs->color);
431 >            cplot.AddHist1D(hs["PF"],TString(cs->legend+": "+integral_str(hs["PF"],0,dummyStr)),"E",cs->color);
432              if(!ctrl.plotWholeSample) {
433 <              cplot.AddToStack(hs["pred"],TString(cs->legend+"(2P2F extrap.): "+integral_str(hs["pred"],1)), kRed, -1);
433 >              // add 'pred' (lljj events with weight ~w1) as a red stacked hist
434 >              cplot.AddToStack(hs["pred"],TString(cs->legend+"(2P2F extrap.): "+integral_str(hs["pred"],1,dummyStr)), 823, -1);
435                ymax = max(ymax,histMax(hs["PF"],cplot.GetStack(),hs["pred"]));
436              } else {
437                ymax = max(ymax,hs["PF"]->GetMaximum());
# Line 436 | Line 448 | int main(int argc, char** argv)
448            if(ctrl.faketype=="3P1F")   mchist = hs["PF"];
449            assert(mchist);
450            bool stackMc = true;
451 <          if(stackMc) cplot.AddToStack(mchist,TString(cs->legend+": "+integral_str(mchist,2)),cs->color,-1);
452 <          else        cplot.AddHist1D(mchist,TString(cs->legend +": "+integral_str(mchist,3)),"Ehist",cs->color);//cs->color);
451 >          if(stackMc) cplot.AddToStack(mchist,TString(cs->legend+": "+integral_str(mchist,2,dummyStr)),cs->color,-1);
452 >          else        cplot.AddHist1D(mchist,TString(cs->legend +": "+integral_str(mchist,3,dummyStr)),"Ehist",cs->color);//cs->color);
453            if(cs->name=="zz") fakeCounter -= integrateHist(hs["PF"]);
454            ymax = max(ymax,histMax(mchist,cplot.GetStack()));
455          }
# Line 447 | Line 459 | int main(int argc, char** argv)
459          }
460          if(!var.Contains("fusionMVA"))
461            cplot.SetYRange(0,1.2*ymax);
462 <        if(ctrl.faketype=="3P1F") cplot.AddTextBox(TString("diff: "+f_to_a(fakeCounter)),.7,.5,.8,.6);
462 >        if(!dummyStr && ctrl.faketype=="3P1F") cplot.AddTextBox(TString("diff: "+f_to_a(fakeCounter)),.7,.5,.8,.6);
463        }
464 +      TString txt("#bf{CMS Preliminary           L = 5 ( + 12 ) fb^{-1} at #sqrt{s} = 7 ( + 8 ) TeV}"); // #sqrt{s} = 7 TeV, L = 5 fb^{-1}; #sqrt{s} = 8 TeV, L = 12 fb^{-1}");
465 +      cplot.AddTextBox(txt,0.16,0.95,0.85,0.99,0);
466        cplot.Draw(can,true,"png");
467        if(var.Contains("fusionMVA")) {
468          cplot.SetLogy();
# Line 498 | Line 512 | map<TString,map<TString,TH1D*>* > init_h
512    map<TString,TH1D*> *h_all_PF_hi       = new map<TString,TH1D*>;      hists["all_PF_hi"]       = h_all_PF_hi;
513    map<TString,map<TString,TH1D*>* >::iterator it_h;
514  
515 <  for(it_h=hists.begin(); it_h!=hists.end(); it_h++) {
516 <    (*((*it_h).second))["npv"]          = new TH1D(TString("npv") +"_"+(*it_h).first+str,";#bf{N PV};",         50,-0.5,49.5);      (*((*it_h).second))["npv"]->Sumw2();
517 <    (*((*it_h).second))["run"]          = new TH1D(TString("run") +"_"+(*it_h).first+str,";#bf{run};",          50,160800,203744/*196535*/);   (*((*it_h).second))["run"]->Sumw2();
518 <    (*((*it_h).second))["mZ1"]          = new TH1D(TString("mZ1") +"_"+(*it_h).first+str,";#bf{mZ1 [GeV]};",    20,40,120);          (*((*it_h).second))["mZ1"]->Sumw2();
519 <    (*((*it_h).second))["mZ2"]          = new TH1D(TString("mZ2") +"_"+(*it_h).first+str,";#bf{mZ2 [GeV]};",    30,0,115);           (*((*it_h).second))["mZ2"]->Sumw2();
520 <    (*((*it_h).second))["mZ2_lo"]       = new TH1D(TString("mZ2_lo") +"_"+(*it_h).first+str,";#bf{mZ2 [GeV]};", 30,0,10);           (*((*it_h).second))["mZ2_lo"]->Sumw2();
521 <    (*((*it_h).second))["m4l_lo"]       = new TH1D(TString("m4l_lo") +"_"+(*it_h).first+str,";#bf{m4l [GeV]};", 35,70,120);          (*((*it_h).second))["m4l_lo"]->Sumw2();
522 <    (*((*it_h).second))["m4l_med"]      = new TH1D(TString("m4l_med") +"_"+(*it_h).first+str,";#bf{m4l [GeV]};",35,100,180);          (*((*it_h).second))["m4l_med"]->Sumw2();
523 <    (*((*it_h).second))["m4l"]          = new TH1D(TString("m4l") +"_"+(*it_h).first+str,";#bf{m4l [GeV]};",    35,100,600);          (*((*it_h).second))["m4l"]->Sumw2();
524 <    // (*((*it_h).second))["Z1pt"]              = new TH1D(TString("Z1pt") +"_"+(*it_h).first+str,";#bf{Z1pt [GeV]};",  20,0,200);           (*((*it_h).second))["Z1pt"]->Sumw2();
525 <    // (*((*it_h).second))["ZZpt"]              = new TH1D(TString("ZZpt") +"_"+(*it_h).first+str,";#bf{ZZpt [GeV]};",  30,0,200);           (*((*it_h).second))["ZZpt"]->Sumw2();
526 <    (*((*it_h).second))["met"]          = new TH1D(TString("met") +"_"+(*it_h).first+str,";#bf{met [GeV]};",    30,0,100);           (*((*it_h).second))["met"]->Sumw2();
527 <
528 <    (*((*it_h).second))["pt_l1"]        = new TH1D(TString("pt_l1") +"_"+(*it_h).first+str,";#bf{l1 p_{T} [GeV]};",     37,0,120);  (*((*it_h).second))["pt_l1"]->Sumw2();
529 <    (*((*it_h).second))["pt_l2"]        = new TH1D(TString("pt_l2") +"_"+(*it_h).first+str,";#bf{l2 p_{T} [GeV]};",     37,0,65);  (*((*it_h).second))["pt_l2"]->Sumw2();
530 <    (*((*it_h).second))["pt_l3"]        = new TH1D(TString("pt_l3") +"_"+(*it_h).first+str,";#bf{l3 p_{T} [GeV]};",     37,0,75);  (*((*it_h).second))["pt_l3"]->Sumw2();
531 <    (*((*it_h).second))["pt_l4"]        = new TH1D(TString("pt_l4") +"_"+(*it_h).first+str,";#bf{l4 p_{T} [GeV]};",     37,0,50);  (*((*it_h).second))["pt_l4"]->Sumw2();
532 <
533 <    (*((*it_h).second))["eta_l1"]       = new TH1D(TString("eta_l1")+"_"+(*it_h).first+str,";#bf{l1 #eta};",            25,-2.5,2.5);     (*((*it_h).second))["eta_l1"]->Sumw2();
534 <    (*((*it_h).second))["eta_l2"]       = new TH1D(TString("eta_l2")+"_"+(*it_h).first+str,";#bf{l2 #eta};",            25,-2.5,2.5);     (*((*it_h).second))["eta_l2"]->Sumw2();
535 <    (*((*it_h).second))["eta_l3"]       = new TH1D(TString("eta_l3")+"_"+(*it_h).first+str,";#bf{l3 #eta};",            25,-2.5,2.5);     (*((*it_h).second))["eta_l3"]->Sumw2();
536 <    (*((*it_h).second))["eta_l4"]       = new TH1D(TString("eta_l4")+"_"+(*it_h).first+str,";#bf{l4 #eta};",            25,-2.5,2.5);     (*((*it_h).second))["eta_l4"]->Sumw2();
537 <
538 <    (*((*it_h).second))["ip3ds_l1"]     = new TH1D(TString("ip3ds_l1") +"_"+(*it_h).first+str,";#bf{ip3ds l1};",37,-3,3);       (*((*it_h).second))["ip3ds_l1"]->Sumw2();
539 <    (*((*it_h).second))["ip3ds_l2"]     = new TH1D(TString("ip3ds_l2") +"_"+(*it_h).first+str,";#bf{ip3ds l2};",37,-3,3);       (*((*it_h).second))["ip3ds_l2"]->Sumw2();
540 <    (*((*it_h).second))["ip3ds_l3_lo"]  = new TH1D(TString("ip3ds_l3_lo") +"_"+(*it_h).first+str,";#bf{ip3ds l3_lo};",25,-6,6); (*((*it_h).second))["ip3ds_l3_lo"]->Sumw2();
541 <    (*((*it_h).second))["ip3ds_l4_lo"]  = new TH1D(TString("ip3ds_l4_lo") +"_"+(*it_h).first+str,";#bf{ip3ds l4_lo};",25,-6,6); (*((*it_h).second))["ip3ds_l4_lo"]->Sumw2();
542 <    (*((*it_h).second))["ip3ds_l3"]     = new TH1D(TString("ip3ds_l3") +"_"+(*it_h).first+str,";#bf{ip3ds l3};",55,-40,40);     (*((*it_h).second))["ip3ds_l3"]->Sumw2();
543 <    (*((*it_h).second))["ip3ds_l4"]     = new TH1D(TString("ip3ds_l4") +"_"+(*it_h).first+str,";#bf{ip3ds l4};",55,-40,40);     (*((*it_h).second))["ip3ds_l4"]->Sumw2();
544 <
545 <    (*((*it_h).second))["d0_l1"]        = new TH1D(TString("d0_l1") +"_"+(*it_h).first+str,";#bf{d0 l1};",50,-.008,.008);      (*((*it_h).second))["d0_l1"]->Sumw2();
546 <    (*((*it_h).second))["d0_l2"]        = new TH1D(TString("d0_l2") +"_"+(*it_h).first+str,";#bf{d0 l2};",50,-.008,.008);      (*((*it_h).second))["d0_l2"]->Sumw2();
547 <    (*((*it_h).second))["d0_l3_lo"]     = new TH1D(TString("d0_l3_lo") +"_"+(*it_h).first+str,";#bf{d0 l3_lo};",25,-.03,.03);  (*((*it_h).second))["d0_l3_lo"]->Sumw2();
548 <    (*((*it_h).second))["d0_l4_lo"]     = new TH1D(TString("d0_l4_lo") +"_"+(*it_h).first+str,";#bf{d0 l4_lo};",25,-.03,.03);  (*((*it_h).second))["d0_l4_lo"]->Sumw2();
549 <    (*((*it_h).second))["d0_l3"]        = new TH1D(TString("d0_l3") +"_"+(*it_h).first+str,";#bf{d0 l3};",50,-.1,.1);          (*((*it_h).second))["d0_l3"]->Sumw2();
550 <    (*((*it_h).second))["d0_l4"]        = new TH1D(TString("d0_l4") +"_"+(*it_h).first+str,";#bf{d0 l4};",50,-.1,.1);          (*((*it_h).second))["d0_l4"]->Sumw2();
551 <
552 <    (*((*it_h).second))["dz_l1"]        = new TH1D(TString("dz_l1") +"_"+(*it_h).first+str,";#bf{dz l1};",50,-.01,.01);   (*((*it_h).second))["dz_l1"]->Sumw2();
553 <    (*((*it_h).second))["dz_l2"]        = new TH1D(TString("dz_l2") +"_"+(*it_h).first+str,";#bf{dz l2};",50,-.01,.01);   (*((*it_h).second))["dz_l2"]->Sumw2();
554 <    (*((*it_h).second))["dz_l3"]        = new TH1D(TString("dz_l3") +"_"+(*it_h).first+str,";#bf{dz l3};",50,-.2,.2);   (*((*it_h).second))["dz_l3"]->Sumw2();
555 <    (*((*it_h).second))["dz_l4"]        = new TH1D(TString("dz_l4") +"_"+(*it_h).first+str,";#bf{dz l4};",50,-.2,.2);   (*((*it_h).second))["dz_l4"]->Sumw2();
556 <
557 <    (*((*it_h).second))["dR_l3l4_lo"]   = new TH1D(TString("dR_l3l4_lo") +"_"+(*it_h).first+str,";#bf{#Delta R l3,l4};",75,0,.2);    (*((*it_h).second))["dR_l3l4_lo"]->Sumw2();
558 <    (*((*it_h).second))["dR_l3l4"]      = new TH1D(TString("dR_l3l4") +"_"+(*it_h).first+str,";#bf{#Delta R l3,l4};",75,0,6);        (*((*it_h).second))["dR_l3l4"]->Sumw2();
559 <
560 <    // jets
561 <    (*((*it_h).second))["pt_allJet"]    = new TH1D(TString("pt_allJet") +"_"+(*it_h).first+str,";#bf{jet 1 p_{T} [GeV]};",37,0,400);  (*((*it_h).second))["pt_allJet"]->Sumw2();
562 <    (*((*it_h).second))["eta_allJet"]   = new TH1D(TString("eta_allJet") +"_"+(*it_h).first+str,";#bf{jet 1 p_{T} [GeV]};",37,-4.8,4.8);  (*((*it_h).second))["eta_allJet"]->Sumw2();
563 <    (*((*it_h).second))["pt_j1"]        = new TH1D(TString("pt_j1") +"_"+(*it_h).first+str,";#bf{jet 1 p_{T} [GeV]};",  37,0,400);  (*((*it_h).second))["pt_j1"]->Sumw2();
564 <    (*((*it_h).second))["pt_j2"]        = new TH1D(TString("pt_j2") +"_"+(*it_h).first+str,";#bf{jet 2 p_{T} [GeV]};",  37,0,125);  (*((*it_h).second))["pt_j2"]->Sumw2();
565 <    (*((*it_h).second))["pt_j3"]        = new TH1D(TString("pt_j3") +"_"+(*it_h).first+str,";#bf{jet 3 p_{T} [GeV]};",  37,0,125);  (*((*it_h).second))["pt_j3"]->Sumw2();
566 <    (*((*it_h).second))["pt_j4"]        = new TH1D(TString("pt_j4") +"_"+(*it_h).first+str,";#bf{jet 4 p_{T} [GeV]};",  37,0,125);  (*((*it_h).second))["pt_j4"]->Sumw2();
567 <    (*((*it_h).second))["eta_j1"]       = new TH1D(TString("eta_j1")+"_"+(*it_h).first+str,";#bf{jet 1 #eta};",         55,-4.8,4.8);     (*((*it_h).second))["eta_j1"]->Sumw2();
568 <    (*((*it_h).second))["eta_j2"]       = new TH1D(TString("eta_j2")+"_"+(*it_h).first+str,";#bf{jet 2 #eta};",         55,-4.8,4.8);     (*((*it_h).second))["eta_j2"]->Sumw2();
569 <    (*((*it_h).second))["eta_j3"]       = new TH1D(TString("eta_j3")+"_"+(*it_h).first+str,";#bf{jet 3 #eta};",         55,-4.8,4.8);     (*((*it_h).second))["eta_j3"]->Sumw2();
570 <    (*((*it_h).second))["eta_j4"]       = new TH1D(TString("eta_j4")+"_"+(*it_h).first+str,";#bf{jet 4 #eta};",         55,-4.8,4.8);     (*((*it_h).second))["eta_j4"]->Sumw2();
571 <    (*((*it_h).second))["phi_j1"]       = new TH1D(TString("phi_j1")+"_"+(*it_h).first+str,";#bf{jet 1 #phi};",         25,-3.2,3.2);     (*((*it_h).second))["phi_j1"]->Sumw2();
572 <    (*((*it_h).second))["phi_j2"]       = new TH1D(TString("phi_j2")+"_"+(*it_h).first+str,";#bf{jet 2 #phi};",         25,-3.2,3.2);     (*((*it_h).second))["phi_j2"]->Sumw2();
573 <    (*((*it_h).second))["phi_j3"]       = new TH1D(TString("phi_j3")+"_"+(*it_h).first+str,";#bf{jet 3 #phi};",         25,-3.2,3.2);     (*((*it_h).second))["phi_j3"]->Sumw2();
574 <    (*((*it_h).second))["phi_j4"]       = new TH1D(TString("phi_j4")+"_"+(*it_h).first+str,";#bf{jet 4 #phi};",         25,-3.2,3.2);     (*((*it_h).second))["phi_j4"]->Sumw2();
575 <    (*((*it_h).second))["idmva_j1"]     = new TH1D(TString("idmva_j1")+"_"+(*it_h).first+str,";#bf{jet 1 MVA};",        25,-1.1,1.1);     (*((*it_h).second))["idmva_j1"]->Sumw2();
576 <    (*((*it_h).second))["idmva_j2"]     = new TH1D(TString("idmva_j2")+"_"+(*it_h).first+str,";#bf{jet 2 MVA};",        25,-1.1,1.1);     (*((*it_h).second))["idmva_j2"]->Sumw2();
577 <    (*((*it_h).second))["idmva_j3"]     = new TH1D(TString("idmva_j3")+"_"+(*it_h).first+str,";#bf{jet 3 MVA};",        25,-1.1,1.1);     (*((*it_h).second))["idmva_j3"]->Sumw2();
578 <    (*((*it_h).second))["idmva_j4"]     = new TH1D(TString("idmva_j4")+"_"+(*it_h).first+str,";#bf{jet 4 MVA};",        25,-1.1,1.1);     (*((*it_h).second))["idmva_j4"]->Sumw2();
579 <    (*((*it_h).second))["mjj"]          = new TH1D(TString("mjj")+"_"+(*it_h).first+str,";#bf{m_{jj}};",                25,10,1550);     (*((*it_h).second))["mjj"]->Sumw2();
580 <    (*((*it_h).second))["dEta"]         = new TH1D(TString("dEta")+"_"+(*it_h).first+str,";#bf{#Delta #eta};",          25,-6,6);       (*((*it_h).second))["dEta"]->Sumw2();
581 <    (*((*it_h).second))["etaProd"]      = new TH1D(TString("etaProd")+"_"+(*it_h).first+str,";#bf{#eta_{1} * #eta_{2}};",25,-12,12);      (*((*it_h).second))["etaProd"]->Sumw2();
582 <    (*((*it_h).second))["njets"]        = new TH1D(TString("njets")+"_"+(*it_h).first+str,";#bf{N Jets};",      7,-0.5,6.5);      (*((*it_h).second))["njets"]->Sumw2();
583 <
584 <    (*((*it_h).second))["dR_l1j1"]      = new TH1D(TString("dR_l1j1") +"_"+(*it_h).first+str,";#bf{#Delta R l1,jet 1};",75,0,6);        (*((*it_h).second))["dR_l1j1"]->Sumw2();
585 <    (*((*it_h).second))["dR_l2j1"]      = new TH1D(TString("dR_l2j1") +"_"+(*it_h).first+str,";#bf{#Delta R l2,jet 1};",75,0,6);        (*((*it_h).second))["dR_l2j1"]->Sumw2();
586 <    (*((*it_h).second))["dR_l3j1"]      = new TH1D(TString("dR_l3j1") +"_"+(*it_h).first+str,";#bf{#Delta R l3,jet 1};",75,0,6);        (*((*it_h).second))["dR_l3j1"]->Sumw2();
587 <    (*((*it_h).second))["dR_l4j1"]      = new TH1D(TString("dR_l4j1") +"_"+(*it_h).first+str,";#bf{#Delta R l4,jet 1};",75,0,6);        (*((*it_h).second))["dR_l4j1"]->Sumw2();
588 <    (*((*it_h).second))["dR_l1j2"]      = new TH1D(TString("dR_l1j2") +"_"+(*it_h).first+str,";#bf{#Delta R l1,jet 2};",75,0,6);        (*((*it_h).second))["dR_l1j2"]->Sumw2();
589 <    (*((*it_h).second))["dR_l2j2"]      = new TH1D(TString("dR_l2j2") +"_"+(*it_h).first+str,";#bf{#Delta R l2,jet 2};",75,0,6);        (*((*it_h).second))["dR_l2j2"]->Sumw2();
590 <    (*((*it_h).second))["dR_l3j2"]      = new TH1D(TString("dR_l3j2") +"_"+(*it_h).first+str,";#bf{#Delta R l3,jet 2};",75,0,6);        (*((*it_h).second))["dR_l3j2"]->Sumw2();
591 <    (*((*it_h).second))["dR_l4j2"]      = new TH1D(TString("dR_l4j2") +"_"+(*it_h).first+str,";#bf{#Delta R l4,jet 2};",75,0,6);        (*((*it_h).second))["dR_l4j2"]->Sumw2();
592 <    (*((*it_h).second))["dR_l1j3"]      = new TH1D(TString("dR_l1j3") +"_"+(*it_h).first+str,";#bf{#Delta R l1,jet 3};",75,0,6);        (*((*it_h).second))["dR_l1j3"]->Sumw2();
593 <    (*((*it_h).second))["dR_l2j3"]      = new TH1D(TString("dR_l2j3") +"_"+(*it_h).first+str,";#bf{#Delta R l2,jet 3};",75,0,6);        (*((*it_h).second))["dR_l2j3"]->Sumw2();
594 <    (*((*it_h).second))["dR_l3j3"]      = new TH1D(TString("dR_l3j3") +"_"+(*it_h).first+str,";#bf{#Delta R l3,jet 3};",75,0,6);        (*((*it_h).second))["dR_l3j3"]->Sumw2();
595 <    (*((*it_h).second))["dR_l4j3"]      = new TH1D(TString("dR_l4j3") +"_"+(*it_h).first+str,";#bf{#Delta R l4,jet 3};",75,0,6);        (*((*it_h).second))["dR_l4j3"]->Sumw2();
596 <    (*((*it_h).second))["dR_l1j4"]      = new TH1D(TString("dR_l1j4") +"_"+(*it_h).first+str,";#bf{#Delta R l1,jet 4};",75,0,6);        (*((*it_h).second))["dR_l1j4"]->Sumw2();
597 <    (*((*it_h).second))["dR_l2j4"]      = new TH1D(TString("dR_l2j4") +"_"+(*it_h).first+str,";#bf{#Delta R l2,jet 4};",75,0,6);        (*((*it_h).second))["dR_l2j4"]->Sumw2();
598 <    (*((*it_h).second))["dR_l3j4"]      = new TH1D(TString("dR_l3j4") +"_"+(*it_h).first+str,";#bf{#Delta R l3,jet 4};",75,0,6);        (*((*it_h).second))["dR_l3j4"]->Sumw2();
599 <    (*((*it_h).second))["dR_l4j4"]      = new TH1D(TString("dR_l4j4") +"_"+(*it_h).first+str,";#bf{#Delta R l4,jet 4};",75,0,6);        (*((*it_h).second))["dR_l4j4"]->Sumw2();
600 <
601 <    int nbins=35;
602 <    (*((*it_h).second))["costheta1"]    = new TH1D(TString("costheta1") +"_"+(*it_h).first+str,";#bf{costheta1};",                nbins,-1,1);          (*((*it_h).second))["costheta1"]->Sumw2();
603 <    (*((*it_h).second))["costheta2"]    = new TH1D(TString("costheta2") +"_"+(*it_h).first+str,";#bf{costheta2};",                nbins,-1,1);          (*((*it_h).second))["costheta2"]->Sumw2();
604 <    (*((*it_h).second))["costhetastar"] = new TH1D(TString("costhetastar") +"_"+(*it_h).first+str,";#bf{costhetastar};",          nbins,-1,1);          (*((*it_h).second))["costhetastar"]->Sumw2();
605 <    (*((*it_h).second))["Phi"]          = new TH1D(TString("Phi") +"_"+(*it_h).first+str,";#bf{Phi};",                            nbins,-3.15,3.15);          (*((*it_h).second))["Phi"]->Sumw2();
606 <    (*((*it_h).second))["Phi1"]         = new TH1D(TString("Phi1") +"_"+(*it_h).first+str,";#bf{Phi1};",                          nbins,-3.15,3.15);          (*((*it_h).second))["Phi1"]->Sumw2();
607 <
608 <    (*((*it_h).second))["pt4l"]         = new TH1D(TString("pt4l") +"_"+(*it_h).first+str,";#bf{pt4l/m4l};",                      nbins-7,0,0.5);          (*((*it_h).second))["pt4l"]->Sumw2();
609 <    (*((*it_h).second))["pt4l_log"]     = new TH1D(TString("pt4l_log") +"_"+(*it_h).first+str,";#bf{pt4l/m4l};",                  nbins,0,1.5);          (*((*it_h).second))["pt4l_log"]->Sumw2();
610 <    (*((*it_h).second))["y4l"]          = new TH1D(TString("y4l") +"_"+(*it_h).first+str,";#bf{y4l};",                            nbins,-2.4,2.4);      (*((*it_h).second))["y4l"]->Sumw2();
611 <    (*((*it_h).second))["Z1pt"]         = new TH1D(TString("Z1pt") +"_"+(*it_h).first+str,";#bf{Z1pt/m4l};",                      nbins,0,0.5);          (*((*it_h).second))["Z1pt"]->Sumw2();
612 <    (*((*it_h).second))["Z1pt_log"]     = new TH1D(TString("Z1pt_log") +"_"+(*it_h).first+str,";#bf{Z1pt/m4l};",                  nbins,0,1.5);          (*((*it_h).second))["Z1pt_log"]->Sumw2();
613 <    (*((*it_h).second))["Z2pt"]         = new TH1D(TString("Z2pt") +"_"+(*it_h).first+str,";#bf{Z2pt/m4l};",                      nbins,0,0.5);          (*((*it_h).second))["Z2pt"]->Sumw2();
614 <    (*((*it_h).second))["Z2pt_log"]     = new TH1D(TString("Z2pt_log") +"_"+(*it_h).first+str,";#bf{Z2pt/m4l};",                  nbins,0,1.5);          (*((*it_h).second))["Z2pt_log"]->Sumw2();
615 <
616 <    (*((*it_h).second))["ZZdotZ1"]      = new TH1D(TString("ZZdotZ1") +"_"+(*it_h).first+str,";#bf{ZZ #bullet Z1/(m4l*mZ1)};",    nbins,-.2,2.5);          (*((*it_h).second))["ZZdotZ1"]->Sumw2();
617 <    (*((*it_h).second))["ZZdotZ2"]      = new TH1D(TString("ZZdotZ2") +"_"+(*it_h).first+str,";#bf{ZZ #bullet Z2/(m4l*mZ2)};",    nbins,-1,3);          (*((*it_h).second))["ZZdotZ2"]->Sumw2();
618 <    (*((*it_h).second))["ZZdotZ1_log"]  = new TH1D(TString("ZZdotZ1_log") +"_"+(*it_h).first+str,";#bf{ZZ #bullet Z1/(m4l*mZ1)};",nbins,-1.5,15);          (*((*it_h).second))["ZZdotZ1_log"]->Sumw2();
619 <    (*((*it_h).second))["ZZdotZ2_log"]  = new TH1D(TString("ZZdotZ2_log") +"_"+(*it_h).first+str,";#bf{ZZ #bullet Z2/(m4l*mZ2)};",nbins,-1.5,15);          (*((*it_h).second))["ZZdotZ2_log"]->Sumw2();
620 <    (*((*it_h).second))["dphi1"]        = new TH1D(TString("dphi1") +"_"+(*it_h).first+str,";#bf{dphi1};",                        nbins,-1,1);          (*((*it_h).second))["dphi1"]->Sumw2();
621 <    (*((*it_h).second))["dphi2"]        = new TH1D(TString("dphi2") +"_"+(*it_h).first+str,";#bf{dphi2};",                        nbins,-1,1);          (*((*it_h).second))["dphi2"]->Sumw2();
622 <    (*((*it_h).second))["dphi1_log"]    = new TH1D(TString("dphi1_log") +"_"+(*it_h).first+str,";#bf{dphi1};",                    nbins,-1,1);          (*((*it_h).second))["dphi1_log"]->Sumw2();
623 <    (*((*it_h).second))["dphi2_log"]    = new TH1D(TString("dphi2_log") +"_"+(*it_h).first+str,";#bf{dphi2};",                    nbins,-1,1);          (*((*it_h).second))["dphi2_log"]->Sumw2();
624 <
625 <    (*((*it_h).second))["fusionMVA"]            = new TH1D(TString("fusionMVA")+"_"+(*it_h).first+str,";#bf{MVA output};",        100,-1,1);      (*((*it_h).second))["fusionMVA"]->Sumw2();
626 <    (*((*it_h).second))["fusionMVA_lo"]         = new TH1D(TString("fusionMVA_lo")+"_"+(*it_h).first+str,";#bf{MVA output};",        100,-1,-.83);      (*((*it_h).second))["fusionMVA_lo"]->Sumw2();
627 <    (*((*it_h).second))["fusionMVA_med"]                = new TH1D(TString("fusionMVA_med")+"_"+(*it_h).first+str,";#bf{MVA output};",        100,-.5,1);      (*((*it_h).second))["fusionMVA_med"]->Sumw2();
628 <    (*((*it_h).second))["fusionMVA_hi"]         = new TH1D(TString("fusionMVA_hi")+"_"+(*it_h).first+str,";#bf{MVA output};",        100,.75,1);      (*((*it_h).second))["fusionMVA_hi"]->Sumw2();
629 <    (*((*it_h).second))["m4l_jet_lo"]           = new TH1D(TString("m4l_jet_lo") +"_"+(*it_h).first+str,";#bf{m4l [GeV]};",     45,100,180);          (*((*it_h).second))["m4l_jet_lo"]->Sumw2();
630 <    (*((*it_h).second))["m4l_jet"]              = new TH1D(TString("m4l_jet") +"_"+(*it_h).first+str,";#bf{m4l [GeV]};",        45,100,600);          (*((*it_h).second))["m4l_jet"]->Sumw2();
631 <  }
515 >  allocate_hists(hists,str);
516 >  // for(it_h=hists.begin(); it_h!=hists.end(); it_h++) {
517 >  //   (*((*it_h).second))["npv"]               = new TH1D(TString("npv") +"_"+(*it_h).first+str,";#bf{N PV};",         50,-0.5,49.5);      (*((*it_h).second))["npv"]->Sumw2();
518 >  //   (*((*it_h).second))["run"]               = new TH1D(TString("run") +"_"+(*it_h).first+str,";#bf{run};",          50,160800,203744/*196535*/);   (*((*it_h).second))["run"]->Sumw2();
519 >  //   (*((*it_h).second))["mZ1"]               = new TH1D(TString("mZ1") +"_"+(*it_h).first+str,";#bf{mZ1 [GeV]};",    20,40,120);          (*((*it_h).second))["mZ1"]->Sumw2();
520 >  //   (*((*it_h).second))["mZ2"]               = new TH1D(TString("mZ2") +"_"+(*it_h).first+str,";#bf{mZ2 [GeV]};",    30,0,115);           (*((*it_h).second))["mZ2"]->Sumw2();
521 >  //   (*((*it_h).second))["mZ2_lo"]    = new TH1D(TString("mZ2_lo") +"_"+(*it_h).first+str,";#bf{mZ2 [GeV]};", 30,0,10);           (*((*it_h).second))["mZ2_lo"]->Sumw2();
522 >  //   (*((*it_h).second))["m4l_lo"]    = new TH1D(TString("m4l_lo") +"_"+(*it_h).first+str,";#bf{m4l [GeV]};", 35,70,120);          (*((*it_h).second))["m4l_lo"]->Sumw2();
523 >  //   (*((*it_h).second))["m4l_med"]   = new TH1D(TString("m4l_med") +"_"+(*it_h).first+str,";#bf{m4l [GeV]};",35,100,180);          (*((*it_h).second))["m4l_med"]->Sumw2();
524 >  //   (*((*it_h).second))["m4l"]               = new TH1D(TString("m4l") +"_"+(*it_h).first+str,";#bf{m4l [GeV]};",    35,100,450);          (*((*it_h).second))["m4l"]->Sumw2();
525 >  //   // (*((*it_h).second))["Z1pt"]           = new TH1D(TString("Z1pt") +"_"+(*it_h).first+str,";#bf{Z1pt [GeV]};",  20,0,200);           (*((*it_h).second))["Z1pt"]->Sumw2();
526 >  //   // (*((*it_h).second))["ZZpt"]           = new TH1D(TString("ZZpt") +"_"+(*it_h).first+str,";#bf{ZZpt [GeV]};",  30,0,200);           (*((*it_h).second))["ZZpt"]->Sumw2();
527 >  //   (*((*it_h).second))["met"]               = new TH1D(TString("met") +"_"+(*it_h).first+str,";#bf{met [GeV]};",    30,0,100);           (*((*it_h).second))["met"]->Sumw2();
528 >
529 >  //   (*((*it_h).second))["pt_l1"]     = new TH1D(TString("pt_l1") +"_"+(*it_h).first+str,";#bf{l1 p_{T} [GeV]};",     37,0,120);  (*((*it_h).second))["pt_l1"]->Sumw2();
530 >  //   (*((*it_h).second))["pt_l2"]     = new TH1D(TString("pt_l2") +"_"+(*it_h).first+str,";#bf{l2 p_{T} [GeV]};",     37,0,65);  (*((*it_h).second))["pt_l2"]->Sumw2();
531 >  //   (*((*it_h).second))["pt_l3"]     = new TH1D(TString("pt_l3") +"_"+(*it_h).first+str,";#bf{l3 p_{T} [GeV]};",     37,0,75);  (*((*it_h).second))["pt_l3"]->Sumw2();
532 >  //   (*((*it_h).second))["pt_l4"]     = new TH1D(TString("pt_l4") +"_"+(*it_h).first+str,";#bf{l4 p_{T} [GeV]};",     37,0,50);  (*((*it_h).second))["pt_l4"]->Sumw2();
533 >
534 >  //   (*((*it_h).second))["eta_l1"]    = new TH1D(TString("eta_l1")+"_"+(*it_h).first+str,";#bf{l1 #eta};",            25,-2.5,2.5);     (*((*it_h).second))["eta_l1"]->Sumw2();
535 >  //   (*((*it_h).second))["eta_l2"]    = new TH1D(TString("eta_l2")+"_"+(*it_h).first+str,";#bf{l2 #eta};",            25,-2.5,2.5);     (*((*it_h).second))["eta_l2"]->Sumw2();
536 >  //   (*((*it_h).second))["eta_l3"]    = new TH1D(TString("eta_l3")+"_"+(*it_h).first+str,";#bf{l3 #eta};",            25,-2.5,2.5);     (*((*it_h).second))["eta_l3"]->Sumw2();
537 >  //   (*((*it_h).second))["eta_l4"]    = new TH1D(TString("eta_l4")+"_"+(*it_h).first+str,";#bf{l4 #eta};",            25,-2.5,2.5);     (*((*it_h).second))["eta_l4"]->Sumw2();
538 >
539 >  //   (*((*it_h).second))["ip3ds_l1"]  = new TH1D(TString("ip3ds_l1") +"_"+(*it_h).first+str,";#bf{ip3ds l1};",37,-3,3);       (*((*it_h).second))["ip3ds_l1"]->Sumw2();
540 >  //   (*((*it_h).second))["ip3ds_l2"]  = new TH1D(TString("ip3ds_l2") +"_"+(*it_h).first+str,";#bf{ip3ds l2};",37,-3,3);       (*((*it_h).second))["ip3ds_l2"]->Sumw2();
541 >  //   (*((*it_h).second))["ip3ds_l3_lo"]       = new TH1D(TString("ip3ds_l3_lo") +"_"+(*it_h).first+str,";#bf{ip3ds l3_lo};",25,-6,6); (*((*it_h).second))["ip3ds_l3_lo"]->Sumw2();
542 >  //   (*((*it_h).second))["ip3ds_l4_lo"]       = new TH1D(TString("ip3ds_l4_lo") +"_"+(*it_h).first+str,";#bf{ip3ds l4_lo};",25,-6,6); (*((*it_h).second))["ip3ds_l4_lo"]->Sumw2();
543 >  //   (*((*it_h).second))["ip3ds_l3"]  = new TH1D(TString("ip3ds_l3") +"_"+(*it_h).first+str,";#bf{ip3ds l3};",55,-40,40);     (*((*it_h).second))["ip3ds_l3"]->Sumw2();
544 >  //   (*((*it_h).second))["ip3ds_l4"]  = new TH1D(TString("ip3ds_l4") +"_"+(*it_h).first+str,";#bf{ip3ds l4};",55,-40,40);     (*((*it_h).second))["ip3ds_l4"]->Sumw2();
545 >
546 >  //   (*((*it_h).second))["d0_l1"]     = new TH1D(TString("d0_l1") +"_"+(*it_h).first+str,";#bf{d0 l1};",50,-.008,.008);      (*((*it_h).second))["d0_l1"]->Sumw2();
547 >  //   (*((*it_h).second))["d0_l2"]     = new TH1D(TString("d0_l2") +"_"+(*it_h).first+str,";#bf{d0 l2};",50,-.008,.008);      (*((*it_h).second))["d0_l2"]->Sumw2();
548 >  //   (*((*it_h).second))["d0_l3_lo"]  = new TH1D(TString("d0_l3_lo") +"_"+(*it_h).first+str,";#bf{d0 l3_lo};",25,-.03,.03);  (*((*it_h).second))["d0_l3_lo"]->Sumw2();
549 >  //   (*((*it_h).second))["d0_l4_lo"]  = new TH1D(TString("d0_l4_lo") +"_"+(*it_h).first+str,";#bf{d0 l4_lo};",25,-.03,.03);  (*((*it_h).second))["d0_l4_lo"]->Sumw2();
550 >  //   (*((*it_h).second))["d0_l3"]     = new TH1D(TString("d0_l3") +"_"+(*it_h).first+str,";#bf{d0 l3};",50,-.1,.1);          (*((*it_h).second))["d0_l3"]->Sumw2();
551 >  //   (*((*it_h).second))["d0_l4"]     = new TH1D(TString("d0_l4") +"_"+(*it_h).first+str,";#bf{d0 l4};",50,-.1,.1);          (*((*it_h).second))["d0_l4"]->Sumw2();
552 >
553 >  //   (*((*it_h).second))["dz_l1"]     = new TH1D(TString("dz_l1") +"_"+(*it_h).first+str,";#bf{dz l1};",50,-.01,.01);   (*((*it_h).second))["dz_l1"]->Sumw2();
554 >  //   (*((*it_h).second))["dz_l2"]     = new TH1D(TString("dz_l2") +"_"+(*it_h).first+str,";#bf{dz l2};",50,-.01,.01);   (*((*it_h).second))["dz_l2"]->Sumw2();
555 >  //   (*((*it_h).second))["dz_l3"]     = new TH1D(TString("dz_l3") +"_"+(*it_h).first+str,";#bf{dz l3};",50,-.2,.2);   (*((*it_h).second))["dz_l3"]->Sumw2();
556 >  //   (*((*it_h).second))["dz_l4"]     = new TH1D(TString("dz_l4") +"_"+(*it_h).first+str,";#bf{dz l4};",50,-.2,.2);   (*((*it_h).second))["dz_l4"]->Sumw2();
557 >
558 >  //   (*((*it_h).second))["dR_l3l4_lo"]        = new TH1D(TString("dR_l3l4_lo") +"_"+(*it_h).first+str,";#bf{#Delta R l3,l4};",75,0,.2);    (*((*it_h).second))["dR_l3l4_lo"]->Sumw2();
559 >  //   (*((*it_h).second))["dR_l3l4"]   = new TH1D(TString("dR_l3l4") +"_"+(*it_h).first+str,";#bf{#Delta R l3,l4};",75,0,6);        (*((*it_h).second))["dR_l3l4"]->Sumw2();
560 >
561 >  //   // jets
562 >  //   (*((*it_h).second))["pt_allJet"] = new TH1D(TString("pt_allJet") +"_"+(*it_h).first+str,";#bf{jet 1 p_{T} [GeV]};",37,0,400);  (*((*it_h).second))["pt_allJet"]->Sumw2();
563 >  //   (*((*it_h).second))["eta_allJet"]        = new TH1D(TString("eta_allJet") +"_"+(*it_h).first+str,";#bf{jet 1 p_{T} [GeV]};",37,-4.8,4.8);  (*((*it_h).second))["eta_allJet"]->Sumw2();
564 >  //   (*((*it_h).second))["pt_j1"]     = new TH1D(TString("pt_j1") +"_"+(*it_h).first+str,";#bf{jet 1 p_{T} [GeV]};",  37,0,400);  (*((*it_h).second))["pt_j1"]->Sumw2();
565 >  //   (*((*it_h).second))["pt_j2"]     = new TH1D(TString("pt_j2") +"_"+(*it_h).first+str,";#bf{jet 2 p_{T} [GeV]};",  37,0,125);  (*((*it_h).second))["pt_j2"]->Sumw2();
566 >  //   (*((*it_h).second))["pt_j3"]     = new TH1D(TString("pt_j3") +"_"+(*it_h).first+str,";#bf{jet 3 p_{T} [GeV]};",  37,0,125);  (*((*it_h).second))["pt_j3"]->Sumw2();
567 >  //   (*((*it_h).second))["pt_j4"]     = new TH1D(TString("pt_j4") +"_"+(*it_h).first+str,";#bf{jet 4 p_{T} [GeV]};",  37,0,125);  (*((*it_h).second))["pt_j4"]->Sumw2();
568 >  //   (*((*it_h).second))["eta_j1"]    = new TH1D(TString("eta_j1")+"_"+(*it_h).first+str,";#bf{jet 1 #eta};",         55,-4.8,4.8);     (*((*it_h).second))["eta_j1"]->Sumw2();
569 >  //   (*((*it_h).second))["eta_j2"]    = new TH1D(TString("eta_j2")+"_"+(*it_h).first+str,";#bf{jet 2 #eta};",         55,-4.8,4.8);     (*((*it_h).second))["eta_j2"]->Sumw2();
570 >  //   (*((*it_h).second))["eta_j3"]    = new TH1D(TString("eta_j3")+"_"+(*it_h).first+str,";#bf{jet 3 #eta};",         55,-4.8,4.8);     (*((*it_h).second))["eta_j3"]->Sumw2();
571 >  //   (*((*it_h).second))["eta_j4"]    = new TH1D(TString("eta_j4")+"_"+(*it_h).first+str,";#bf{jet 4 #eta};",         55,-4.8,4.8);     (*((*it_h).second))["eta_j4"]->Sumw2();
572 >  //   (*((*it_h).second))["phi_j1"]    = new TH1D(TString("phi_j1")+"_"+(*it_h).first+str,";#bf{jet 1 #phi};",         25,-3.2,3.2);     (*((*it_h).second))["phi_j1"]->Sumw2();
573 >  //   (*((*it_h).second))["phi_j2"]    = new TH1D(TString("phi_j2")+"_"+(*it_h).first+str,";#bf{jet 2 #phi};",         25,-3.2,3.2);     (*((*it_h).second))["phi_j2"]->Sumw2();
574 >  //   (*((*it_h).second))["phi_j3"]    = new TH1D(TString("phi_j3")+"_"+(*it_h).first+str,";#bf{jet 3 #phi};",         25,-3.2,3.2);     (*((*it_h).second))["phi_j3"]->Sumw2();
575 >  //   (*((*it_h).second))["phi_j4"]    = new TH1D(TString("phi_j4")+"_"+(*it_h).first+str,";#bf{jet 4 #phi};",         25,-3.2,3.2);     (*((*it_h).second))["phi_j4"]->Sumw2();
576 >  //   (*((*it_h).second))["idmva_j1"]  = new TH1D(TString("idmva_j1")+"_"+(*it_h).first+str,";#bf{jet 1 MVA};",        25,-1.1,1.1);     (*((*it_h).second))["idmva_j1"]->Sumw2();
577 >  //   (*((*it_h).second))["idmva_j2"]  = new TH1D(TString("idmva_j2")+"_"+(*it_h).first+str,";#bf{jet 2 MVA};",        25,-1.1,1.1);     (*((*it_h).second))["idmva_j2"]->Sumw2();
578 >  //   (*((*it_h).second))["idmva_j3"]  = new TH1D(TString("idmva_j3")+"_"+(*it_h).first+str,";#bf{jet 3 MVA};",        25,-1.1,1.1);     (*((*it_h).second))["idmva_j3"]->Sumw2();
579 >  //   (*((*it_h).second))["idmva_j4"]  = new TH1D(TString("idmva_j4")+"_"+(*it_h).first+str,";#bf{jet 4 MVA};",        25,-1.1,1.1);     (*((*it_h).second))["idmva_j4"]->Sumw2();
580 >  //   (*((*it_h).second))["mjj"]               = new TH1D(TString("mjj")+"_"+(*it_h).first+str,";#bf{m_{jj}};",                25,10,1550);     (*((*it_h).second))["mjj"]->Sumw2();
581 >  //   (*((*it_h).second))["dEta"]              = new TH1D(TString("dEta")+"_"+(*it_h).first+str,";#bf{#Delta #eta};",          25,-6,6);       (*((*it_h).second))["dEta"]->Sumw2();
582 >  //   (*((*it_h).second))["etaProd"]   = new TH1D(TString("etaProd")+"_"+(*it_h).first+str,";#bf{#eta_{1} * #eta_{2}};",25,-12,12);      (*((*it_h).second))["etaProd"]->Sumw2();
583 >  //   (*((*it_h).second))["njets"]     = new TH1D(TString("njets")+"_"+(*it_h).first+str,";#bf{N Jets};",      7,-0.5,6.5);      (*((*it_h).second))["njets"]->Sumw2();
584 >
585 >  //   // (*((*it_h).second))["dR_l1j1"]        = new TH1D(TString("dR_l1j1") +"_"+(*it_h).first+str,";#bf{#Delta R l1,jet 1};",75,0,6);        (*((*it_h).second))["dR_l1j1"]->Sumw2();
586 >  //   // (*((*it_h).second))["dR_l2j1"]        = new TH1D(TString("dR_l2j1") +"_"+(*it_h).first+str,";#bf{#Delta R l2,jet 1};",75,0,6);        (*((*it_h).second))["dR_l2j1"]->Sumw2();
587 >  //   // (*((*it_h).second))["dR_l3j1"]        = new TH1D(TString("dR_l3j1") +"_"+(*it_h).first+str,";#bf{#Delta R l3,jet 1};",75,0,6);        (*((*it_h).second))["dR_l3j1"]->Sumw2();
588 >  //   // (*((*it_h).second))["dR_l4j1"]        = new TH1D(TString("dR_l4j1") +"_"+(*it_h).first+str,";#bf{#Delta R l4,jet 1};",75,0,6);        (*((*it_h).second))["dR_l4j1"]->Sumw2();
589 >  //   // (*((*it_h).second))["dR_l1j2"]        = new TH1D(TString("dR_l1j2") +"_"+(*it_h).first+str,";#bf{#Delta R l1,jet 2};",75,0,6);        (*((*it_h).second))["dR_l1j2"]->Sumw2();
590 >  //   // (*((*it_h).second))["dR_l2j2"]        = new TH1D(TString("dR_l2j2") +"_"+(*it_h).first+str,";#bf{#Delta R l2,jet 2};",75,0,6);        (*((*it_h).second))["dR_l2j2"]->Sumw2();
591 >  //   // (*((*it_h).second))["dR_l3j2"]        = new TH1D(TString("dR_l3j2") +"_"+(*it_h).first+str,";#bf{#Delta R l3,jet 2};",75,0,6);        (*((*it_h).second))["dR_l3j2"]->Sumw2();
592 >  //   // (*((*it_h).second))["dR_l4j2"]        = new TH1D(TString("dR_l4j2") +"_"+(*it_h).first+str,";#bf{#Delta R l4,jet 2};",75,0,6);        (*((*it_h).second))["dR_l4j2"]->Sumw2();
593 >  //   // (*((*it_h).second))["dR_l1j3"]        = new TH1D(TString("dR_l1j3") +"_"+(*it_h).first+str,";#bf{#Delta R l1,jet 3};",75,0,6);        (*((*it_h).second))["dR_l1j3"]->Sumw2();
594 >  //   // (*((*it_h).second))["dR_l2j3"]        = new TH1D(TString("dR_l2j3") +"_"+(*it_h).first+str,";#bf{#Delta R l2,jet 3};",75,0,6);        (*((*it_h).second))["dR_l2j3"]->Sumw2();
595 >  //   // (*((*it_h).second))["dR_l3j3"]        = new TH1D(TString("dR_l3j3") +"_"+(*it_h).first+str,";#bf{#Delta R l3,jet 3};",75,0,6);        (*((*it_h).second))["dR_l3j3"]->Sumw2();
596 >  //   // (*((*it_h).second))["dR_l4j3"]        = new TH1D(TString("dR_l4j3") +"_"+(*it_h).first+str,";#bf{#Delta R l4,jet 3};",75,0,6);        (*((*it_h).second))["dR_l4j3"]->Sumw2();
597 >  //   // (*((*it_h).second))["dR_l1j4"]        = new TH1D(TString("dR_l1j4") +"_"+(*it_h).first+str,";#bf{#Delta R l1,jet 4};",75,0,6);        (*((*it_h).second))["dR_l1j4"]->Sumw2();
598 >  //   // (*((*it_h).second))["dR_l2j4"]        = new TH1D(TString("dR_l2j4") +"_"+(*it_h).first+str,";#bf{#Delta R l2,jet 4};",75,0,6);        (*((*it_h).second))["dR_l2j4"]->Sumw2();
599 >  //   // (*((*it_h).second))["dR_l3j4"]        = new TH1D(TString("dR_l3j4") +"_"+(*it_h).first+str,";#bf{#Delta R l3,jet 4};",75,0,6);        (*((*it_h).second))["dR_l3j4"]->Sumw2();
600 >  //   // (*((*it_h).second))["dR_l4j4"]        = new TH1D(TString("dR_l4j4") +"_"+(*it_h).first+str,";#bf{#Delta R l4,jet 4};",75,0,6);        (*((*it_h).second))["dR_l4j4"]->Sumw2();
601 >
602 >  //   int nbins=35;
603 >  //   (*((*it_h).second))["costheta1"] = new TH1D(TString("costheta1") +"_"+(*it_h).first+str,";#bf{costheta1};",                nbins,-1,1);          (*((*it_h).second))["costheta1"]->Sumw2();
604 >  //   (*((*it_h).second))["costheta2"] = new TH1D(TString("costheta2") +"_"+(*it_h).first+str,";#bf{costheta2};",                nbins,-1,1);          (*((*it_h).second))["costheta2"]->Sumw2();
605 >  //   (*((*it_h).second))["costhetastar"]      = new TH1D(TString("costhetastar") +"_"+(*it_h).first+str,";#bf{costhetastar};",          nbins,-1,1);          (*((*it_h).second))["costhetastar"]->Sumw2();
606 >  //   (*((*it_h).second))["Phi"]               = new TH1D(TString("Phi") +"_"+(*it_h).first+str,";#bf{Phi};",                            nbins,-3.15,3.15);          (*((*it_h).second))["Phi"]->Sumw2();
607 >  //   (*((*it_h).second))["Phi1"]              = new TH1D(TString("Phi1") +"_"+(*it_h).first+str,";#bf{Phi1};",                          nbins,-3.15,3.15);          (*((*it_h).second))["Phi1"]->Sumw2();
608 >
609 >  //   (*((*it_h).second))["pt4l"]              = new TH1D(TString("pt4l") +"_"+(*it_h).first+str,";#bf{pt4l/m4l};",                      nbins-7,0,0.5);          (*((*it_h).second))["pt4l"]->Sumw2();
610 >  //   (*((*it_h).second))["pt4l_log"]  = new TH1D(TString("pt4l_log") +"_"+(*it_h).first+str,";#bf{pt4l/m4l};",                  nbins,0,1.5);          (*((*it_h).second))["pt4l_log"]->Sumw2();
611 >  //   (*((*it_h).second))["y4l"]               = new TH1D(TString("y4l") +"_"+(*it_h).first+str,";#bf{y4l};",                            nbins,-2.4,2.4);      (*((*it_h).second))["y4l"]->Sumw2();
612 >  //   (*((*it_h).second))["Z1pt"]              = new TH1D(TString("Z1pt") +"_"+(*it_h).first+str,";#bf{Z1pt/m4l};",                      nbins,0,0.5);          (*((*it_h).second))["Z1pt"]->Sumw2();
613 >  //   (*((*it_h).second))["Z1pt_log"]  = new TH1D(TString("Z1pt_log") +"_"+(*it_h).first+str,";#bf{Z1pt/m4l};",                  nbins,0,1.5);          (*((*it_h).second))["Z1pt_log"]->Sumw2();
614 >  //   (*((*it_h).second))["Z2pt"]              = new TH1D(TString("Z2pt") +"_"+(*it_h).first+str,";#bf{Z2pt/m4l};",                      nbins,0,0.5);          (*((*it_h).second))["Z2pt"]->Sumw2();
615 >  //   (*((*it_h).second))["Z2pt_log"]  = new TH1D(TString("Z2pt_log") +"_"+(*it_h).first+str,";#bf{Z2pt/m4l};",                  nbins,0,1.5);          (*((*it_h).second))["Z2pt_log"]->Sumw2();
616 >
617 >  //   (*((*it_h).second))["ZZdotZ1"]   = new TH1D(TString("ZZdotZ1") +"_"+(*it_h).first+str,";#bf{ZZ #bullet Z1/(m4l*mZ1)};",    nbins,-.2,2.5);          (*((*it_h).second))["ZZdotZ1"]->Sumw2();
618 >  //   (*((*it_h).second))["ZZdotZ2"]   = new TH1D(TString("ZZdotZ2") +"_"+(*it_h).first+str,";#bf{ZZ #bullet Z2/(m4l*mZ2)};",    nbins,-1,3);          (*((*it_h).second))["ZZdotZ2"]->Sumw2();
619 >  //   (*((*it_h).second))["ZZdotZ1_log"]       = new TH1D(TString("ZZdotZ1_log") +"_"+(*it_h).first+str,";#bf{ZZ #bullet Z1/(m4l*mZ1)};",nbins,-1.5,15);          (*((*it_h).second))["ZZdotZ1_log"]->Sumw2();
620 >  //   (*((*it_h).second))["ZZdotZ2_log"]       = new TH1D(TString("ZZdotZ2_log") +"_"+(*it_h).first+str,";#bf{ZZ #bullet Z2/(m4l*mZ2)};",nbins,-1.5,15);          (*((*it_h).second))["ZZdotZ2_log"]->Sumw2();
621 >  //   (*((*it_h).second))["dphi1"]     = new TH1D(TString("dphi1") +"_"+(*it_h).first+str,";#bf{dphi1};",                        nbins,-1,1);          (*((*it_h).second))["dphi1"]->Sumw2();
622 >  //   (*((*it_h).second))["dphi2"]     = new TH1D(TString("dphi2") +"_"+(*it_h).first+str,";#bf{dphi2};",                        nbins,-1,1);          (*((*it_h).second))["dphi2"]->Sumw2();
623 >  //   (*((*it_h).second))["dphi1_log"] = new TH1D(TString("dphi1_log") +"_"+(*it_h).first+str,";#bf{dphi1};",                    nbins,-1,1);          (*((*it_h).second))["dphi1_log"]->Sumw2();
624 >  //   (*((*it_h).second))["dphi2_log"] = new TH1D(TString("dphi2_log") +"_"+(*it_h).first+str,";#bf{dphi2};",                    nbins,-1,1);          (*((*it_h).second))["dphi2_log"]->Sumw2();
625 >
626 >  //   (*((*it_h).second))["fusionMVA"]         = new TH1D(TString("fusionMVA")+"_"+(*it_h).first+str,";#bf{MVA output};",        100,-1,1);      (*((*it_h).second))["fusionMVA"]->Sumw2();
627 >  //   (*((*it_h).second))["fusionMVA_lo"]              = new TH1D(TString("fusionMVA_lo")+"_"+(*it_h).first+str,";#bf{MVA output};",        100,-1,-.83);      (*((*it_h).second))["fusionMVA_lo"]->Sumw2();
628 >  //   (*((*it_h).second))["fusionMVA_med"]             = new TH1D(TString("fusionMVA_med")+"_"+(*it_h).first+str,";#bf{MVA output};",        100,-.5,1);      (*((*it_h).second))["fusionMVA_med"]->Sumw2();
629 >  //   (*((*it_h).second))["fusionMVA_hi"]              = new TH1D(TString("fusionMVA_hi")+"_"+(*it_h).first+str,";#bf{MVA output};",        100,.75,1);      (*((*it_h).second))["fusionMVA_hi"]->Sumw2();
630 >  //   (*((*it_h).second))["m4l_jet_lo"]                = new TH1D(TString("m4l_jet_lo") +"_"+(*it_h).first+str,";#bf{m4l [GeV]};",     45,100,180);          (*((*it_h).second))["m4l_jet_lo"]->Sumw2();
631 >  //   (*((*it_h).second))["m4l_jet"]           = new TH1D(TString("m4l_jet") +"_"+(*it_h).first+str,";#bf{m4l [GeV]};",        45,100,600);          (*((*it_h).second))["m4l_jet"]->Sumw2();
632 >  // }
633    return hists;
634   }
635   //--------------------------------------------------------------------------------------------------
636 < void makeHTML(FOFlags &ctrl, TString type, TString plotLabel, TString fullOutDir)
637 < {
638 <  TString tmpString(plotLabel);
639 <  tmpString.ReplaceAll("/"," ");
640 <  TString title(ctrl.faketype+", "+tmpString+", "+type);
641 <  TString htmlfname(fullOutDir+"/plots.html");
642 <  ofstream htmlfile(htmlfname);
643 <
644 <  htmlfile << "<!DOCTYPE html" << endl;
645 <  htmlfile << "    PUBLIC \"-//W3C//DTD HTML 3.2//EN\">" << endl;
646 <  htmlfile << "<html>" << endl;
647 <
648 <  htmlfile << "<head><title>"+title+"</title></head>" << endl;
649 <  htmlfile << "<body bgcolor=\"000000\">" << endl;
650 <  htmlfile << "<h3 style=\"text-align:left; color:DD6600;\">"+title+"</h3>" << endl;
651 <
652 <  htmlfile << "<h3 style=\"text-align:left; color:DD6600;\">boson kinematics</h3>" << endl;
653 <  htmlfile << "<table border=\"0\" cellspacing=\"5\" width=\"100%\">" << endl;  
654 <
655 <  htmlfile << "<tr>" << endl;
656 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/m4l_lo.png\"><img src=\"plots/m4l_lo.png\" alt=\"plots/m4l_lo.png\" width=\"100%\"></a></td>" << endl;
657 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/m4l_med.png\"><img src=\"plots/m4l_med.png\" alt=\"plots/m4l_med.png\" width=\"100%\"></a></td>" << endl;
658 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/m4l.png\"><img src=\"plots/m4l.png\" alt=\"plots/m4l.png\" width=\"100%\"></a></td>" << endl;
659 <  htmlfile << "<td width=\"25%\"><a></a></td>" << endl;
660 <  htmlfile << "</tr>" << endl;
661 <
662 <  htmlfile << "<tr>" << endl;
663 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/mZ1.png\"><img src=\"plots/mZ1.png\" alt=\"plots/mZ1.png\" width=\"100%\"></a></td>" << endl;
664 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/mZ2_lo.png\"><img src=\"plots/mZ2_lo.png\" alt=\"plots/mZ2_lo.png\" width=\"100%\"></a></td>" << endl;
665 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/mZ2.png\"><img src=\"plots/mZ2.png\" alt=\"plots/mZ2.png\" width=\"100%\"></a></td>" << endl;
666 <  htmlfile << "<td width=\"25%\"><a></a></td>" << endl;
667 <  htmlfile << "</tr>" << endl;
668 <
669 <  htmlfile << "<tr>" << endl;
670 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/Z1pt.png\"><img src=\"plots/Z1pt.png\" alt=\"plots/Z1pt.png\" width=\"100%\"></a></td>" << endl;
671 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/ZZpt.png\"><img src=\"plots/ZZpt.png\" alt=\"plots/ZZpt.png\" width=\"100%\"></a></td>" << endl;
672 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/met.png\"><img src=\"plots/met.png\" alt=\"plots/met.png\" width=\"100%\"></a></td>" << endl;
673 <  htmlfile << "<td width=\"25%\"><a></a></td>" << endl;
674 <  htmlfile << "<td width=\"25%\"><a></a></td>" << endl;
675 <  htmlfile << "</tr>" << endl;
676 <
677 <  htmlfile << "</table>" << endl;
678 <  htmlfile << "<hr />" << endl;
679 <  htmlfile << "control: " << endl;
680 <  htmlfile << "<table border=\"0\" cellspacing=\"5\" width=\"100%\">" << endl;  
681 <
682 <  htmlfile << "<tr>" << endl;
683 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/run.png\"><img src=\"plots/run.png\" alt=\"plots/run.png\" width=\"100%\"></a></td>" << endl;
684 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/npv.png\"><img src=\"plots/npv.png\" alt=\"plots/npv.png\" width=\"100%\"></a></td>" << endl;
685 <  htmlfile << "<td width=\"25%\"><a></a></td>" << endl;
686 <  htmlfile << "<td width=\"25%\"><a></a></td>" << endl;
687 <  htmlfile << "</tr>" << endl;
688 <
689 <  htmlfile << "</table>" << endl;
690 <
691 <  htmlfile << "</body>" << endl;
692 <  htmlfile << "</html>" << endl;
693 <  htmlfile.close();
694 <
695 <  TString anglefname(htmlfname);
696 <  anglefname.ReplaceAll("plots.html","angleplots.html");
697 <  htmlfile.open(anglefname);
698 <
699 <  htmlfile << "<!DOCTYPE html" << endl;
700 <  htmlfile << "    PUBLIC \"-//W3C//DTD HTML 3.2//EN\">" << endl;
701 <  htmlfile << "<html>" << endl;
702 <
703 <  htmlfile << "<head><title>"+title+"</title></head>" << endl;
704 <  htmlfile << "<body bgcolor=\"000000\">" << endl;
705 <  htmlfile << "<h3 style=\"text-align:left; color:DD6600;\">"+title+"</h3>" << endl;
706 <
707 <  htmlfile << "<h3 style=\"text-align:left; color:DD6600;\">Angles & Co.</h3>" << endl;
708 <  htmlfile << "<hr />" << endl;
709 <  htmlfile << "<table border=\"0\" cellspacing=\"5\" width=\"100%\">" << endl;  
710 <  htmlfile << "</table>" << endl;
711 <
712 <  htmlfile << "<h3 style=\"text-align:left; color:DD6600;\">Angles:</h3>" << endl;
713 <  htmlfile << "<table border=\"0\" cellspacing=\"5\" width=\"100%\">" << endl;  
714 <
715 <  htmlfile << "<tr>" << endl;
716 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/costheta1.png\"><img src=\"plots/costheta1.png\" alt=\"plots/costheta1.png\" width=\"100%\"></a></td>" << endl;
717 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/costheta2.png\"><img src=\"plots/costheta2.png\" alt=\"plots/costheta2.png\" width=\"100%\"></a></td>" << endl;
718 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/costhetastar.png\"><img src=\"plots/costhetastar.png\" alt=\"plots/costhetastar.png\" width=\"100%\"></a></td>" << endl;
719 <  htmlfile << "<td width=\"25%\"></td>" << endl;
720 <  htmlfile << "</tr>" << endl;
721 <
722 <  htmlfile << "<tr>" << endl;
723 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/Phi.png\"><img src=\"plots/Phi.png\" alt=\"plots/Phi.png\" width=\"100%\"></a></td>" << endl;
724 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/Phi1.png\"><img src=\"plots/Phi1.png\" alt=\"plots/Phi1.png\" width=\"100%\"></a></td>" << endl;
725 <  htmlfile << "<td width=\"25%\"><a></a></td>" << endl;
726 <  htmlfile << "<td width=\"25%\"><a></a></td>" << endl;
727 <  htmlfile << "</tr>" << endl;
728 <
729 <  htmlfile << "</table>" << endl;
730 <  htmlfile << "<hr />" << endl;
731 <  htmlfile << "<h3 style=\"text-align:left; color:DD6600;\">Boson pt variables: " << endl;
732 <  htmlfile << "<table border=\"0\" cellspacing=\"5\" width=\"100%\">" << endl;  
733 <
734 <  htmlfile << "<tr>" << endl;
735 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/y4l.png\"><img src=\"plots/y4l.png\" alt=\"plots/y4l.png\" width=\"100%\"></a></td>" << endl;
736 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/pt4l.png\"><img src=\"plots/pt4l.png\" alt=\"plots/pt4l.png\" width=\"100%\"></a></td>" << endl;
737 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/pt4l_log.png\"><img src=\"plots/pt4l_log.png\" alt=\"plots/pt4l_log.png\" width=\"100%\"></a></td>" << endl;
738 <  htmlfile << "<td width=\"25%\"><a></a></td>" << endl;
739 <  htmlfile << "<tr>" << endl;
740 <
741 <  htmlfile << "</tr>" << endl;
742 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/Z1pt.png\"><img src=\"plots/Z1pt.png\" alt=\"plots/Z1pt.png\" width=\"100%\"></a></td>" << endl;
743 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/Z2pt.png\"><img src=\"plots/Z2pt.png\" alt=\"plots/Z2pt.png\" width=\"100%\"></a></td>" << endl;
744 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/Z1pt_log.png\"><img src=\"plots/Z1pt_log.png\" alt=\"plots/Z1pt_log.png\" width=\"100%\"></a></td>" << endl;
745 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/Z2pt_log.png\"><img src=\"plots/Z2pt_log.png\" alt=\"plots/Z2pt_log.png\" width=\"100%\"></a></td>" << endl;
746 <  htmlfile << "</tr>" << endl;
747 <
748 <  htmlfile << "<tr>" << endl;
749 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/ZZdotZ1.png\"><img src=\"plots/ZZdotZ1.png\" alt=\"plots/ZZdotZ1.png\" width=\"100%\"></a></td>" << endl;
750 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/ZZdotZ2.png\"><img src=\"plots/ZZdotZ2.png\" alt=\"plots/ZZdotZ2.png\" width=\"100%\"></a></td>" << endl;
751 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/ZZdotZ1_log.png\"><img src=\"plots/ZZdotZ1_log.png\" alt=\"plots/ZZdotZ1_log.png\" width=\"100%\"></a></td>" << endl;
752 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/ZZdotZ2_log.png\"><img src=\"plots/ZZdotZ2_log.png\" alt=\"plots/ZZdotZ2_log.png\" width=\"100%\"></a></td>" << endl;
753 <  htmlfile << "</tr>" << endl;
754 <
755 <  htmlfile << "<tr>" << endl;
756 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dphi1.png\"><img src=\"plots/dphi1.png\" alt=\"plots/dphi1.png\" width=\"100%\"></a></td>" << endl;
757 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dphi2.png\"><img src=\"plots/dphi2.png\" alt=\"plots/dphi2.png\" width=\"100%\"></a></td>" << endl;
758 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dphi1_log.png\"><img src=\"plots/dphi1_log.png\" alt=\"plots/dphi1_log.png\" width=\"100%\"></a></td>" << endl;
759 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dphi2_log.png\"><img src=\"plots/dphi2_log.png\" alt=\"plots/dphi2_log.png\" width=\"100%\"></a></td>" << endl;
760 <  htmlfile << "</tr>" << endl;
761 <
762 <
763 <  htmlfile << "</table>" << endl;
764 <
765 <  htmlfile << "</body>" << endl;
766 <  htmlfile << "</html>" << endl;
767 <  htmlfile.close();
768 <
769 <  TString leptonfname(htmlfname);
770 <  leptonfname.ReplaceAll("plots.html","leptonplots.html");
771 <  htmlfile.open(leptonfname);
772 <
773 <  htmlfile << "<!DOCTYPE html" << endl;
774 <  htmlfile << "    PUBLIC \"-//W3C//DTD HTML 3.2//EN\">" << endl;
775 <  htmlfile << "<html>" << endl;
776 <
777 <  htmlfile << "<head><title>"+title+"</title></head>" << endl;
778 <  htmlfile << "<body bgcolor=\"000000\">" << endl;
779 <  htmlfile << "<h3 style=\"text-align:left; color:DD6600;\">"+title+"</h3>" << endl;
780 <
781 <  htmlfile << "<h3 style=\"text-align:left; color:DD6600;\">lepton plots</h3>" << endl;
782 <  htmlfile << "<hr />" << endl;
783 <  htmlfile << "<table border=\"0\" cellspacing=\"5\" width=\"100%\">" << endl;  
784 <  htmlfile << "</table>" << endl;
785 <
786 <  htmlfile << "<h3 style=\"text-align:left; color:DD6600;\">Z1 leptons:</h3>" << endl;
787 <  htmlfile << "<table border=\"0\" cellspacing=\"5\" width=\"100%\">" << endl;  
788 <
789 <  htmlfile << "<tr>" << endl;
790 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/pt_l1.png\"><img src=\"plots/pt_l1.png\" alt=\"plots/pt_l1.png\" width=\"100%\"></a></td>" << endl;
791 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/pt_l2.png\"><img src=\"plots/pt_l2.png\" alt=\"plots/pt_l2.png\" width=\"100%\"></a></td>" << endl;
792 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/eta_l1.png\"><img src=\"plots/eta_l1.png\" alt=\"plots/eta_l1.png\" width=\"100%\"></a></td>" << endl;
793 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/eta_l2.png\"><img src=\"plots/eta_l2.png\" alt=\"plots/eta_l2.png\" width=\"100%\"></a></td>" << endl;
794 <  htmlfile << "</tr>" << endl;
795 <
796 <  htmlfile << "<tr>" << endl;
797 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/ip3ds_l1.png\"><img src=\"plots/ip3ds_l1.png\" alt=\"plots/ip3ds_l1.png\" width=\"100%\"></a></td>" << endl;
798 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/ip3ds_l2.png\"><img src=\"plots/ip3ds_l2.png\" alt=\"plots/ip3ds_l2.png\" width=\"100%\"></a></td>" << endl;
799 <  htmlfile << "<td width=\"25%\"><a></a></td>" << endl;
800 <  htmlfile << "<td width=\"25%\"><a></a></td>" << endl;
801 <  htmlfile << "</tr>" << endl;
802 <
803 <  htmlfile << "<tr>" << endl;
804 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/d0_l1.png\"><img src=\"plots/d0_l1.png\" alt=\"plots/d0_l1.png\" width=\"100%\"></a></td>" << endl;
805 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/d0_l2.png\"><img src=\"plots/d0_l2.png\" alt=\"plots/d0_l2.png\" width=\"100%\"></a></td>" << endl;
806 <  htmlfile << "<td width=\"25%\"><a></a></td>" << endl;
807 <  htmlfile << "<td width=\"25%\"><a></a></td>" << endl;
808 <  htmlfile << "</tr>" << endl;
809 <
810 <  htmlfile << "<tr>" << endl;
811 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dz_l1.png\"><img src=\"plots/dz_l1.png\" alt=\"plots/dz_l1.png\" width=\"100%\"></a></td>" << endl;
812 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dz_l2.png\"><img src=\"plots/dz_l2.png\" alt=\"plots/dz_l2.png\" width=\"100%\"></a></td>" << endl;
813 <  htmlfile << "<td width=\"25%\"><a></a></td>" << endl;
814 <  htmlfile << "<td width=\"25%\"><a></a></td>" << endl;
815 <  htmlfile << "</tr>" << endl;
816 <
817 <  // htmlfile << "<tr>" << endl;
818 <  // htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dR_l3l4_lo.png\"><img src=\"plots/dR_l3l4_lo.png\" alt=\"plots/dR_l3l4_lo.png\" width=\"100%\"></a></td>" << endl;
819 <  // htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dR_l3l4.png\"><img src=\"plots/dR_l3l4.png\" alt=\"plots/dR_l3l4.png\" width=\"100%\"></a></td>" << endl;
820 <  // htmlfile << "<td width=\"25%\"><a><</a></td>" << endl;
821 <  // htmlfile << "<td width=\"25%\"><a><</a></td>" << endl;
822 <  // htmlfile << "</tr>" << endl;
823 <
824 <  htmlfile << "</table>" << endl;
825 <  htmlfile << "<h3 style=\"text-align:left; color:DD6600;\">extra leptons (l3 and l4): </h3>" << endl;
826 <  htmlfile << "<table border=\"0\" cellspacing=\"5\" width=\"100%\">" << endl;  
827 <
828 <  htmlfile << "<tr>" << endl;
829 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/pt_l3.png\"><img src=\"plots/pt_l3.png\" alt=\"plots/pt_l3.png\" width=\"100%\"></a></td>" << endl;
830 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/pt_l4.png\"><img src=\"plots/pt_l4.png\" alt=\"plots/pt_l4.png\" width=\"100%\"></a></td>" << endl;
831 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/eta_l3.png\"><img src=\"plots/eta_l3.png\" alt=\"plots/eta_l3.png\" width=\"100%\"></a></td>" << endl;
832 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/eta_l4.png\"><img src=\"plots/eta_l4.png\" alt=\"plots/eta_l4.png\" width=\"100%\"></a></td>" << endl;
833 <  htmlfile << "</tr>" << endl;
834 <
835 <  htmlfile << "<tr>" << endl;
836 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/ip3ds_l3_lo.png\"><img src=\"plots/ip3ds_l3_lo.png\" alt=\"plots/ip3ds_l3_lo.png\" width=\"100%\"></a></td>" << endl;
837 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/ip3ds_l4_lo.png\"><img src=\"plots/ip3ds_l4_lo.png\" alt=\"plots/ip3ds_l4_lo.png\" width=\"100%\"></a></td>" << endl;
838 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/ip3ds_l3.png\"><img src=\"plots/ip3ds_l3.png\" alt=\"plots/ip3ds_l3.png\" width=\"100%\"></a></td>" << endl;
839 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/ip3ds_l4.png\"><img src=\"plots/ip3ds_l4.png\" alt=\"plots/ip3ds_l4.png\" width=\"100%\"></a></td>" << endl;
840 <  htmlfile << "</tr>" << endl;
636 > // void makeHTML(FOFlags &ctrl, TString type, TString plotLabel, TString fullOutDir)
637 > // {
638 > //   TString tmpString(plotLabel);
639 > //   tmpString.ReplaceAll("/"," ");
640 > //   TString title(ctrl.faketype+", "+tmpString+", "+type);
641 > //   TString htmlfname(fullOutDir+"/plots.html");
642 > //   ofstream htmlfile(htmlfname);
643 >
644 > //   htmlfile << "<!DOCTYPE html" << endl;
645 > //   htmlfile << "    PUBLIC \"-//W3C//DTD HTML 3.2//EN\">" << endl;
646 > //   htmlfile << "<html>" << endl;
647 >
648 > //   htmlfile << "<head><title>"+title+"</title></head>" << endl;
649 > //   htmlfile << "<body bgcolor=\"000000\">" << endl;
650 > //   htmlfile << "<h3 style=\"text-align:left; color:DD6600;\">"+title+"</h3>" << endl;
651 >
652 > //   htmlfile << "<h3 style=\"text-align:left; color:DD6600;\">boson kinematics</h3>" << endl;
653 > //   htmlfile << "<table border=\"0\" cellspacing=\"5\" width=\"100%\">" << endl;  
654 >
655 > //   htmlfile << "<tr>" << endl;
656 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/m4l_lo.png\"><img src=\"plots/m4l_lo.png\" alt=\"plots/m4l_lo.png\" width=\"100%\"></a></td>" << endl;
657 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/m4l_med.png\"><img src=\"plots/m4l_med.png\" alt=\"plots/m4l_med.png\" width=\"100%\"></a></td>" << endl;
658 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/m4l.png\"><img src=\"plots/m4l.png\" alt=\"plots/m4l.png\" width=\"100%\"></a></td>" << endl;
659 > //   htmlfile << "<td width=\"25%\"><a></a></td>" << endl;
660 > //   htmlfile << "</tr>" << endl;
661 >
662 > //   htmlfile << "<tr>" << endl;
663 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/mZ1.png\"><img src=\"plots/mZ1.png\" alt=\"plots/mZ1.png\" width=\"100%\"></a></td>" << endl;
664 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/mZ2_lo.png\"><img src=\"plots/mZ2_lo.png\" alt=\"plots/mZ2_lo.png\" width=\"100%\"></a></td>" << endl;
665 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/mZ2.png\"><img src=\"plots/mZ2.png\" alt=\"plots/mZ2.png\" width=\"100%\"></a></td>" << endl;
666 > //   htmlfile << "<td width=\"25%\"><a></a></td>" << endl;
667 > //   htmlfile << "</tr>" << endl;
668 >
669 > //   htmlfile << "<tr>" << endl;
670 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/Z1pt.png\"><img src=\"plots/Z1pt.png\" alt=\"plots/Z1pt.png\" width=\"100%\"></a></td>" << endl;
671 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/ZZpt.png\"><img src=\"plots/ZZpt.png\" alt=\"plots/ZZpt.png\" width=\"100%\"></a></td>" << endl;
672 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/met.png\"><img src=\"plots/met.png\" alt=\"plots/met.png\" width=\"100%\"></a></td>" << endl;
673 > //   htmlfile << "<td width=\"25%\"><a></a></td>" << endl;
674 > //   htmlfile << "<td width=\"25%\"><a></a></td>" << endl;
675 > //   htmlfile << "</tr>" << endl;
676 >
677 > //   htmlfile << "</table>" << endl;
678 > //   htmlfile << "<hr />" << endl;
679 > //   htmlfile << "control: " << endl;
680 > //   htmlfile << "<table border=\"0\" cellspacing=\"5\" width=\"100%\">" << endl;  
681 >
682 > //   htmlfile << "<tr>" << endl;
683 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/run.png\"><img src=\"plots/run.png\" alt=\"plots/run.png\" width=\"100%\"></a></td>" << endl;
684 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/npv.png\"><img src=\"plots/npv.png\" alt=\"plots/npv.png\" width=\"100%\"></a></td>" << endl;
685 > //   htmlfile << "<td width=\"25%\"><a></a></td>" << endl;
686 > //   htmlfile << "<td width=\"25%\"><a></a></td>" << endl;
687 > //   htmlfile << "</tr>" << endl;
688 >
689 > //   htmlfile << "</table>" << endl;
690 >
691 > //   htmlfile << "</body>" << endl;
692 > //   htmlfile << "</html>" << endl;
693 > //   htmlfile.close();
694 >
695 > //   TString anglefname(htmlfname);
696 > //   anglefname.ReplaceAll("plots.html","angleplots.html");
697 > //   htmlfile.open(anglefname);
698 >
699 > //   htmlfile << "<!DOCTYPE html" << endl;
700 > //   htmlfile << "    PUBLIC \"-//W3C//DTD HTML 3.2//EN\">" << endl;
701 > //   htmlfile << "<html>" << endl;
702 >
703 > //   htmlfile << "<head><title>"+title+"</title></head>" << endl;
704 > //   htmlfile << "<body bgcolor=\"000000\">" << endl;
705 > //   htmlfile << "<h3 style=\"text-align:left; color:DD6600;\">"+title+"</h3>" << endl;
706 >
707 > //   htmlfile << "<h3 style=\"text-align:left; color:DD6600;\">Angles & Co.</h3>" << endl;
708 > //   htmlfile << "<hr />" << endl;
709 > //   htmlfile << "<table border=\"0\" cellspacing=\"5\" width=\"100%\">" << endl;  
710 > //   htmlfile << "</table>" << endl;
711 >
712 > //   htmlfile << "<h3 style=\"text-align:left; color:DD6600;\">Angles:</h3>" << endl;
713 > //   htmlfile << "<table border=\"0\" cellspacing=\"5\" width=\"100%\">" << endl;  
714 >
715 > //   htmlfile << "<tr>" << endl;
716 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/costheta1.png\"><img src=\"plots/costheta1.png\" alt=\"plots/costheta1.png\" width=\"100%\"></a></td>" << endl;
717 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/costheta2.png\"><img src=\"plots/costheta2.png\" alt=\"plots/costheta2.png\" width=\"100%\"></a></td>" << endl;
718 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/costhetastar.png\"><img src=\"plots/costhetastar.png\" alt=\"plots/costhetastar.png\" width=\"100%\"></a></td>" << endl;
719 > //   htmlfile << "<td width=\"25%\"></td>" << endl;
720 > //   htmlfile << "</tr>" << endl;
721 >
722 > //   htmlfile << "<tr>" << endl;
723 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/Phi.png\"><img src=\"plots/Phi.png\" alt=\"plots/Phi.png\" width=\"100%\"></a></td>" << endl;
724 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/Phi1.png\"><img src=\"plots/Phi1.png\" alt=\"plots/Phi1.png\" width=\"100%\"></a></td>" << endl;
725 > //   htmlfile << "<td width=\"25%\"><a></a></td>" << endl;
726 > //   htmlfile << "<td width=\"25%\"><a></a></td>" << endl;
727 > //   htmlfile << "</tr>" << endl;
728 >
729 > //   htmlfile << "</table>" << endl;
730 > //   htmlfile << "<hr />" << endl;
731 > //   htmlfile << "<h3 style=\"text-align:left; color:DD6600;\">Boson pt variables: " << endl;
732 > //   htmlfile << "<table border=\"0\" cellspacing=\"5\" width=\"100%\">" << endl;  
733 >
734 > //   htmlfile << "<tr>" << endl;
735 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/y4l.png\"><img src=\"plots/y4l.png\" alt=\"plots/y4l.png\" width=\"100%\"></a></td>" << endl;
736 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/pt4l.png\"><img src=\"plots/pt4l.png\" alt=\"plots/pt4l.png\" width=\"100%\"></a></td>" << endl;
737 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/pt4l_log.png\"><img src=\"plots/pt4l_log.png\" alt=\"plots/pt4l_log.png\" width=\"100%\"></a></td>" << endl;
738 > //   htmlfile << "<td width=\"25%\"><a></a></td>" << endl;
739 > //   htmlfile << "<tr>" << endl;
740 >
741 > //   htmlfile << "</tr>" << endl;
742 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/Z1pt.png\"><img src=\"plots/Z1pt.png\" alt=\"plots/Z1pt.png\" width=\"100%\"></a></td>" << endl;
743 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/Z2pt.png\"><img src=\"plots/Z2pt.png\" alt=\"plots/Z2pt.png\" width=\"100%\"></a></td>" << endl;
744 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/Z1pt_log.png\"><img src=\"plots/Z1pt_log.png\" alt=\"plots/Z1pt_log.png\" width=\"100%\"></a></td>" << endl;
745 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/Z2pt_log.png\"><img src=\"plots/Z2pt_log.png\" alt=\"plots/Z2pt_log.png\" width=\"100%\"></a></td>" << endl;
746 > //   htmlfile << "</tr>" << endl;
747 >
748 > //   htmlfile << "<tr>" << endl;
749 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/ZZdotZ1.png\"><img src=\"plots/ZZdotZ1.png\" alt=\"plots/ZZdotZ1.png\" width=\"100%\"></a></td>" << endl;
750 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/ZZdotZ2.png\"><img src=\"plots/ZZdotZ2.png\" alt=\"plots/ZZdotZ2.png\" width=\"100%\"></a></td>" << endl;
751 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/ZZdotZ1_log.png\"><img src=\"plots/ZZdotZ1_log.png\" alt=\"plots/ZZdotZ1_log.png\" width=\"100%\"></a></td>" << endl;
752 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/ZZdotZ2_log.png\"><img src=\"plots/ZZdotZ2_log.png\" alt=\"plots/ZZdotZ2_log.png\" width=\"100%\"></a></td>" << endl;
753 > //   htmlfile << "</tr>" << endl;
754 >
755 > //   htmlfile << "<tr>" << endl;
756 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dphi1.png\"><img src=\"plots/dphi1.png\" alt=\"plots/dphi1.png\" width=\"100%\"></a></td>" << endl;
757 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dphi2.png\"><img src=\"plots/dphi2.png\" alt=\"plots/dphi2.png\" width=\"100%\"></a></td>" << endl;
758 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dphi1_log.png\"><img src=\"plots/dphi1_log.png\" alt=\"plots/dphi1_log.png\" width=\"100%\"></a></td>" << endl;
759 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dphi2_log.png\"><img src=\"plots/dphi2_log.png\" alt=\"plots/dphi2_log.png\" width=\"100%\"></a></td>" << endl;
760 > //   htmlfile << "</tr>" << endl;
761 >
762 >
763 > //   htmlfile << "</table>" << endl;
764 >
765 > //   htmlfile << "</body>" << endl;
766 > //   htmlfile << "</html>" << endl;
767 > //   htmlfile.close();
768 >
769 > //   TString leptonfname(htmlfname);
770 > //   leptonfname.ReplaceAll("plots.html","leptonplots.html");
771 > //   htmlfile.open(leptonfname);
772 >
773 > //   htmlfile << "<!DOCTYPE html" << endl;
774 > //   htmlfile << "    PUBLIC \"-//W3C//DTD HTML 3.2//EN\">" << endl;
775 > //   htmlfile << "<html>" << endl;
776 >
777 > //   htmlfile << "<head><title>"+title+"</title></head>" << endl;
778 > //   htmlfile << "<body bgcolor=\"000000\">" << endl;
779 > //   htmlfile << "<h3 style=\"text-align:left; color:DD6600;\">"+title+"</h3>" << endl;
780 >
781 > //   htmlfile << "<h3 style=\"text-align:left; color:DD6600;\">lepton plots</h3>" << endl;
782 > //   htmlfile << "<hr />" << endl;
783 > //   htmlfile << "<table border=\"0\" cellspacing=\"5\" width=\"100%\">" << endl;  
784 > //   htmlfile << "</table>" << endl;
785 >
786 > //   htmlfile << "<h3 style=\"text-align:left; color:DD6600;\">Z1 leptons:</h3>" << endl;
787 > //   htmlfile << "<table border=\"0\" cellspacing=\"5\" width=\"100%\">" << endl;  
788 >
789 > //   htmlfile << "<tr>" << endl;
790 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/pt_l1.png\"><img src=\"plots/pt_l1.png\" alt=\"plots/pt_l1.png\" width=\"100%\"></a></td>" << endl;
791 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/pt_l2.png\"><img src=\"plots/pt_l2.png\" alt=\"plots/pt_l2.png\" width=\"100%\"></a></td>" << endl;
792 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/eta_l1.png\"><img src=\"plots/eta_l1.png\" alt=\"plots/eta_l1.png\" width=\"100%\"></a></td>" << endl;
793 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/eta_l2.png\"><img src=\"plots/eta_l2.png\" alt=\"plots/eta_l2.png\" width=\"100%\"></a></td>" << endl;
794 > //   htmlfile << "</tr>" << endl;
795 >
796 > //   htmlfile << "<tr>" << endl;
797 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/ip3ds_l1.png\"><img src=\"plots/ip3ds_l1.png\" alt=\"plots/ip3ds_l1.png\" width=\"100%\"></a></td>" << endl;
798 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/ip3ds_l2.png\"><img src=\"plots/ip3ds_l2.png\" alt=\"plots/ip3ds_l2.png\" width=\"100%\"></a></td>" << endl;
799 > //   htmlfile << "<td width=\"25%\"><a></a></td>" << endl;
800 > //   htmlfile << "<td width=\"25%\"><a></a></td>" << endl;
801 > //   htmlfile << "</tr>" << endl;
802 >
803 > //   htmlfile << "<tr>" << endl;
804 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/d0_l1.png\"><img src=\"plots/d0_l1.png\" alt=\"plots/d0_l1.png\" width=\"100%\"></a></td>" << endl;
805 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/d0_l2.png\"><img src=\"plots/d0_l2.png\" alt=\"plots/d0_l2.png\" width=\"100%\"></a></td>" << endl;
806 > //   htmlfile << "<td width=\"25%\"><a></a></td>" << endl;
807 > //   htmlfile << "<td width=\"25%\"><a></a></td>" << endl;
808 > //   htmlfile << "</tr>" << endl;
809 >
810 > //   htmlfile << "<tr>" << endl;
811 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dz_l1.png\"><img src=\"plots/dz_l1.png\" alt=\"plots/dz_l1.png\" width=\"100%\"></a></td>" << endl;
812 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dz_l2.png\"><img src=\"plots/dz_l2.png\" alt=\"plots/dz_l2.png\" width=\"100%\"></a></td>" << endl;
813 > //   htmlfile << "<td width=\"25%\"><a></a></td>" << endl;
814 > //   htmlfile << "<td width=\"25%\"><a></a></td>" << endl;
815 > //   htmlfile << "</tr>" << endl;
816 >
817 > //   // htmlfile << "<tr>" << endl;
818 > //   // htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dR_l3l4_lo.png\"><img src=\"plots/dR_l3l4_lo.png\" alt=\"plots/dR_l3l4_lo.png\" width=\"100%\"></a></td>" << endl;
819 > //   // htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dR_l3l4.png\"><img src=\"plots/dR_l3l4.png\" alt=\"plots/dR_l3l4.png\" width=\"100%\"></a></td>" << endl;
820 > //   // htmlfile << "<td width=\"25%\"><a><</a></td>" << endl;
821 > //   // htmlfile << "<td width=\"25%\"><a><</a></td>" << endl;
822 > //   // htmlfile << "</tr>" << endl;
823 >
824 > //   htmlfile << "</table>" << endl;
825 > //   htmlfile << "<h3 style=\"text-align:left; color:DD6600;\">extra leptons (l3 and l4): </h3>" << endl;
826 > //   htmlfile << "<table border=\"0\" cellspacing=\"5\" width=\"100%\">" << endl;  
827 >
828 > //   htmlfile << "<tr>" << endl;
829 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/pt_l3.png\"><img src=\"plots/pt_l3.png\" alt=\"plots/pt_l3.png\" width=\"100%\"></a></td>" << endl;
830 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/pt_l4.png\"><img src=\"plots/pt_l4.png\" alt=\"plots/pt_l4.png\" width=\"100%\"></a></td>" << endl;
831 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/eta_l3.png\"><img src=\"plots/eta_l3.png\" alt=\"plots/eta_l3.png\" width=\"100%\"></a></td>" << endl;
832 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/eta_l4.png\"><img src=\"plots/eta_l4.png\" alt=\"plots/eta_l4.png\" width=\"100%\"></a></td>" << endl;
833 > //   htmlfile << "</tr>" << endl;
834 >
835 > //   htmlfile << "<tr>" << endl;
836 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/ip3ds_l3_lo.png\"><img src=\"plots/ip3ds_l3_lo.png\" alt=\"plots/ip3ds_l3_lo.png\" width=\"100%\"></a></td>" << endl;
837 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/ip3ds_l4_lo.png\"><img src=\"plots/ip3ds_l4_lo.png\" alt=\"plots/ip3ds_l4_lo.png\" width=\"100%\"></a></td>" << endl;
838 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/ip3ds_l3.png\"><img src=\"plots/ip3ds_l3.png\" alt=\"plots/ip3ds_l3.png\" width=\"100%\"></a></td>" << endl;
839 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/ip3ds_l4.png\"><img src=\"plots/ip3ds_l4.png\" alt=\"plots/ip3ds_l4.png\" width=\"100%\"></a></td>" << endl;
840 > //   htmlfile << "</tr>" << endl;
841  
842 <  htmlfile << "<tr>" << endl;
843 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/d0_l3_lo.png\"><img src=\"plots/d0_l3_lo.png\" alt=\"plots/d0_l3_lo.png\" width=\"100%\"></a></td>" << endl;
844 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/d0_l4_lo.png\"><img src=\"plots/d0_l4_lo.png\" alt=\"plots/d0_l4_lo.png\" width=\"100%\"></a></td>" << endl;
845 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/d0_l3.png\"><img src=\"plots/d0_l3.png\" alt=\"plots/d0_l3.png\" width=\"100%\"></a></td>" << endl;
846 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/d0_l4.png\"><img src=\"plots/d0_l4.png\" alt=\"plots/d0_l4.png\" width=\"100%\"></a></td>" << endl;
847 <  htmlfile << "</tr>" << endl;
848 <
849 <  htmlfile << "<tr>" << endl;
850 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dz_l3.png\"><img src=\"plots/dz_l3.png\" alt=\"plots/dz_l3.png\" width=\"100%\"></a></td>" << endl;
851 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dz_l4.png\"><img src=\"plots/dz_l4.png\" alt=\"plots/dz_l4.png\" width=\"100%\"></a></td>" << endl;
852 <  htmlfile << "<td width=\"25%\"><a></a></td>" << endl;
853 <  htmlfile << "<td width=\"25%\"><a></a></td>" << endl;
854 <  htmlfile << "</tr>" << endl;
842 > //   htmlfile << "<tr>" << endl;
843 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/d0_l3_lo.png\"><img src=\"plots/d0_l3_lo.png\" alt=\"plots/d0_l3_lo.png\" width=\"100%\"></a></td>" << endl;
844 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/d0_l4_lo.png\"><img src=\"plots/d0_l4_lo.png\" alt=\"plots/d0_l4_lo.png\" width=\"100%\"></a></td>" << endl;
845 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/d0_l3.png\"><img src=\"plots/d0_l3.png\" alt=\"plots/d0_l3.png\" width=\"100%\"></a></td>" << endl;
846 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/d0_l4.png\"><img src=\"plots/d0_l4.png\" alt=\"plots/d0_l4.png\" width=\"100%\"></a></td>" << endl;
847 > //   htmlfile << "</tr>" << endl;
848 >
849 > //   htmlfile << "<tr>" << endl;
850 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dz_l3.png\"><img src=\"plots/dz_l3.png\" alt=\"plots/dz_l3.png\" width=\"100%\"></a></td>" << endl;
851 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dz_l4.png\"><img src=\"plots/dz_l4.png\" alt=\"plots/dz_l4.png\" width=\"100%\"></a></td>" << endl;
852 > //   htmlfile << "<td width=\"25%\"><a></a></td>" << endl;
853 > //   htmlfile << "<td width=\"25%\"><a></a></td>" << endl;
854 > //   htmlfile << "</tr>" << endl;
855  
856 <  htmlfile << "</table>" << endl;
856 > //   htmlfile << "</table>" << endl;
857  
858 <  htmlfile << "</body>" << endl;
859 <  htmlfile << "</html>" << endl;
860 <  htmlfile.close();
861 <
862 <  TString jetfname(htmlfname);
863 <  jetfname.ReplaceAll("plots.html","jetplots.html");
864 <  htmlfile.open(jetfname);
865 <
866 <  htmlfile << "<!DOCTYPE html" << endl;
867 <  htmlfile << "    PUBLIC \"-//W3C//DTD HTML 3.2//EN\">" << endl;
868 <  htmlfile << "<html>" << endl;
869 <
870 <  htmlfile << "<head><title>"+title+"</title></head>" << endl;
871 <  htmlfile << "<body bgcolor=\"000000\">" << endl;
872 <  htmlfile << "<h3 style=\"text-align:left; color:DD6600;\">"+title+"</h3>" << endl;
873 <
874 <  htmlfile << "<h3 style=\"text-align:left; color:DD6600;\">jet plots</h3>" << endl;
875 <  htmlfile << "<hr />" << endl;
876 <  htmlfile << "<table border=\"0\" cellspacing=\"5\" width=\"100%\">" << endl;  
877 <
878 <  htmlfile << "<tr>" << endl;
879 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/pt_j1.png\"><img src=\"plots/pt_j1.png\" alt=\"plots/pt_j1.png\" width=\"100%\"></a></td>" << endl;
880 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/pt_j2.png\"><img src=\"plots/pt_j2.png\" alt=\"plots/pt_j2.png\" width=\"100%\"></a></td>" << endl;
881 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/pt_j2.png\"><img src=\"plots/pt_j2.png\" alt=\"plots/pt_j2.png\" width=\"100%\"></a></td>" << endl;
882 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/pt_j4.png\"><img src=\"plots/pt_j4.png\" alt=\"plots/pt_j4.png\" width=\"100%\"></a></td>" << endl;
883 <  htmlfile << "</tr>" << endl;
884 <
885 <  htmlfile << "<tr>" << endl;
886 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/eta_j1.png\"><img src=\"plots/eta_j1.png\" alt=\"plots/eta_j1.png\" width=\"100%\"></a></td>" << endl;
887 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/eta_j2.png\"><img src=\"plots/eta_j2.png\" alt=\"plots/eta_j2.png\" width=\"100%\"></a></td>" << endl;
888 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/eta_j3.png\"><img src=\"plots/eta_j3.png\" alt=\"plots/eta_j3.png\" width=\"100%\"></a></td>" << endl;
889 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/eta_j4.png\"><img src=\"plots/eta_j4.png\" alt=\"plots/eta_j4.png\" width=\"100%\"></a></td>" << endl;
890 <  htmlfile << "</tr>" << endl;
891 <
892 <  htmlfile << "<tr>" << endl;
893 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/idmva_j1.png\"><img src=\"plots/idmva_j1.png\" alt=\"plots/idmva_j1.png\" width=\"100%\"></a></td>" << endl;
894 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/idmva_j2.png\"><img src=\"plots/idmva_j2.png\" alt=\"plots/idmva_j2.png\" width=\"100%\"></a></td>" << endl;
895 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/idmva_j3.png\"><img src=\"plots/idmva_j3.png\" alt=\"plots/idmva_j3.png\" width=\"100%\"></a></td>" << endl;
896 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/idmva_j4.png\"><img src=\"plots/idmva_j4.png\" alt=\"plots/idmva_j4.png\" width=\"100%\"></a></td>" << endl;
897 <  htmlfile << "</tr>" << endl;
898 <
899 <  htmlfile << "<tr>" << endl;
900 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/phi_j1.png\"><img src=\"plots/phi_j1.png\" alt=\"plots/phi_j1.png\" width=\"100%\"></a></td>" << endl;
901 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/phi_j2.png\"><img src=\"plots/phi_j2.png\" alt=\"plots/phi_j2.png\" width=\"100%\"></a></td>" << endl;
902 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/phi_j3.png\"><img src=\"plots/phi_j3.png\" alt=\"plots/phi_j3.png\" width=\"100%\"></a></td>" << endl;
903 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/phi_j4.png\"><img src=\"plots/phi_j4.png\" alt=\"plots/phi_j4.png\" width=\"100%\"></a></td>" << endl;
904 <  htmlfile << "</tr>" << endl;
905 <
906 <  htmlfile << "<tr>" << endl;
907 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/mjj.png\"><img src=\"plots/mjj.png\" alt=\"plots/mjj.png\" width=\"100%\"></a></td>" << endl;
908 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dEta.png\"><img src=\"plots/dEta.png\" alt=\"plots/dEta.png\" width=\"100%\"></a></td>" << endl;
909 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/etaProd.png\"><img src=\"plots/etaProd.png\" alt=\"plots/etaProd.png\" width=\"100%\"></a></td>" << endl;
910 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/njets.png\"><img src=\"plots/njets.png\" alt=\"plots/njets.png\" width=\"100%\"></a></td>" << endl;
911 <  htmlfile << "</tr>" << endl;
912 <
913 <  // htmlfile << "<tr>" << endl;
914 <  // htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dR_l1j1.png\"><img src=\"plots/dR_l1j1.png\" alt=\"plots/dR_l1j1.png\" width=\"100%\"></a></td>" << endl;
915 <  // htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dR_l2j1.png\"><img src=\"plots/dR_l2j1.png\" alt=\"plots/dR_l2j1.png\" width=\"100%\"></a></td>" << endl;
916 <  // htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dR_l3j1.png\"><img src=\"plots/dR_l3j1.png\" alt=\"plots/dR_l3j1.png\" width=\"100%\"></a></td>" << endl;
917 <  // htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dR_l4j1.png\"><img src=\"plots/dR_l4j1.png\" alt=\"plots/dR_l4j1.png\" width=\"100%\"></a></td>" << endl;
918 <  // htmlfile << "</tr>" << endl;
919 <
920 <  // htmlfile << "<tr>" << endl;
921 <  // htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dR_l1j2.png\"><img src=\"plots/dR_l1j2.png\" alt=\"plots/dR_l1j2.png\" width=\"100%\"></a></td>" << endl;
922 <  // htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dR_l2j2.png\"><img src=\"plots/dR_l2j2.png\" alt=\"plots/dR_l2j2.png\" width=\"100%\"></a></td>" << endl;
923 <  // htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dR_l3j2.png\"><img src=\"plots/dR_l3j2.png\" alt=\"plots/dR_l3j2.png\" width=\"100%\"></a></td>" << endl;
924 <  // htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dR_l4j2.png\"><img src=\"plots/dR_l4j2.png\" alt=\"plots/dR_l4j2.png\" width=\"100%\"></a></td>" << endl;
925 <  // htmlfile << "</tr>" << endl;
926 <
927 <  // htmlfile << "<tr>" << endl;
928 <  // htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dR_l1j3.png\"><img src=\"plots/dR_l1j3.png\" alt=\"plots/dR_l1j3.png\" width=\"100%\"></a></td>" << endl;
929 <  // htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dR_l2j3.png\"><img src=\"plots/dR_l2j3.png\" alt=\"plots/dR_l2j3.png\" width=\"100%\"></a></td>" << endl;
930 <  // htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dR_l3j3.png\"><img src=\"plots/dR_l3j3.png\" alt=\"plots/dR_l3j3.png\" width=\"100%\"></a></td>" << endl;
931 <  // htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dR_l4j3.png\"><img src=\"plots/dR_l4j3.png\" alt=\"plots/dR_l4j3.png\" width=\"100%\"></a></td>" << endl;
932 <  // htmlfile << "</tr>" << endl;
933 <
934 <  // htmlfile << "<tr>" << endl;
935 <  // htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dR_l1j4.png\"><img src=\"plots/dR_l1j4.png\" alt=\"plots/dR_l1j4.png\" width=\"100%\"></a></td>" << endl;
936 <  // htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dR_l2j4.png\"><img src=\"plots/dR_l2j4.png\" alt=\"plots/dR_l2j4.png\" width=\"100%\"></a></td>" << endl;
937 <  // htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dR_l3j4.png\"><img src=\"plots/dR_l3j4.png\" alt=\"plots/dR_l3j4.png\" width=\"100%\"></a></td>" << endl;
938 <  // htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dR_l4j4.png\"><img src=\"plots/dR_l4j4.png\" alt=\"plots/dR_l4j4.png\" width=\"100%\"></a></td>" << endl;
939 <  // htmlfile << "</tr>" << endl;
940 <
941 <  htmlfile << "<tr>" << endl;
942 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/fusionMVA.png\"><img src=\"plots/fusionMVA.png\" alt=\"plots/fusionMVA.png\" width=\"100%\"></a></td>" << endl;
943 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/fusionMVA_lo.png\"><img src=\"plots/fusionMVA_lo.png\" alt=\"plots/fusionMVA_lo.png\" width=\"100%\"></a></td>" << endl;
944 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/fusionMVA_hi.png\"><img src=\"plots/fusionMVA_hi.png\" alt=\"plots/fusionMVA_hi.png\" width=\"100%\"></a></td>" << endl;
945 <  htmlfile << "<td width=\"25%\"><a></a></td>" << endl;
946 <  htmlfile << "</tr>" << endl;
947 <
948 <  htmlfile << "<tr>" << endl;
949 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/fusionMVA-log.png\"><img src=\"plots/fusionMVA-log.png\" alt=\"plots/fusionMVA-log.png\" width=\"100%\"></a></td>" << endl;
950 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/fusionMVA_lo-log.png\"><img src=\"plots/fusionMVA_lo-log.png\" alt=\"plots/fusionMVA_lo-log.png\" width=\"100%\"></a></td>" << endl;
951 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/fusionMVA_hi-log.png\"><img src=\"plots/fusionMVA_hi-log.png\" alt=\"plots/fusionMVA_hi-log.png\" width=\"100%\"></a></td>" << endl;
952 <  htmlfile << "<td width=\"25%\"><a></a></td>" << endl;
953 <  htmlfile << "</tr>" << endl;
954 <
955 <  htmlfile << "<tr>" << endl;
956 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/m4l_jet_lo.png\"><img src=\"plots/m4l_jet_lo.png\" alt=\"plots/m4l_jet_lo.png\" width=\"100%\"></a></td>" << endl;
957 <  htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/m4l_jet.png\"><img src=\"plots/m4l_jet.png\" alt=\"plots/m4l_jet.png\" width=\"100%\"></a></td>" << endl;
958 <  htmlfile << "<td width=\"25%\"><a></a></td>" << endl;
959 <  htmlfile << "<td width=\"25%\"><a></a></td>" << endl;
960 <  htmlfile << "</tr>" << endl;
858 > //   htmlfile << "</body>" << endl;
859 > //   htmlfile << "</html>" << endl;
860 > //   htmlfile.close();
861 >
862 > //   TString jetfname(htmlfname);
863 > //   jetfname.ReplaceAll("plots.html","jetplots.html");
864 > //   htmlfile.open(jetfname);
865 >
866 > //   htmlfile << "<!DOCTYPE html" << endl;
867 > //   htmlfile << "    PUBLIC \"-//W3C//DTD HTML 3.2//EN\">" << endl;
868 > //   htmlfile << "<html>" << endl;
869 >
870 > //   htmlfile << "<head><title>"+title+"</title></head>" << endl;
871 > //   htmlfile << "<body bgcolor=\"000000\">" << endl;
872 > //   htmlfile << "<h3 style=\"text-align:left; color:DD6600;\">"+title+"</h3>" << endl;
873 >
874 > //   htmlfile << "<h3 style=\"text-align:left; color:DD6600;\">jet plots</h3>" << endl;
875 > //   htmlfile << "<hr />" << endl;
876 > //   htmlfile << "<table border=\"0\" cellspacing=\"5\" width=\"100%\">" << endl;  
877 >
878 > //   htmlfile << "<tr>" << endl;
879 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/pt_j1.png\"><img src=\"plots/pt_j1.png\" alt=\"plots/pt_j1.png\" width=\"100%\"></a></td>" << endl;
880 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/pt_j2.png\"><img src=\"plots/pt_j2.png\" alt=\"plots/pt_j2.png\" width=\"100%\"></a></td>" << endl;
881 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/pt_j2.png\"><img src=\"plots/pt_j2.png\" alt=\"plots/pt_j2.png\" width=\"100%\"></a></td>" << endl;
882 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/pt_j4.png\"><img src=\"plots/pt_j4.png\" alt=\"plots/pt_j4.png\" width=\"100%\"></a></td>" << endl;
883 > //   htmlfile << "</tr>" << endl;
884 >
885 > //   htmlfile << "<tr>" << endl;
886 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/eta_j1.png\"><img src=\"plots/eta_j1.png\" alt=\"plots/eta_j1.png\" width=\"100%\"></a></td>" << endl;
887 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/eta_j2.png\"><img src=\"plots/eta_j2.png\" alt=\"plots/eta_j2.png\" width=\"100%\"></a></td>" << endl;
888 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/eta_j3.png\"><img src=\"plots/eta_j3.png\" alt=\"plots/eta_j3.png\" width=\"100%\"></a></td>" << endl;
889 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/eta_j4.png\"><img src=\"plots/eta_j4.png\" alt=\"plots/eta_j4.png\" width=\"100%\"></a></td>" << endl;
890 > //   htmlfile << "</tr>" << endl;
891 >
892 > //   htmlfile << "<tr>" << endl;
893 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/idmva_j1.png\"><img src=\"plots/idmva_j1.png\" alt=\"plots/idmva_j1.png\" width=\"100%\"></a></td>" << endl;
894 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/idmva_j2.png\"><img src=\"plots/idmva_j2.png\" alt=\"plots/idmva_j2.png\" width=\"100%\"></a></td>" << endl;
895 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/idmva_j3.png\"><img src=\"plots/idmva_j3.png\" alt=\"plots/idmva_j3.png\" width=\"100%\"></a></td>" << endl;
896 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/idmva_j4.png\"><img src=\"plots/idmva_j4.png\" alt=\"plots/idmva_j4.png\" width=\"100%\"></a></td>" << endl;
897 > //   htmlfile << "</tr>" << endl;
898 >
899 > //   htmlfile << "<tr>" << endl;
900 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/phi_j1.png\"><img src=\"plots/phi_j1.png\" alt=\"plots/phi_j1.png\" width=\"100%\"></a></td>" << endl;
901 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/phi_j2.png\"><img src=\"plots/phi_j2.png\" alt=\"plots/phi_j2.png\" width=\"100%\"></a></td>" << endl;
902 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/phi_j3.png\"><img src=\"plots/phi_j3.png\" alt=\"plots/phi_j3.png\" width=\"100%\"></a></td>" << endl;
903 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/phi_j4.png\"><img src=\"plots/phi_j4.png\" alt=\"plots/phi_j4.png\" width=\"100%\"></a></td>" << endl;
904 > //   htmlfile << "</tr>" << endl;
905 >
906 > //   htmlfile << "<tr>" << endl;
907 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/mjj.png\"><img src=\"plots/mjj.png\" alt=\"plots/mjj.png\" width=\"100%\"></a></td>" << endl;
908 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dEta.png\"><img src=\"plots/dEta.png\" alt=\"plots/dEta.png\" width=\"100%\"></a></td>" << endl;
909 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/etaProd.png\"><img src=\"plots/etaProd.png\" alt=\"plots/etaProd.png\" width=\"100%\"></a></td>" << endl;
910 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/njets.png\"><img src=\"plots/njets.png\" alt=\"plots/njets.png\" width=\"100%\"></a></td>" << endl;
911 > //   htmlfile << "</tr>" << endl;
912 >
913 > //   // htmlfile << "<tr>" << endl;
914 > //   // htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dR_l1j1.png\"><img src=\"plots/dR_l1j1.png\" alt=\"plots/dR_l1j1.png\" width=\"100%\"></a></td>" << endl;
915 > //   // htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dR_l2j1.png\"><img src=\"plots/dR_l2j1.png\" alt=\"plots/dR_l2j1.png\" width=\"100%\"></a></td>" << endl;
916 > //   // htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dR_l3j1.png\"><img src=\"plots/dR_l3j1.png\" alt=\"plots/dR_l3j1.png\" width=\"100%\"></a></td>" << endl;
917 > //   // htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dR_l4j1.png\"><img src=\"plots/dR_l4j1.png\" alt=\"plots/dR_l4j1.png\" width=\"100%\"></a></td>" << endl;
918 > //   // htmlfile << "</tr>" << endl;
919 >
920 > //   // htmlfile << "<tr>" << endl;
921 > //   // htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dR_l1j2.png\"><img src=\"plots/dR_l1j2.png\" alt=\"plots/dR_l1j2.png\" width=\"100%\"></a></td>" << endl;
922 > //   // htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dR_l2j2.png\"><img src=\"plots/dR_l2j2.png\" alt=\"plots/dR_l2j2.png\" width=\"100%\"></a></td>" << endl;
923 > //   // htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dR_l3j2.png\"><img src=\"plots/dR_l3j2.png\" alt=\"plots/dR_l3j2.png\" width=\"100%\"></a></td>" << endl;
924 > //   // htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dR_l4j2.png\"><img src=\"plots/dR_l4j2.png\" alt=\"plots/dR_l4j2.png\" width=\"100%\"></a></td>" << endl;
925 > //   // htmlfile << "</tr>" << endl;
926 >
927 > //   // htmlfile << "<tr>" << endl;
928 > //   // htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dR_l1j3.png\"><img src=\"plots/dR_l1j3.png\" alt=\"plots/dR_l1j3.png\" width=\"100%\"></a></td>" << endl;
929 > //   // htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dR_l2j3.png\"><img src=\"plots/dR_l2j3.png\" alt=\"plots/dR_l2j3.png\" width=\"100%\"></a></td>" << endl;
930 > //   // htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dR_l3j3.png\"><img src=\"plots/dR_l3j3.png\" alt=\"plots/dR_l3j3.png\" width=\"100%\"></a></td>" << endl;
931 > //   // htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dR_l4j3.png\"><img src=\"plots/dR_l4j3.png\" alt=\"plots/dR_l4j3.png\" width=\"100%\"></a></td>" << endl;
932 > //   // htmlfile << "</tr>" << endl;
933 >
934 > //   // htmlfile << "<tr>" << endl;
935 > //   // htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dR_l1j4.png\"><img src=\"plots/dR_l1j4.png\" alt=\"plots/dR_l1j4.png\" width=\"100%\"></a></td>" << endl;
936 > //   // htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dR_l2j4.png\"><img src=\"plots/dR_l2j4.png\" alt=\"plots/dR_l2j4.png\" width=\"100%\"></a></td>" << endl;
937 > //   // htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dR_l3j4.png\"><img src=\"plots/dR_l3j4.png\" alt=\"plots/dR_l3j4.png\" width=\"100%\"></a></td>" << endl;
938 > //   // htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/dR_l4j4.png\"><img src=\"plots/dR_l4j4.png\" alt=\"plots/dR_l4j4.png\" width=\"100%\"></a></td>" << endl;
939 > //   // htmlfile << "</tr>" << endl;
940 >
941 > //   htmlfile << "<tr>" << endl;
942 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/fusionMVA.png\"><img src=\"plots/fusionMVA.png\" alt=\"plots/fusionMVA.png\" width=\"100%\"></a></td>" << endl;
943 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/fusionMVA_lo.png\"><img src=\"plots/fusionMVA_lo.png\" alt=\"plots/fusionMVA_lo.png\" width=\"100%\"></a></td>" << endl;
944 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/fusionMVA_hi.png\"><img src=\"plots/fusionMVA_hi.png\" alt=\"plots/fusionMVA_hi.png\" width=\"100%\"></a></td>" << endl;
945 > //   htmlfile << "<td width=\"25%\"><a></a></td>" << endl;
946 > //   htmlfile << "</tr>" << endl;
947 >
948 > //   htmlfile << "<tr>" << endl;
949 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/fusionMVA-log.png\"><img src=\"plots/fusionMVA-log.png\" alt=\"plots/fusionMVA-log.png\" width=\"100%\"></a></td>" << endl;
950 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/fusionMVA_lo-log.png\"><img src=\"plots/fusionMVA_lo-log.png\" alt=\"plots/fusionMVA_lo-log.png\" width=\"100%\"></a></td>" << endl;
951 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/fusionMVA_hi-log.png\"><img src=\"plots/fusionMVA_hi-log.png\" alt=\"plots/fusionMVA_hi-log.png\" width=\"100%\"></a></td>" << endl;
952 > //   htmlfile << "<td width=\"25%\"><a></a></td>" << endl;
953 > //   htmlfile << "</tr>" << endl;
954 >
955 > //   htmlfile << "<tr>" << endl;
956 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/m4l_jet_lo.png\"><img src=\"plots/m4l_jet_lo.png\" alt=\"plots/m4l_jet_lo.png\" width=\"100%\"></a></td>" << endl;
957 > //   htmlfile << "<td width=\"25%\"><a target=\"_blank\" href=\"plots/m4l_jet.png\"><img src=\"plots/m4l_jet.png\" alt=\"plots/m4l_jet.png\" width=\"100%\"></a></td>" << endl;
958 > //   htmlfile << "<td width=\"25%\"><a></a></td>" << endl;
959 > //   htmlfile << "<td width=\"25%\"><a></a></td>" << endl;
960 > //   htmlfile << "</tr>" << endl;
961  
962  
963 <  htmlfile << "</table>" << endl;
963 > //   htmlfile << "</table>" << endl;
964  
965 <  htmlfile << "<hr />" << endl;
965 > //   htmlfile << "<hr />" << endl;
966  
967 <  htmlfile << "<hr />" << endl;
967 > //   htmlfile << "<hr />" << endl;
968      
969 <  htmlfile << "</body>" << endl;
970 <  htmlfile << "</html>" << endl;
971 <  htmlfile.close();
972 < }
958 < //----------------------------------------------------------------------------------------
959 < void fillHist(CSample *cs, TString channel, TString type, TString var, double val, double wgt, double wgt_lo, double wgt_hi)
960 < {
961 <  assert(wgt==wgt);
962 <  assert(wgt_lo==wgt_lo);
963 <  assert(wgt_hi==wgt_hi);
964 <  (*(cs->hists)["all_"+type])[var]->Fill(           val,   wgt);
965 <  if(channel!="")
966 <     (*(cs->hists)[channel+"_"+type])[var]->Fill(   val,   wgt);
967 <  if(type=="pred" || type=="PF") {
968 <    (*(cs->hists)["all_"+type+"_lo"])[var]->Fill(   val,   wgt_lo);
969 <    (*(cs->hists)["all_"+type+"_hi"])[var]->Fill(   val,   wgt_hi);
970 <    if(channel!="") {
971 <      (*(cs->hists)[channel+"_"+type+"_lo"])[var]->Fill(   val,   wgt_lo);
972 <      (*(cs->hists)[channel+"_"+type+"_hi"])[var]->Fill(   val,   wgt_hi);
973 <    }
974 <  }
975 < }
976 < //----------------------------------------------------------------------------------------
977 < void fillAllHists(FOFlags ctrl, CSample *cs, TString channel, TString type, filestuff *fs, KinematicsStruct kine, Angles angles,
978 <                  SimpleLepton lep1, SimpleLepton lep2, SimpleLepton lep3, SimpleLepton lep4,
979 <                  double wgt, double wgt_lo, double wgt_hi)
980 < {
981 <  fillHist( cs, channel, type, "npv"         , fs->info->npv  , wgt, wgt_lo, wgt_hi);
982 <  fillHist( cs, channel, type, "run"         , fs->info->run  , wgt, wgt_lo, wgt_hi);
983 <  fillHist( cs, channel, type, "mZ1"         , kine.mZ1       , wgt, wgt_lo, wgt_hi);                
984 <  fillHist( cs, channel, type, "mZ2"         , kine.mZ2       , wgt, wgt_lo, wgt_hi);                
985 <  fillHist( cs, channel, type, "mZ2_lo"      , kine.mZ2       , wgt, wgt_lo, wgt_hi);                
986 <  fillHist( cs, channel, type, "m4l_lo"      , kine.m4l       , wgt, wgt_lo, wgt_hi);                
987 <  fillHist( cs, channel, type, "m4l_med"     , kine.m4l       , wgt, wgt_lo, wgt_hi);                
988 <  fillHist( cs, channel, type, "m4l"         , kine.m4l       , wgt, wgt_lo, wgt_hi);                
989 <  fillHist( cs, channel, type, "met"         , fs->info->met  , wgt, wgt_lo, wgt_hi);                
990 <  fillHist( cs, channel, type, "ip3ds_l1"    , lep1.ip3dSig   , wgt, wgt_lo, wgt_hi);
991 <  fillHist( cs, channel, type, "ip3ds_l2"    , lep2.ip3dSig   , wgt, wgt_lo, wgt_hi);
992 <  fillHist( cs, channel, type, "ip3ds_l3"    , lep3.ip3dSig   , wgt, wgt_lo, wgt_hi);
993 <  fillHist( cs, channel, type, "ip3ds_l4"    , lep4.ip3dSig   , wgt, wgt_lo, wgt_hi);
994 <  fillHist( cs, channel, type, "ip3ds_l3_lo" , lep3.ip3dSig   , wgt, wgt_lo, wgt_hi);
995 <  fillHist( cs, channel, type, "ip3ds_l4_lo" , lep4.ip3dSig   , wgt, wgt_lo, wgt_hi);
996 <  fillHist( cs, channel, type, "d0_l1"       , lep1.d0        , wgt, wgt_lo, wgt_hi);
997 <  fillHist( cs, channel, type, "d0_l2"       , lep2.d0        , wgt, wgt_lo, wgt_hi);
998 <  fillHist( cs, channel, type, "d0_l3"       , lep3.d0        , wgt, wgt_lo, wgt_hi);
999 <  fillHist( cs, channel, type, "d0_l4"       , lep4.d0        , wgt, wgt_lo, wgt_hi);
1000 <  fillHist( cs, channel, type, "d0_l3_lo"    , lep3.d0        , wgt, wgt_lo, wgt_hi);
1001 <  fillHist( cs, channel, type, "d0_l4_lo"    , lep4.d0        , wgt, wgt_lo, wgt_hi);
1002 <  fillHist( cs, channel, type, "dz_l1"       , lep1.dz        , wgt, wgt_lo, wgt_hi);
1003 <  fillHist( cs, channel, type, "dz_l2"       , lep2.dz        , wgt, wgt_lo, wgt_hi);
1004 <  fillHist( cs, channel, type, "dz_l3"       , lep3.dz        , wgt, wgt_lo, wgt_hi);
1005 <  fillHist( cs, channel, type, "dz_l4"       , lep4.dz        , wgt, wgt_lo, wgt_hi);
1006 <  fillHist( cs, channel, type, "pt_l1"       , lep1.vec.Pt()  , wgt, wgt_lo, wgt_hi);
1007 <  fillHist( cs, channel, type, "pt_l2"       , lep2.vec.Pt()  , wgt, wgt_lo, wgt_hi);
1008 <  fillHist( cs, channel, type, "pt_l3"       , lep3.vec.Pt()  , wgt, wgt_lo, wgt_hi);
1009 <  fillHist( cs, channel, type, "pt_l4"       , lep4.vec.Pt()  , wgt, wgt_lo, wgt_hi);
1010 <  fillHist( cs, channel, type, "eta_l1"      , lep1.vec.Eta() , wgt, wgt_lo, wgt_hi);
1011 <  fillHist( cs, channel, type, "eta_l2"      , lep2.vec.Eta() , wgt, wgt_lo, wgt_hi);
1012 <  fillHist( cs, channel, type, "eta_l3"      , lep3.vec.Eta() , wgt, wgt_lo, wgt_hi);
1013 <  fillHist( cs, channel, type, "eta_l4"      , lep4.vec.Eta() , wgt, wgt_lo, wgt_hi);
1014 <  fillHist( cs, channel, type, "dR_l3l4_lo"  , dr(lep3,lep4)  , wgt, wgt_lo, wgt_hi);
1015 <  fillHist( cs, channel, type, "dR_l3l4"     , dr(lep3,lep4)  , wgt, wgt_lo, wgt_hi);
1016 <
1017 <  fillHist( cs, channel, type, "costheta1"      , angles.costheta1                  ,   wgt, wgt_lo, wgt_hi);
1018 <  fillHist( cs, channel, type, "costheta2"      , angles.costheta2                  ,   wgt, wgt_lo, wgt_hi);
1019 <  fillHist( cs, channel, type, "costhetastar"   , angles.costhetastar               ,   wgt, wgt_lo, wgt_hi);
1020 <  fillHist( cs, channel, type, "Phi"            , angles.Phi                        ,   wgt, wgt_lo, wgt_hi);
1021 <  fillHist( cs, channel, type, "Phi1"           , angles.Phi1                       ,   wgt, wgt_lo, wgt_hi);
1022 <  fillHist( cs, channel, type, "pt4l"           , kine.ZZpt/kine.m4l                ,   wgt, wgt_lo, wgt_hi);
1023 <  fillHist( cs, channel, type, "pt4l_log"       , kine.ZZpt/kine.m4l                ,   wgt, wgt_lo, wgt_hi);
1024 <  fillHist( cs, channel, type, "y4l"            , kine.ZZy                          ,   wgt, wgt_lo, wgt_hi);
1025 <  fillHist( cs, channel, type, "Z1pt"           , kine.Z1pt/kine.m4l                ,   wgt, wgt_lo, wgt_hi);
1026 <  fillHist( cs, channel, type, "Z1pt_log"       , kine.Z1pt/kine.m4l                ,   wgt, wgt_lo, wgt_hi);
1027 <  fillHist( cs, channel, type, "Z2pt"           , kine.Z2pt/kine.m4l                ,   wgt, wgt_lo, wgt_hi);
1028 <  fillHist( cs, channel, type, "Z2pt_log"       , kine.Z2pt/kine.m4l                ,   wgt, wgt_lo, wgt_hi);
1029 <  fillHist( cs, channel, type, "ZZdotZ1"        , kine.ZZdotZ1/(kine.m4l*kine.mZ1)  ,   wgt, wgt_lo, wgt_hi);
1030 <  fillHist( cs, channel, type, "ZZdotZ2"        , kine.ZZdotZ2/(kine.m4l*kine.mZ2)  ,   wgt, wgt_lo, wgt_hi);
1031 <  fillHist( cs, channel, type, "ZZdotZ1_log"    , kine.ZZdotZ1/(kine.m4l*kine.mZ1)  ,   wgt, wgt_lo, wgt_hi);
1032 <  fillHist( cs, channel, type, "ZZdotZ2_log"    , kine.ZZdotZ2/(kine.m4l*kine.mZ2)  ,   wgt, wgt_lo, wgt_hi);
1033 <  fillHist( cs, channel, type, "dphi1"          , kine.ZZptZ1ptCosDphi              ,   wgt, wgt_lo, wgt_hi);
1034 <  fillHist( cs, channel, type, "dphi2"          , kine.ZZptZ2ptCosDphi              ,   wgt, wgt_lo, wgt_hi);
1035 <  fillHist( cs, channel, type, "dphi1_log"      , kine.ZZptZ1ptCosDphi              ,   wgt, wgt_lo, wgt_hi);
1036 <  fillHist( cs, channel, type, "dphi2_log"      , kine.ZZptZ2ptCosDphi              ,   wgt, wgt_lo, wgt_hi);
1037 <
1038 < }
1039 < //----------------------------------------------------------------------------------------
1040 < void fillAllJetHists( FOFlags ctrl, CSample *cs, TString channel, TString type, filestuff *fs, KinematicsStruct kine,
1041 <                      SimpleLepton lep1, SimpleLepton lep2, SimpleLepton lep3, SimpleLepton lep4,
1042 <                      FusionMva &fusion, vector<SimpleLepton> &goodJets, JetInfoStruct ji,
1043 <                      double wgt, double wgt_lo, double wgt_hi)
1044 < {
1045 <  double fMVAval = (ctrl.uncert=="") ? 0 : fusion.reader->EvaluateMVA("BDTG");
1046 <  dr_struct drs = fill_dr_struct(goodJets,lep1,lep2,lep3,lep4);
1047 <  fillHist( cs, channel, type, "pt_j1"  ,     ji.ptJet1,        wgt, wgt_lo, wgt_hi);
1048 <  fillHist( cs, channel, type, "pt_j2"  ,     ji.ptJet2,        wgt, wgt_lo, wgt_hi);
1049 <  fillHist( cs, channel, type, "pt_j3"  ,     ji.ptJet3,        wgt, wgt_lo, wgt_hi);
1050 <  fillHist( cs, channel, type, "pt_j4"  ,     ji.ptJet4,        wgt, wgt_lo, wgt_hi);
1051 <  fillHist( cs, channel, type, "eta_j1" ,     ji.etaJet1,       wgt, wgt_lo, wgt_hi);
1052 <  fillHist( cs, channel, type, "eta_j2" ,     ji.etaJet2,       wgt, wgt_lo, wgt_hi);
1053 <  fillHist( cs, channel, type, "eta_j3" ,     ji.etaJet3,       wgt, wgt_lo, wgt_hi);
1054 <  fillHist( cs, channel, type, "eta_j4" ,     ji.etaJet4,       wgt, wgt_lo, wgt_hi);
1055 <  fillHist( cs, channel, type, "phi_j1" ,     ji.phiJet1,       wgt, wgt_lo, wgt_hi);
1056 <  fillHist( cs, channel, type, "phi_j2" ,     ji.phiJet2,       wgt, wgt_lo, wgt_hi);
1057 <  fillHist( cs, channel, type, "phi_j3" ,     ji.phiJet3,       wgt, wgt_lo, wgt_hi);
1058 <  fillHist( cs, channel, type, "phi_j4" ,     ji.phiJet4,       wgt, wgt_lo, wgt_hi);
1059 <  fillHist( cs, channel, type, "idmva_j1",    ji.mvaJet1,       wgt, wgt_lo, wgt_hi);
1060 <  fillHist( cs, channel, type, "idmva_j2",    ji.mvaJet2,       wgt, wgt_lo, wgt_hi);
1061 <  fillHist( cs, channel, type, "idmva_j3",    ji.mvaJet3,       wgt, wgt_lo, wgt_hi);
1062 <  fillHist( cs, channel, type, "idmva_j4",    ji.mvaJet4,       wgt, wgt_lo, wgt_hi);
1063 <  fillHist( cs, channel, type, "mjj"    ,     ji.mjj,           wgt, wgt_lo, wgt_hi);
1064 <  fillHist( cs, channel, type, "dEta"   ,     ji.dEta,          wgt, wgt_lo, wgt_hi);
1065 <  fillHist( cs, channel, type, "etaProd",     ji.etaProd,       wgt, wgt_lo, wgt_hi);
1066 <  fillHist( cs, channel, type, "njets"    ,   goodJets.size(),  wgt, wgt_lo, wgt_hi);
1067 <  fillHist( cs, channel, type, "dR_l1j1",     drs.l1j1,         wgt, wgt_lo, wgt_hi);
1068 <  fillHist( cs, channel, type, "dR_l2j1",     drs.l2j1,         wgt, wgt_lo, wgt_hi);
1069 <  fillHist( cs, channel, type, "dR_l3j1",     drs.l3j1,         wgt, wgt_lo, wgt_hi);
1070 <  fillHist( cs, channel, type, "dR_l4j1",     drs.l4j1,         wgt, wgt_lo, wgt_hi);
1071 <  fillHist( cs, channel, type, "dR_l1j2",     drs.l1j2,         wgt, wgt_lo, wgt_hi);
1072 <  fillHist( cs, channel, type, "dR_l2j2",     drs.l2j2,         wgt, wgt_lo, wgt_hi);
1073 <  fillHist( cs, channel, type, "dR_l3j2",     drs.l3j2,         wgt, wgt_lo, wgt_hi);
1074 <  fillHist( cs, channel, type, "dR_l4j2",     drs.l4j2,         wgt, wgt_lo, wgt_hi);
1075 <  fillHist( cs, channel, type, "dR_l1j3",     drs.l1j3,         wgt, wgt_lo, wgt_hi);
1076 <  fillHist( cs, channel, type, "dR_l2j3",     drs.l2j3,         wgt, wgt_lo, wgt_hi);
1077 <  fillHist( cs, channel, type, "dR_l3j3",     drs.l3j3,         wgt, wgt_lo, wgt_hi);
1078 <  fillHist( cs, channel, type, "dR_l4j3",     drs.l4j3,         wgt, wgt_lo, wgt_hi);
1079 <  fillHist( cs, channel, type, "dR_l1j4",     drs.l1j4,         wgt, wgt_lo, wgt_hi);
1080 <  fillHist( cs, channel, type, "dR_l2j4",     drs.l2j4,         wgt, wgt_lo, wgt_hi);
1081 <  fillHist( cs, channel, type, "dR_l3j4",     drs.l3j4,         wgt, wgt_lo, wgt_hi);
1082 <  fillHist( cs, channel, type, "dR_l4j4",     drs.l4j4,         wgt, wgt_lo, wgt_hi);
1083 <
1084 <  fillHist( cs, channel, type, "fusionMVA_lo", fMVAval,         wgt, wgt_lo, wgt_hi);
1085 <  fillHist( cs, channel, type, "fusionMVA_med",fMVAval,         wgt, wgt_lo, wgt_hi);
1086 <  fillHist( cs, channel, type, "fusionMVA_hi", fMVAval,         wgt, wgt_lo, wgt_hi);
1087 <  fillHist( cs, channel, type, "fusionMVA",    fMVAval,         wgt, wgt_lo, wgt_hi);
1088 <  if(fMVAval > -.3) {
1089 <    fillHist( cs, channel, type, "m4l_jet_lo",  kine.m4l  ,     wgt, wgt_lo, wgt_hi);                
1090 <    fillHist( cs, channel, type, "m4l_jet",     kine.m4l  ,     wgt, wgt_lo, wgt_hi);
1091 <  }
1092 < }
969 > //   htmlfile << "</body>" << endl;
970 > //   htmlfile << "</html>" << endl;
971 > //   htmlfile.close();
972 > // }
973   //----------------------------------------------------------------------------------------
974   bool passHlt(FOFlags &ctrl, TrigInfo ti, InfoStruct *info, unsigned lep1matchBits,
975               unsigned lep2matchBits, unsigned lep3matchBits,

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines