ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/rootEWKanalyzer/src/analysisClass_myCode.C
Revision: 1.1
Committed: Mon Jun 7 14:57:37 2010 UTC (14 years, 10 months ago) by jueugste
Content type: text/plain
Branch: MAIN
Log Message:
first commit

File Contents

# User Rev Content
1 jueugste 1.1 // remkarks:
2     // !!! in the W selection every electron is taken, also the
3     // non isolated !!!
4    
5    
6     // implement conversion removal for robust...
7    
8    
9    
10    
11    
12    
13     #define analysisClass_cxx
14     #include "analysisClass.h"
15     #include <TH2.h>
16     #include <TF2.h>
17     #include <TH1F.h>
18     #include <TStyle.h>
19     #include <TCanvas.h>
20     #include <TLorentzVector.h>
21     #include <TVector2.h>
22     #include <TVector3.h>
23     #include <TTree.h>
24    
25     analysisClass::analysisClass(string * inputList, string * cutFile, string * treeName, string * outputFileName, string * cutEfficFile)
26     :baseClass(inputList, cutFile, treeName, outputFileName, cutEfficFile)
27     {
28     std::cout << "analysisClass::analysisClass(): begins " << std::endl;
29    
30     std::cout << "analysisClass::analysisClass(): ends " << std::endl;
31     }
32    
33     analysisClass::~analysisClass()
34     {
35     std::cout << "analysisClass::~analysisClass(): begins " << std::endl;
36    
37     std::cout << "analysisClass::~analysisClass(): ends " << std::endl;
38     }
39    
40     void filler(myEvent electrons, TH1D *pt, TH1D *eta, TH1D *phi, TH1D *met, TH1D *charge,
41     TH1D *deltaPhi, TH1D *deltaEta, TH1D *oneOverEminusOneOverP, TH1D *transMass,
42     TH1D *ethIso, TH1D *trkIso, TH1D *ecalIso, TH1D *hcalIso, TH1D* HoverE,
43     TH1D *sigmaIetaIeta, TH1D *numberOfMissingInnerHits
44     )
45     {
46     // pt->Fill(electrons.fourvector[0].Pt());
47     pt->Fill(electrons.momentum[0]);
48     eta->Fill(electrons.fourvector[0].Eta());
49     phi->Fill(electrons.fourvector[0].Phi());
50     met->Fill(electrons.missinget);
51     charge->Fill(electrons.charge[0]);
52    
53     deltaPhi->Fill(fabs(electrons.deltaPhi[0]));
54     deltaEta->Fill(fabs(electrons.deltaEta[0]));
55     oneOverEminusOneOverP->Fill(fabs(electrons.oneOverEminusOverP[0]));
56     transMass->Fill(electrons.transverseMass[0]);
57     ethIso->Fill(electrons.ethIso[0]);
58     trkIso->Fill(electrons.trkIso[0]);
59     ecalIso->Fill(electrons.ecalIso[0]);
60     hcalIso->Fill(electrons.hcalIso[0]);
61     HoverE->Fill(electrons.HoverE[0]);
62     sigmaIetaIeta->Fill(electrons.sigmaIetaIeta[0]);
63     numberOfMissingInnerHits->Fill(electrons.numberOfMissingInnerHits[0]);
64    
65     }
66    
67     void scaleHisto(TH1D* histo, double factor) {
68     int binnumber=histo->GetNbinsX();
69     for(int i=0;i<=binnumber+1;i++) {
70     double bincontent=histo->GetBinContent(i);
71     double newbincontent=bincontent*factor;
72     histo->SetBinContent(i,newbincontent);
73     double binerror=histo->GetBinError(i);
74     double newbinerror=binerror*factor;
75     histo->SetBinError(i,newbinerror);
76     }
77     }
78    
79     float detaCorrections(float etaEle,float phiEle)
80     {
81     TF2 f12_fit2("f12_fit2","[0]+(TMath::TanH(y)/325.)*([1]-([2]*TMath::SinH(y)*TMath::Cos(x-[3])))",-TMath::Pi(),TMath::Pi(),-10.,10.);
82    
83     if (etaEle>1.479)
84     {
85     f12_fit2.SetParameter(0,0.0013);
86     f12_fit2.SetParameter(1,-0.06);
87     f12_fit2.SetParameter(2,0.52);
88     f12_fit2.SetParameter(3,2.17);
89     }
90     else if (etaEle<-1.479)
91     {
92     f12_fit2.SetParameter(0,-0.0013);
93     f12_fit2.SetParameter(1,-0.32);
94     f12_fit2.SetParameter(2,0.45);
95     f12_fit2.SetParameter(3,-1.58);
96     }
97     return f12_fit2.Eval(phiEle,etaEle);
98     }
99    
100     float dphiCorrections(float etaEle,float phiEle)
101     {
102     TF2 f12_fit2("f12_fit2","[0]+[1]*(TMath::SinH(y)/325.)*(TMath::Sin([2]-x))",-TMath::Pi(),TMath::Pi(),-10.,10.);
103    
104     if (etaEle>1.479)
105     {
106     f12_fit2.SetParameter(0,0.0);
107     f12_fit2.SetParameter(1,0.52);
108     f12_fit2.SetParameter(2,2.17);
109     }
110     else if (etaEle<-1.479)
111     {
112     f12_fit2.FixParameter(0,0.0);
113     f12_fit2.FixParameter(1,0.45);
114     f12_fit2.FixParameter(2,-1.58);
115     }
116     return f12_fit2.Eval(phiEle,etaEle);
117     }
118    
119     void analysisClass::Loop()
120     {
121     std::cout << "analysisClass::Loop() begins" <<std::endl;
122    
123     if (fChain == 0) return;
124    
125     int workingPoint = 80;
126    
127     bool isdata=false;
128     bool printInfo=false;
129     bool noInnerHitInfo=false;
130     bool writeBasicPlots=false;
131     bool writeIdPlots=true;
132     bool writeN1Plots=true;
133     bool writeWenuPlots=false;
134     bool normalize=false;
135     bool applyDeltaCorrection=true;
136    
137     double totalNumberOfEvents=0;
138     vector<double> WorkingPointCuts;
139    
140     int debug=0;
141    
142     // --------------------------------------------------------------------------------------------------------------------
143     // read the cut values from include/workingPoints.txt
144     // --------------------------------------------------------------------------------------------------------------------
145     if(workingPoint>0) {
146     const char *file="include/workingPoints.txt";
147     cout<<"Opening file: "<<file<<"..."<<endl;
148     ifstream toread (file);
149     if(!toread.is_open()) {
150     cerr<<"File "<<file<<" not found!!"<<endl;
151     //goto END;
152     }
153     else {
154     cout<<"File opened..."<<endl;
155     }
156    
157     // build the working point variable
158     char wpB [20];
159     char wpE [20];
160     sprintf(wpB,"B%d",workingPoint);
161     sprintf(wpE,"E%d",workingPoint);
162    
163    
164     // read every line in the file
165     if(toread.is_open()) {
166     string line;
167     float value;
168     char name[100];
169     cout<<"Reading input file"<<endl;
170     while(!toread.eof()) {
171     getline (toread, line);
172    
173     if(line.substr(0,1)=="#") continue;
174     cout<<line<<endl;
175    
176     char wp[20];
177     float v0, v1, v2, v3, v4, v5, v6, v7;
178     sscanf (line.c_str(), "%s\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f", wp, &v0, &v1, &v2, &v3, &v4, &v5, &v6, &v7);
179     // barrel values
180     if(!strcmp(wp, wpB)) {
181     WorkingPointCuts.push_back(v0);
182     WorkingPointCuts.push_back(v1);
183     WorkingPointCuts.push_back(v2);
184     WorkingPointCuts.push_back(v3);
185     WorkingPointCuts.push_back(v4);
186     WorkingPointCuts.push_back(v5);
187     WorkingPointCuts.push_back(v6);
188     WorkingPointCuts.push_back(2);
189     }
190     // endcap values
191     if(!strcmp(wp, wpE)) {
192     WorkingPointCuts.push_back(v0);
193     WorkingPointCuts.push_back(v1);
194     WorkingPointCuts.push_back(v2);
195     WorkingPointCuts.push_back(v3);
196     WorkingPointCuts.push_back(v4);
197     WorkingPointCuts.push_back(v5);
198     WorkingPointCuts.push_back(v6);
199     WorkingPointCuts.push_back(2);
200     }
201    
202     } // read line
203     } // read file
204     }
205    
206     // --------------------------------------------------------------------------------------------------------------------
207     // Electron Cuts
208     // --------------------------------------------------------------------------------------------------------------------
209    
210     // Geometry
211     double etaBarrelMax=1.44;
212     double etaEndcapMax=2.6;
213     // Preselection
214     double Pre_HoverEMin=0.15;
215     double Pre_deltaEtaMax=0.02;
216     double Pre_deltaPhiMax=0.15;
217     double Pre_pt=20.;
218     // ETH ID
219     double ETH_oneOverEminusOneOverP_B=0.005;
220     double ETH_deltaEtaMax_B=0.004;
221     double ETH_deltaPhiMax_B=0.02;
222     double ETH_iso_B=0.1;
223     double ETH_oneOverEminusOneOverP_E=0.007;
224     double ETH_deltaEtaMax_E=0.006;
225     double ETH_deltaPhiMax_E=0.02;
226     double ETH_iso_E=0.1;
227    
228     double Rob_HoverE_B;
229     double Rob_SigmaIetaIeta_B;
230     double Rob_deltaPhi_B;
231     double Rob_deltaEta_B;
232     double Rob_trkIso_B;
233     double Rob_ecalIso_B;
234     double Rob_hcalIso_B;
235    
236     double Rob_HoverE_E;
237     double Rob_SigmaIetaIeta_E;
238     double Rob_deltaPhi_E;
239     double Rob_deltaEta_E;
240     double Rob_trkIso_E;
241     double Rob_ecalIso_E;
242     double Rob_hcalIso_E;
243    
244     // Robust ID
245    
246     if(workingPoint==-1) {
247     Rob_HoverE_B=0.0201;
248     Rob_SigmaIetaIeta_B=0.0102;
249     Rob_deltaPhi_B=0.0211;
250     Rob_deltaEta_B=0.00606;
251     Rob_trkIso_B=2.34;
252     Rob_ecalIso_B=3.24;
253     Rob_hcalIso_B=4.51;
254    
255     Rob_HoverE_E=0.00253;
256     Rob_SigmaIetaIeta_E=0.0291;
257     Rob_deltaPhi_E=0.022;
258     Rob_deltaEta_E=0.0032;
259     Rob_trkIso_E=0.826;
260     Rob_ecalIso_E=2.7;
261     Rob_hcalIso_E=0.255;
262    
263     WorkingPointCuts.push_back(Rob_SigmaIetaIeta_B);
264     WorkingPointCuts.push_back(Rob_deltaPhi_B);
265     WorkingPointCuts.push_back(Rob_deltaEta_B);
266     WorkingPointCuts.push_back(Rob_HoverE_B);
267     WorkingPointCuts.push_back(Rob_trkIso_B);
268     WorkingPointCuts.push_back(Rob_ecalIso_B);
269     WorkingPointCuts.push_back(Rob_hcalIso_B);
270     WorkingPointCuts.push_back(2);
271     WorkingPointCuts.push_back(Rob_SigmaIetaIeta_E);
272     WorkingPointCuts.push_back(Rob_deltaPhi_E);
273     WorkingPointCuts.push_back(Rob_deltaEta_E);
274     WorkingPointCuts.push_back(Rob_HoverE_E);
275     WorkingPointCuts.push_back(Rob_trkIso_E);
276     WorkingPointCuts.push_back(Rob_ecalIso_E);
277     WorkingPointCuts.push_back(Rob_hcalIso_E);
278     WorkingPointCuts.push_back(2);
279     // WorkingPointCuts.push_back();
280     // WorkingPointCuts.push_back();
281     }
282    
283     if(workingPoint>0) {
284     Rob_SigmaIetaIeta_B=WorkingPointCuts[0];
285     Rob_deltaPhi_B=WorkingPointCuts[1];
286     Rob_deltaEta_B=WorkingPointCuts[2];
287     Rob_HoverE_B=WorkingPointCuts[3];
288     Rob_trkIso_B=WorkingPointCuts[4];
289     Rob_ecalIso_B=WorkingPointCuts[5];
290     Rob_hcalIso_B=WorkingPointCuts[6];
291    
292     Rob_SigmaIetaIeta_E=WorkingPointCuts[8];
293     Rob_deltaPhi_E=WorkingPointCuts[9];
294     Rob_deltaEta_E=WorkingPointCuts[10];
295     Rob_HoverE_E=WorkingPointCuts[11];
296     Rob_trkIso_E=WorkingPointCuts[12];
297     Rob_ecalIso_E=WorkingPointCuts[13];
298     Rob_hcalIso_E=WorkingPointCuts[14];
299     }
300    
301     for(int i=0; i< WorkingPointCuts.size();i++) {
302     cout<<WorkingPointCuts[i]<<endl;
303     }
304    
305     // --------------------------------------------------------------------------------------------------------------------
306    
307    
308     // --------------------------------------------------------------------------------------------------------------------
309     // define some counters
310     // --------------------------------------------------------------------------------------------------------------------
311     int c_robust_B=0;
312     int c_robust_E=0;
313     int c_robust_tree=0;
314     int c_eth_1=0;
315     int c_eth_2=0;
316     // --------------------------------------------------------------------------------------------------------------------
317    
318    
319    
320     // --------------------------------------------------------------------------------------------------------------------
321     // --------------------------------------------------------------------------------------------------------------------
322     double lumi=6710;
323     double xsec=235500000.0;
324     double sampleSize=-1;
325     // double sampleSize=615; // Wenu
326    
327     // double sampleSize=171915; // QCD_EMEnriched_Pt20to30
328     // double sampleSize=349870; // QCD_EMEnriched_Pt30to80
329     // double sampleSize=13408; // QCD_EMEnriched_Pt80to170
330    
331     // double sampleSize=11470; // PhotonJet_Pt15to20
332     // double sampleSize=5718; // /PhotonJet_Pt20to30
333     // double sampleSize=2007 ; // PhotonJet_Pt30
334    
335     // double sampleSize=
336     // double sampleSize=10833; // QCD_BCtoE_Pt20to30
337     // double sampleSize=13876; // QCD_BCtoE_Pt30to80
338     // double sampleSize=942; // QCD_BCtoE_Pt80to170
339    
340     // double sampleSize=790; // Wtaunu
341     // double sampleSize=130; // Zee
342     // double sampleSize=9; // TTbar
343     // double sampleSize=
344    
345    
346    
347     // --------------------------------------------------------------------------------------------------------------------
348    
349    
350    
351     double Pi=2*acos(0);
352    
353    
354     int counterTight=0;
355     int counterETH=0;
356    
357     double ptMin=20;
358    
359     double jetEtaMax=2.5;
360     double jetPtMin=30.;
361     double deltaRMax=0.3;
362    
363    
364     int MAXE=38;
365    
366     // --------------------------------------------------------------------------------------------------------------------
367     // choose which cut should be applyed
368     // --------------------------------------------------------------------------------------------------------------------
369     bool applyCut [] = {true, // 0: not used...
370     true, // 1: Preselection, H/E
371     true, // 2: Preselection, delta phi
372     true, // 3: Preselection, delta eta
373     true, // 4: Preselection, pt
374     false, // 5: Trigger
375     true, // 6: ETH Barrel only (flag can not be changed, cut is always applyed)
376     true, // 7: ETH Barrel, ECAL driven
377     true, // 8: ETH Barrel, |1/E-1/p|
378     true, // 9: ETH Barrel, delta eta
379     true, //10: ETH Barrel, delta phi
380     true, //11: ETH Barrel, isolation
381     true, //12: ETH Barrel, conversions
382     true, //13: not used... (ETH Endcap)
383     true, //14: ETH Endcap, ECAL driven
384     true, //15: ETH Endcap, |1/E-1/p|
385     true, //16: ETH Endcap, delta eta
386     true, //17: ETH Endcap, delta phi
387     true, //18: ETH Endcap, isolation
388     true, //19: ETH Endcap, conversions
389     true, //20: Robust Barrel,
390     true, //21: Robust Barrel, H/E
391     true, //22: Robust Barrel, sigma ieta ieta
392     true, //23: Robust Barrel, delta phi
393     true, //24: Robust Barrel, delta eta
394     true, //25: Robust Barrel, track iso
395     true, //26: Robust Barrel, ecal iso
396     true, //27: Robust Barrel, hcal iso
397     false, //28: Robust Barrel, conversions
398     true, //29: Robust Endcap,
399     true, //30: Robust Endcap, H/E
400     true, //31: Robust Endcap, sigma ieta ieta
401     true, //32: Robust Endcap, delta phi
402     true, //33: Robust Endcap, delta eta
403     true, //34: Robust Endcap, track iso
404     true, //35: Robust Endcap, ecal iso
405     true, //36: Robust Endcap, hcal iso
406     false //37: Robust Endcap, conversions
407     };
408    
409     //}
410    
411     // --------------------------------------------------------------------------------------------------------------------
412    
413     // --------------------------------------------------------------------------------------------------------------------
414     // number of events
415     // --------------------------------------------------------------------------------------------------------------------
416     TH1I *h_numberOfEvents;
417     h_numberOfEvents=new TH1I("numberOfEvents", "numberOfEvents", 1, -0.01, 1.01);
418     // --------------------------------------------------------------------------------------------------------------------
419    
420    
421    
422     // --------------------------------------------------------------------------------------------------------------------
423     // Electron plots
424     // --------------------------------------------------------------------------------------------------------------------
425     char name [50];
426     int nbins=12;
427     double start=0.;
428     double end=120.;
429     TH1D *hs_El_ElPt[MAXE];
430     TH1D *hs_El_ElEta[MAXE];
431     TH1D *hs_El_ElPhi[MAXE];
432     TH1D *hs_El_ElDeltaPhi[MAXE];
433     TH1D *hs_El_ElDeltaEta[MAXE];
434     TH1D *hs_El_ElOneOverEminusOneOverP[MAXE];
435     TH1D *hs_El_ElMet[MAXE];
436     TH1D *hs_El_ElTransMass[MAXE];
437     TH1D *hs_El_ElCharge[MAXE];
438     TH1D *hs_El_Njets[MAXE];
439     TH1D *hs_El_ElEthIso[MAXE];
440     TH1D *hs_El_ElTrkIso[MAXE];
441     TH1D *hs_El_ElEcalIso[MAXE];
442     TH1D *hs_El_ElHcalIso[MAXE];
443     TH1D *hs_El_ElHoverE[MAXE];
444     TH1D *hs_El_ElSigmaIetaIeta[MAXE];
445     TH1D *hs_El_ElNumberOfMissingInnerHits[MAXE];
446     for(int i=0; i<MAXE; i++) {
447     sprintf(name,"s_El_ElPt_%d",i);
448     hs_El_ElPt[i]=new TH1D(name, name, nbins, start, end);
449     hs_El_ElPt[i]->SetXTitle("p_{T} [GeV]");
450     hs_El_ElPt[i]->SetYTitle("events / bin");
451     sprintf(name,"s_El_ElEta_%d",i);
452     hs_El_ElEta[i]=new TH1D(name, name, 30, -5., 5.);
453     hs_El_ElEta[i]->SetXTitle("#eta");
454     hs_El_ElEta[i]->SetYTitle("events / bin");
455     sprintf(name,"s_El_ElPhi_%d",i);
456     hs_El_ElPhi[i]=new TH1D(name, name, 30, -Pi,Pi);
457     hs_El_ElPhi[i]->SetXTitle("#phi");
458     hs_El_ElPhi[i]->SetYTitle("events / bin");
459     sprintf(name,"s_El_ElDeltaPhi_%d",i);
460     hs_El_ElDeltaPhi[i]=new TH1D(name, name, 15, -0.0001, 0.05001);
461     hs_El_ElDeltaPhi[i]->SetXTitle("#Delta #phi");
462     hs_El_ElDeltaPhi[i]->SetYTitle("events / bin");
463     sprintf(name,"s_El_ElDeltaEta_%d",i);
464     hs_El_ElDeltaEta[i]=new TH1D(name, name, 15, -0.0001, 0.05001);
465     hs_El_ElDeltaEta[i]->SetXTitle("#Delta #eta");
466     hs_El_ElDeltaEta[i]->SetYTitle("events / bin");
467     sprintf(name,"s_El_ElMet_%d",i);
468     hs_El_ElMet[i]=new TH1D(name, name, nbins, start, end);
469     hs_El_ElMet[i]->SetXTitle("#slash{E}_{T} [GeV]");
470     hs_El_ElMet[i]->SetYTitle("events / bin");
471     sprintf(name,"s_El_ElTransMass_%d",i);
472     hs_El_ElTransMass[i]=new TH1D(name, name, nbins, start, end);
473     hs_El_ElTransMass[i]->SetXTitle("m_{T} [GeV]");
474     hs_El_ElTransMass[i]->SetYTitle("events / bin");
475     sprintf(name,"s_El_ElCharge_%d",i);
476     hs_El_ElCharge[i]=new TH1D(name, name, 2, -2, 2);
477     hs_El_ElCharge[i]->SetXTitle("Charge");
478     hs_El_ElCharge[i]->SetYTitle("events / bin");
479     sprintf(name,"s_El_Njets_%d",i);
480     hs_El_Njets[i]=new TH1D(name, name, 10, 0, 10);
481     hs_El_Njets[i]->SetXTitle("number of jets");
482     hs_El_Njets[i]->SetYTitle("events / bin");
483     sprintf(name,"s_El_ElOneOverEminusOneOverP_%d",i);
484     hs_El_ElOneOverEminusOneOverP[i]=new TH1D(name, name, 30, -0.01, 0.5);
485     hs_El_ElOneOverEminusOneOverP[i]->SetXTitle("|1/E-1/p|");
486     hs_El_ElOneOverEminusOneOverP[i]->SetYTitle("events / bin");
487     sprintf(name,"s_El_ElEthIso_%d",i);
488     // hs_El_ElEthIso[i]=new TH1D(name, name, 50, -0.01, 5.);
489     hs_El_ElEthIso[i]=new TH1D(name, name, 20, -0.01, 1.1);
490     hs_El_ElEthIso[i]->SetXTitle("ETH Iso");
491     hs_El_ElEthIso[i]->SetYTitle("events / bin");
492     sprintf(name,"s_El_ElTrkIso_%d",i);
493     // hs_El_ElTrkIso[i]=new TH1D(name, name, 100, -0.01, 50.);
494     hs_El_ElTrkIso[i]=new TH1D(name, name, 20, -0.01, 1.1);
495     hs_El_ElTrkIso[i]->SetXTitle("Trk Iso");
496     hs_El_ElTrkIso[i]->SetYTitle("events / bin");
497     sprintf(name,"s_El_ElEcalIso_%d",i);
498     hs_El_ElEcalIso[i]=new TH1D(name, name, 20, -0.01, 1.1);
499     // hs_El_ElEcalIso[i]=new TH1D(name, name, 40, -0.01, 20.);
500     hs_El_ElEcalIso[i]->SetXTitle("ECAL Iso");
501     hs_El_ElEcalIso[i]->SetYTitle("events / bin");
502     sprintf(name,"s_El_ElHcalIso_%d",i);
503     hs_El_ElHcalIso[i]=new TH1D(name, name, 20, -0.01, 10.);
504     hs_El_ElHcalIso[i]->SetXTitle("HCAL Iso");
505     hs_El_ElHcalIso[i]->SetYTitle("events / bin");
506     sprintf(name,"s_El_ElHoverE_%d",i);
507     hs_El_ElHoverE[i]=new TH1D(name, name, 30, -0.01, 0.5);
508     hs_El_ElHoverE[i]->SetXTitle("H/E");
509     hs_El_ElHoverE[i]->SetYTitle("events / bin");
510     sprintf(name,"s_El_ElSigmaIetaIeta_%d",i);
511     hs_El_ElSigmaIetaIeta[i]=new TH1D(name, name, 50, -0.01, 0.08);
512     hs_El_ElSigmaIetaIeta[i]->SetXTitle("#sigma_{i#eta i#eta}");
513     hs_El_ElSigmaIetaIeta[i]->SetYTitle("events / bin");
514     sprintf(name,"s_El_ElNumberOfMissingInnerHits_%d",i);
515     hs_El_ElNumberOfMissingInnerHits[i]=new TH1D(name, name, 10, 0., 10.);
516     hs_El_ElNumberOfMissingInnerHits[i]->SetXTitle("Number of missing inner hits");
517     hs_El_ElNumberOfMissingInnerHits[i]->SetYTitle("events / bin");
518    
519    
520     }
521     // --------------------------------------------------------------------------------------------------------------------
522    
523    
524    
525     // --------------------------------------------------------------------------------------------------------------------
526     // Electron ID N-1 plots
527     // --------------------------------------------------------------------------------------------------------------------
528     int MAXN=4;
529     TH1D *hn1_El_ElDeltaPhi[MAXN];
530     TH1D *hn1_El_ElDeltaEta[MAXN];
531     TH1D *hn1_El_ElOneOverEminusOneOverP[MAXN];
532     //TH1D *hn1_El_ElEthIso[MAXN];
533    
534     TH1D *hn1_El_ElPt[MAXN];
535     TH1D *hn1_El_ElEta[MAXN];
536     TH1D *hn1_El_ElPhi[MAXN];
537     TH1D *hn1_El_ElMet[MAXN];
538     TH1D *hn1_El_ElTransMass[MAXN];
539     TH1D *hn1_El_ElCharge[MAXN];
540     TH1D *hn1_El_Njets[MAXN];
541     TH1D *hn1_El_ElEthIso[MAXN];
542     TH1D *hn1_El_ElTrkIso[MAXN];
543     TH1D *hn1_El_ElEcalIso[MAXN];
544     TH1D *hn1_El_ElHcalIso[MAXN];
545     TH1D *hn1_El_ElHoverE[MAXN];
546     TH1D *hn1_El_ElSigmaIetaIeta[MAXN];
547     TH1D *hn1_El_ElNumberOfMissingInnerHits[MAXN];
548    
549    
550     for(int i=0; i<MAXN;i++) {
551     sprintf(name,"n1_El_ElDeltaPhi_%d",i);
552     hn1_El_ElDeltaPhi[i]=new TH1D(name, name, 15, -0.0001, 0.05001);
553     hn1_El_ElDeltaPhi[i]->SetXTitle("#Delta #phi");
554     hn1_El_ElDeltaPhi[i]->SetYTitle("events / bin");
555     sprintf(name,"n1_El_ElDeltaEta_%d",i);
556     hn1_El_ElDeltaEta[i]=new TH1D(name, name, 15, -0.0001, 0.05001);
557     hn1_El_ElDeltaEta[i]->SetXTitle("#Delta #eta");
558     hn1_El_ElDeltaEta[i]->SetYTitle("events / bin");
559     sprintf(name,"n1_El_ElOneOverEminusOneOverP_%d",i);
560     hn1_El_ElOneOverEminusOneOverP[i]=new TH1D(name, name, 15, -0.0001, 0.05001);
561     hn1_El_ElOneOverEminusOneOverP[i]->SetXTitle("|1/E-1/p|");
562     hn1_El_ElOneOverEminusOneOverP[i]->SetYTitle("events / bin");
563     sprintf(name,"n1_El_ElEthIso_%d",i);
564     hn1_El_ElEthIso[i]=new TH1D(name, name, 50, -0.01, 5.);
565     hn1_El_ElEthIso[i]->SetXTitle("Isolation");
566     hn1_El_ElEthIso[i]->SetYTitle("events / bin");
567    
568    
569     sprintf(name,"n1_El_ElPt_%d",i);
570     hn1_El_ElPt[i]=new TH1D(name, name, nbins, start, end);
571     hn1_El_ElPt[i]->SetXTitle("p_{T} [GeV]");
572     hn1_El_ElPt[i]->SetYTitle("events / bin");
573     sprintf(name,"n1_El_ElEta_%d",i);
574     hn1_El_ElEta[i]=new TH1D(name, name, 30, -5., 5.);
575     hn1_El_ElEta[i]->SetXTitle("#eta");
576     hn1_El_ElEta[i]->SetYTitle("events / bin");
577     sprintf(name,"n1_El_ElPhi_%d",i);
578     hn1_El_ElPhi[i]=new TH1D(name, name, 30, -Pi,Pi);
579     hn1_El_ElPhi[i]->SetXTitle("#phi");
580     hn1_El_ElPhi[i]->SetYTitle("events / bin");
581     sprintf(name,"n1_El_ElMet_%d",i);
582     hn1_El_ElMet[i]=new TH1D(name, name, nbins, start, end);
583     hn1_El_ElMet[i]->SetXTitle("#slash{E}_{T} [GeV]");
584     hn1_El_ElMet[i]->SetYTitle("events / bin");
585     sprintf(name,"n1_El_ElTransMass_%d",i);
586     hn1_El_ElTransMass[i]=new TH1D(name, name, nbins, start, end);
587     hn1_El_ElTransMass[i]->SetXTitle("m_{T} [GeV]");
588     hn1_El_ElTransMass[i]->SetYTitle("events / bin");
589     sprintf(name,"n1_El_ElCharge_%d",i);
590     hn1_El_ElCharge[i]=new TH1D(name, name, 2, -2, 2);
591     hn1_El_ElCharge[i]->SetXTitle("Charge");
592     hn1_El_ElCharge[i]->SetYTitle("events / bin");
593     sprintf(name,"n1_El_Njets_%d",i);
594     hn1_El_Njets[i]=new TH1D(name, name, 10, 0, 10);
595     hn1_El_Njets[i]->SetXTitle("number of jets");
596     hn1_El_Njets[i]->SetYTitle("events / bin");
597     sprintf(name,"n1_El_ElTrkIso_%d",i);
598     // sprintf(name,"n1_El_ElTrkIso_%d",i);
599     hn1_El_ElTrkIso[i]=new TH1D(name, name, 20, -0.01, 1.1);
600     hn1_El_ElTrkIso[i]->SetXTitle("Trk Iso");
601     hn1_El_ElTrkIso[i]->SetYTitle("events / bin");
602     sprintf(name,"n1_El_ElEcalIso_%d",i);
603     hn1_El_ElEcalIso[i]=new TH1D(name, name, 20, -0.01, 1.1);
604     // hn1_El_ElEcalIso[i]=new TH1D(name, name, 40, -0.01, 20.);
605     hn1_El_ElEcalIso[i]->SetXTitle("ECAL Iso");
606     hn1_El_ElEcalIso[i]->SetYTitle("events / bin");
607     sprintf(name,"n1_El_ElHcalIso_%d",i);
608     hn1_El_ElHcalIso[i]=new TH1D(name, name, 20, -0.01, 1.1);
609     // hn1_El_ElHcalIso[i]=new TH1D(name, name, 20, -0.01, 10.);
610     hn1_El_ElHcalIso[i]->SetXTitle("HCAL Iso");
611     hn1_El_ElHcalIso[i]->SetYTitle("events / bin");
612     sprintf(name,"n1_El_ElHoverE_%d",i);
613     hn1_El_ElHoverE[i]=new TH1D(name, name, 30, -0.01, 0.5);
614     hn1_El_ElHoverE[i]->SetXTitle("H/E");
615     hn1_El_ElHoverE[i]->SetYTitle("events / bin");
616     sprintf(name,"n1_El_ElSigmaIetaIeta_%d",i);
617     hn1_El_ElSigmaIetaIeta[i]=new TH1D(name, name, 50, -0.01, 0.08);
618     hn1_El_ElSigmaIetaIeta[i]->SetXTitle("#sigma_{i#eta i#eta}");
619     hn1_El_ElSigmaIetaIeta[i]->SetYTitle("events / bin");
620     sprintf(name,"n1_El_ElNumberOfMissingInnerHits_%d",i);
621     hn1_El_ElNumberOfMissingInnerHits[i]=new TH1D(name, name, 10, 0., 10.);
622     hn1_El_ElNumberOfMissingInnerHits[i]->SetXTitle("Number of missing inner hits");
623     hn1_El_ElNumberOfMissingInnerHits[i]->SetYTitle("events / bin");
624    
625    
626     }
627    
628     // --------------------------------------------------------------------------------------------------------------------
629    
630    
631    
632    
633     // --------------------------------------------------------------------------------------------------------------------
634     // W Selection plots
635     // --------------------------------------------------------------------------------------------------------------------
636     int MAXS=8;
637     // char name [50];
638     // int nbins=20;
639     // double start=0.;
640     // double end=120.;
641     TH1D *hs_W_ElPt[MAXS];
642     TH1D *hs_W_ElEta[MAXS];
643     TH1D *hs_W_ElPhi[MAXS];
644     TH1D *hs_W_ElDeltaPhi[MAXS];
645     TH1D *hs_W_ElMet[MAXS];
646     TH1D *hs_W_ElTransMass[MAXS];
647     TH1D *hs_W_ElCharge[MAXS];
648     TH1D *hs_W_Njets[MAXS];
649     for(int i=0; i<MAXS; i++) {
650     sprintf(name,"s_W_ElPt_%d",i);
651     hs_W_ElPt[i]=new TH1D(name, name, nbins, start, end);
652     hs_W_ElPt[i]->SetXTitle("p_{T} [GeV]");
653     hs_W_ElPt[i]->SetYTitle("events / bin");
654     sprintf(name,"s_W_ElEta_%d",i);
655     hs_W_ElEta[i]=new TH1D(name, name, 30, -5., 5.);
656     hs_W_ElEta[i]->SetXTitle("#eta");
657     hs_W_ElEta[i]->SetYTitle("events / bin");
658     sprintf(name,"s_W_ElPhi_%d",i);
659     hs_W_ElPhi[i]=new TH1D(name, name, 30, -Pi,Pi);
660     hs_W_ElPhi[i]->SetXTitle("#phi");
661     hs_W_ElPhi[i]->SetYTitle("events / bin");
662     sprintf(name,"s_W_ElDeltaPhi_%d",i);
663     hs_W_ElDeltaPhi[i]=new TH1D(name, name, 15, 0., Pi);
664     hs_W_ElDeltaPhi[i]->SetXTitle("#Delta #phi_{e,#slash{E}_{T}}");
665     hs_W_ElDeltaPhi[i]->SetYTitle("events / bin");
666     sprintf(name,"s_W_ElMet_%d",i);
667     hs_W_ElMet[i]=new TH1D(name, name, nbins, start, end);
668     hs_W_ElMet[i]->SetXTitle("#slash{E}_{T} [GeV]");
669     hs_W_ElMet[i]->SetYTitle("events / bin");
670     sprintf(name,"s_W_ElTransMass_%d",i);
671     hs_W_ElTransMass[i]=new TH1D(name, name, nbins, start, end);
672     hs_W_ElTransMass[i]->SetXTitle("m_{T} [GeV]");
673     hs_W_ElTransMass[i]->SetYTitle("events / bin");
674     sprintf(name,"s_W_ElCharge_%d",i);
675     hs_W_ElCharge[i]=new TH1D(name, name, 2, -2, 2);
676     hs_W_ElCharge[i]->SetXTitle("Charge");
677     hs_W_ElCharge[i]->SetYTitle("events / bin");
678     sprintf(name,"s_W_Njets_%d",i);
679     hs_W_Njets[i]=new TH1D(name, name, 10, 0, 10);
680     hs_W_Njets[i]->SetXTitle("number of jets");
681     hs_W_Njets[i]->SetYTitle("events / bin");
682    
683     // sprintf(name,"_%d",i);
684     // [i]=new TH1D(name, name, nbins, start, end);
685     // [i]->SetXTitle("");
686     // [i]->SetYTitle("events / bin");
687     }
688     // --------------------------------------------------------------------------------------------------------------------
689    
690    
691     // --------------------------------------------------------------------------------------------------------------------
692     // BASIC electron plots
693     // --------------------------------------------------------------------------------------------------------------------
694    
695     // binning and ranges
696    
697     //deltaPhiSuperCluster
698     double deltaPhiSCMin=0.;
699     double deltaPhiSCMax=1.;
700    
701    
702    
703     double etaMin=-3.;
704     double etaMax=3.;
705    
706     // gsf variables for barrel
707     TH1D *h_el_B_gsf_deltaPhiSuperCluster=new TH1D("el_B_gsf_deltaPhiSuperCluster","el_B_gsf_deltaPhiSuperCluster", 30, 0, 1);
708     h_el_B_gsf_deltaPhiSuperCluster->SetXTitle("#Delta #phi");
709     TH1D *h_el_B_gsf_deltaEtaSuperCluster=new TH1D("el_B_gsf_deltaEtaSuperCluster","el_B_gsf_deltaEtaSuperCluster", 30, 0, 1);
710     h_el_B_gsf_deltaEtaSuperCluster->SetXTitle("#Delta #eta");
711     TH1D *h_el_B_gsf_deltaPhiSuperCluster2=new TH1D("el_B_gsf_deltaPhiSuperCluster2","el_B_gsf_deltaPhiSuperCluster2", 30, 0, 0.1);
712     h_el_B_gsf_deltaPhiSuperCluster2->SetXTitle("#Delta #phi");
713     TH1D *h_el_B_gsf_deltaEtaSuperCluster2=new TH1D("el_B_gsf_deltaEtaSuperCluster2","el_B_gsf_deltaEtaSuperCluster2", 30, 0, 0.05);
714     h_el_B_gsf_deltaEtaSuperCluster2->SetXTitle("#Delta #eta");
715     TH1D *h_el_B_gsf_caloenergy=new TH1D("el_B_gsf_caloenergy","el_B_gsf_caloenergy", 30,0.,50);
716     h_el_B_gsf_caloenergy->SetXTitle("E [GeV]");
717     TH1D *h_el_B_gsf_trkmomatvtx=new TH1D("el_B_gsf_trkmomatvtx","el_B_gsf_trkmomatvtx", 30,0.,50);
718     h_el_B_gsf_trkmomatvtx->SetXTitle("p [GeV]");
719     TH1D *h_el_B_gsf_oneOverEminusOneOverP=new TH1D("el_B_gsf_oneOverEminusOneOverP","el_B_gsf_oneOverEminusOneOverP",30,0.,3);
720     h_el_B_gsf_oneOverEminusOneOverP->SetXTitle("|1 / E - 1 / p|");
721     TH1D *h_el_B_gsf_oneOverEminusOneOverP2=new TH1D("el_B_gsf_oneOverEminusOneOverP2","el_B_gsf_oneOverEminusOneOverP2",30,0.,0.1);
722     h_el_B_gsf_oneOverEminusOneOverP2->SetXTitle("|1 / E - 1 / p|");
723     TH1D *h_el_B_gsf_sumPtOverE=new TH1D("el_B_gsf_sumPtOverE","el_B_gsf_sumPtOverE",30,0.,5);
724     h_el_B_gsf_sumPtOverE->SetXTitle("#Sigma p_{T} / E");
725     TH1D *h_el_B_gsf_sigmaIetaIeta=new TH1D("el_B_gsf_sigmaIetaIeta","el_B_gsf_sigmaIetaIeta",30,0.,0.1);
726     h_el_B_gsf_sigmaIetaIeta->SetXTitle("#sigma_{#eta #eta}");
727     TH1D *h_el_B_gsf_pt=new TH1D("el_B_gsf_pt","el_B_gsf_pt",50,0.,50);
728     h_el_B_gsf_pt->SetXTitle("p_{T} [GeV]");
729     TH1D *h_el_B_gsf_eta=new TH1D("el_B_gsf_eta","el_B_gsf_eta",20,-3,3);
730     h_el_B_gsf_eta->SetXTitle("#eta");
731     TH1D *h_el_B_gsf_phi=new TH1D("el_B_gsf_phi","el_B_gsf_phi",20,0.,Pi);
732     h_el_B_gsf_phi->SetXTitle("#phi");
733     TH1D *h_el_B_gsf_fbrem=new TH1D("el_B_gsf_fbrem","el_B_gsf_fbrem",30,-0.2,1);
734     h_el_B_gsf_fbrem->SetXTitle("f_{brem}");
735     TH1D *h_el_B_gsf_basicclustersize=new TH1D("el_B_gsf_basicclustersize","el_B_gsf_basicclustersize",10,0,10);
736     h_el_B_gsf_basicclustersize->SetXTitle("N");
737     TH1D *h_el_B_gsf_chi2=new TH1D("el_B_gsf_chi2","el_B_gsf_chi2",30,0,5);
738     h_el_B_gsf_chi2->SetXTitle("#chi^{2}");
739     TH1D *h_el_B_gsf_charge=new TH1D("el_B_gsf_charge","el_B_gsf_charge",3,-1,2);
740     h_el_B_gsf_charge->SetXTitle("charge");
741     TH1D *h_el_B_gsf_pfmet=new TH1D("el_B_gsf_pfmet","el_B_gsf_pfmet", 50, 0., 50);
742     TH1D *h_el_B_gsf_HoverE=new TH1D("el_B_gsf_HoverE","el_B_gsf_HoverE", 50, 0, 3);
743     // gsf variables for endcaps
744     TH1D *h_el_E_gsf_deltaPhiSuperCluster=new TH1D("el_E_gsf_deltaPhiSuperCluster","el_E_gsf_deltaPhiSuperCluster", 30, 0, 1);
745     h_el_E_gsf_deltaPhiSuperCluster->SetXTitle("#Delta #phi");
746     TH1D *h_el_E_gsf_deltaEtaSuperCluster=new TH1D("el_E_gsf_deltaEtaSuperCluster","el_E_gsf_deltaEtaSuperCluster", 30, 0, 1);
747     h_el_E_gsf_deltaEtaSuperCluster->SetXTitle("#Delta #eta");
748     TH1D *h_el_E_gsf_deltaPhiSuperCluster2=new TH1D("el_E_gsf_deltaPhiSuperCluster2","el_E_gsf_deltaPhiSuperCluster2", 30, 0, 0.1);
749     h_el_E_gsf_deltaPhiSuperCluster2->SetXTitle("#Delta #phi");
750     TH1D *h_el_E_gsf_deltaEtaSuperCluster2=new TH1D("el_E_gsf_deltaEtaSuperCluster2","el_E_gsf_deltaEtaSuperCluster2", 30, 0, 0.05);
751     h_el_E_gsf_deltaEtaSuperCluster2->SetXTitle("#Delta #eta");
752     TH1D *h_el_E_gsf_caloenergy=new TH1D("el_E_gsf_caloenergy","el_E_gsf_caloenergy", 30,0.,50);
753     h_el_E_gsf_caloenergy->SetXTitle("E [GeV]");
754     TH1D *h_el_E_gsf_trkmomatvtx=new TH1D("el_E_gsf_trkmomatvtx","el_E_gsf_trkmomatvtx", 30,0.,50);
755     h_el_E_gsf_trkmomatvtx->SetXTitle("p [GeV]");
756     TH1D *h_el_E_gsf_oneOverEminusOneOverP=new TH1D("el_E_gsf_oneOverEminusOneOverP","el_E_gsf_oneOverEminusOneOverP",30,0.,3);
757     h_el_E_gsf_oneOverEminusOneOverP->SetXTitle("|1 / E - 1 / p|");
758     TH1D *h_el_E_gsf_oneOverEminusOneOverP2=new TH1D("el_E_gsf_oneOverEminusOneOverP2","el_E_gsf_oneOverEminusOneOverP2",30,0.,0.1);
759     h_el_E_gsf_oneOverEminusOneOverP2->SetXTitle("|1 / E - 1 / p|");
760     TH1D *h_el_E_gsf_sumPtOverE=new TH1D("el_E_gsf_sumPtOverE","el_E_gsf_sumPtOverE",30,0.,5);
761     h_el_E_gsf_sumPtOverE->SetXTitle("#Sigma p_{T} / E");
762     TH1D *h_el_E_gsf_sigmaIetaIeta=new TH1D("el_E_gsf_sigmaIetaIeta","el_E_gsf_sigmaIetaIeta",30,0.,0.1);
763     h_el_E_gsf_sigmaIetaIeta->SetXTitle("#sigma_{#eta #eta}");
764     TH1D *h_el_E_gsf_pt=new TH1D("el_E_gsf_pt","el_E_gsf_pt",50,0.,50);
765     h_el_E_gsf_pt->SetXTitle("p_{T} [GeV]");
766     TH1D *h_el_E_gsf_eta=new TH1D("el_E_gsf_eta","el_E_gsf_eta",20,-3,3);
767     h_el_E_gsf_eta->SetXTitle("#eta");
768     TH1D *h_el_E_gsf_phi=new TH1D("el_E_gsf_phi","el_E_gsf_phi",20,0.,Pi);
769     h_el_E_gsf_phi->SetXTitle("#phi");
770     TH1D *h_el_E_gsf_fbrem=new TH1D("el_E_gsf_fbrem","el_E_gsf_fbrem",30,-0.2,1);
771     h_el_E_gsf_fbrem->SetXTitle("f_{brem}");
772     TH1D *h_el_E_gsf_basicclustersize=new TH1D("el_E_gsf_basicclustersize","el_E_gsf_basicclustersize",10,0,10);
773     h_el_E_gsf_basicclustersize->SetXTitle("N");
774     TH1D *h_el_E_gsf_chi2=new TH1D("el_E_gsf_chi2","el_E_gsf_chi2",30,0,5);
775     h_el_E_gsf_chi2->SetXTitle("#chi^{2}");
776     TH1D *h_el_E_gsf_charge=new TH1D("el_E_gsf_charge","el_E_gsf_charge",3,-1,2);
777     h_el_E_gsf_charge->SetXTitle("charge");
778     TH1D *h_el_E_gsf_pfmet=new TH1D("el_E_gsf_pfmet","el_E_gsf_pfmet", 50, 0., 50);
779     TH1D *h_el_E_gsf_HoverE=new TH1D("el_E_gsf_HoverE","el_E_gsf_HoverE", 50, 0, 3);
780     // --------------------------------------------------------------------------------------------------------------------
781     // tight electrons in the barrel
782     TH1D *h_el_B_tight_deltaPhiSuperCluster=new TH1D("el_B_tight_deltaPhiSuperCluster","el_B_tight_deltaPhiSuperCluster", 30, 0, 1);
783     h_el_B_tight_deltaPhiSuperCluster->SetXTitle("#Delta #phi");
784     TH1D *h_el_B_tight_deltaEtaSuperCluster=new TH1D("el_B_tight_deltaEtaSuperCluster","el_B_tight_deltaEtaSuperCluster", 30, 0, 1);
785     h_el_B_tight_deltaEtaSuperCluster->SetXTitle("#Delta #eta");
786     TH1D *h_el_B_tight_deltaPhiSuperCluster2=new TH1D("el_B_tight_deltaPhiSuperCluster2","el_B_tight_deltaPhiSuperCluster2", 30, 0, 0.1);
787     h_el_B_tight_deltaPhiSuperCluster2->SetXTitle("#Delta #phi");
788     TH1D *h_el_B_tight_deltaEtaSuperCluster2=new TH1D("el_B_tight_deltaEtaSuperCluster2","el_B_tight_deltaEtaSuperCluster2", 30, 0, 0.05);
789     h_el_B_tight_deltaEtaSuperCluster2->SetXTitle("#Delta #eta");
790     TH1D *h_el_B_tight_caloenergy=new TH1D("el_B_tight_caloenergy","el_B_tight_caloenergy", 30,0.,50);
791     h_el_B_tight_caloenergy->SetXTitle("E [GeV]");
792     TH1D *h_el_B_tight_trkmomatvtx=new TH1D("el_B_tight_trkmomatvtx","el_B_tight_trkmomatvtx", 30,0.,50);
793     h_el_B_tight_trkmomatvtx->SetXTitle("p [GeV]");
794     TH1D *h_el_B_tight_oneOverEminusOneOverP=new TH1D("el_B_tight_oneOverEminusOneOverP","el_B_tight_oneOverEminusOneOverP",30,0.,3);
795     h_el_B_tight_oneOverEminusOneOverP->SetXTitle("|1 / E - 1 / p|");
796     TH1D *h_el_B_tight_oneOverEminusOneOverP2=new TH1D("el_B_tight_oneOverEminusOneOverP2","el_B_tight_oneOverEminusOneOverP2",30,0.,0.1);
797     h_el_B_tight_oneOverEminusOneOverP2->SetXTitle("|1 / E - 1 / p|");
798     TH1D *h_el_B_tight_sumPtOverE=new TH1D("el_B_tight_sumPtOverE","el_B_tight_sumPtOverE",30,0.,5);
799     h_el_B_tight_sumPtOverE->SetXTitle("#Sigma p_{T} / E");
800     TH1D *h_el_B_tight_sigmaIetaIeta=new TH1D("el_B_tight_sigmaIetaIeta","el_B_tight_sigmaIetaIeta",30,0.,0.1);
801     h_el_B_tight_sigmaIetaIeta->SetXTitle("#sigma_{#eta #eta}");
802     TH1D *h_el_B_tight_pt=new TH1D("el_B_tight_pt","el_B_tight_pt",50,0.,50);
803     h_el_B_tight_pt->SetXTitle("p_{T} [GeV]");
804     TH1D *h_el_B_tight_eta=new TH1D("el_B_tight_eta","el_B_tight_eta",20,-3,3);
805     h_el_B_tight_eta->SetXTitle("#eta");
806     TH1D *h_el_B_tight_phi=new TH1D("el_B_tight_phi","el_B_tight_phi",20,0.,Pi);
807     h_el_B_tight_phi->SetXTitle("#phi");
808     TH1D *h_el_B_tight_fbrem=new TH1D("el_B_tight_fbrem","el_B_tight_fbrem",30,-0.2,1);
809     h_el_B_tight_fbrem->SetXTitle("f_{brem}");
810     TH1D *h_el_B_tight_basicclustersize=new TH1D("el_B_tight_basicclustersize","el_B_tight_basicclustersize",10,0,10);
811     h_el_B_tight_basicclustersize->SetXTitle("N");
812     TH1D *h_el_B_tight_chi2=new TH1D("el_B_tight_chi2","el_B_tight_chi2",30,0,5);
813     h_el_B_tight_chi2->SetXTitle("#chi^{2}");
814     TH1D *h_el_B_tight_charge=new TH1D("el_B_tight_charge","el_B_tight_charge",3,-1,2);
815     h_el_B_tight_charge->SetXTitle("charge");
816     TH1D *h_el_B_tight_pfmet=new TH1D("el_B_tight_pfmet","el_B_tight_pfmet", 50, 0., 50);
817     TH1D *h_el_B_tight_HoverE=new TH1D("el_B_tight_HoverE","el_B_tight_HoverE", 50, 0, 3);
818     // tight electrons in the endcaps
819     TH1D *h_el_E_tight_deltaPhiSuperCluster=new TH1D("el_E_tight_deltaPhiSuperCluster","el_E_tight_deltaPhiSuperCluster", 30, 0, 1);
820     h_el_E_tight_deltaPhiSuperCluster->SetXTitle("#Delta #phi");
821     TH1D *h_el_E_tight_deltaEtaSuperCluster=new TH1D("el_E_tight_deltaEtaSuperCluster","el_E_tight_deltaEtaSuperCluster", 30, 0, 1);
822     h_el_E_tight_deltaEtaSuperCluster->SetXTitle("#Delta #eta");
823     TH1D *h_el_E_tight_deltaPhiSuperCluster2=new TH1D("el_E_tight_deltaPhiSuperCluster2","el_E_tight_deltaPhiSuperCluster2", 30, 0, 0.1);
824     h_el_E_tight_deltaPhiSuperCluster2->SetXTitle("#Delta #phi");
825     TH1D *h_el_E_tight_deltaEtaSuperCluster2=new TH1D("el_E_tight_deltaEtaSuperCluster2","el_E_tight_deltaEtaSuperCluster2", 30, 0, 0.05);
826     h_el_E_tight_deltaEtaSuperCluster2->SetXTitle("#Delta #eta");
827     TH1D *h_el_E_tight_caloenergy=new TH1D("el_E_tight_caloenergy","el_E_tight_caloenergy", 30,0.,50);
828     h_el_E_tight_caloenergy->SetXTitle("E [GeV]");
829     TH1D *h_el_E_tight_trkmomatvtx=new TH1D("el_E_tight_trkmomatvtx","el_E_tight_trkmomatvtx", 30,0.,50);
830     h_el_E_tight_trkmomatvtx->SetXTitle("p [GeV]");
831     TH1D *h_el_E_tight_oneOverEminusOneOverP=new TH1D("el_E_tight_oneOverEminusOneOverP","el_E_tight_oneOverEminusOneOverP",30,0.,3);
832     h_el_E_tight_oneOverEminusOneOverP->SetXTitle("|1 / E - 1 / p|");
833     TH1D *h_el_E_tight_oneOverEminusOneOverP2=new TH1D("el_E_tight_oneOverEminusOneOverP2","el_E_tight_oneOverEminusOneOverP2",30,0.,0.1);
834     h_el_E_tight_oneOverEminusOneOverP2->SetXTitle("|1 / E - 1 / p|");
835     TH1D *h_el_E_tight_sumPtOverE=new TH1D("el_E_tight_sumPtOverE","el_E_tight_sumPtOverE",30,0.,5);
836     h_el_E_tight_sumPtOverE->SetXTitle("#Sigma p_{T} / E");
837     TH1D *h_el_E_tight_sigmaIetaIeta=new TH1D("el_E_tight_sigmaIetaIeta","el_E_tight_sigmaIetaIeta",30,0.,0.1);
838     h_el_E_tight_sigmaIetaIeta->SetXTitle("#sigma_{#eta #eta}");
839     TH1D *h_el_E_tight_pt=new TH1D("el_E_tight_pt","el_E_tight_pt",50,0.,50);
840     h_el_E_tight_pt->SetXTitle("p_{T} [GeV]");
841     TH1D *h_el_E_tight_eta=new TH1D("el_E_tight_eta","el_E_tight_eta",20,-3,3);
842     h_el_E_tight_eta->SetXTitle("#eta");
843     TH1D *h_el_E_tight_phi=new TH1D("el_E_tight_phi","el_E_tight_phi",20,0.,Pi);
844     h_el_E_tight_phi->SetXTitle("#phi");
845     TH1D *h_el_E_tight_fbrem=new TH1D("el_E_tight_fbrem","el_E_tight_fbrem",30,-0.2,1);
846     h_el_E_tight_fbrem->SetXTitle("f_{brem}");
847     TH1D *h_el_E_tight_basicclustersize=new TH1D("el_E_tight_basicclustersize","el_E_tight_basicclustersize",10,0,10);
848     h_el_E_tight_basicclustersize->SetXTitle("N");
849     TH1D *h_el_E_tight_chi2=new TH1D("el_E_tight_chi2","el_E_tight_chi2",30,0,5);
850     h_el_E_tight_chi2->SetXTitle("#chi^{2}");
851     TH1D *h_el_E_tight_charge=new TH1D("el_E_tight_charge","el_E_tight_charge",3,-1,2);
852     h_el_E_tight_charge->SetXTitle("charge");
853     TH1D *h_el_E_tight_pfmet=new TH1D("el_E_tight_pfmet","el_E_tight_pfmet", 50, 0., 50);
854     TH1D *h_el_E_tight_HoverE=new TH1D("el_E_tight_HoverE","el_E_tight_HoverE", 50, 0, 3);
855     // --------------------------------------------------------------------------------------------------------------------
856     // eth electrons in the barrel
857     TH1D *h_el_B_eth_deltaPhiSuperCluster=new TH1D("el_B_eth_deltaPhiSuperCluster","el_B_eth_deltaPhiSuperCluster", 30, 0, 1);
858     h_el_B_eth_deltaPhiSuperCluster->SetXTitle("#Delta #phi");
859     TH1D *h_el_B_eth_deltaEtaSuperCluster=new TH1D("el_B_eth_deltaEtaSuperCluster","el_B_eth_deltaEtaSuperCluster", 30, 0, 1);
860     h_el_B_eth_deltaEtaSuperCluster->SetXTitle("#Delta #eta");
861     TH1D *h_el_B_eth_deltaPhiSuperCluster2=new TH1D("el_B_eth_deltaPhiSuperCluster2","el_B_eth_deltaPhiSuperCluster2", 30, 0, 0.1);
862     h_el_B_eth_deltaPhiSuperCluster2->SetXTitle("#Delta #phi");
863     TH1D *h_el_B_eth_deltaEtaSuperCluster2=new TH1D("el_B_eth_deltaEtaSuperCluster2","el_B_eth_deltaEtaSuperCluster2", 30, 0, 0.05);
864     h_el_B_eth_deltaEtaSuperCluster2->SetXTitle("#Delta #eta");
865     TH1D *h_el_B_eth_caloenergy=new TH1D("el_B_eth_caloenergy","el_B_eth_caloenergy", 30,0.,50);
866     h_el_B_eth_caloenergy->SetXTitle("E [GeV]");
867     TH1D *h_el_B_eth_trkmomatvtx=new TH1D("el_B_eth_trkmomatvtx","el_B_eth_trkmomatvtx", 30,0.,50);
868     h_el_B_eth_trkmomatvtx->SetXTitle("p [GeV]");
869     TH1D *h_el_B_eth_oneOverEminusOneOverP=new TH1D("el_B_eth_oneOverEminusOneOverP","el_B_eth_oneOverEminusOneOverP",30,0.,3);
870     h_el_B_eth_oneOverEminusOneOverP->SetXTitle("|1 / E - 1 / p|");
871     TH1D *h_el_B_eth_oneOverEminusOneOverP2=new TH1D("el_B_eth_oneOverEminusOneOverP2","el_B_eth_oneOverEminusOneOverP2",30,0.,0.1);
872     h_el_B_eth_oneOverEminusOneOverP2->SetXTitle("|1 / E - 1 / p|");
873     TH1D *h_el_B_eth_sumPtOverE=new TH1D("el_B_eth_sumPtOverE","el_B_eth_sumPtOverE",30,0.,5);
874     h_el_B_eth_sumPtOverE->SetXTitle("#Sigma p_{T} / E");
875     TH1D *h_el_B_eth_sigmaIetaIeta=new TH1D("el_B_eth_sigmaIetaIeta","el_B_eth_sigmaIetaIeta",30,0.,0.1);
876     h_el_B_eth_sigmaIetaIeta->SetXTitle("#sigma_{#eta #eta}");
877     TH1D *h_el_B_eth_pt=new TH1D("el_B_eth_pt","el_B_eth_pt",50,0.,50);
878     h_el_B_eth_pt->SetXTitle("p_{T} [GeV]");
879     TH1D *h_el_B_eth_eta=new TH1D("el_B_eth_eta","el_B_eth_eta",20,-3,3);
880     h_el_B_eth_eta->SetXTitle("#eta");
881     TH1D *h_el_B_eth_phi=new TH1D("el_B_eth_phi","el_B_eth_phi",20,0.,Pi);
882     h_el_B_eth_phi->SetXTitle("#phi");
883     TH1D *h_el_B_eth_fbrem=new TH1D("el_B_eth_fbrem","el_B_eth_fbrem",30,-0.2,1);
884     h_el_B_eth_fbrem->SetXTitle("f_{brem}");
885     TH1D *h_el_B_eth_basicclustersize=new TH1D("el_B_eth_basicclustersize","el_B_eth_basicclustersize",10,0,10);
886     h_el_B_eth_basicclustersize->SetXTitle("N");
887     TH1D *h_el_B_eth_chi2=new TH1D("el_B_eth_chi2","el_B_eth_chi2",30,0,5);
888     h_el_B_eth_chi2->SetXTitle("#chi^{2}");
889     TH1D *h_el_B_eth_charge=new TH1D("el_B_eth_charge","el_B_eth_charge",3,-1,2);
890     h_el_B_eth_charge->SetXTitle("charge");
891     TH1D *h_el_B_eth_pfmet=new TH1D("el_B_eth_pfmet","el_B_eth_pfmet", 50, 0., 50);
892     TH1D *h_el_B_eth_HoverE=new TH1D("el_B_eth_HoverE","el_B_eth_HoverE", 50, 0, 3);
893     // eth electrons in the endcaps
894     TH1D *h_el_E_eth_deltaPhiSuperCluster=new TH1D("el_E_eth_deltaPhiSuperCluster","el_E_eth_deltaPhiSuperCluster", 30, 0, 1);
895     h_el_E_eth_deltaPhiSuperCluster->SetXTitle("#Delta #phi");
896     TH1D *h_el_E_eth_deltaEtaSuperCluster=new TH1D("el_E_eth_deltaEtaSuperCluster","el_E_eth_deltaEtaSuperCluster", 30, 0, 1);
897     h_el_E_eth_deltaEtaSuperCluster->SetXTitle("#Delta #eta");
898     TH1D *h_el_E_eth_deltaPhiSuperCluster2=new TH1D("el_E_eth_deltaPhiSuperCluster2","el_E_eth_deltaPhiSuperCluster2", 30, 0, 0.1);
899     h_el_E_eth_deltaPhiSuperCluster2->SetXTitle("#Delta #phi");
900     TH1D *h_el_E_eth_deltaEtaSuperCluster2=new TH1D("el_E_eth_deltaEtaSuperCluster2","el_E_eth_deltaEtaSuperCluster2", 30, 0, 0.05);
901     h_el_E_eth_deltaEtaSuperCluster2->SetXTitle("#Delta #eta");
902     TH1D *h_el_E_eth_caloenergy=new TH1D("el_E_eth_caloenergy","el_E_eth_caloenergy", 30,0.,50);
903     h_el_E_eth_caloenergy->SetXTitle("E [GeV]");
904     TH1D *h_el_E_eth_trkmomatvtx=new TH1D("el_E_eth_trkmomatvtx","el_E_eth_trkmomatvtx", 30,0.,50);
905     h_el_E_eth_trkmomatvtx->SetXTitle("p [GeV]");
906     TH1D *h_el_E_eth_oneOverEminusOneOverP=new TH1D("el_E_eth_oneOverEminusOneOverP","el_E_eth_oneOverEminusOneOverP",30,0.,3);
907     h_el_E_eth_oneOverEminusOneOverP->SetXTitle("|1 / E - 1 / p|");
908     TH1D *h_el_E_eth_oneOverEminusOneOverP2=new TH1D("el_E_eth_oneOverEminusOneOverP2","el_E_eth_oneOverEminusOneOverP2",30,0.,0.1);
909     h_el_E_eth_oneOverEminusOneOverP2->SetXTitle("|1 / E - 1 / p|");
910     TH1D *h_el_E_eth_sumPtOverE=new TH1D("el_E_eth_sumPtOverE","el_E_eth_sumPtOverE",30,0.,5);
911     h_el_E_eth_sumPtOverE->SetXTitle("#Sigma p_{T} / E");
912     TH1D *h_el_E_eth_sigmaIetaIeta=new TH1D("el_E_eth_sigmaIetaIeta","el_E_eth_sigmaIetaIeta",30,0.,0.1);
913     h_el_E_eth_sigmaIetaIeta->SetXTitle("#sigma_{#eta #eta}");
914     TH1D *h_el_E_eth_pt=new TH1D("el_E_eth_pt","el_E_eth_pt",50,0.,50);
915     h_el_E_eth_pt->SetXTitle("p_{T} [GeV]");
916     TH1D *h_el_E_eth_eta=new TH1D("el_E_eth_eta","el_E_eth_eta",20,-3,3);
917     h_el_E_eth_eta->SetXTitle("#eta");
918     TH1D *h_el_E_eth_phi=new TH1D("el_E_eth_phi","el_E_eth_phi",20,0.,Pi);
919     h_el_E_eth_phi->SetXTitle("#phi");
920     TH1D *h_el_E_eth_fbrem=new TH1D("el_E_eth_fbrem","el_E_eth_fbrem",30,-0.2,1);
921     h_el_E_eth_fbrem->SetXTitle("f_{brem}");
922     TH1D *h_el_E_eth_basicclustersize=new TH1D("el_E_eth_basicclustersize","el_E_eth_basicclustersize",10,0,10);
923     h_el_E_eth_basicclustersize->SetXTitle("N");
924     TH1D *h_el_E_eth_chi2=new TH1D("el_E_eth_chi2","el_E_eth_chi2",30,0,5);
925     h_el_E_eth_chi2->SetXTitle("#chi^{2}");
926     TH1D *h_el_E_eth_charge=new TH1D("el_E_eth_charge","el_E_eth_charge",3,-1,2);
927     h_el_E_eth_charge->SetXTitle("charge");
928     TH1D *h_el_E_eth_pfmet=new TH1D("el_E_eth_pfmet","el_E_eth_pfmet", 50, 0., 50);
929     TH1D *h_el_E_eth_HoverE=new TH1D("el_E_eth_HoverE","el_E_eth_HoverE", 50, 0, 3);
930     // --------------------------------------------------------------------------------------------------------------------
931    
932     TH1D *h_jetPt = new TH1D("h_jetPt", "jet_Pt",100,0,100);
933    
934     /////////initialize variables
935    
936     Long64_t nentries = fChain->GetEntriesFast();
937     std::cout << "analysisClass::Loop(): nentries = " << nentries << std::endl;
938    
939     ////// The following ~7 lines have been taken from rootNtupleClass->Loop() /////
940     ////// If the root version is updated and rootNtupleClass regenerated, /////
941     ////// these lines may need to be updated. /////
942     Long64_t nb = 0;
943    
944     for (Long64_t jentry=0; jentry<nentries;jentry++)
945     {
946     Long64_t ientry = fChain->LoadTree(jentry);
947     if (ientry < 0) break;
948     nb=fChain->GetEntry(jentry);
949    
950     if(jentry < 10 || jentry%1000 == 0) std::cout << "analysisClass::Loop(): jentry = " << jentry << std::endl;
951    
952    
953     if(sampleSize!=-1 && sampleSize==jentry) {
954     goto END;
955     }
956     totalNumberOfEvents++;
957     h_numberOfEvents->Fill(1);
958    
959     ////////////////////////////////////////////////////////////////////
960     ////////////////////// User's code starts here ///////////////////////
961     ////////////////////////////////////////////////////////////////////
962    
963     // check the methods defined in baseClass
964    
965    
966     vector<TLorentzVector> electronsTight;
967     vector<TLorentzVector> electronsETH;
968     vector<TLorentzVector> electronsTightIsolated;
969     vector<TLorentzVector> electronsETHIsolated;
970     vector<TLorentzVector> jets;
971     electronsTight.clear();
972     electronsETH.clear();
973     jets.clear();
974    
975    
976     int BSC_techbit = 0;
977     int BeamHalo = 0;
978    
979     // --------------------------------------------------------------------------------
980     // Event Selection
981     // --------------------------------------------------------------------------------
982    
983     // Trigger Bit Selection
984     bool passedTrigger=false;
985     if(isdata==true && triggerBitSelection(HLTResults, L1PhysResults, L1TechResults)==true) passedTrigger=true;
986     // NB: no trigger for MC!!!
987     else if(isdata==false) passedTrigger=true;
988    
989     // Primary Vertex Selection
990     // bool goodPV=false;
991     bool goodPV=true;
992     // if(goodPrimaryVertexSelection(PrimVtxNTracks, PrimVtxz)==true) goodPV=true;
993    
994     // No Beam Scraping
995     // bool noBeamScraping=false;
996     // if(noBeamScrapingSelection(NTracks, TrkGood, )==true) noBeamScraping=true;
997    
998     // for(int i=0;i<NTracks;i++) {
999     // cout<<"*"<<TrkGood[i]<<endl;
1000     // }
1001    
1002    
1003     // final event selection
1004     bool selectedEvent=false;
1005     if(passedTrigger==true && goodPV==true) selectedEvent=true;
1006    
1007     // --------------------------------------------------------------------------------
1008    
1009    
1010     if(selectedEvent==true) {
1011    
1012    
1013     // --------------------------------------------------------------------------------
1014     // get the MET
1015     // --------------------------------------------------------------------------------
1016     double met;
1017     double metPhi;
1018     double delPhiMet;
1019     met=PFMET;
1020     metPhi=PFMETphi;
1021    
1022    
1023    
1024     // --------------------------------------------------------------------------------
1025     // get the number of jets
1026     // --------------------------------------------------------------------------------
1027     int njets=0;
1028    
1029    
1030     vector<TLorentzVector> jets;
1031     for(int j=0;j<NJets;j++) {
1032     TLorentzVector vec;
1033     vec.SetPxPyPzE(JPx[j],JPy[j],JPz[j],JE[j]);
1034     if(JPx[j]>jetPtMin) {
1035     jets.push_back(vec);
1036     }
1037     }
1038     vector<TLorentzVector> eles;
1039     for(int e=0;e<NEles;e++) {
1040     TLorentzVector vec;
1041     vec.SetPxPyPzE(ElPx[e],ElPy[e],ElPz[e],ElE[e]);
1042     myEvent ele;
1043     ele.fourvector.push_back(vec);
1044     ele.momentum.push_back(ElPt[e]);
1045     ele.missinget=met;
1046     ele.charge.push_back(ElCharge[e]);
1047     double dEtaCorrection=0;
1048     double dPhiCorrection=0;
1049     if(isdata==true && applyDeltaCorrection==true) {
1050     dEtaCorrection=detaCorrections(ElEta[e], ElPhi[e]);
1051     dPhiCorrection=dphiCorrections(ElEta[e], ElPhi[e]);
1052     }
1053     ele.deltaPhi.push_back(ElDeltaPhiSuperClusterAtVtx[e] - dPhiCorrection);
1054     ele.deltaEta.push_back(ElDeltaEtaSuperClusterAtVtx[e] - dEtaCorrection);
1055     ele.oneOverEminusOverP.push_back(fabs(1/ElCaloEnergy[e]-1/ElTrkMomAtVtx[e]));
1056     ele.transverseMass.push_back(transverseMass(ElPt[e], met, deltaPhi(ElPhi[e],metPhi)));
1057     ele.ethIso.push_back(ElDR03TkSumPt[e]/ElCaloEnergy[e]);
1058     if(workingPoint>0) {
1059     ele.trkIso.push_back(ElDR03TkSumPt[e]/ElPt[e]);
1060     ele.ecalIso.push_back(ElDR03EcalRecHitSumEt[e]/ElPt[e]);
1061     ele.hcalIso.push_back(ElDR03HcalTowerSumEt[e]/ElPt[e]);
1062     }
1063     if(workingPoint<0) {
1064     ele.trkIso.push_back(ElDR03TkSumPt[e]);
1065     ele.ecalIso.push_back(ElDR04EcalRecHitSumEt[e]);
1066     ele.hcalIso.push_back(ElDR04HcalTowerSumEt[e]);
1067     }
1068     ele.HoverE.push_back(ElHcalOverEcal[e]);
1069     ele.sigmaIetaIeta.push_back(ElSigmaIetaIeta[e]);
1070     if(noInnerHitInfo==false) {
1071     ele.numberOfMissingInnerHits.push_back(ElNumberOfMissingInnerHits[e]);
1072     }
1073     else if(noInnerHitInfo==true) {
1074     ele.numberOfMissingInnerHits.push_back(0);
1075     }
1076     // check if really only one electron is filled
1077     if(ele.fourvector.size()>1) {
1078     cout<<"ele size to large!!!: "<<ele.fourvector.size()<<endl;
1079     break;
1080     }
1081    
1082     if(WorkingPointID(ele, WorkingPointCuts)==true && ele.momentum[0]>20) {
1083     eles.push_back(vec);
1084     //debug++;
1085     }
1086     }
1087     if(eles.size()>0) {cout<<"????????????"<<eles.size()<<endl; }
1088    
1089     int matched=0;
1090     double dR=9999.;
1091     for(int nj=0;nj<jets.size();nj++) {
1092     for(int ne=0;ne<eles.size();ne++) {
1093    
1094     double deltaR=fabs(jets[nj].DeltaR(eles[ne]));
1095     if(deltaR<dR) dR=deltaR;
1096     }
1097     if(dR>deltaRMax) njets++;
1098     }
1099     // cout<<"*******"<<endl;
1100     // cout<<"raw: "<<jets.size()<<endl;
1101     // cout<<"cleaned: "<<njets<<endl;
1102     // cout<<jets.size()<<njets<<endl;
1103    
1104     // if(njets>0 || met<25) continue;
1105    
1106     // --------------------------------------------------------------------------------
1107    
1108     // --------------------------------------------------------------------------------
1109     // Let's have a look at the electrons
1110     // --------------------------------------------------------------------------------
1111    
1112    
1113     // define the different electrons
1114     myEvent tightElectrons;
1115     myEvent ethElectrons;
1116    
1117    
1118     double etaMaxBarrel=1.44;
1119     double etaMaxEndcap=2.5;
1120    
1121     double deltaPhiCut=0.02;
1122     double deltaEtaCut=0.004;
1123     double oneOverEminusOneOverPCut=0.005;
1124     bool ethIDpassed=false;
1125    
1126     // loop over all electrons in one event
1127     for(int i=0; i<NEles; i++) {
1128    
1129    
1130     // apply corrections for delta eta and delta phi
1131     double dEtaCorrection=0;
1132     double dPhiCorrection=0;
1133     if(isdata==true && applyDeltaCorrection==true) {
1134     dEtaCorrection=detaCorrections(ElEta[i], ElPhi[i]);
1135     dPhiCorrection=dphiCorrections(ElEta[i], ElPhi[i]);
1136     }
1137    
1138     cout<<"*************************"<<endl;
1139     cout<<"ElEta: "<<ElPhi[i]<<endl;
1140     cout<<"DEta: "<<dPhiCorrection<<endl;
1141     cout<<"CorrEta: "<<ElPhi[i]-dPhiCorrection<<endl;
1142     cout<<"*************************"<<endl;
1143    
1144    
1145    
1146     // fill the myevent
1147     TLorentzVector vec;
1148     vec.SetPxPyPzE(ElPx[i],ElPy[i],ElPz[i],ElE[i]);
1149     myEvent candidate;
1150     candidate.fourvector.push_back(vec);
1151     candidate.momentum.push_back(ElPt[i]);
1152     candidate.missinget=met;
1153     candidate.charge.push_back(ElCharge[i]);
1154     candidate.deltaPhi.push_back(ElDeltaPhiSuperClusterAtVtx[i] - dPhiCorrection);
1155     candidate.deltaEta.push_back(ElDeltaEtaSuperClusterAtVtx[i] - dEtaCorrection);
1156     candidate.oneOverEminusOverP.push_back(fabs(1/ElCaloEnergy[i]-1/ElTrkMomAtVtx[i]));
1157     candidate.transverseMass.push_back(transverseMass(ElPt[i], met, deltaPhi(ElPhi[i],metPhi)));
1158     candidate.ethIso.push_back(ElDR03TkSumPt[i]/ElCaloEnergy[i]);
1159     if(workingPoint>0) {
1160     candidate.trkIso.push_back(ElDR03TkSumPt[i]/ElPt[i]);
1161     candidate.ecalIso.push_back(ElDR03EcalRecHitSumEt[i]/ElPt[i]);
1162     candidate.hcalIso.push_back(ElDR03HcalTowerSumEt[i]/ElPt[i]);
1163     }
1164     if(workingPoint<0) {
1165     candidate.trkIso.push_back(ElDR03TkSumPt[i]);
1166     candidate.ecalIso.push_back(ElDR04EcalRecHitSumEt[i]);
1167     candidate.hcalIso.push_back(ElDR04HcalTowerSumEt[i]);
1168     }
1169     candidate.HoverE.push_back(ElHcalOverEcal[i]);
1170     candidate.sigmaIetaIeta.push_back(ElSigmaIetaIeta[i]);
1171     if(noInnerHitInfo==false) {
1172     candidate.numberOfMissingInnerHits.push_back(ElNumberOfMissingInnerHits[i]);
1173     }
1174     else if(noInnerHitInfo==true) {
1175     candidate.numberOfMissingInnerHits.push_back(0);
1176     }
1177    
1178     // check if really only one electron is filled
1179     if(candidate.fourvector.size()>1) {
1180     cout<<"candidate size to large!!!: "<<candidate.fourvector.size()<<endl;
1181     break;
1182     }
1183    
1184     // fill a set of plots for the gsf electron candidates
1185     int cut=0;
1186     filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut],
1187     hs_El_ElDeltaPhi[cut], hs_El_ElDeltaEta[cut], hs_El_ElOneOverEminusOneOverP[cut], hs_El_ElTransMass[cut],
1188     hs_El_ElEthIso[cut], hs_El_ElTrkIso[cut], hs_El_ElEcalIso[cut], hs_El_ElHcalIso[cut],
1189     hs_El_ElHoverE[cut], hs_El_ElSigmaIetaIeta[cut], hs_El_ElNumberOfMissingInnerHits[cut]
1190     );
1191    
1192     // make the electron preselection
1193     if(applyCut[1]==false || ElHcalOverEcal[i]<Pre_HoverEMin) {
1194     cut=1;
1195     //filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut]);
1196     filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut],
1197     hs_El_ElDeltaPhi[cut], hs_El_ElDeltaEta[cut], hs_El_ElOneOverEminusOneOverP[cut], hs_El_ElTransMass[cut],
1198     hs_El_ElEthIso[cut], hs_El_ElTrkIso[cut], hs_El_ElEcalIso[cut], hs_El_ElHcalIso[cut],
1199     hs_El_ElHoverE[cut], hs_El_ElSigmaIetaIeta[cut], hs_El_ElNumberOfMissingInnerHits[cut]
1200     );
1201     if(applyCut[2]==false || fabs(ElDeltaPhiSuperClusterAtVtx[i] -dPhiCorrection)<Pre_deltaPhiMax) {
1202     cut=2;
1203     //filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut]);
1204     filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut],
1205     hs_El_ElDeltaPhi[cut], hs_El_ElDeltaEta[cut], hs_El_ElOneOverEminusOneOverP[cut], hs_El_ElTransMass[cut],
1206     hs_El_ElEthIso[cut], hs_El_ElTrkIso[cut], hs_El_ElEcalIso[cut], hs_El_ElHcalIso[cut],
1207     hs_El_ElHoverE[cut], hs_El_ElSigmaIetaIeta[cut], hs_El_ElNumberOfMissingInnerHits[cut]
1208     );
1209     if(applyCut[3]==false || fabs(ElDeltaEtaSuperClusterAtVtx[i] - dEtaCorrection)<Pre_deltaEtaMax) {
1210     cut=3;
1211     //filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut]);
1212     filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut],
1213     hs_El_ElDeltaPhi[cut], hs_El_ElDeltaEta[cut], hs_El_ElOneOverEminusOneOverP[cut], hs_El_ElTransMass[cut],
1214     hs_El_ElEthIso[cut], hs_El_ElTrkIso[cut], hs_El_ElEcalIso[cut], hs_El_ElHcalIso[cut],
1215     hs_El_ElHoverE[cut], hs_El_ElSigmaIetaIeta[cut], hs_El_ElNumberOfMissingInnerHits[cut]
1216     );
1217    
1218     if(applyCut[4]==false || ElPt[i]>Pre_pt) {
1219     cut=4;
1220     //filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut]);
1221     filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut],
1222     hs_El_ElDeltaPhi[cut], hs_El_ElDeltaEta[cut], hs_El_ElOneOverEminusOneOverP[cut], hs_El_ElTransMass[cut],
1223     hs_El_ElEthIso[cut], hs_El_ElTrkIso[cut], hs_El_ElEcalIso[cut], hs_El_ElHcalIso[cut],
1224     hs_El_ElHoverE[cut], hs_El_ElSigmaIetaIeta[cut], hs_El_ElNumberOfMissingInnerHits[cut]
1225     );
1226    
1227     // now the preselection is done...
1228    
1229     // ask for triggers HLT_Photon10
1230     // cout<<"Trigger: 53: "<<HLTResults[53]<<"/ 54: "<<HLTResults[54]<<"/ 55: "<<HLTResults[55]<<endl;
1231     if(applyCut[5]==false || HLTResults[71]==1) { // 54
1232     cut=5;
1233     //filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut]);
1234     filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut],
1235     hs_El_ElDeltaPhi[cut], hs_El_ElDeltaEta[cut], hs_El_ElOneOverEminusOneOverP[cut], hs_El_ElTransMass[cut],
1236     hs_El_ElEthIso[cut], hs_El_ElTrkIso[cut], hs_El_ElEcalIso[cut], hs_El_ElHcalIso[cut],
1237     hs_El_ElHoverE[cut], hs_El_ElSigmaIetaIeta[cut], hs_El_ElNumberOfMissingInnerHits[cut]
1238     );
1239    
1240     // now the different IDs
1241    
1242     // cout<<"***"<<ElPhi[i]-candidate.fourvector[0].Phi()<<endl;
1243    
1244    
1245     // first the ETH one for the barrel
1246     double OneoverEminusOneoverP=fabs(1/ElCaloEnergy[i]-1/ElTrkMomAtVtx[i]);
1247     if(fabs(ElEta[i])<etaBarrelMax) {
1248     cut=6;
1249     //filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut]);
1250     filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut],
1251     hs_El_ElDeltaPhi[cut], hs_El_ElDeltaEta[cut], hs_El_ElOneOverEminusOneOverP[cut], hs_El_ElTransMass[cut],
1252     hs_El_ElEthIso[cut], hs_El_ElTrkIso[cut], hs_El_ElEcalIso[cut], hs_El_ElHcalIso[cut],
1253     hs_El_ElHoverE[cut], hs_El_ElSigmaIetaIeta[cut], hs_El_ElNumberOfMissingInnerHits[cut]
1254     );
1255     // only ECAL driven electrons
1256     if(applyCut[7]==false || ElEcalDriven[i]==1) {
1257     cut=7;
1258     //filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut]);
1259     filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut],
1260     hs_El_ElDeltaPhi[cut], hs_El_ElDeltaEta[cut], hs_El_ElOneOverEminusOneOverP[cut], hs_El_ElTransMass[cut],
1261     hs_El_ElEthIso[cut], hs_El_ElTrkIso[cut], hs_El_ElEcalIso[cut], hs_El_ElHcalIso[cut],
1262     hs_El_ElHoverE[cut], hs_El_ElSigmaIetaIeta[cut], hs_El_ElNumberOfMissingInnerHits[cut]
1263     );
1264     // |1/E-1/p|
1265     if(applyCut[8]==false || OneoverEminusOneoverP<ETH_oneOverEminusOneOverP_B) {
1266     cut=8;
1267     //filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut]);
1268     filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut],
1269     hs_El_ElDeltaPhi[cut], hs_El_ElDeltaEta[cut], hs_El_ElOneOverEminusOneOverP[cut], hs_El_ElTransMass[cut],
1270     hs_El_ElEthIso[cut], hs_El_ElTrkIso[cut], hs_El_ElEcalIso[cut], hs_El_ElHcalIso[cut],
1271     hs_El_ElHoverE[cut], hs_El_ElSigmaIetaIeta[cut], hs_El_ElNumberOfMissingInnerHits[cut]
1272     );
1273     // delta eta
1274     if(applyCut[9]==false || fabs(ElDeltaEtaSuperClusterAtVtx[i] - dEtaCorrection)<ETH_deltaEtaMax_B) {
1275     cut=9;
1276     //filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut]);
1277     filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut],
1278     hs_El_ElDeltaPhi[cut], hs_El_ElDeltaEta[cut], hs_El_ElOneOverEminusOneOverP[cut], hs_El_ElTransMass[cut],
1279     hs_El_ElEthIso[cut], hs_El_ElTrkIso[cut], hs_El_ElEcalIso[cut], hs_El_ElHcalIso[cut],
1280     hs_El_ElHoverE[cut], hs_El_ElSigmaIetaIeta[cut], hs_El_ElNumberOfMissingInnerHits[cut]
1281     );
1282     // delta phi
1283     if(applyCut[10]==false || fabs(ElDeltaPhiSuperClusterAtVtx[i] - dPhiCorrection)<ETH_deltaPhiMax_B) {
1284     cut=10;
1285     //filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut]);
1286     filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut],
1287     hs_El_ElDeltaPhi[cut], hs_El_ElDeltaEta[cut], hs_El_ElOneOverEminusOneOverP[cut], hs_El_ElTransMass[cut],
1288     hs_El_ElEthIso[cut], hs_El_ElTrkIso[cut], hs_El_ElEcalIso[cut], hs_El_ElHcalIso[cut],
1289     hs_El_ElHoverE[cut], hs_El_ElSigmaIetaIeta[cut], hs_El_ElNumberOfMissingInnerHits[cut]
1290     );
1291     // isolation
1292     double iso=ElDR04TkSumPt[i]/ElCaloEnergy[i];
1293     if(applyCut[11]==false || iso<ETH_iso_B) {
1294     cut=11;
1295     //filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut]);
1296     filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut],
1297     hs_El_ElDeltaPhi[cut], hs_El_ElDeltaEta[cut], hs_El_ElOneOverEminusOneOverP[cut], hs_El_ElTransMass[cut],
1298     hs_El_ElEthIso[cut], hs_El_ElTrkIso[cut], hs_El_ElEcalIso[cut], hs_El_ElHcalIso[cut],
1299     hs_El_ElHoverE[cut], hs_El_ElSigmaIetaIeta[cut], hs_El_ElNumberOfMissingInnerHits[cut]
1300     );
1301     // remove conversions
1302     if(applyCut[12]==false || ElNumberOfMissingInnerHits[i]<2) {
1303     cut=12;
1304     //filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut]);
1305     filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut],
1306     hs_El_ElDeltaPhi[cut], hs_El_ElDeltaEta[cut], hs_El_ElOneOverEminusOneOverP[cut], hs_El_ElTransMass[cut],
1307     hs_El_ElEthIso[cut], hs_El_ElTrkIso[cut], hs_El_ElEcalIso[cut], hs_El_ElHcalIso[cut],
1308     hs_El_ElHoverE[cut], hs_El_ElSigmaIetaIeta[cut], hs_El_ElNumberOfMissingInnerHits[cut]
1309     );
1310     } // conversions
1311     } // isolation
1312     } //delta phi, barrel
1313     } //delta eta, barrel
1314     } // 1/e-1/p, barrel
1315     } // ECAL driven, barrel
1316     } // ETH barrel
1317    
1318     // now the ETH ID for the endcaps
1319     else if(fabs(ElEta[i])>etaBarrelMax && fabs(ElEta[i])<etaEndcapMax) {
1320     cut=13;
1321     //filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut]);
1322     filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut],
1323     hs_El_ElDeltaPhi[cut], hs_El_ElDeltaEta[cut], hs_El_ElOneOverEminusOneOverP[cut], hs_El_ElTransMass[cut],
1324     hs_El_ElEthIso[cut], hs_El_ElTrkIso[cut], hs_El_ElEcalIso[cut], hs_El_ElHcalIso[cut],
1325     hs_El_ElHoverE[cut], hs_El_ElSigmaIetaIeta[cut], hs_El_ElNumberOfMissingInnerHits[cut]
1326     );
1327     // only ECAL driven electrons
1328     if(applyCut[14]==false || ElEcalDriven[i]==1) {
1329     cut=14;
1330     //filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut]);
1331     filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut],
1332     hs_El_ElDeltaPhi[cut], hs_El_ElDeltaEta[cut], hs_El_ElOneOverEminusOneOverP[cut], hs_El_ElTransMass[cut],
1333     hs_El_ElEthIso[cut], hs_El_ElTrkIso[cut], hs_El_ElEcalIso[cut], hs_El_ElHcalIso[cut],
1334     hs_El_ElHoverE[cut], hs_El_ElSigmaIetaIeta[cut], hs_El_ElNumberOfMissingInnerHits[cut]
1335     );
1336     // |1/E-1/p|
1337     if(applyCut[15]==false || OneoverEminusOneoverP<ETH_oneOverEminusOneOverP_E) {
1338     cut=15;
1339     //filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut]);
1340     filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut],
1341     hs_El_ElDeltaPhi[cut], hs_El_ElDeltaEta[cut], hs_El_ElOneOverEminusOneOverP[cut], hs_El_ElTransMass[cut],
1342     hs_El_ElEthIso[cut], hs_El_ElTrkIso[cut], hs_El_ElEcalIso[cut], hs_El_ElHcalIso[cut],
1343     hs_El_ElHoverE[cut], hs_El_ElSigmaIetaIeta[cut], hs_El_ElNumberOfMissingInnerHits[cut]
1344     );
1345     // delta eta
1346     if(applyCut[16]==false || fabs(ElDeltaEtaSuperClusterAtVtx[i] - dEtaCorrection)<ETH_deltaEtaMax_E) {
1347     cut=16;
1348     //filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut]);
1349     filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut],
1350     hs_El_ElDeltaPhi[cut], hs_El_ElDeltaEta[cut], hs_El_ElOneOverEminusOneOverP[cut], hs_El_ElTransMass[cut],
1351     hs_El_ElEthIso[cut], hs_El_ElTrkIso[cut], hs_El_ElEcalIso[cut], hs_El_ElHcalIso[cut],
1352     hs_El_ElHoverE[cut], hs_El_ElSigmaIetaIeta[cut], hs_El_ElNumberOfMissingInnerHits[cut]
1353     );
1354     // delta phi
1355     if(applyCut[17]==false || fabs(ElDeltaPhiSuperClusterAtVtx[i] - dPhiCorrection)<ETH_deltaPhiMax_E) {
1356     cut=17;
1357     //filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut]);
1358     filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut],
1359     hs_El_ElDeltaPhi[cut], hs_El_ElDeltaEta[cut], hs_El_ElOneOverEminusOneOverP[cut], hs_El_ElTransMass[cut],
1360     hs_El_ElEthIso[cut], hs_El_ElTrkIso[cut], hs_El_ElEcalIso[cut], hs_El_ElHcalIso[cut],
1361     hs_El_ElHoverE[cut], hs_El_ElSigmaIetaIeta[cut], hs_El_ElNumberOfMissingInnerHits[cut]
1362     );
1363     // isolation
1364     double iso=ElDR04TkSumPt[i]/ElCaloEnergy[i];
1365     if(applyCut[18]==false || iso<ETH_iso_E) {
1366     cut=18;
1367     //filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut]);
1368     filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut],
1369     hs_El_ElDeltaPhi[cut], hs_El_ElDeltaEta[cut], hs_El_ElOneOverEminusOneOverP[cut], hs_El_ElTransMass[cut],
1370     hs_El_ElEthIso[cut], hs_El_ElTrkIso[cut], hs_El_ElEcalIso[cut], hs_El_ElHcalIso[cut],
1371     hs_El_ElHoverE[cut], hs_El_ElSigmaIetaIeta[cut], hs_El_ElNumberOfMissingInnerHits[cut]
1372     );
1373     // remove conversions
1374     if(applyCut[19]==false || ElNumberOfMissingInnerHits[i]<2) {
1375     cut=19;
1376     //filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut]);
1377     filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut],
1378     hs_El_ElDeltaPhi[cut], hs_El_ElDeltaEta[cut], hs_El_ElOneOverEminusOneOverP[cut], hs_El_ElTransMass[cut],
1379     hs_El_ElEthIso[cut], hs_El_ElTrkIso[cut], hs_El_ElEcalIso[cut], hs_El_ElHcalIso[cut],
1380     hs_El_ElHoverE[cut], hs_El_ElSigmaIetaIeta[cut], hs_El_ElNumberOfMissingInnerHits[cut]
1381     );
1382     } // conversions
1383     } // isolation
1384     } //delta phi
1385     } //delta eta
1386     } // 1/e-1/p
1387     } // ECAL driven
1388    
1389     } // ETH endcap
1390    
1391     // now let's do the Robust one
1392    
1393     double tkIso;
1394     double ecalIso;
1395     double hcalIso;
1396     if(workingPoint>0) {
1397     tkIso=ElDR03TkSumPt[i]/ElPt[i];
1398     ecalIso=ElDR03EcalRecHitSumEt[i]/ElPt[i];
1399     hcalIso=ElDR03HcalTowerSumEt[i]/ElPt[i];
1400     }
1401     else if(workingPoint<0) {
1402     tkIso=ElDR03TkSumPt[i];
1403     ecalIso=ElDR04EcalRecHitSumEt[i];
1404     hcalIso=ElDR04HcalTowerSumEt[i];
1405     }
1406    
1407     // divide into barrel and endcap
1408     cut=20;
1409     if(fabs(ElEta[i])<etaBarrelMax) {
1410     //filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut]);
1411     filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut],
1412     hs_El_ElDeltaPhi[cut], hs_El_ElDeltaEta[cut], hs_El_ElOneOverEminusOneOverP[cut], hs_El_ElTransMass[cut],
1413     hs_El_ElEthIso[cut], hs_El_ElTrkIso[cut], hs_El_ElEcalIso[cut], hs_El_ElHcalIso[cut],
1414     hs_El_ElHoverE[cut], hs_El_ElSigmaIetaIeta[cut], hs_El_ElNumberOfMissingInnerHits[cut]
1415     );
1416    
1417     if(ElIDRobustTight[i]==1) {
1418     c_robust_tree++;
1419     }
1420    
1421     // H/E
1422     cut=21;
1423     if(applyCut[cut]==false || ElHcalOverEcal[i]<Rob_HoverE_B) {
1424     filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut],
1425     hs_El_ElDeltaPhi[cut], hs_El_ElDeltaEta[cut], hs_El_ElOneOverEminusOneOverP[cut], hs_El_ElTransMass[cut],
1426     hs_El_ElEthIso[cut], hs_El_ElTrkIso[cut], hs_El_ElEcalIso[cut], hs_El_ElHcalIso[cut],
1427     hs_El_ElHoverE[cut], hs_El_ElSigmaIetaIeta[cut], hs_El_ElNumberOfMissingInnerHits[cut]
1428     );
1429     cut=22;
1430     //Sigma Ieta Ieta
1431     if(applyCut[cut]==false || ElSigmaIetaIeta[i]<Rob_SigmaIetaIeta_B) {
1432     filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut],
1433     hs_El_ElDeltaPhi[cut], hs_El_ElDeltaEta[cut], hs_El_ElOneOverEminusOneOverP[cut], hs_El_ElTransMass[cut],
1434     hs_El_ElEthIso[cut], hs_El_ElTrkIso[cut], hs_El_ElEcalIso[cut], hs_El_ElHcalIso[cut],
1435     hs_El_ElHoverE[cut], hs_El_ElSigmaIetaIeta[cut], hs_El_ElNumberOfMissingInnerHits[cut]
1436     );
1437     cut=23;
1438     // deltaPhi
1439     if(applyCut[cut]==false || fabs(ElDeltaPhiSuperClusterAtVtx[i] - dPhiCorrection)<Rob_deltaPhi_B) {
1440     filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut],
1441     hs_El_ElDeltaPhi[cut], hs_El_ElDeltaEta[cut], hs_El_ElOneOverEminusOneOverP[cut], hs_El_ElTransMass[cut],
1442     hs_El_ElEthIso[cut], hs_El_ElTrkIso[cut], hs_El_ElEcalIso[cut], hs_El_ElHcalIso[cut],
1443     hs_El_ElHoverE[cut], hs_El_ElSigmaIetaIeta[cut], hs_El_ElNumberOfMissingInnerHits[cut]
1444     );
1445     cut=24;
1446     // delta eta
1447     if(applyCut[cut]==false || fabs(ElDeltaEtaSuperClusterAtVtx[i] - dEtaCorrection)<Rob_deltaEta_B) {
1448     filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut],
1449     hs_El_ElDeltaPhi[cut], hs_El_ElDeltaEta[cut], hs_El_ElOneOverEminusOneOverP[cut], hs_El_ElTransMass[cut],
1450     hs_El_ElEthIso[cut], hs_El_ElTrkIso[cut], hs_El_ElEcalIso[cut], hs_El_ElHcalIso[cut],
1451     hs_El_ElHoverE[cut], hs_El_ElSigmaIetaIeta[cut], hs_El_ElNumberOfMissingInnerHits[cut]
1452     );
1453     cut=25;
1454     // track iso
1455     if(applyCut[cut]==false || tkIso<Rob_trkIso_B) {
1456     filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut],
1457     hs_El_ElDeltaPhi[cut], hs_El_ElDeltaEta[cut], hs_El_ElOneOverEminusOneOverP[cut], hs_El_ElTransMass[cut],
1458     hs_El_ElEthIso[cut], hs_El_ElTrkIso[cut], hs_El_ElEcalIso[cut], hs_El_ElHcalIso[cut],
1459     hs_El_ElHoverE[cut], hs_El_ElSigmaIetaIeta[cut], hs_El_ElNumberOfMissingInnerHits[cut]
1460     );
1461     cut=26;
1462     // ecal iso
1463     if(applyCut[cut]==false || ecalIso<Rob_ecalIso_B) {
1464     filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut],
1465     hs_El_ElDeltaPhi[cut], hs_El_ElDeltaEta[cut], hs_El_ElOneOverEminusOneOverP[cut], hs_El_ElTransMass[cut],
1466     hs_El_ElEthIso[cut], hs_El_ElTrkIso[cut], hs_El_ElEcalIso[cut], hs_El_ElHcalIso[cut],
1467     hs_El_ElHoverE[cut], hs_El_ElSigmaIetaIeta[cut], hs_El_ElNumberOfMissingInnerHits[cut]
1468     );
1469     cut=27;
1470     // hcal iso
1471     if(applyCut[cut]==false || hcalIso<Rob_hcalIso_B) {
1472     filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut],
1473     hs_El_ElDeltaPhi[cut], hs_El_ElDeltaEta[cut], hs_El_ElOneOverEminusOneOverP[cut], hs_El_ElTransMass[cut],
1474     hs_El_ElEthIso[cut], hs_El_ElTrkIso[cut], hs_El_ElEcalIso[cut], hs_El_ElHcalIso[cut],
1475     hs_El_ElHoverE[cut], hs_El_ElSigmaIetaIeta[cut], hs_El_ElNumberOfMissingInnerHits[cut]
1476     );
1477     cut=28;
1478     // conversion removal
1479     if(applyCut[cut]==true || ElNumberOfMissingInnerHits[i]<2) {
1480     filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut],
1481     hs_El_ElDeltaPhi[cut], hs_El_ElDeltaEta[cut], hs_El_ElOneOverEminusOneOverP[cut], hs_El_ElTransMass[cut],
1482     hs_El_ElEthIso[cut], hs_El_ElTrkIso[cut], hs_El_ElEcalIso[cut], hs_El_ElHcalIso[cut],
1483     hs_El_ElHoverE[cut], hs_El_ElSigmaIetaIeta[cut], hs_El_ElNumberOfMissingInnerHits[cut]
1484     );
1485    
1486     c_robust_B++;
1487    
1488     } // conversions
1489     } //trk iso
1490     } // ecal iso
1491     } //trk iso
1492     } //delta eta
1493     } //delta phi
1494     } // Sigma Ieta Ieta
1495     } // H/E
1496     } // Robust barrel
1497    
1498    
1499     // finally the robust endcap...
1500     else if(fabs(ElEta[i])>etaBarrelMax && fabs(ElEta[i])<etaEndcapMax) {
1501     cut=29;
1502     //filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut]);
1503     filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut],
1504     hs_El_ElDeltaPhi[cut], hs_El_ElDeltaEta[cut], hs_El_ElOneOverEminusOneOverP[cut], hs_El_ElTransMass[cut],
1505     hs_El_ElEthIso[cut], hs_El_ElTrkIso[cut], hs_El_ElEcalIso[cut], hs_El_ElHcalIso[cut],
1506     hs_El_ElHoverE[cut], hs_El_ElSigmaIetaIeta[cut], hs_El_ElNumberOfMissingInnerHits[cut]
1507     );
1508     // H/E
1509     cut=30;
1510     if(applyCut[cut]==false || ElHcalOverEcal[i]<Rob_HoverE_E) {
1511     //filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut]);
1512     filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut],
1513     hs_El_ElDeltaPhi[cut], hs_El_ElDeltaEta[cut], hs_El_ElOneOverEminusOneOverP[cut], hs_El_ElTransMass[cut],
1514     hs_El_ElEthIso[cut], hs_El_ElTrkIso[cut], hs_El_ElEcalIso[cut], hs_El_ElHcalIso[cut],
1515     hs_El_ElHoverE[cut], hs_El_ElSigmaIetaIeta[cut], hs_El_ElNumberOfMissingInnerHits[cut]
1516     );
1517     cut=31;
1518     //Sigma Ieta Ieta
1519     if(applyCut[cut]==false || ElSigmaIetaIeta[i]<Rob_SigmaIetaIeta_E) {
1520     //filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut]);
1521     filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut],
1522     hs_El_ElDeltaPhi[cut], hs_El_ElDeltaEta[cut], hs_El_ElOneOverEminusOneOverP[cut], hs_El_ElTransMass[cut],
1523     hs_El_ElEthIso[cut], hs_El_ElTrkIso[cut], hs_El_ElEcalIso[cut], hs_El_ElHcalIso[cut],
1524     hs_El_ElHoverE[cut], hs_El_ElSigmaIetaIeta[cut], hs_El_ElNumberOfMissingInnerHits[cut]
1525     );
1526     cut=32;
1527     // deltaPhi
1528     if(applyCut[cut]==false || fabs(ElDeltaPhiSuperClusterAtVtx[i] - dPhiCorrection)<Rob_deltaPhi_E) {
1529     //filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut]);
1530     filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut],
1531     hs_El_ElDeltaPhi[cut], hs_El_ElDeltaEta[cut], hs_El_ElOneOverEminusOneOverP[cut], hs_El_ElTransMass[cut],
1532     hs_El_ElEthIso[cut], hs_El_ElTrkIso[cut], hs_El_ElEcalIso[cut], hs_El_ElHcalIso[cut],
1533     hs_El_ElHoverE[cut], hs_El_ElSigmaIetaIeta[cut], hs_El_ElNumberOfMissingInnerHits[cut]
1534     );
1535     cut=33;
1536     // delta eta
1537     if(applyCut[cut]==false || fabs(ElDeltaEtaSuperClusterAtVtx[i] - dEtaCorrection)<Rob_deltaEta_E) {
1538     //filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut]);
1539     filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut],
1540     hs_El_ElDeltaPhi[cut], hs_El_ElDeltaEta[cut], hs_El_ElOneOverEminusOneOverP[cut], hs_El_ElTransMass[cut],
1541     hs_El_ElEthIso[cut], hs_El_ElTrkIso[cut], hs_El_ElEcalIso[cut], hs_El_ElHcalIso[cut],
1542     hs_El_ElHoverE[cut], hs_El_ElSigmaIetaIeta[cut], hs_El_ElNumberOfMissingInnerHits[cut]
1543     );
1544     cut=34;
1545     // track iso
1546     if(applyCut[cut]==false || tkIso<Rob_trkIso_E) {
1547     //filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut]);
1548     filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut],
1549     hs_El_ElDeltaPhi[cut], hs_El_ElDeltaEta[cut], hs_El_ElOneOverEminusOneOverP[cut], hs_El_ElTransMass[cut],
1550     hs_El_ElEthIso[cut], hs_El_ElTrkIso[cut], hs_El_ElEcalIso[cut], hs_El_ElHcalIso[cut],
1551     hs_El_ElHoverE[cut], hs_El_ElSigmaIetaIeta[cut], hs_El_ElNumberOfMissingInnerHits[cut]
1552     );
1553     cut=35;
1554     // ecal iso
1555     if(applyCut[cut]==false || ecalIso<Rob_ecalIso_E) {
1556     //filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut]);
1557     filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut],
1558     hs_El_ElDeltaPhi[cut], hs_El_ElDeltaEta[cut], hs_El_ElOneOverEminusOneOverP[cut], hs_El_ElTransMass[cut],
1559     hs_El_ElEthIso[cut], hs_El_ElTrkIso[cut], hs_El_ElEcalIso[cut], hs_El_ElHcalIso[cut],
1560     hs_El_ElHoverE[cut], hs_El_ElSigmaIetaIeta[cut], hs_El_ElNumberOfMissingInnerHits[cut]
1561     );
1562     cut=36;
1563     // hcal iso
1564     if(applyCut[cut]==false || hcalIso<Rob_hcalIso_E) {
1565     //filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut]);
1566     filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut],
1567     hs_El_ElDeltaPhi[cut], hs_El_ElDeltaEta[cut], hs_El_ElOneOverEminusOneOverP[cut], hs_El_ElTransMass[cut],
1568     hs_El_ElEthIso[cut], hs_El_ElTrkIso[cut], hs_El_ElEcalIso[cut], hs_El_ElHcalIso[cut],
1569     hs_El_ElHoverE[cut], hs_El_ElSigmaIetaIeta[cut], hs_El_ElNumberOfMissingInnerHits[cut]
1570     );
1571     cut=37;
1572     //conversions
1573     if(applyCut[cut]==false || ElNumberOfMissingInnerHits[i]<2) {
1574     //filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut]);
1575     filler(candidate, hs_El_ElPt[cut], hs_El_ElEta[cut], hs_El_ElPhi[cut], hs_El_ElMet[cut], hs_El_ElCharge[cut],
1576     hs_El_ElDeltaPhi[cut], hs_El_ElDeltaEta[cut], hs_El_ElOneOverEminusOneOverP[cut], hs_El_ElTransMass[cut],
1577     hs_El_ElEthIso[cut], hs_El_ElTrkIso[cut], hs_El_ElEcalIso[cut], hs_El_ElHcalIso[cut],
1578     hs_El_ElHoverE[cut], hs_El_ElSigmaIetaIeta[cut], hs_El_ElNumberOfMissingInnerHits[cut]
1579     );
1580    
1581     c_robust_E++;
1582    
1583     } //cpnversions
1584     } //trk iso
1585     } // ecal iso
1586     } //trk iso
1587     } //delta eta
1588     } //delta phi
1589     } // Sigma Ieta Ieta
1590     } // H/E
1591     } // Robust endcap
1592    
1593     // puh, done!!!
1594    
1595    
1596    
1597    
1598    
1599     // if(WorkingPointID(candidate, WorkingPointCuts)==true) {
1600     // debug++;
1601     // }
1602    
1603    
1604    
1605    
1606     // --------------------------------------------------------------------------------------------------------------------
1607     // Fill the N-1 plots
1608     // --------------------------------------------------------------------------------------------------------------------
1609    
1610     // ETH
1611    
1612     // delta phi plot
1613     // barrel deltaPhi
1614    
1615     if(ethNminus1(ElEcalDriven[i], ElDeltaPhiSuperClusterAtVtx[i] - dPhiCorrection, ElDeltaEtaSuperClusterAtVtx[i] - dEtaCorrection, ElCaloEnergy[i], ElTrkMomAtVtx[i], ElEta[i], "deltaPhi", isolation(ElDR04TkSumPt[i], ElCaloEnergy[i])) &&
1616     fabs(ElEta[i])<etaBarrelMax) {
1617     hn1_El_ElDeltaPhi[0]->Fill(fabs(ElDeltaPhiSuperClusterAtVtx[i] - dPhiCorrection));
1618     }
1619     // endcap
1620     if(ethNminus1(ElEcalDriven[i], ElDeltaPhiSuperClusterAtVtx[i] - dPhiCorrection, ElDeltaEtaSuperClusterAtVtx[i] - dEtaCorrection, ElCaloEnergy[i], ElTrkMomAtVtx[i], ElEta[i], "deltaPhi", isolation(ElDR04TkSumPt[i], ElCaloEnergy[i])) &&
1621     fabs(ElEta[i])>etaBarrelMax &&
1622     fabs(ElEta[i])<etaEndcapMax) {
1623     hn1_El_ElDeltaPhi[1]->Fill(fabs(ElDeltaPhiSuperClusterAtVtx[i] - dPhiCorrection));
1624     }
1625     // delta eta
1626     // barrel
1627     if(ethNminus1(ElEcalDriven[i], ElDeltaPhiSuperClusterAtVtx[i] - dPhiCorrection, ElDeltaEtaSuperClusterAtVtx[i] - dEtaCorrection, ElCaloEnergy[i], ElTrkMomAtVtx[i], ElEta[i], "deltaEta", isolation(ElDR04TkSumPt[i], ElCaloEnergy[i])) &&
1628     fabs(ElEta[i])<etaBarrelMax) {
1629     hn1_El_ElDeltaEta[0]->Fill(fabs(ElDeltaEtaSuperClusterAtVtx[i] - dEtaCorrection));
1630     }
1631     // endcap
1632     if(ethNminus1(ElEcalDriven[i], ElDeltaPhiSuperClusterAtVtx[i] - dPhiCorrection, ElDeltaEtaSuperClusterAtVtx[i] - dEtaCorrection, ElCaloEnergy[i], ElTrkMomAtVtx[i], ElEta[i], "deltaEta", isolation(ElDR04TkSumPt[i], ElCaloEnergy[i])) &&
1633     fabs(ElEta[i])>etaBarrelMax &&
1634     fabs(ElEta[i])<etaEndcapMax) {
1635     hn1_El_ElDeltaEta[1]->Fill(fabs(ElDeltaEtaSuperClusterAtVtx[i] - dEtaCorrection));
1636     }
1637     // 1/e-1/p
1638     // barrel
1639     if(ethNminus1(ElEcalDriven[i], ElDeltaPhiSuperClusterAtVtx[i] - dPhiCorrection, ElDeltaEtaSuperClusterAtVtx[i] - dEtaCorrection, ElCaloEnergy[i], ElTrkMomAtVtx[i], ElEta[i], "oneOverEminusOneOverP", isolation(ElDR04TkSumPt[i], ElCaloEnergy[i])) &&
1640     fabs(ElEta[i])<etaBarrelMax) {
1641     hn1_El_ElOneOverEminusOneOverP[0]->Fill(fabs(1/ElCaloEnergy[i] - 1/ElTrkMomAtVtx[i]));
1642     }
1643     // endcap
1644     if(ethNminus1(ElEcalDriven[i], ElDeltaPhiSuperClusterAtVtx[i] - dPhiCorrection, ElDeltaEtaSuperClusterAtVtx[i] - dEtaCorrection, ElCaloEnergy[i], ElTrkMomAtVtx[i], ElEta[i], "oneOverEminusOneOverP", isolation(ElDR04TkSumPt[i], ElCaloEnergy[i])) &&
1645     fabs(ElEta[i])>etaBarrelMax &&
1646     fabs(ElEta[i])<etaEndcapMax) {
1647     hn1_El_ElOneOverEminusOneOverP[1]->Fill(fabs(1/ElCaloEnergy[i] - 1/ElTrkMomAtVtx[i]));
1648     }
1649     // isolation
1650     // barrel
1651     if(ethNminus1(ElEcalDriven[i], ElDeltaPhiSuperClusterAtVtx[i] - dPhiCorrection, ElDeltaEtaSuperClusterAtVtx[i] - dEtaCorrection, ElCaloEnergy[i], ElTrkMomAtVtx[i], ElEta[i], "iso", isolation(ElDR04TkSumPt[i], ElCaloEnergy[i])) &&
1652     fabs(ElEta[i])<etaBarrelMax) {
1653     hn1_El_ElEthIso[0]->Fill(ElDR04TkSumPt[i]/ ElCaloEnergy[i]);
1654     }
1655     // endcap
1656     if(ethNminus1(ElEcalDriven[i], ElDeltaPhiSuperClusterAtVtx[i] - dPhiCorrection, ElDeltaEtaSuperClusterAtVtx[i] - dEtaCorrection, ElCaloEnergy[i], ElTrkMomAtVtx[i], ElEta[i], "iso", isolation(ElDR04TkSumPt[i], ElCaloEnergy[i])) &&
1657     fabs(ElEta[i])>etaBarrelMax &&
1658     fabs(ElEta[i])<etaEndcapMax) {
1659     hn1_El_ElEthIso[1]->Fill(ElDR04TkSumPt[i]/ ElCaloEnergy[i]);
1660     }
1661     //--------------------------------------------------------------------------------------------------------------------
1662    
1663    
1664     // Working Points
1665    
1666     if(fabs(ElEta[i])<etaBarrelMax) {
1667     if(WorkingPointNminus1(candidate, WorkingPointCuts, "sigmaIetaIeta")) hn1_El_ElSigmaIetaIeta[2]->Fill(candidate.sigmaIetaIeta[0]);
1668     if(WorkingPointNminus1(candidate, WorkingPointCuts, "deltaPhi")) hn1_El_ElDeltaPhi[2]->Fill(fabs(candidate.deltaPhi[0]/* - dPhiCorrection*/));
1669     if(WorkingPointNminus1(candidate, WorkingPointCuts, "deltaEta")) hn1_El_ElDeltaEta[2]->Fill(fabs(candidate.deltaEta[0]/* - dEtaCorrection*/));
1670     if(WorkingPointNminus1(candidate, WorkingPointCuts, "HoverE")) hn1_El_ElHoverE[2]->Fill(candidate.HoverE[0]);
1671     if(WorkingPointNminus1(candidate, WorkingPointCuts, "trkIso")) hn1_El_ElTrkIso[2]->Fill(candidate.trkIso[0]);
1672     if(WorkingPointNminus1(candidate, WorkingPointCuts, "ecalIso")) hn1_El_ElEcalIso[2]->Fill(candidate.ecalIso[0]);
1673     if(WorkingPointNminus1(candidate, WorkingPointCuts, "hcalIso")) hn1_El_ElHcalIso[2]->Fill(candidate.hcalIso[0]);
1674     if(WorkingPointNminus1(candidate, WorkingPointCuts, "conversions")) hn1_El_ElNumberOfMissingInnerHits[2]->Fill(candidate.numberOfMissingInnerHits[0]);
1675     }
1676     else if(fabs(ElEta[i])>etaBarrelMax && fabs(ElEta[i])<etaEndcapMax) {
1677     if(WorkingPointNminus1(candidate, WorkingPointCuts, "sigmaIetaIeta")) hn1_El_ElSigmaIetaIeta[3]->Fill(candidate.sigmaIetaIeta[0]);
1678     if(WorkingPointNminus1(candidate, WorkingPointCuts, "deltaPhi")) hn1_El_ElDeltaPhi[3]->Fill(fabs(candidate.deltaPhi[0]/* - dPhiCorrection*/));
1679     if(WorkingPointNminus1(candidate, WorkingPointCuts, "deltaEta")) hn1_El_ElDeltaEta[3]->Fill(fabs(candidate.deltaEta[0]/* - dEtaCorrection*/));
1680     if(WorkingPointNminus1(candidate, WorkingPointCuts, "HoverE")) hn1_El_ElHoverE[3]->Fill(candidate.HoverE[0]);
1681     if(WorkingPointNminus1(candidate, WorkingPointCuts, "trkIso")) hn1_El_ElTrkIso[3]->Fill(candidate.trkIso[0]);
1682     if(WorkingPointNminus1(candidate, WorkingPointCuts, "ecalIso")) hn1_El_ElEcalIso[3]->Fill(candidate.ecalIso[0]);
1683     if(WorkingPointNminus1(candidate, WorkingPointCuts, "hcalIso")) hn1_El_ElHcalIso[3]->Fill(candidate.hcalIso[0]);
1684     if(WorkingPointNminus1(candidate, WorkingPointCuts, "conversions")) hn1_El_ElNumberOfMissingInnerHits[3]->Fill(candidate.numberOfMissingInnerHits[0]);
1685     }
1686    
1687    
1688    
1689     } // HLT_Photon10 trigger
1690     }// pt
1691     } // delta eta
1692     } // delta phi
1693     } // H/E
1694    
1695    
1696    
1697     // ID the electrons
1698     bool tightid=false;
1699     bool ethid=false;
1700     if(ElIDTight[i]==1) tightid=true;
1701     if(ethID(ElEcalDriven[i], ElDeltaPhiSuperClusterAtVtx[i] - dPhiCorrection, ElDeltaEtaSuperClusterAtVtx[i] - dEtaCorrection, ElCaloEnergy[i], ElTrkMomAtVtx[i], ElEta[i])==true) ethid=true;
1702    
1703     // check wether the elcetrons are in the barrel or the endcaps
1704     bool isbarrel=false;
1705     bool isendcap=false;
1706     if(fabs(ElEta[i])<etaMaxBarrel) isbarrel=true;
1707     if(fabs(ElEta[i])>etaMaxBarrel && fabs(ElEta[i])<etaMaxEndcap) isendcap=true;
1708    
1709     // Isolate the electrons
1710     double isolated=false;
1711     if(isolation(ElDR04TkSumPt[i], ElCaloEnergy[i])==true) isolated=true;
1712    
1713    
1714     // --------------------------------------------------------------------------------------------------------------------
1715     // for gsf electron candidates...
1716     // fill the plots for the barrel
1717     // if(fabs(ElEta[i]) < etaMaxBarrel) {
1718     if(isbarrel==true) {
1719     h_el_B_gsf_deltaPhiSuperCluster->Fill(fabs(ElDeltaPhiSuperClusterAtVtx[i] - dPhiCorrection));
1720     h_el_B_gsf_deltaEtaSuperCluster->Fill(fabs(ElDeltaEtaSuperClusterAtVtx[i] - dEtaCorrection));
1721     h_el_B_gsf_deltaPhiSuperCluster2->Fill(fabs(ElDeltaPhiSuperClusterAtVtx[i] - dPhiCorrection));
1722     h_el_B_gsf_deltaEtaSuperCluster2->Fill(fabs(ElDeltaEtaSuperClusterAtVtx[i] - dEtaCorrection));
1723     h_el_B_gsf_caloenergy->Fill(ElCaloEnergy[i]);
1724     h_el_B_gsf_trkmomatvtx->Fill(ElTrkMomAtVtx[i]);
1725     h_el_B_gsf_oneOverEminusOneOverP->Fill( fabs(1/ElCaloEnergy[i] - 1/ElTrkMomAtVtx[i]) );
1726     h_el_B_gsf_oneOverEminusOneOverP2->Fill( fabs(1/ElCaloEnergy[i] - 1/ElTrkMomAtVtx[i]) );
1727     h_el_B_gsf_sumPtOverE->Fill(ElDR04TkSumPt[i]/ElCaloEnergy[i]);
1728     h_el_B_gsf_sigmaIetaIeta->Fill(ElSigmaIetaIeta[i]);
1729     h_el_B_gsf_pt->Fill(ElPt[i]);
1730     h_el_B_gsf_eta->Fill(ElEta[i]);
1731     h_el_B_gsf_phi->Fill(ElPhi[i]);
1732     h_el_B_gsf_fbrem->Fill(Elfbrem[i]);
1733     h_el_B_gsf_basicclustersize->Fill(ElBasicClustersSize[i]);
1734     h_el_B_gsf_chi2->Fill(ElNChi2[i]);
1735     h_el_B_gsf_charge->Fill(ElCharge[i]);
1736     h_el_B_gsf_pfmet->Fill(PFMET);
1737     h_el_B_gsf_HoverE->Fill(ElHcalOverEcal[i]);
1738     }
1739     // fill the plots for the endcaps
1740     // if(fabs(ElEta[i]) > etaMaxBarrel && fabs(ElEta[i] < etaMaxEndcap)) {
1741     if(isendcap==true) {
1742     h_el_E_gsf_deltaPhiSuperCluster->Fill(fabs(ElDeltaPhiSuperClusterAtVtx[i] - dPhiCorrection));
1743     h_el_E_gsf_deltaEtaSuperCluster->Fill(fabs(ElDeltaEtaSuperClusterAtVtx[i] - dEtaCorrection));
1744     h_el_E_gsf_deltaPhiSuperCluster2->Fill(fabs(ElDeltaPhiSuperClusterAtVtx[i] - dPhiCorrection));
1745     h_el_E_gsf_deltaEtaSuperCluster2->Fill(fabs(ElDeltaEtaSuperClusterAtVtx[i] - dEtaCorrection));
1746     h_el_E_gsf_caloenergy->Fill(ElCaloEnergy[i]);
1747     h_el_E_gsf_trkmomatvtx->Fill(ElTrkMomAtVtx[i]);
1748     h_el_E_gsf_oneOverEminusOneOverP->Fill( fabs(1/ElCaloEnergy[i] - 1/ElTrkMomAtVtx[i]) );
1749     h_el_E_gsf_oneOverEminusOneOverP2->Fill( fabs(1/ElCaloEnergy[i] - 1/ElTrkMomAtVtx[i]) );
1750     h_el_E_gsf_sumPtOverE->Fill(ElDR04TkSumPt[i]/ElCaloEnergy[i]);
1751     h_el_E_gsf_sigmaIetaIeta->Fill(ElSigmaIetaIeta[i]);
1752     h_el_E_gsf_pt->Fill(ElPt[i]);
1753     h_el_E_gsf_eta->Fill(ElEta[i]);
1754     h_el_E_gsf_phi->Fill(ElPhi[i]);
1755     h_el_E_gsf_fbrem->Fill(Elfbrem[i]);
1756     h_el_E_gsf_basicclustersize->Fill(ElBasicClustersSize[i]);
1757     h_el_E_gsf_chi2->Fill(ElNChi2[i]);
1758     h_el_E_gsf_charge->Fill(ElCharge[i]);
1759     h_el_E_gsf_pfmet->Fill(PFMET);
1760     h_el_E_gsf_HoverE->Fill(ElHcalOverEcal[i]);
1761     }
1762     // --------------------------------------------------------------------------------------------------------------------
1763     // fill histos for tight ID
1764    
1765     if(tightid==true) {
1766     TLorentzVector vec;
1767     vec.SetPxPyPzE(ElPx[i],ElPy[i],ElPz[i],ElE[i]);
1768     electronsTight.push_back(vec);
1769     if(isolated==true) {
1770     electronsTightIsolated.push_back(vec);
1771     }
1772    
1773     // fill the myEvent
1774     if(vec.Pt()>ptMin) {
1775     tightElectrons.fourvector.push_back(vec);
1776     tightElectrons.charge.push_back(ElCharge[i]);
1777     if(isolated==true) tightElectrons.isolation.push_back(true);
1778     else if(isolated==false) tightElectrons.isolation.push_back(false);
1779     }
1780    
1781     if(isbarrel==true) {
1782     h_el_B_tight_deltaPhiSuperCluster->Fill(fabs(ElDeltaPhiSuperClusterAtVtx[i] - dPhiCorrection));
1783     h_el_B_tight_deltaEtaSuperCluster->Fill(fabs(ElDeltaEtaSuperClusterAtVtx[i] - dEtaCorrection));
1784     h_el_B_tight_deltaPhiSuperCluster2->Fill(fabs(ElDeltaPhiSuperClusterAtVtx[i] - dPhiCorrection));
1785     h_el_B_tight_deltaEtaSuperCluster2->Fill(fabs(ElDeltaEtaSuperClusterAtVtx[i] - dEtaCorrection));
1786     h_el_B_tight_caloenergy->Fill(ElCaloEnergy[i]);
1787     h_el_B_tight_trkmomatvtx->Fill(ElTrkMomAtVtx[i]);
1788     h_el_B_tight_oneOverEminusOneOverP->Fill( fabs(1/ElCaloEnergy[i] - 1/ElTrkMomAtVtx[i]) );
1789     h_el_B_tight_oneOverEminusOneOverP2->Fill( fabs(1/ElCaloEnergy[i] - 1/ElTrkMomAtVtx[i]) );
1790     h_el_B_tight_sumPtOverE->Fill(ElDR04TkSumPt[i]/ElCaloEnergy[i]);
1791     h_el_B_tight_sigmaIetaIeta->Fill(ElSigmaIetaIeta[i]);
1792     h_el_B_tight_pt->Fill(ElPt[i]);
1793     h_el_B_tight_eta->Fill(ElEta[i]);
1794     h_el_B_tight_phi->Fill(ElPhi[i]);
1795     h_el_B_tight_fbrem->Fill(Elfbrem[i]);
1796     h_el_B_tight_basicclustersize->Fill(ElBasicClustersSize[i]);
1797     h_el_B_tight_chi2->Fill(ElNChi2[i]);
1798     h_el_B_tight_charge->Fill(ElCharge[i]);
1799     h_el_B_tight_pfmet->Fill(PFMET);
1800     h_el_B_tight_HoverE->Fill(ElHcalOverEcal[i]);
1801     }
1802     if(isendcap==true) {
1803     h_el_E_tight_deltaPhiSuperCluster->Fill(fabs(ElDeltaPhiSuperClusterAtVtx[i] - dPhiCorrection));
1804     h_el_E_tight_deltaEtaSuperCluster->Fill(fabs(ElDeltaEtaSuperClusterAtVtx[i] - dEtaCorrection));
1805     h_el_E_tight_deltaPhiSuperCluster2->Fill(fabs(ElDeltaPhiSuperClusterAtVtx[i] - dPhiCorrection));
1806     h_el_E_tight_deltaEtaSuperCluster2->Fill(fabs(ElDeltaEtaSuperClusterAtVtx[i] - dEtaCorrection));
1807     h_el_E_tight_caloenergy->Fill(ElCaloEnergy[i]);
1808     h_el_E_tight_trkmomatvtx->Fill(ElTrkMomAtVtx[i]);
1809     h_el_E_tight_oneOverEminusOneOverP->Fill( fabs(1/ElCaloEnergy[i] - 1/ElTrkMomAtVtx[i]) );
1810     h_el_E_tight_oneOverEminusOneOverP2->Fill( fabs(1/ElCaloEnergy[i] - 1/ElTrkMomAtVtx[i]) );
1811     h_el_E_tight_sumPtOverE->Fill(ElDR04TkSumPt[i]/ElCaloEnergy[i]);
1812     h_el_E_tight_sigmaIetaIeta->Fill(ElSigmaIetaIeta[i]);
1813     h_el_E_tight_pt->Fill(ElPt[i]);
1814     h_el_E_tight_eta->Fill(ElEta[i]);
1815     h_el_E_tight_phi->Fill(ElPhi[i]);
1816     h_el_E_tight_fbrem->Fill(Elfbrem[i]);
1817     h_el_E_tight_basicclustersize->Fill(ElBasicClustersSize[i]);
1818     h_el_E_tight_chi2->Fill(ElNChi2[i]);
1819     h_el_E_tight_charge->Fill(ElCharge[i]);
1820     h_el_E_tight_pfmet->Fill(PFMET);
1821     h_el_E_tight_HoverE->Fill(ElHcalOverEcal[i]);
1822     }
1823     }
1824     // --------------------------------------------------------------------------------------------------------------------
1825     // fill histos for eth ID
1826    
1827     if(ethid==true) {
1828     TLorentzVector vec;
1829     vec.SetPxPyPzE(ElPx[i],ElPy[i],ElPz[i],ElE[i]);
1830     electronsETH.push_back(vec);
1831     if(isolated==true) {
1832     electronsETHIsolated.push_back(vec);
1833     }
1834    
1835     // fill the myEvent
1836     if(vec.Pt()>ptMin) {
1837     ethElectrons.fourvector.push_back(vec);
1838     ethElectrons.charge.push_back(ElCharge[i]);
1839     ethElectrons.ethIso.push_back(ElDR04TkSumPt[i]/ElCaloEnergy[i]);
1840     ethElectrons.trkIso.push_back(ElDR03TkSumPt[i]);
1841     ethElectrons.ecalIso.push_back(ElDR04EcalRecHitSumEt[i]);
1842     ethElectrons.hcalIso.push_back(ElDR04HcalTowerSumEt[i]);
1843     if(isolated==true) ethElectrons.isolation.push_back(true);
1844     else if(isolated==false) ethElectrons.isolation.push_back(false);
1845     }
1846     if(isbarrel==true) {
1847     h_el_B_eth_deltaPhiSuperCluster->Fill(fabs(ElDeltaPhiSuperClusterAtVtx[i] - dPhiCorrection));
1848     h_el_B_eth_deltaEtaSuperCluster->Fill(fabs(ElDeltaEtaSuperClusterAtVtx[i] - dEtaCorrection));
1849     h_el_B_eth_deltaPhiSuperCluster2->Fill(fabs(ElDeltaPhiSuperClusterAtVtx[i] - dPhiCorrection));
1850     h_el_B_eth_deltaEtaSuperCluster2->Fill(fabs(ElDeltaEtaSuperClusterAtVtx[i] - dEtaCorrection));
1851     h_el_B_eth_caloenergy->Fill(ElCaloEnergy[i]);
1852     h_el_B_eth_trkmomatvtx->Fill(ElTrkMomAtVtx[i]);
1853     h_el_B_eth_oneOverEminusOneOverP->Fill( fabs(1/ElCaloEnergy[i] - 1/ElTrkMomAtVtx[i]) );
1854     h_el_B_eth_oneOverEminusOneOverP2->Fill( fabs(1/ElCaloEnergy[i] - 1/ElTrkMomAtVtx[i]) );
1855     h_el_B_eth_sumPtOverE->Fill(ElDR04TkSumPt[i]/ElCaloEnergy[i]);
1856     h_el_B_eth_sigmaIetaIeta->Fill(ElSigmaIetaIeta[i]);
1857     h_el_B_eth_pt->Fill(ElPt[i]);
1858     h_el_B_eth_eta->Fill(ElEta[i]);
1859     h_el_B_eth_phi->Fill(ElPhi[i]);
1860     h_el_B_eth_fbrem->Fill(Elfbrem[i]);
1861     h_el_B_eth_basicclustersize->Fill(ElBasicClustersSize[i]);
1862     h_el_B_eth_chi2->Fill(ElNChi2[i]);
1863     h_el_B_eth_charge->Fill(ElCharge[i]);
1864     h_el_B_eth_pfmet->Fill(PFMET);
1865     h_el_B_eth_HoverE->Fill(ElHcalOverEcal[i]);
1866     }
1867     if(isendcap==true) {
1868     h_el_E_eth_deltaPhiSuperCluster->Fill(fabs(ElDeltaPhiSuperClusterAtVtx[i] - dPhiCorrection));
1869     h_el_E_eth_deltaEtaSuperCluster->Fill(fabs(ElDeltaEtaSuperClusterAtVtx[i] - dEtaCorrection));
1870     h_el_E_eth_deltaPhiSuperCluster2->Fill(fabs(ElDeltaPhiSuperClusterAtVtx[i] - dPhiCorrection));
1871     h_el_E_eth_deltaEtaSuperCluster2->Fill(fabs(ElDeltaEtaSuperClusterAtVtx[i] - dEtaCorrection));
1872     h_el_E_eth_caloenergy->Fill(ElCaloEnergy[i]);
1873     h_el_E_eth_trkmomatvtx->Fill(ElTrkMomAtVtx[i]);
1874     h_el_E_eth_oneOverEminusOneOverP->Fill( fabs(1/ElCaloEnergy[i] - 1/ElTrkMomAtVtx[i]) );
1875     h_el_E_eth_oneOverEminusOneOverP2->Fill( fabs(1/ElCaloEnergy[i] - 1/ElTrkMomAtVtx[i]) );
1876     h_el_E_eth_sumPtOverE->Fill(ElDR04TkSumPt[i]/ElCaloEnergy[i]);
1877     h_el_E_eth_sigmaIetaIeta->Fill(ElSigmaIetaIeta[i]);
1878     h_el_E_eth_pt->Fill(ElPt[i]);
1879     h_el_E_eth_eta->Fill(ElEta[i]);
1880     h_el_E_eth_phi->Fill(ElPhi[i]);
1881     h_el_E_eth_fbrem->Fill(Elfbrem[i]);
1882     h_el_E_eth_basicclustersize->Fill(ElBasicClustersSize[i]);
1883     h_el_E_eth_chi2->Fill(ElNChi2[i]);
1884     h_el_E_eth_charge->Fill(ElCharge[i]);
1885     h_el_E_eth_pfmet->Fill(PFMET);
1886     h_el_E_eth_HoverE->Fill(ElHcalOverEcal[i]);
1887     }
1888     }
1889    
1890     } // loop over all electrons in one event
1891    
1892     // if(electronsTight.size()!=0 || electronsETH.size()!=0) {
1893     // cout<<"Number of tight electrons: "<<electronsTight.size()<<endl;
1894     // cout<<"Number of eth electrons: "<<electronsETH.size()<<endl;
1895     // }
1896    
1897     // if(tightElectrons.fourvector.size()!=0) {
1898     // cout<<"Number of tight electrons: "<<tightElectrons.fourvector.size()<<endl;
1899     // cout<<"electron pt: "<<tightElectrons.fourvector[0].Pt()<<endl;
1900     // cout<<"Charge: "<<tightElectrons.charge[0]<<endl;
1901     // }
1902    
1903    
1904    
1905     // --------------------------------------------------------------------------------
1906     // get the jets
1907     // --------------------------------------------------------------------------------
1908     for(int j=0;j<NJets;j++) {
1909     if(JPt[j]>jetPtMin && JEta[j]<jetEtaMax) {
1910     TLorentzVector vec;
1911     vec.SetPxPyPzE(JPx[j],JPy[j],JPz[j],JE[j]);
1912     // now, one needs a cleaning of the jet...
1913     // loop over all isolated electrons
1914     for(int e=0; e<electronsETHIsolated.size();e++) {
1915     if(electronsETHIsolated[e].DeltaR(vec)>deltaRMax) {
1916     jets.push_back(vec);
1917     }
1918     }
1919     }
1920     }
1921     // --------------------------------------------------------------------------------
1922    
1923    
1924     // --------------------------------------------------------------------------------
1925     // get the MET
1926     // --------------------------------------------------------------------------------
1927     // double met;
1928     // double metPhi;
1929     // double delPhi;
1930     // met=PFMET;
1931     // metPhi=PFMETphi;
1932     // myEvent
1933     for(int k=0; k<tightElectrons.fourvector.size(); k++) {
1934     delPhiMet=deltaPhi(tightElectrons.fourvector[k].Phi(), metPhi);
1935     tightElectrons.deltaPhiMet.push_back(delPhiMet);
1936     }
1937     for(int k=0; k<ethElectrons.fourvector.size(); k++) {
1938     delPhiMet=deltaPhi(ethElectrons.fourvector[k].Phi(), metPhi);
1939     ethElectrons.deltaPhiMet.push_back(delPhiMet);
1940     }
1941     tightElectrons.missinget=met;
1942     ethElectrons.missinget=met;
1943    
1944     // --------------------------------------------------------------------------------
1945     // print some info about the found electrons
1946     // --------------------------------------------------------------------------------
1947    
1948     if(printInfo==true) {
1949     for(int el=0;el<ethElectrons.fourvector.size();el++) {
1950     cout<<"-----------------------------------------------------"<<endl;
1951     cout<<ethElectrons.fourvector.size()<<" ETH IDed electron(s) found"<<endl;
1952     if(ethElectrons.isolation[el]==true) cout<<"isolated"<<endl;
1953     if(ethElectrons.isolation[el]==false) cout<<"non isolated"<<endl;
1954     cout<<"pt= "<<ethElectrons.fourvector[el].Pt()<<endl;
1955     cout<<"eta= "<<ethElectrons.fourvector[el].Eta()<<endl;
1956     cout<<"phi= "<<ethElectrons.fourvector[el].Phi()<<endl;
1957     cout<<"MET= "<<ethElectrons.missinget<<endl;
1958     }
1959    
1960     for(int el=0;el<tightElectrons.fourvector.size();el++) {
1961     cout<<"-----------------------------------------------------"<<endl;
1962     cout<<tightElectrons.fourvector.size()<<" TIGHT IDed electron(s) found"<<endl;
1963     if(tightElectrons.isolation[el]==true) cout<<"isolated"<<endl;
1964     if(tightElectrons.isolation[el]==false) cout<<"non isolated"<<endl;
1965     cout<<"pt= "<<tightElectrons.fourvector[el].Pt()<<endl;
1966     cout<<"eta= "<<tightElectrons.fourvector[el].Eta()<<endl;
1967     cout<<"phi= "<<tightElectrons.fourvector[el].Phi()<<endl;
1968     cout<<"MET= "<<tightElectrons.missinget<<endl;
1969     }
1970     }
1971     // --------------------------------------------------------------------------------
1972    
1973    
1974     // --------------------------------------------------------------------------------
1975     // W selection
1976     // --------------------------------------------------------------------------------
1977     double minPt=25.;
1978     double etaMax=1.44;
1979     double metMin=30.;
1980     double mtMin=60.;
1981     double delphinMax=2.8;
1982    
1983     bool makeCut [] = {true, // 0: not used
1984     true, // 1: barrel only
1985     true, // 2: met cut
1986     false, // 3: transverse mass cut
1987     true, // 4: 0 jets
1988     true, // 5: 1 jet
1989     true, // 6: 1 jets delta phi cut
1990     true, // 7: >1 jet
1991     };
1992    
1993     // preselection
1994     int cut;
1995     if(ethElectrons.fourvector.size()==1 && ethElectrons.fourvector[0].Pt()>20 && ethElectrons.missinget>20 && ethElectrons.ethIso[0]<0.1) {
1996     double trMass=transverseMass(ethElectrons.fourvector[0].Pt(), ethElectrons.missinget, ethElectrons.deltaPhiMet[0]);
1997    
1998     // these electrons have already pt > ptMin !!!
1999     cut=0;
2000     //filler(ethElectrons, hs_W_ElPt[cut], hs_W_ElEta[cut], hs_W_ElPhi[cut], hs_W_ElMet[cut], hs_W_ElCharge[cut]);
2001     hs_W_ElTransMass[cut]->Fill(trMass);
2002     hs_W_ElPt[cut]->Fill(ethElectrons.fourvector[0].Pt());
2003     hs_W_ElEta [cut]->Fill(ethElectrons.fourvector[0].Eta());
2004     // hs_W_ElDeltaPhi[cut]->Fill(ethElectrons.deltaPhiMet[0]);
2005     hs_W_ElMet[cut]->Fill(ethElectrons.missinget);
2006     hs_W_ElCharge[cut]->Fill(ethElectrons.charge[0]);
2007     hs_W_Njets[cut]->Fill(jets.size());
2008     hs_W_ElPhi[cut]->Fill(ethElectrons.fourvector[0].Phi());
2009    
2010    
2011    
2012     // cut on the barrel
2013     cut=1;
2014     if(makeCut[cut]==false || fabs(ethElectrons.fourvector[0].Eta()) < etaMax && ethElectrons.fourvector[0].Pt()>minPt) {
2015     hs_W_ElTransMass[cut]->Fill(trMass);
2016     hs_W_ElPt[cut]->Fill(ethElectrons.fourvector[0].Pt());
2017     hs_W_ElEta [cut]->Fill(ethElectrons.fourvector[0].Eta());
2018     // hs_W_ElDeltaPhi[cut]->Fill(ethElectrons.deltaPhiMet[0]);
2019     hs_W_ElMet[cut]->Fill(ethElectrons.missinget);
2020     hs_W_ElCharge[cut]->Fill(ethElectrons.charge[0]);
2021     hs_W_Njets[cut]->Fill(jets.size());
2022     hs_W_ElPhi[cut]->Fill(ethElectrons.fourvector[0].Phi());
2023    
2024    
2025     // make a met cut
2026     cut=2;
2027     if(makeCut[cut]==false || ethElectrons.missinget>metMin) {
2028     hs_W_ElTransMass[cut]->Fill(trMass);
2029     hs_W_ElPt[cut]->Fill(ethElectrons.fourvector[0].Pt());
2030     hs_W_ElEta [cut]->Fill(ethElectrons.fourvector[0].Eta());
2031     // hs_W_ElDeltaPhi[cut]->Fill(ethElectrons.deltaPhiMet[0]);
2032     hs_W_ElMet[cut]->Fill(ethElectrons.missinget);
2033     hs_W_ElCharge[cut]->Fill(ethElectrons.charge[0]);
2034     hs_W_Njets[cut]->Fill(jets.size());
2035     hs_W_ElPhi[cut]->Fill(ethElectrons.fourvector[0].Phi());
2036    
2037    
2038     // make a transverse mass cut
2039     cut=3;
2040     if(makeCut[cut]==false || trMass>mtMin) {
2041     hs_W_ElTransMass[cut]->Fill(trMass);
2042     hs_W_ElPt[cut]->Fill(ethElectrons.fourvector[0].Pt());
2043     hs_W_ElEta [cut]->Fill(ethElectrons.fourvector[0].Eta());
2044     // hs_W_ElDeltaPhi[cut]->Fill(ethElectrons.deltaPhiMet[0]);
2045     hs_W_ElMet[cut]->Fill(ethElectrons.missinget);
2046     hs_W_ElCharge[cut]->Fill(ethElectrons.charge[0]);
2047     hs_W_Njets[cut]->Fill(jets.size());
2048     hs_W_ElPhi[cut]->Fill(ethElectrons.fourvector[0].Phi());
2049    
2050    
2051     // check the number of jets
2052     cut=4;
2053     if(makeCut[cut]==false || jets.size()==0) {
2054     hs_W_ElTransMass[cut]->Fill(trMass);
2055     hs_W_ElPt[cut]->Fill(ethElectrons.fourvector[0].Pt());
2056     hs_W_ElEta [cut]->Fill(ethElectrons.fourvector[0].Eta());
2057     // hs_W_ElDeltaPhi[cut]->Fill(ethElectrons.deltaPhiMet[0]);
2058     hs_W_ElMet[cut]->Fill(ethElectrons.missinget);
2059     hs_W_ElCharge[cut]->Fill(ethElectrons.charge[0]);
2060     hs_W_Njets[cut]->Fill(jets.size());
2061     hs_W_ElPhi[cut]->Fill(ethElectrons.fourvector[0].Phi());
2062    
2063     }
2064     cut=5;
2065     if(makeCut[cut]==false || jets.size()==1) {
2066     double delphin;
2067     delphin=ethElectrons.fourvector[0].DeltaPhi(jets[0]);
2068     hs_W_ElTransMass[cut]->Fill(trMass);
2069     hs_W_ElPt[cut]->Fill(ethElectrons.fourvector[0].Pt());
2070     hs_W_ElEta [cut]->Fill(ethElectrons.fourvector[0].Eta());
2071     hs_W_ElDeltaPhi[cut]->Fill(fabs(delphin));
2072     // hs_W_ElDeltaPhi[cut]->Fill(ethElectrons.deltaPhiMet[0]);
2073     hs_W_ElMet[cut]->Fill(ethElectrons.missinget);
2074     hs_W_ElCharge[cut]->Fill(ethElectrons.charge[0]);
2075     hs_W_Njets[cut]->Fill(jets.size());
2076     hs_W_ElPhi[cut]->Fill(ethElectrons.fourvector[0].Phi());
2077    
2078     // delta phi cut
2079     //cout<<"delphin = "<<delphin<<endl;
2080     cut=6;
2081     if(makeCut[cut]==false || fabs(delphin)<delphinMax) {
2082     hs_W_ElTransMass[cut]->Fill(trMass);
2083     hs_W_ElPt[cut]->Fill(ethElectrons.fourvector[0].Pt());
2084     hs_W_ElEta [cut]->Fill(ethElectrons.fourvector[0].Eta());
2085     hs_W_ElDeltaPhi[cut]->Fill(fabs(delphin));
2086     // hs_W_ElDeltaPhi[cut]->Fill(ethElectrons.deltaPhiMet[0]);
2087     hs_W_ElMet[cut]->Fill(ethElectrons.missinget);
2088     hs_W_ElCharge[cut]->Fill(ethElectrons.charge[0]);
2089     hs_W_Njets[cut]->Fill(jets.size());
2090     hs_W_ElPhi[cut]->Fill(ethElectrons.fourvector[0].Phi());
2091     }
2092     }
2093     cut=7;
2094     if(makeCut[cut]==false || jets.size()>1) {
2095     hs_W_ElTransMass[cut]->Fill(trMass);
2096     hs_W_ElPt[cut]->Fill(ethElectrons.fourvector[0].Pt());
2097     hs_W_ElEta [cut]->Fill(ethElectrons.fourvector[0].Eta());
2098     // hs_W_ElDeltaPhi[cut]->Fill(ethElectrons.deltaPhiMet[0]);
2099     hs_W_ElMet[cut]->Fill(ethElectrons.missinget);
2100     hs_W_ElCharge[cut]->Fill(ethElectrons.charge[0]);
2101     hs_W_Njets[cut]->Fill(jets.size());
2102     hs_W_ElPhi[cut]->Fill(ethElectrons.fourvector[0].Phi());
2103    
2104     }
2105     }
2106     }
2107     }
2108     }
2109    
2110     // --------------------------------------------------------------------------------------------------------------------
2111    
2112    
2113    
2114    
2115    
2116    
2117    
2118    
2119    
2120    
2121    
2122    
2123     // find some Zs??
2124     if(electronsETH.size()==2) {
2125     double mass;
2126     mass=(electronsETH[0]+electronsETH[1]).M();
2127     // cout<<"************"<<mass<<endl;
2128    
2129     }
2130    
2131    
2132    
2133     } // loop over selected events
2134    
2135     ////////////////////////////////////////////////////////////////////
2136     ////////////////////// User's code ends here ///////////////////////
2137     ////////////////////////////////////////////////////////////////////
2138    
2139     } // End loop over events
2140    
2141     END:
2142     cerr<<"Program ended after "<<sampleSize<<" events ..."<<endl;
2143    
2144    
2145     // --------------------------------------------------------------------------------------------------------------------
2146     // calculate the NORMALIZATION factors etc...
2147     // --------------------------------------------------------------------------------------------------------------------
2148     // double xsec=9676.9*0.725;
2149     cout<<"total number of events: "<<totalNumberOfEvents<<endl;
2150     float n_numberOfEvents=xsec*lumi; //normalized number of events
2151     float normalizationFactor=n_numberOfEvents/totalNumberOfEvents;
2152     cout<<"normalization factor: "<<normalizationFactor<<endl;
2153     // if(isdata!=true) {
2154     // for(int i=0;i<MAXH;i++) {
2155     // ns_counter[i]=s_counter[i]*normalizationFactor;
2156     // }
2157     // ...efficiency...
2158     // s_effy[0]=s_counter[0]/numberOfEvents*100;
2159     // for(int i=1;i<MAXH;i++) {
2160     // if(s_counter[i-1]>0) {
2161     // s_effy[i]=s_counter[i]/s_counter[i-1]*100;
2162     // ns_effyerror[i]=sqrt(s_counter[i])/s_counter[i-1]*100;
2163     // }
2164     // else s_effy[i]=0;
2165     // }
2166     // // ...and errors...
2167     // for(int i=0;i<MAXH;i++) {
2168     // ns_error[i]=sqrt(s_counter[i])*normalizationFactor;
2169     // }
2170     // }
2171     // --------------------------------------------------------------------------------------------------------------------
2172    
2173     // if(isdata!=true) {
2174     // for(int i=0;i<MAXS;i++) {
2175     // scaleHisto( hs_W_ElPt[i], normalizationFactor);
2176     // scaleHisto(hs_W_ElEta[i], normalizationFactor);
2177     // scaleHisto(hs_W_ElPhi[i], normalizationFactor);
2178     // scaleHisto(hs_W_ElDeltaPhi[i], normalizationFactor);
2179     // scaleHisto(hs_W_ElMet[i], normalizationFactor);
2180     // scaleHisto(hs_W_ElTransMass[i], normalizationFactor);
2181     // scaleHisto(hs_W_ElCharge[i], normalizationFactor);
2182     // scaleHisto(hs_W_Njets[i], normalizationFactor);
2183     // }
2184     // }
2185    
2186    
2187    
2188    
2189    
2190    
2191     cout<<counterTight<<endl;
2192     cout<<counterETH<<endl;
2193    
2194     cout<<"Total number of robust electrons (sequential cuts): "<<c_robust_B/*+c_robust_E*/<<endl;
2195     cout<<"Total number of robust electrons (out of tree): "<<c_robust_tree<<endl;
2196    
2197     cout<<"debug: "<<debug<<endl;
2198    
2199    
2200     //////////write histos
2201     h_jetPt->Write();
2202    
2203    
2204     // --------------------------------------------------------------------------------------------------------------------
2205     // scale the histos to the lumi
2206     // gsf/barrel
2207     if(normalize==true) {
2208     h_el_B_gsf_deltaPhiSuperCluster->Scale(normalizationFactor);
2209     h_el_B_gsf_deltaEtaSuperCluster->Scale(normalizationFactor);
2210     h_el_B_gsf_deltaPhiSuperCluster2->Scale(normalizationFactor);
2211     h_el_B_gsf_deltaEtaSuperCluster2->Scale(normalizationFactor);
2212     h_el_B_gsf_caloenergy->Scale(normalizationFactor);
2213     h_el_B_gsf_trkmomatvtx->Scale(normalizationFactor);
2214     h_el_B_gsf_oneOverEminusOneOverP->Scale(normalizationFactor);
2215     h_el_B_gsf_oneOverEminusOneOverP2->Scale(normalizationFactor);
2216     h_el_B_gsf_sumPtOverE->Scale(normalizationFactor);
2217     h_el_B_gsf_HoverE->Scale(normalizationFactor);
2218     h_el_B_gsf_sigmaIetaIeta->Scale(normalizationFactor);
2219     h_el_B_gsf_pt->Scale(normalizationFactor);
2220     h_el_B_gsf_eta->Scale(normalizationFactor);
2221     h_el_B_gsf_phi->Scale(normalizationFactor);
2222     h_el_B_gsf_fbrem->Scale(normalizationFactor);
2223     h_el_B_gsf_basicclustersize->Scale(normalizationFactor);
2224     h_el_B_gsf_chi2->Scale(normalizationFactor);
2225     h_el_B_gsf_charge->Scale(normalizationFactor);
2226     // gsf/endcaps
2227     h_el_E_gsf_deltaPhiSuperCluster->Scale(normalizationFactor);
2228     h_el_E_gsf_deltaEtaSuperCluster->Scale(normalizationFactor);
2229     h_el_E_gsf_deltaPhiSuperCluster2->Scale(normalizationFactor);
2230     h_el_E_gsf_deltaEtaSuperCluster2->Scale(normalizationFactor);
2231     h_el_E_gsf_caloenergy->Scale(normalizationFactor);
2232     h_el_E_gsf_trkmomatvtx->Scale(normalizationFactor);
2233     h_el_E_gsf_oneOverEminusOneOverP->Scale(normalizationFactor);
2234     h_el_E_gsf_oneOverEminusOneOverP2->Scale(normalizationFactor);
2235     h_el_E_gsf_sumPtOverE->Scale(normalizationFactor);
2236     h_el_E_gsf_HoverE->Scale(normalizationFactor);
2237     h_el_E_gsf_sigmaIetaIeta->Scale(normalizationFactor);
2238     h_el_E_gsf_pt->Scale(normalizationFactor);
2239     h_el_E_gsf_eta->Scale(normalizationFactor);
2240     h_el_E_gsf_phi->Scale(normalizationFactor);
2241     h_el_E_gsf_fbrem->Scale(normalizationFactor);
2242     h_el_E_gsf_basicclustersize->Scale(normalizationFactor);
2243     h_el_E_gsf_chi2->Scale(normalizationFactor);
2244     h_el_E_gsf_charge->Scale(normalizationFactor);
2245     // --------------------------------------------------------------------------------------------------------------------
2246     // tight/barrel
2247     h_el_B_tight_deltaPhiSuperCluster->Scale(normalizationFactor);
2248     h_el_B_tight_deltaEtaSuperCluster->Scale(normalizationFactor);
2249     h_el_B_tight_deltaPhiSuperCluster2->Scale(normalizationFactor);
2250     h_el_B_tight_deltaEtaSuperCluster2->Scale(normalizationFactor);
2251     h_el_B_tight_caloenergy->Scale(normalizationFactor);
2252     h_el_B_tight_trkmomatvtx->Scale(normalizationFactor);
2253     h_el_B_tight_oneOverEminusOneOverP->Scale(normalizationFactor);
2254     h_el_B_tight_oneOverEminusOneOverP2->Scale(normalizationFactor);
2255     h_el_B_tight_sumPtOverE->Scale(normalizationFactor);
2256     h_el_B_tight_HoverE->Scale(normalizationFactor);
2257     h_el_B_tight_sigmaIetaIeta->Scale(normalizationFactor);
2258     h_el_B_tight_pt->Scale(normalizationFactor);
2259     h_el_B_tight_eta->Scale(normalizationFactor);
2260     h_el_B_tight_phi->Scale(normalizationFactor);
2261     h_el_B_tight_fbrem->Scale(normalizationFactor);
2262     h_el_B_tight_basicclustersize->Scale(normalizationFactor);
2263     h_el_B_tight_chi2->Scale(normalizationFactor);
2264     h_el_B_tight_charge->Scale(normalizationFactor);
2265     // tight/endcaps
2266     h_el_E_tight_deltaPhiSuperCluster->Scale(normalizationFactor);
2267     h_el_E_tight_deltaEtaSuperCluster->Scale(normalizationFactor);
2268     h_el_E_tight_deltaPhiSuperCluster2->Scale(normalizationFactor);
2269     h_el_E_tight_deltaEtaSuperCluster2->Scale(normalizationFactor);
2270     h_el_E_tight_caloenergy->Scale(normalizationFactor);
2271     h_el_E_tight_trkmomatvtx->Scale(normalizationFactor);
2272     h_el_E_tight_oneOverEminusOneOverP->Scale(normalizationFactor);
2273     h_el_E_tight_oneOverEminusOneOverP2->Scale(normalizationFactor);
2274     h_el_E_tight_sumPtOverE->Scale(normalizationFactor);
2275     h_el_E_tight_HoverE->Scale(normalizationFactor);
2276     h_el_E_tight_sigmaIetaIeta->Scale(normalizationFactor);
2277     h_el_E_tight_pt->Scale(normalizationFactor);
2278     h_el_E_tight_eta->Scale(normalizationFactor);
2279     h_el_E_tight_phi->Scale(normalizationFactor);
2280     h_el_E_tight_fbrem->Scale(normalizationFactor);
2281     h_el_E_tight_basicclustersize->Scale(normalizationFactor);
2282     h_el_E_tight_chi2->Scale(normalizationFactor);
2283     h_el_E_tight_charge->Scale(normalizationFactor);
2284     // --------------------------------------------------------------------------------------------------------------------
2285     // eth/barrel
2286     h_el_B_eth_deltaPhiSuperCluster->Scale(normalizationFactor);
2287     h_el_B_eth_deltaEtaSuperCluster->Scale(normalizationFactor);
2288     h_el_B_eth_deltaPhiSuperCluster2->Scale(normalizationFactor);
2289     h_el_B_eth_deltaEtaSuperCluster2->Scale(normalizationFactor);
2290     h_el_B_eth_caloenergy->Scale(normalizationFactor);
2291     h_el_B_eth_trkmomatvtx->Scale(normalizationFactor);
2292     h_el_B_eth_oneOverEminusOneOverP->Scale(normalizationFactor);
2293     h_el_B_eth_oneOverEminusOneOverP2->Scale(normalizationFactor);
2294     h_el_B_eth_HoverE->Scale(normalizationFactor);
2295     h_el_B_eth_sumPtOverE->Scale(normalizationFactor);
2296     h_el_B_eth_sigmaIetaIeta->Scale(normalizationFactor);
2297     h_el_B_eth_pt->Scale(normalizationFactor);
2298     h_el_B_eth_eta->Scale(normalizationFactor);
2299     h_el_B_eth_phi->Scale(normalizationFactor);
2300     h_el_B_eth_fbrem->Scale(normalizationFactor);
2301     h_el_B_eth_basicclustersize->Scale(normalizationFactor);
2302     h_el_B_eth_chi2->Scale(normalizationFactor);
2303     h_el_B_eth_charge->Scale(normalizationFactor);
2304     // eth/endcaps
2305     h_el_E_eth_deltaPhiSuperCluster->Scale(normalizationFactor);
2306     h_el_E_eth_deltaEtaSuperCluster->Scale(normalizationFactor);
2307     h_el_E_eth_deltaPhiSuperCluster2->Scale(normalizationFactor);
2308     h_el_E_eth_deltaEtaSuperCluster2->Scale(normalizationFactor);
2309     h_el_E_eth_caloenergy->Scale(normalizationFactor);
2310     h_el_E_eth_trkmomatvtx->Scale(normalizationFactor);
2311     h_el_E_eth_oneOverEminusOneOverP->Scale(normalizationFactor);
2312     h_el_E_eth_oneOverEminusOneOverP2->Scale(normalizationFactor);
2313     h_el_E_eth_HoverE->Scale(normalizationFactor);
2314     h_el_E_eth_sumPtOverE->Scale(normalizationFactor);
2315     h_el_E_eth_sigmaIetaIeta->Scale(normalizationFactor);
2316     h_el_E_eth_pt->Scale(normalizationFactor);
2317     h_el_E_eth_eta->Scale(normalizationFactor);
2318     h_el_E_eth_phi->Scale(normalizationFactor);
2319     h_el_E_eth_fbrem->Scale(normalizationFactor);
2320     h_el_E_eth_basicclustersize->Scale(normalizationFactor);
2321     h_el_E_eth_chi2->Scale(normalizationFactor);
2322     h_el_E_eth_charge->Scale(normalizationFactor);
2323     // --------------------------------------------------------------------------------------------------------------------
2324     for(int i=0;i<MAXE;i++) {
2325     hs_El_ElPt[i]->Scale(normalizationFactor);
2326     hs_El_ElEta[i]->Scale(normalizationFactor);
2327     hs_El_ElPhi[i]->Scale(normalizationFactor);
2328     hs_El_ElDeltaPhi[i]->Scale(normalizationFactor);
2329     hs_El_ElMet[i]->Scale(normalizationFactor);
2330     hs_El_ElTransMass[i]->Scale(normalizationFactor);
2331     hs_El_ElCharge[i]->Scale(normalizationFactor);
2332     hs_El_Njets[i]->Scale(normalizationFactor);
2333     hs_El_ElDeltaPhi[i]->Scale(normalizationFactor);
2334     hs_El_ElDeltaEta[i]->Scale(normalizationFactor);
2335     hs_El_ElOneOverEminusOneOverP[i]->Scale(normalizationFactor);
2336     hs_El_ElTransMass[i]->Scale(normalizationFactor);
2337     hs_El_Njets[i]->Scale(normalizationFactor);
2338     hs_El_ElEthIso[i]->Scale(normalizationFactor);
2339     hs_El_ElTrkIso[i]->Scale(normalizationFactor);
2340     hs_El_ElEcalIso[i]->Scale(normalizationFactor);
2341     hs_El_ElHcalIso[i]->Scale(normalizationFactor);
2342     hs_El_ElHoverE[i]->Scale(normalizationFactor);
2343     hs_El_ElSigmaIetaIeta[i]->Scale(normalizationFactor);
2344     hs_El_ElNumberOfMissingInnerHits[i]->Scale(normalizationFactor);
2345     }
2346     for(int i=0;i<MAXS;i++) {
2347     hs_W_ElPt[i]->Scale(normalizationFactor);
2348     hs_W_ElEta[i]->Scale(normalizationFactor);
2349     hs_W_ElPhi[i]->Scale(normalizationFactor);
2350     hs_W_ElDeltaPhi[i]->Scale(normalizationFactor);
2351     hs_W_ElMet[i]->Scale(normalizationFactor);
2352     hs_W_ElTransMass[i]->Scale(normalizationFactor);
2353     hs_W_ElCharge[i]->Scale(normalizationFactor);
2354     hs_W_Njets[i]->Scale(normalizationFactor);
2355     }
2356     }
2357     // --------------------------------------------------------------------------------------------------------------------
2358    
2359     // write the plots to the *.root file
2360    
2361     h_numberOfEvents->Write();
2362    
2363     if(writeBasicPlots==true) {
2364     // gsf/barrel
2365     h_el_B_gsf_deltaPhiSuperCluster->Write();
2366     h_el_B_gsf_deltaEtaSuperCluster->Write();
2367     h_el_B_gsf_deltaPhiSuperCluster2->Write();
2368     h_el_B_gsf_deltaEtaSuperCluster2->Write();
2369     h_el_B_gsf_caloenergy->Write();
2370     h_el_B_gsf_trkmomatvtx->Write();
2371     h_el_B_gsf_oneOverEminusOneOverP->Write();
2372     h_el_B_gsf_oneOverEminusOneOverP2->Write();
2373     h_el_B_gsf_sumPtOverE->Write();
2374     h_el_B_gsf_HoverE->Write();
2375     h_el_B_gsf_sigmaIetaIeta->Write();
2376     h_el_B_gsf_pt->Write();
2377     h_el_B_gsf_eta->Write();
2378     h_el_B_gsf_phi->Write();
2379     h_el_B_gsf_fbrem->Write();
2380     h_el_B_gsf_basicclustersize->Write();
2381     h_el_B_gsf_chi2->Write();
2382     h_el_B_gsf_charge->Write();
2383     // gsf/endcaps
2384     h_el_E_gsf_deltaPhiSuperCluster->Write();
2385     h_el_E_gsf_deltaEtaSuperCluster->Write();
2386     h_el_E_gsf_deltaPhiSuperCluster2->Write();
2387     h_el_E_gsf_deltaEtaSuperCluster2->Write();
2388     h_el_E_gsf_caloenergy->Write();
2389     h_el_E_gsf_trkmomatvtx->Write();
2390     h_el_E_gsf_oneOverEminusOneOverP->Write();
2391     h_el_E_gsf_oneOverEminusOneOverP2->Write();
2392     h_el_E_gsf_sumPtOverE->Write();
2393     h_el_E_gsf_HoverE->Write();
2394     h_el_E_gsf_sigmaIetaIeta->Write();
2395     h_el_E_gsf_pt->Write();
2396     h_el_E_gsf_eta->Write();
2397     h_el_E_gsf_phi->Write();
2398     h_el_E_gsf_fbrem->Write();
2399     h_el_E_gsf_basicclustersize->Write();
2400     h_el_E_gsf_chi2->Write();
2401     h_el_E_gsf_charge->Write();
2402     // --------------------------------------------------------------------------------------------------------------------
2403     // tight/barrel
2404     h_el_B_tight_deltaPhiSuperCluster->Write();
2405     h_el_B_tight_deltaEtaSuperCluster->Write();
2406     h_el_B_tight_deltaPhiSuperCluster2->Write();
2407     h_el_B_tight_deltaEtaSuperCluster2->Write();
2408     h_el_B_tight_caloenergy->Write();
2409     h_el_B_tight_trkmomatvtx->Write();
2410     h_el_B_tight_oneOverEminusOneOverP->Write();
2411     h_el_B_tight_oneOverEminusOneOverP2->Write();
2412     h_el_B_tight_sumPtOverE->Write();
2413     h_el_B_tight_HoverE->Write();
2414     h_el_B_tight_sigmaIetaIeta->Write();
2415     h_el_B_tight_pt->Write();
2416     h_el_B_tight_eta->Write();
2417     h_el_B_tight_phi->Write();
2418     h_el_B_tight_fbrem->Write();
2419     h_el_B_tight_basicclustersize->Write();
2420     h_el_B_tight_chi2->Write();
2421     h_el_B_tight_charge->Write();
2422     // tight/endcaps
2423     h_el_E_tight_deltaPhiSuperCluster->Write();
2424     h_el_E_tight_deltaEtaSuperCluster->Write();
2425     h_el_E_tight_deltaPhiSuperCluster2->Write();
2426     h_el_E_tight_deltaEtaSuperCluster2->Write();
2427     h_el_E_tight_caloenergy->Write();
2428     h_el_E_tight_trkmomatvtx->Write();
2429     h_el_E_tight_oneOverEminusOneOverP->Write();
2430     h_el_E_tight_oneOverEminusOneOverP2->Write();
2431     h_el_E_tight_sumPtOverE->Write();
2432     h_el_E_tight_HoverE->Write();
2433     h_el_E_tight_sigmaIetaIeta->Write();
2434     h_el_E_tight_pt->Write();
2435     h_el_E_tight_eta->Write();
2436     h_el_E_tight_phi->Write();
2437     h_el_E_tight_fbrem->Write();
2438     h_el_E_tight_basicclustersize->Write();
2439     h_el_E_tight_chi2->Write();
2440     h_el_E_tight_charge->Write();
2441     // --------------------------------------------------------------------------------------------------------------------
2442     // eth/barrel
2443     h_el_B_eth_deltaPhiSuperCluster->Write();
2444     h_el_B_eth_deltaEtaSuperCluster->Write();
2445     h_el_B_eth_deltaPhiSuperCluster2->Write();
2446     h_el_B_eth_deltaEtaSuperCluster2->Write();
2447     h_el_B_eth_caloenergy->Write();
2448     h_el_B_eth_trkmomatvtx->Write();
2449     h_el_B_eth_oneOverEminusOneOverP->Write();
2450     h_el_B_eth_oneOverEminusOneOverP2->Write();
2451     h_el_B_eth_HoverE->Write();
2452     h_el_B_eth_sumPtOverE->Write();
2453     h_el_B_eth_sigmaIetaIeta->Write();
2454     h_el_B_eth_pt->Write();
2455     h_el_B_eth_eta->Write();
2456     h_el_B_eth_phi->Write();
2457     h_el_B_eth_fbrem->Write();
2458     h_el_B_eth_basicclustersize->Write();
2459     h_el_B_eth_chi2->Write();
2460     h_el_B_eth_charge->Write();
2461     // eth/endcaps
2462     h_el_E_eth_deltaPhiSuperCluster->Write();
2463     h_el_E_eth_deltaEtaSuperCluster->Write();
2464     h_el_E_eth_deltaPhiSuperCluster2->Write();
2465     h_el_E_eth_deltaEtaSuperCluster2->Write();
2466     h_el_E_eth_caloenergy->Write();
2467     h_el_E_eth_trkmomatvtx->Write();
2468     h_el_E_eth_oneOverEminusOneOverP->Write();
2469     h_el_E_eth_oneOverEminusOneOverP2->Write();
2470     h_el_E_eth_HoverE->Write();
2471     h_el_E_eth_sumPtOverE->Write();
2472     h_el_E_eth_sigmaIetaIeta->Write();
2473     h_el_E_eth_pt->Write();
2474     h_el_E_eth_eta->Write();
2475     h_el_E_eth_phi->Write();
2476     h_el_E_eth_fbrem->Write();
2477     h_el_E_eth_basicclustersize->Write();
2478     h_el_E_eth_chi2->Write();
2479     h_el_E_eth_charge->Write();
2480     }
2481     // --------------------------------------------------------------------------------------------------------------------
2482     if(writeIdPlots==true) {
2483     for(int i=0;i<MAXE;i++) {
2484     hs_El_ElPt[i]->Write();
2485     hs_El_ElEta[i]->Write();
2486     hs_El_ElPhi[i]->Write();
2487     hs_El_ElDeltaPhi[i]->Write();
2488     hs_El_ElMet[i]->Write();
2489     hs_El_ElTransMass[i]->Write();
2490     hs_El_ElCharge[i]->Write();
2491     hs_El_Njets[i]->Write();
2492     hs_El_ElDeltaPhi[i]->Write();
2493     hs_El_ElDeltaEta[i]->Write();
2494     hs_El_ElOneOverEminusOneOverP[i]->Write();
2495     hs_El_ElTransMass[i]->Write();
2496     hs_El_Njets[i]->Write();
2497     hs_El_ElEthIso[i]->Write();
2498     hs_El_ElTrkIso[i]->Write();
2499     hs_El_ElEcalIso[i]->Write();
2500     hs_El_ElHcalIso[i]->Write();
2501     hs_El_ElHoverE[i]->Write();
2502     hs_El_ElSigmaIetaIeta[i]->Write();
2503     hs_El_ElNumberOfMissingInnerHits[i]->Write();
2504     }
2505     }
2506     if(writeN1Plots==true) {
2507     for(int i=0; i<MAXN; i++) {
2508     hn1_El_ElDeltaPhi[i]->Write();
2509     hn1_El_ElDeltaEta[i]->Write();
2510     hn1_El_ElOneOverEminusOneOverP[i]->Write();
2511    
2512     hn1_El_ElPt[i]->Write();
2513     hn1_El_ElEta[i]->Write();
2514     hn1_El_ElPhi[i]->Write();
2515     hn1_El_ElMet[i]->Write();
2516     hn1_El_ElTransMass[i]->Write();
2517     hn1_El_ElCharge[i]->Write();
2518     hn1_El_Njets[i]->Write();
2519     hn1_El_ElTransMass[i]->Write();
2520     hn1_El_Njets[i]->Write();
2521     hn1_El_ElEthIso[i]->Write();
2522     hn1_El_ElTrkIso[i]->Write();
2523     hn1_El_ElEcalIso[i]->Write();
2524     hn1_El_ElHcalIso[i]->Write();
2525     hn1_El_ElHoverE[i]->Write();
2526     hn1_El_ElSigmaIetaIeta[i]->Write();
2527     hn1_El_ElNumberOfMissingInnerHits[i]->Write();
2528     }
2529     }
2530     if(writeWenuPlots) {
2531     for(int i=0;i<MAXS;i++) {
2532     hs_W_ElPt[i]->Write();
2533     hs_W_ElEta[i]->Write();
2534     hs_W_ElPhi[i]->Write();
2535     hs_W_ElDeltaPhi[i]->Write();
2536     hs_W_ElMet[i]->Write();
2537     hs_W_ElTransMass[i]->Write();
2538     hs_W_ElCharge[i]->Write();
2539     hs_W_Njets[i]->Write();
2540     }
2541     }
2542     std::cout << "analysisClass::Loop() ends" <<std::endl;
2543     }
2544    
2545