CMS 3D CMS Logo

DQMAnalyzer.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Package: RecoEgamma/Examples
4 // Class: GsfElectronDataAnalyzer
5 //
13 //
14 // Original Author: Ursula Berthon
15 // Created: Mon Mar 27 13:22:06 CEST 2006
16 //
17 //
18 
19 // user include files
21 
28 
39 
40 #include "CLHEP/Units/GlobalPhysicalConstants.h"
41 #include <iostream>
42 #include "TMath.h"
43 #include "TFile.h"
44 #include "TH1F.h"
45 #include "TH1I.h"
46 #include "TH2F.h"
47 #include "TProfile.h"
48 #include "TTree.h"
49 #include <iostream>
50 #include <cassert>
51 
52 using namespace reco;
53 
54 
56  beamSpot_(conf.getParameter<edm::InputTag>("beamSpot"))
57 {
58 
59  outputFile_ = conf.getParameter<std::string>("outputFile");
60  electronCollection_=conf.getParameter<edm::InputTag>("electronCollection");
61  matchingObjectCollection_ = conf.getParameter<edm::InputTag>("matchingObjectCollection");
62  matchingCondition_ = conf.getParameter<std::string>("matchingCondition");
63  readAOD_ = conf.getParameter<bool>("readAOD");
64 
65  histfile_ = new TFile(outputFile_.c_str(),"RECREATE");
66 
67  // currently only one possible matching conditions
68  assert(matchingCondition_=="Cone") ;
69  maxPtMatchingObject_ = conf.getParameter<double>("MaxPtMatchingObject");
70  maxAbsEtaMatchingObject_ = conf.getParameter<double>("MaxAbsEtaMatchingObject");
71  deltaR_ = conf.getParameter<double>("DeltaR");
72 
73  Selection_ = conf.getParameter<int>("Selection");
74  massLow_ = conf.getParameter< double >("MassLow");
75  massHigh_ = conf.getParameter< double >("MassHigh");
76  TPchecksign_ = conf.getParameter<bool>("TPchecksign");
77  TAGcheckclass_ = conf.getParameter<bool>("TAGcheckclass");
78  PROBEetcut_ = conf.getParameter<bool>("PROBEetcut");
79  PROBEcheckclass_ = conf.getParameter<bool>("PROBEcheckclass");
80 
81  minEt_ = conf.getParameter<double>("MinEt");
82  minPt_ = conf.getParameter<double>("MinPt");
83  maxAbsEta_ = conf.getParameter<double>("MaxAbsEta");
84  isEB_ = conf.getParameter<bool>("SelectEB");
85  isEE_ = conf.getParameter<bool>("SelectEE");
86  isNotEBEEGap_ = conf.getParameter<bool>("SelectNotEBEEGap");
87  isEcalDriven_ = conf.getParameter<bool>("SelectEcalDriven");
88  isTrackerDriven_ = conf.getParameter<bool>("SelectTrackerDriven");
89  eOverPMinBarrel_ = conf.getParameter<double>("MinEOverPBarrel");
90  eOverPMaxBarrel_ = conf.getParameter<double>("MaxEOverPBarrel");
91  eOverPMinEndcaps_ = conf.getParameter<double>("MinEOverPEndcaps");
92  eOverPMaxEndcaps_ = conf.getParameter<double>("MaxEOverPEndcaps");
93  dEtaMinBarrel_ = conf.getParameter<double>("MinDetaBarrel");
94  dEtaMaxBarrel_ = conf.getParameter<double>("MaxDetaBarrel");
95  dEtaMinEndcaps_ = conf.getParameter<double>("MinDetaEndcaps");
96  dEtaMaxEndcaps_ = conf.getParameter<double>("MaxDetaEndcaps");
97  dPhiMinBarrel_ = conf.getParameter<double>("MinDphiBarrel");
98  dPhiMaxBarrel_ = conf.getParameter<double>("MaxDphiBarrel");
99  dPhiMinEndcaps_ = conf.getParameter<double>("MinDphiEndcaps");
100  dPhiMaxEndcaps_ = conf.getParameter<double>("MaxDphiEndcaps");
101  sigIetaIetaMinBarrel_ = conf.getParameter<double>("MinSigIetaIetaBarrel");
102  sigIetaIetaMaxBarrel_ = conf.getParameter<double>("MaxSigIetaIetaBarrel");
103  sigIetaIetaMinEndcaps_ = conf.getParameter<double>("MinSigIetaIetaEndcaps");
104  sigIetaIetaMaxEndcaps_ = conf.getParameter<double>("MaxSigIetaIetaEndcaps");
105  hadronicOverEmMaxBarrel_ = conf.getParameter<double>("MaxHoEBarrel");
106  hadronicOverEmMaxEndcaps_ = conf.getParameter<double>("MaxHoEEndcaps");
107  mvaMin_ = conf.getParameter<double>("MinMVA");
108  tipMaxBarrel_ = conf.getParameter<double>("MaxTipBarrel");
109  tipMaxEndcaps_ = conf.getParameter<double>("MaxTipEndcaps");
110  tkIso03Max_ = conf.getParameter<double>("MaxTkIso03");
111  hcalIso03Depth1MaxBarrel_ = conf.getParameter<double>("MaxHcalIso03Depth1Barrel");
112  hcalIso03Depth1MaxEndcaps_ = conf.getParameter<double>("MaxHcalIso03Depth1Endcaps");
113  hcalIso03Depth2MaxEndcaps_ = conf.getParameter<double>("MaxHcalIso03Depth2Endcaps");
114  ecalIso03MaxBarrel_ = conf.getParameter<double>("MaxEcalIso03Barrel");
115  ecalIso03MaxEndcaps_ = conf.getParameter<double>("MaxEcalIso03Endcaps");
116 
117  triggerResults_ = conf.getParameter<edm::InputTag>("triggerResults");
118  HLTPathsByName_= conf.getParameter<std::vector<std::string > >("hltPaths");
119  HLTPathsByIndex_.resize(HLTPathsByName_.size());
120 
122  conf.getParameter<edm::ParameterSet>("HistosConfigurationData") ;
123 
124  etamin=pset.getParameter<double>("Etamin");
125  etamax=pset.getParameter<double>("Etamax");
126  phimin=pset.getParameter<double>("Phimin");
127  phimax=pset.getParameter<double>("Phimax");
128  ptmax=pset.getParameter<double>("Ptmax");
129  pmax=pset.getParameter<double>("Pmax");
130  eopmax=pset.getParameter<double>("Eopmax");
131  eopmaxsht=pset.getParameter<double>("Eopmaxsht");
132  detamin=pset.getParameter<double>("Detamin");
133  detamax=pset.getParameter<double>("Detamax");
134  dphimin=pset.getParameter<double>("Dphimin");
135  dphimax=pset.getParameter<double>("Dphimax");
136  detamatchmin=pset.getParameter<double>("Detamatchmin");
137  detamatchmax=pset.getParameter<double>("Detamatchmax");
138  dphimatchmin=pset.getParameter<double>("Dphimatchmin");
139  dphimatchmax=pset.getParameter<double>("Dphimatchmax");
140  fhitsmax=pset.getParameter<double>("Fhitsmax");
141  lhitsmax=pset.getParameter<double>("Lhitsmax");
142  nbineta=pset.getParameter<int>("Nbineta");
143  nbineta2D=pset.getParameter<int>("Nbineta2D");
144  nbinp=pset.getParameter<int>("Nbinp");
145  nbinpt=pset.getParameter<int>("Nbinpt");
146  nbinp2D=pset.getParameter<int>("Nbinp2D");
147  nbinpt2D=pset.getParameter<int>("Nbinpt2D");
148  nbinpteff=pset.getParameter<int>("Nbinpteff");
149  nbinphi=pset.getParameter<int>("Nbinphi");
150  nbinphi2D=pset.getParameter<int>("Nbinphi2D");
151  nbineop=pset.getParameter<int>("Nbineop");
152  nbineop2D=pset.getParameter<int>("Nbineop2D");
153  nbinfhits=pset.getParameter<int>("Nbinfhits");
154  nbinlhits=pset.getParameter<int>("Nbinlhits");
155  nbinxyz=pset.getParameter<int>("Nbinxyz");
156  nbindeta=pset.getParameter<int>("Nbindeta");
157  nbindphi=pset.getParameter<int>("Nbindphi");
158  nbindetamatch=pset.getParameter<int>("Nbindetamatch");
159  nbindphimatch=pset.getParameter<int>("Nbindphimatch");
160  nbindetamatch2D=pset.getParameter<int>("Nbindetamatch2D");
161  nbindphimatch2D=pset.getParameter<int>("Nbindphimatch2D");
162  nbinpoptrue= pset.getParameter<int>("Nbinpoptrue");
163  poptruemin=pset.getParameter<double>("Poptruemin");
164  poptruemax=pset.getParameter<double>("Poptruemax");
165  nbinmee= pset.getParameter<int>("Nbinmee");
166  meemin=pset.getParameter<double>("Meemin");
167  meemax=pset.getParameter<double>("Meemax");
168  nbinhoe= pset.getParameter<int>("Nbinhoe");
169  hoemin=pset.getParameter<double>("Hoemin");
170  hoemax=pset.getParameter<double>("Hoemax");
171 
172 }
173 
174 
176 {
177 
178  // do anything here that needs to be done at desctruction time
179  // (e.g. close files, deallocate resources etc.)
180  histfile_->Write();
181  histfile_->Close();
182 }
183 
184 void
186 
187  histfile_->cd();
188 
189  nEvents_ = 0;
190  nAfterTrigger_ = 0;
191 
192  // matching object
193  std::string::size_type locSC = matchingObjectCollection_.label().find( "SuperCluster", 0 );
194  std::string type ;
195  if ( locSC != std::string::npos ) {
196  std::cout << "Matching objects are SuperClusters "<< std::endl;
197  type = "SC";
198  } else {
199  std::cout << "Didn't recognize input matching objects!! " << std::endl;
200  }
201 
202  //==================================================
203  // matching object distributions
204  //==================================================
205 
206  std::string htitle, hlabel;
207  hlabel="h_"+type+"Num"; htitle="# "+type+"s";
208  h_matchingObjectNum = new TH1F( hlabel.c_str(), htitle.c_str(), nbinfhits,0.,fhitsmax );
209  hlabel="h_"+type+"_eta"; htitle=type+" #eta";
210  h_matchingObjectEta = new TH1F( hlabel.c_str(), htitle.c_str(), nbineta,etamin,etamax);
211  hlabel="h_"+type+"_abseta"; htitle=type+" |#eta|";
212  h_matchingObjectAbsEta = new TH1F( hlabel.c_str(), htitle.c_str(), nbineta/2,0.,etamax);
213  hlabel="h_"+type+"_P"; htitle=type+" p";
214  h_matchingObjectP = new TH1F( hlabel.c_str(), htitle.c_str(), nbinp,0.,pmax);
215  hlabel="h_"+type+"_Pt"; htitle=type+" pt";
216  h_matchingObjectPt = new TH1F( hlabel.c_str(),htitle.c_str(), nbinpteff,5.,ptmax);
217  hlabel="h_"+type+"_phi"; htitle=type+" phi";
218  h_matchingObjectPhi = new TH1F( hlabel.c_str(), htitle.c_str(), nbinphi,phimin,phimax);
219  hlabel="h_"+type+"_z"; htitle=type+" z";
220  h_matchingObjectZ = new TH1F( hlabel.c_str(), htitle.c_str(), nbinxyz , -25, 25 );
221 
222  h_matchingObjectNum->GetXaxis()-> SetTitle("N_{SC}");
223  h_matchingObjectNum->GetYaxis()-> SetTitle("Events");
224  h_matchingObjectEta->GetXaxis()-> SetTitle("#eta_{SC}");
225  h_matchingObjectEta->GetYaxis()-> SetTitle("Events");
226  h_matchingObjectP->GetXaxis()-> SetTitle("E_{SC} (GeV)");
227  h_matchingObjectP->GetYaxis()-> SetTitle("Events");
228 
229  h_ele_matchingObjectEta_matched = new TH1F( "h_ele_matchingObjectEta_matched", "Efficiency vs matching SC #eta", nbineta,etamin,etamax);
231  h_ele_matchingObjectAbsEta_matched = new TH1F( "h_ele_matchingObjectAbsEta_matched", "Efficiency vs matching SC |#eta|", nbineta/2,0.,2.5);
233  h_ele_matchingObjectPt_matched = new TH1F( "h_ele_matchingObjectPt_matched", "Efficiency vs matching SC E_{T}", nbinpteff,5.,ptmax);
235  h_ele_matchingObjectPhi_matched = new TH1F( "h_ele_matchingObjectPhi_matched", "Efficiency vs matching SC phi", nbinphi,phimin,phimax);
237  h_ele_matchingObjectZ_matched = new TH1F( "h_ele_matchingObjectZ_matched", "Efficiency vs matching SC z", nbinxyz,-25,25);
239 
240  //==================================================
241  // caractéristique particule
242  //==================================================
243 
244  h_ele_vertexPt = new TH1F( "h_ele_vertexPt","ele transverse momentum",nbinpt,0.,ptmax);
245  h_ele_Et = new TH1F( "h_ele_Et", "ele SC transverse energy", nbinpt,0.,ptmax);
246  h_ele_vertexEta = new TH1F( "h_ele_vertexEta","ele momentum eta",nbineta,etamin,etamax);
247  h_ele_vertexPhi = new TH1F( "h_ele_vertexPhi","ele momentum #phi",nbinphi,phimin,phimax);
248  h_ele_vertexX = new TH1F( "h_ele_vertexX","ele vertex x",nbinxyz,-0.1,0.1 );
249  h_ele_vertexY = new TH1F( "h_ele_vertexY","ele vertex y",nbinxyz,-0.1,0.1 );
250  h_ele_vertexZ = new TH1F( "h_ele_vertexZ","ele vertex z",nbinxyz,-25, 25 );
251  h_ele_vertexTIP = new TH1F( "h_ele_vertexTIP","ele transverse impact parameter (wrt bs)",90,0.,0.15);
252  h_ele_charge = new TH1F( "h_ele_charge","ele charge",5,-2.,2.);
253 
254  h_ele_charge->GetXaxis()-> SetTitle("charge");
255  h_ele_charge->GetYaxis()-> SetTitle("Events");
256 
257  h_ele_vertexPt->GetXaxis()-> SetTitle("p_{T vertex} (GeV/c)");
258  h_ele_vertexPt->GetYaxis()-> SetTitle("Events");
259 
260  h_ele_Et->GetXaxis()-> SetTitle("E_{T} (GeV)");
261  h_ele_Et->GetYaxis()-> SetTitle("Events");
262 
263  h_ele_vertexEta->GetXaxis()-> SetTitle("#eta");
264  h_ele_vertexEta->GetYaxis()-> SetTitle("Events");
265  h_ele_vertexPhi->GetXaxis()-> SetTitle("#phi (rad)");
266  h_ele_vertexPhi->GetYaxis()-> SetTitle("Events");
267 
268  h_ele_vertexX-> GetXaxis()-> SetTitle("x (cm)");
269  h_ele_vertexX-> GetYaxis()-> SetTitle("Events");
270  h_ele_vertexY-> GetXaxis()-> SetTitle("y (cm)");
271  h_ele_vertexY-> GetYaxis()-> SetTitle("Events");
272  h_ele_vertexZ-> GetXaxis()-> SetTitle("z (cm)");
273  h_ele_vertexZ-> GetYaxis()-> SetTitle("Events");
274 
275  h_ele_vertexTIP-> GetXaxis()-> SetTitle("TIP (cm)");
276  h_ele_vertexTIP-> GetYaxis()-> SetTitle("Events");
277 
278  //==================================================
279  // # rec electrons
280  //==================================================
281 
282  histNum_= new TH1F("h_recEleNum","# rec electrons",20, 0.,20.);
283 
284  histNum_-> GetXaxis()-> SetTitle("N_{ele}");
285  histNum_-> GetYaxis()-> SetTitle("Events");
286 
287  //==================================================
288  // SuperClusters
289  //==================================================
290 
291  histSclEn_ = new TH1F("h_scl_energy","ele supercluster energy",nbinp,0.,pmax);
292  histSclEt_ = new TH1F("h_scl_et","ele supercluster transverse energy",nbinpt,0.,ptmax);
293  histSclEta_ = new TH1F("h_scl_eta","ele supercluster eta",nbineta,etamin,etamax);
294  histSclPhi_ = new TH1F("h_scl_phi","ele supercluster phi",nbinphi,phimin,phimax);
295  histSclSigEtaEta_ = new TH1F("h_scl_sigetaeta","ele supercluster sigma eta eta",100,0.,0.05);
296 
297  //==================================================
298  // electron track
299  //==================================================
300 
301  h_ele_ambiguousTracks = new TH1F( "h_ele_ambiguousTracks", "ele # ambiguous tracks", 5,0.,5.);
302  h_ele_ambiguousTracksVsEta = new TH2F( "h_ele_ambiguousTracksVsEta","ele # ambiguous tracks vs eta", nbineta2D,etamin,etamax,5,0.,5.);
303  h_ele_ambiguousTracksVsPhi = new TH2F( "h_ele_ambiguousTracksVsPhi", "ele # ambiguous tracks vs phi", nbinphi2D,phimin,phimax,5,0.,5.);
304  h_ele_ambiguousTracksVsPt = new TH2F( "h_ele_ambiguousTracksVsPt", "ele # ambiguous tracks vs pt", nbinpt2D,0.,ptmax,5,0.,5.);
305  h_ele_foundHits = new TH1F( "h_ele_foundHits", "ele track # found hits", nbinfhits,0.,fhitsmax);
306  h_ele_foundHitsVsEta = new TH2F( "h_ele_foundHitsVsEta", "ele track # found hits vs eta", nbineta2D,etamin,etamax,nbinfhits,0.,fhitsmax);
307  h_ele_foundHitsVsPhi = new TH2F( "h_ele_foundHitsVsPhi", "ele track # found hits vs phi", nbinphi2D,phimin,phimax,nbinfhits,0.,fhitsmax);
308  h_ele_foundHitsVsPt = new TH2F( "h_ele_foundHitsVsPt", "ele track # found hits vs pt", nbinpt2D,0.,ptmax,nbinfhits,0.,fhitsmax);
309  h_ele_lostHits = new TH1F( "h_ele_lostHits", "ele track # lost hits", 5,0.,5.);
310  h_ele_lostHitsVsEta = new TH2F( "h_ele_lostHitsVsEta", "ele track # lost hits vs eta", nbineta2D,etamin,etamax,nbinlhits,0.,lhitsmax);
311  h_ele_lostHitsVsPhi = new TH2F( "h_ele_lostHitsVsPhi", "ele track # lost hits vs eta", nbinphi2D,phimin,phimax,nbinlhits,0.,lhitsmax);
312  h_ele_lostHitsVsPt = new TH2F( "h_ele_lostHitsVsPt", "ele track # lost hits vs eta", nbinpt2D,0.,ptmax,nbinlhits,0.,lhitsmax);
313  h_ele_chi2 = new TH1F( "h_ele_chi2", "ele track #chi^{2}", 100,0.,15.);
314  h_ele_chi2VsEta = new TH2F( "h_ele_chi2VsEta", "ele track #chi^{2} vs eta", nbineta2D,etamin,etamax,50,0.,15.);
315  h_ele_chi2VsPhi = new TH2F( "h_ele_chi2VsPhi", "ele track #chi^{2} vs phi", nbinphi2D,phimin,phimax,50,0.,15.);
316  h_ele_chi2VsPt = new TH2F( "h_ele_chi2VsPt", "ele track #chi^{2} vs pt", nbinpt2D,0.,ptmax,50,0.,15.);
317 
318  h_ele_foundHits->GetXaxis()-> SetTitle("N_{hits}");
319  h_ele_foundHits->GetYaxis()-> SetTitle("Events");
320  h_ele_lostHits->GetXaxis()-> SetTitle("N_{lost hits}");
321  h_ele_lostHits->GetYaxis()-> SetTitle("Events");
322  h_ele_chi2->GetXaxis()-> SetTitle("#Chi^{2}");
323  h_ele_chi2->GetYaxis()-> SetTitle("Events");
324 
325  //==================================================
326  // electron matching and ID
327  //==================================================
328 
329  h_ele_EoP = new TH1F( "h_ele_EoP", "ele E/P_{vertex}", nbineop,0.,eopmax);
330 // h_ele_EoPout = new TH1F( "h_ele_EoPout", "ele E/P_{out}", nbineop,0.,eopmax);
331  h_ele_EeleOPout = new TH1F( "h_ele_EeleOPout", "ele E_{ele}/P_{out}", nbineop,0.,eopmax);
332  h_ele_dEtaSc_propVtx = new TH1F( "h_ele_dEtaSc_propVtx", "ele #eta_{sc} - #eta_{tr}, prop from vertex", nbindetamatch,detamatchmin,detamatchmax);
333  h_ele_dPhiSc_propVtx = new TH1F( "h_ele_dPhiSc_propVtx", "ele #phi_{sc} - #phi_{tr}, prop from vertex", nbindphimatch,dphimatchmin,dphimatchmax);
334  h_ele_dEtaCl_propOut = new TH1F( "h_ele_dEtaCl_propOut", "ele #eta_{cl} - #eta_{tr}, prop from outermost", nbindetamatch,detamatchmin,detamatchmax);
335  h_ele_dPhiCl_propOut = new TH1F( "h_ele_dPhiCl_propOut", "ele #phi_{cl} - #phi_{tr}, prop from outermost", nbindphimatch,dphimatchmin,dphimatchmax);
336  h_ele_dEtaEleCl_propOut = new TH1F( "h_ele_dEtaEleCl_propOut", "ele #eta_{EleCl} - #eta_{tr}, prop from outermost", nbindetamatch,detamatchmin,detamatchmax);
337  h_ele_dPhiEleCl_propOut = new TH1F( "h_ele_dPhiEleCl_propOut", "ele #phi_{EleCl} - #phi_{tr}, prop from outermost", nbindphimatch,dphimatchmin,dphimatchmax);
338  h_ele_HoE = new TH1F("h_ele_HoE", "ele hadronic energy / em energy", nbinhoe, hoemin, hoemax) ;
339  h_ele_outerP = new TH1F( "h_ele_outerP", "ele track outer p, mean", nbinp,0.,pmax);
340  h_ele_outerP_mode = new TH1F( "h_ele_outerP_mode", "ele track outer p, mode", nbinp,0.,pmax);
341  h_ele_outerPt = new TH1F( "h_ele_outerPt", "ele track outer p_{T}, mean", nbinpt,0.,ptmax);
342  h_ele_outerPt_mode = new TH1F( "h_ele_outerPt_mode", "ele track outer p_{T}, mode", nbinpt,0.,ptmax);
343 
344  h_ele_PinMnPout = new TH1F( "h_ele_PinMnPout", "ele track inner p - outer p, mean" ,nbinp,0.,200.);
345  h_ele_PinMnPout_mode = new TH1F( "h_ele_PinMnPout_mode", "ele track inner p - outer p, mode" ,nbinp,0.,100.);
346 
347  h_ele_mva = new TH1F( "h_ele_mva","ele identification mva",100,-1.,1.);
348  h_ele_provenance = new TH1F( "h_ele_provenance","ele provenance",5,-2.,3.);
349 
350  h_ele_PinMnPout->GetXaxis()-> SetTitle("P_{vertex} - P_{out} (GeV/c)");
351  h_ele_PinMnPout->GetYaxis()-> SetTitle("Events");
352  h_ele_PinMnPout_mode->GetXaxis()-> SetTitle("P_{vertex} - P_{out}, mode (GeV/c)");
353  h_ele_PinMnPout_mode->GetYaxis()-> SetTitle("Events");
354 
355  h_ele_outerP->GetXaxis()-> SetTitle("P_{out} (GeV/c)");
356  h_ele_outerP->GetYaxis()-> SetTitle("Events");
357  h_ele_outerP_mode->GetXaxis()-> SetTitle("P_{out} (GeV/c)");
358  h_ele_outerP_mode->GetYaxis()-> SetTitle("Events");
359 
360  h_ele_outerPt->GetXaxis()-> SetTitle("P_{T out} (GeV/c)");
361  h_ele_outerPt->GetYaxis()-> SetTitle("Events");
362  h_ele_outerPt_mode->GetXaxis()-> SetTitle("P_{T out} (GeV/c)");
363  h_ele_outerPt_mode->GetYaxis()-> SetTitle("Events");
364 
365  h_ele_EoP->GetXaxis()-> SetTitle("E/P_{vertex}");
366  h_ele_EoP->GetYaxis()-> SetTitle("Events");
367 
368 // h_ele_EoPout->GetXaxis()-> SetTitle("E_{seed}/P_{out}");
369 // h_ele_EoPout->GetYaxis()-> SetTitle("Events");
370  h_ele_EeleOPout->GetXaxis()-> SetTitle("E_{ele}/P_{out}");
371  h_ele_EeleOPout->GetYaxis()-> SetTitle("Events");
372 
373  h_ele_dEtaSc_propVtx-> GetXaxis()-> SetTitle("#eta_{sc} - #eta_{tr}");
374  h_ele_dEtaSc_propVtx-> GetYaxis()-> SetTitle("Events");
375  h_ele_dEtaCl_propOut-> GetXaxis()-> SetTitle("#eta_{seedcl} - #eta_{tr}");
376  h_ele_dEtaCl_propOut-> GetYaxis()-> SetTitle("Events");
377  h_ele_dEtaEleCl_propOut-> GetXaxis()-> SetTitle("#eta_{elecl} - #eta_{tr}");
378  h_ele_dEtaEleCl_propOut-> GetYaxis()-> SetTitle("Events");
379  h_ele_dPhiSc_propVtx-> GetXaxis()-> SetTitle("#phi_{sc} - #phi_{tr} (rad)");
380  h_ele_dPhiSc_propVtx-> GetYaxis()-> SetTitle("Events");
381  h_ele_dPhiCl_propOut-> GetXaxis()-> SetTitle("#phi_{seedcl} - #phi_{tr} (rad)");
382  h_ele_dPhiCl_propOut-> GetYaxis()-> SetTitle("Events");
383  h_ele_dPhiEleCl_propOut-> GetXaxis()-> SetTitle("#phi_{elecl} - #phi_{tr} (rad)");
384  h_ele_dPhiEleCl_propOut-> GetYaxis()-> SetTitle("Events");
385  h_ele_HoE-> GetXaxis()-> SetTitle("H/E") ;
386  h_ele_HoE-> GetYaxis()-> SetTitle("Events") ;
387 
388  //==================================================
389  // isolation
390  //==================================================
391 
392  h_ele_tkSumPt_dr03 = new TH1F("h_ele_tkSumPt_dr03","tk isolation sum, dR=0.3",100,0.0,20.);
393  h_ele_ecalRecHitSumEt_dr03= new TH1F("h_ele_ecalRecHitSumEt_dr03","ecal isolation sum, dR=0.3",100,0.0,20.);
394  h_ele_hcalDepth1TowerSumEt_dr03= new TH1F("h_ele_hcalDepth1TowerSumEt_dr03","hcal depth1 isolation sum, dR=0.3",100,0.0,20.);
395  h_ele_hcalDepth2TowerSumEt_dr03= new TH1F("h_ele_hcalDepth2TowerSumEt_dr03","hcal depth2 isolation sum, dR=0.3",100,0.0,20.);
396  h_ele_tkSumPt_dr04= new TH1F("h_ele_tkSumPt_dr04","hcal isolation sum",100,0.0,20.);
397  h_ele_ecalRecHitSumEt_dr04= new TH1F("h_ele_ecalRecHitSumEt_dr04","ecal isolation sum, dR=0.4",100,0.0,20.);
398  h_ele_hcalDepth1TowerSumEt_dr04= new TH1F("h_ele_hcalDepth1TowerSumEt_dr04","hcal depth1 isolation sum, dR=0.4",100,0.0,20.);
399  h_ele_hcalDepth2TowerSumEt_dr04= new TH1F("h_ele_hcalDepth2TowerSumEt_dr04","hcal depth2 isolation sum, dR=0.4",100,0.0,20.);
400 
401  //==================================================
402  // T&P
403  //==================================================
404  h_ele_mee_os = new TH1F( "h_ele_mee_os", "ele pairs invariant mass, opposite sign", nbinmee, meemin, meemax );
405 
406 
407  //==================================================
408  // OBSOLETE
409  //==================================================
410 
411  // h_ele_PtoPtmatchingObject_matched = new TH1F( "h_ele_PtoPtmatchingObject_matched", "ele trans momentum / matching SC trans energy", nbinpoptrue,poptruemin,poptruemax);
412  // h_ele_PtoPtmatchingObject_barrel_matched = new TH1F( "h_ele_PtoPmatchingObject_barrel_matched", "ele trans momentum / matching SC trans energy, barrel",nbinpoptrue,poptruemin,poptruemax);
413  // h_ele_PtoPtmatchingObject_endcaps_matched = new TH1F( "h_ele_PtoPmatchingObject_endcaps_matched", "ele trans momentum / matching SC trans energy, endcaps",nbinpoptrue,poptruemin,poptruemax);
414  // h_ele_PoPmatchingObject_matched = new TH1F( "h_ele_PoPmatchingObject_matched", "ele momentum / matching SC energy", nbinpoptrue,poptruemin,poptruemax);
415  // h_ele_PoPmatchingObject_barrel_matched = new TH1F( "h_ele_PoPmatchingObject_barrel_matched", "ele momentum / matching SC energy, barrel",nbinpoptrue,poptruemin,poptruemax);
416  // h_ele_PoPmatchingObject_endcaps_matched = new TH1F( "h_ele_PoPmatchingObject_endcaps_matched", "ele momentum / matching SC energy, endcaps",nbinpoptrue,poptruemin,poptruemax);
417  // // h_ele_PtoPtmatchingObject_matched = new TH1F( "h_ele_PtoPtmatchingObject_matched", "ele trans momentum / matching SC trans energy", nbinpoptrue,poptruemin,poptruemax);
418  // h_ele_EtaMnEtamatchingObject_matched = new TH1F( "h_ele_EtaMnEtamatchingObject_matched", "ele momentum eta - matching SC eta",nbindeta,detamin,detamax);
419  // h_ele_PhiMnPhimatchingObject_matched = new TH1F( "h_ele_PhiMnPhimatchingObject_matched", "ele momentum phi - matching SC phi",nbindphi,dphimin,dphimax);
420  // h_ele_PhiMnPhimatchingObject2_matched = new TH1F( "h_ele_PhiMnPhimatchingObject2_matched", "ele momentum phi - matching SC phi",nbindphimatch2D,dphimatchmin,dphimatchmax);
421 
422  // h_ele_PoPmatchingObject_matched->GetXaxis()-> SetTitle("P/E_{SC}");
423  // h_ele_PoPmatchingObject_matched->GetYaxis()-> SetTitle("Events");
424  // h_ele_PoPmatchingObject_barrel_matched->GetXaxis()-> SetTitle("P/E_{SC}");
425  // h_ele_PoPmatchingObject_barrel_matched->GetYaxis()-> SetTitle("Events");
426  // h_ele_PoPmatchingObject_endcaps_matched->GetXaxis()-> SetTitle("P/E_{SC}");
427  // h_ele_PoPmatchingObject_endcaps_matched->GetYaxis()-> SetTitle("Events");
428  // h_ele_PtoPtmatchingObject_matched->GetXaxis()-> SetTitle("P_{T}/E_{T}^{SC}");
429  // h_ele_PtoPtmatchingObject_matched->GetYaxis()-> SetTitle("Events");
430  // h_ele_PtoPtmatchingObject_barrel_matched->GetXaxis()-> SetTitle("P_{T}/E_{T}^{SC}");
431  // h_ele_PtoPtmatchingObject_barrel_matched->GetYaxis()-> SetTitle("Events");
432  // h_ele_PtoPtmatchingObject_endcaps_matched->GetXaxis()-> SetTitle("P_{T}/E_{T}^{SC}");
433  // h_ele_PtoPtmatchingObject_endcaps_matched->GetYaxis()-> SetTitle("Events");
434  //
435  // h_ele_EtaMnEtamatchingObject_matched->GetXaxis()-> SetTitle("#eta_{rec} - #eta_{SC}");
436  // h_ele_EtaMnEtamatchingObject_matched->GetYaxis()-> SetTitle("Events");
437  // h_ele_PhiMnPhimatchingObject_matched->GetXaxis()-> SetTitle("#phi_{rec} - #phi_{SC} (rad)");
438  // h_ele_PhiMnPhimatchingObject_matched->GetYaxis()-> SetTitle("Events");
439  // h_ele_EtaMnEtamatchingObject_matched->GetXaxis()-> SetTitle("#eta_{rec} - #eta_{SC}");
440  // h_ele_EtaMnEtamatchingObject_matched->GetYaxis()-> SetTitle("Events");
441  // h_ele_PhiMnPhimatchingObject_matched->GetXaxis()-> SetTitle("#phi_{rec} - #phi_{SC} (rad)");
442  // h_ele_PhiMnPhimatchingObject_matched->GetYaxis()-> SetTitle("Events");
443  }
444 
445 
446 void
448 
449  histfile_->cd();
450  std::cout << "efficiency calculation " << std::endl;
451 
452  // efficiency vs pt
453  TH1F *h_ele_ptEff = (TH1F*)h_ele_matchingObjectPt_matched->Clone("h_ele_ptEff");
454  h_ele_ptEff->Reset();
455  h_ele_ptEff->Divide(h_ele_matchingObjectPt_matched,h_matchingObjectPt,1,1,"b");
456  h_ele_ptEff->GetXaxis()->SetTitle("p_{T} (GeV/c)");
457  h_ele_ptEff->GetYaxis()->SetTitle("Efficiency");
458 
459  // efficiency vs eta
460  TH1F *h_ele_etaEff = (TH1F*)h_ele_matchingObjectEta_matched->Clone("h_ele_etaEff");
461  h_ele_etaEff->Reset();
462  h_ele_etaEff->Divide(h_ele_matchingObjectEta_matched,h_matchingObjectEta,1,1,"b");
463  h_ele_etaEff->Print();
464  h_ele_etaEff->GetXaxis()->SetTitle("#eta");
465  h_ele_etaEff->GetYaxis()->SetTitle("Efficiency");
466 
467  // efficiency vs |eta|
468  TH1F *h_ele_absetaEff = (TH1F*)h_ele_matchingObjectAbsEta_matched->Clone("h_ele_absetaEff");
469  h_ele_absetaEff->Reset();
470  h_ele_absetaEff->Divide(h_ele_matchingObjectAbsEta_matched,h_matchingObjectAbsEta,1,1,"b");
471  h_ele_absetaEff->GetXaxis()->SetTitle("|#eta|");
472  h_ele_absetaEff->GetYaxis()->SetTitle("Efficiency");
473 
474  // efficiency vs phi
475  TH1F *h_ele_phiEff = (TH1F*)h_ele_matchingObjectPhi_matched->Clone("h_ele_phiEff");
476  h_ele_phiEff->Reset();
477  h_ele_phiEff->Divide(h_ele_matchingObjectPhi_matched,h_matchingObjectPhi,1,1,"b");
478  h_ele_phiEff->GetXaxis()->SetTitle("#phi (rad)");
479  h_ele_phiEff->GetYaxis()->SetTitle("Efficiency");
480 
481  // efficiency vs z
482  TH1F *h_ele_zEff = (TH1F*)h_ele_matchingObjectZ_matched->Clone("h_ele_zEff");
483  h_ele_zEff->Reset();
484  h_ele_zEff->Divide(h_ele_matchingObjectZ_matched,h_matchingObjectZ,1,1,"b");
485  h_ele_zEff->Print();
486  h_ele_zEff->GetXaxis()->SetTitle("z (cm)");
487  h_ele_zEff->GetYaxis()->SetTitle("Efficiency");
488 
489 
490 
491  // classes
492 
493 
494  // fbrem
495 
496  //profiles from 2D histos
497 
498  // mc truth
499 
500  h_matchingObjectNum->Write();
501 
502  // rec event
503 
504  histNum_->Write();
505 
506  // mc
507  h_matchingObjectEta->Write();
508  h_matchingObjectAbsEta->Write();
509  h_matchingObjectP->Write();
510  h_matchingObjectPt->Write();
511  h_matchingObjectPhi->Write();
512  h_matchingObjectZ->Write();
513 
514 
515 
516  // matched electrons
517  h_ele_charge->Write();
518 
519  //h_ele_vertexP->Write();
520  h_ele_vertexPt->Write();
521  h_ele_vertexEta->Write();
522  h_ele_vertexPhi->Write();
523  h_ele_vertexX->Write();
524  h_ele_vertexY ->Write();
525  h_ele_vertexZ->Write();
526 
527  h_ele_vertexTIP->Write();
528 
529  h_ele_Et->Write();
530 
536 
537 // h_ele_PoPmatchingObject_matched->Write();
538 // h_ele_PtoPtmatchingObject_matched->Write();
539 // h_ele_PoPmatchingObject_barrel_matched ->Write();
540 // h_ele_PoPmatchingObject_endcaps_matched->Write();
541 // h_ele_PtoPtmatchingObject_barrel_matched ->Write();
542 // h_ele_PtoPtmatchingObject_endcaps_matched->Write();
543 // h_ele_EtaMnEtamatchingObject_matched->Write();
544 // h_ele_PhiMnPhimatchingObject_matched ->Write();
545 // h_ele_PhiMnPhimatchingObject2_matched ->Write();
546 
547 
548  // matched electron, superclusters
549  histSclEn_->Write();
550  histSclEt_->Write();
551  histSclEta_->Write();
552  histSclPhi_->Write();
553  histSclSigEtaEta_->Write();
554 
555  // matched electron, gsf tracks
556  h_ele_ambiguousTracks->Write();
559  h_ele_ambiguousTracksVsPt->Write();
560 
561  h_ele_foundHits->Write();
562  h_ele_foundHitsVsEta->Write();
563  h_ele_foundHitsVsPhi->Write();
564  h_ele_foundHitsVsPt->Write();
565 
566  h_ele_lostHits->Write();
567  h_ele_lostHitsVsEta->Write();
568  h_ele_lostHitsVsPhi->Write();
569  h_ele_lostHitsVsPt->Write();
570 
571  h_ele_chi2 ->Write();
572  h_ele_chi2VsEta ->Write();
573  h_ele_chi2VsPhi ->Write();
574  h_ele_chi2VsPt->Write();
575 
576  h_ele_PinMnPout->Write();
577  h_ele_PinMnPout_mode->Write();
578  h_ele_outerP ->Write();
579  h_ele_outerP_mode->Write();
580  h_ele_outerPt->Write();
581  h_ele_outerPt_mode ->Write();
582 
583  // matched electrons, matching
584  h_ele_EoP ->Write();
585 // h_ele_EoPout->Write();
586  h_ele_EeleOPout->Write();
587  h_ele_dEtaSc_propVtx->Write();
588  h_ele_dPhiSc_propVtx->Write();
589  h_ele_dEtaCl_propOut->Write();
590  h_ele_dPhiCl_propOut->Write();
591  h_ele_dEtaEleCl_propOut->Write();
592  h_ele_dPhiEleCl_propOut->Write();
593  h_ele_HoE->Write();
594 
595 
596 
597  h_ele_mee_os-> GetXaxis()-> SetTitle("m_{e^{+}e^{-}} (GeV/c^{2})");
598  h_ele_mee_os-> GetYaxis()-> SetTitle("Events");
599  h_ele_mee_os->Write();
600 
601  // classes
602 
603  // fbrem
604 
605  // Eff
606  h_ele_etaEff->Write();
607  h_ele_zEff->Write();
608  h_ele_phiEff->Write();
609  h_ele_absetaEff->Write();
610  h_ele_ptEff->Write();
611 
612 
613  // e/g et pflow electrons
614  h_ele_mva->Write();
615  h_ele_provenance->Write();
616 
617  // isolation
618  h_ele_tkSumPt_dr03->GetXaxis()->SetTitle("TkIsoSum, cone 0.3 (GeV/c)");
619  h_ele_tkSumPt_dr03->GetYaxis()->SetTitle("Events");
620  h_ele_ecalRecHitSumEt_dr03->GetXaxis()->SetTitle("EcalIsoSum, cone 0.3 (GeV)");
621  h_ele_ecalRecHitSumEt_dr03->GetYaxis()->SetTitle("Events");
622  h_ele_hcalDepth1TowerSumEt_dr03->GetXaxis()->SetTitle("Hcal1IsoSum, cone 0.3 (GeV)");
623  h_ele_hcalDepth1TowerSumEt_dr03->GetYaxis()->SetTitle("Events");
624  h_ele_hcalDepth2TowerSumEt_dr03->GetXaxis()->SetTitle("Hcal2IsoSum, cone 0.3 (GeV)");
625  h_ele_hcalDepth2TowerSumEt_dr03->GetYaxis()->SetTitle("Events");
626  h_ele_tkSumPt_dr04->GetXaxis()->SetTitle("TkIsoSum, cone 0.4 (GeV/c)");
627  h_ele_tkSumPt_dr04->GetYaxis()->SetTitle("Events");
628  h_ele_ecalRecHitSumEt_dr04->GetXaxis()->SetTitle("EcalIsoSum, cone 0.4 (GeV)");
629  h_ele_ecalRecHitSumEt_dr04->GetYaxis()->SetTitle("Events");
630  h_ele_hcalDepth1TowerSumEt_dr04->GetXaxis()->SetTitle("Hcal1IsoSum, cone 0.4 (GeV)");
631  h_ele_hcalDepth1TowerSumEt_dr04->GetYaxis()->SetTitle("Events");
632  h_ele_hcalDepth2TowerSumEt_dr04->GetXaxis()->SetTitle("Hcal2IsoSum, cone 0.4 (GeV)");
633  h_ele_hcalDepth2TowerSumEt_dr04->GetYaxis()->SetTitle("Events");
634 
635  h_ele_tkSumPt_dr03->Write();
639  h_ele_tkSumPt_dr04->Write();
643 
644  }
645 
646 
647 void
649  {
650  edm::LogInfo("DQMAnalyzer::analyze")<<"Treating event "<<iEvent.id() ;
651  nEvents_++ ;
652  if (!trigger(iEvent)) return ;
653  nAfterTrigger_++ ;
654  edm::LogInfo("DQMAnalyzer::analyze")<<"Trigger OK" ;
656  iEvent.getByLabel(electronCollection_,gsfElectrons);
657  edm::LogInfo("DQMAnalyzer::analyze")<<"Event has "<<gsfElectrons.product()->size()<<" electrons" ;
659  iEvent.getByLabel(matchingObjectCollection_,recoClusters);
660  edm::Handle<reco::BeamSpot> recoBeamSpotHandle;
661  iEvent.getByLabel(beamSpot_, recoBeamSpotHandle);
662  const reco::BeamSpot bs = *recoBeamSpotHandle;
663  histNum_->Fill((*gsfElectrons).size());
664 
665  // selected rec electrons
666  reco::GsfElectronCollection::const_iterator gsfIter ;
667  for
668  ( gsfIter=gsfElectrons->begin() ;
669  gsfIter!=gsfElectrons->end();
670  gsfIter++ )
671  {
672  // vertex TIP
673  double vertexTIP =
674  (gsfIter->vertex().x()-bs.position().x()) * (gsfIter->vertex().x()-bs.position().x()) +
675  (gsfIter->vertex().y()-bs.position().y()) * (gsfIter->vertex().y()-bs.position().y()) ;
676  vertexTIP = sqrt(vertexTIP) ;
677 
678  // select electrons
679  if (!selected(gsfIter,vertexTIP)) continue ;
680 
681  // electron related distributions
682  h_ele_charge->Fill( gsfIter->charge() );
683  //h_ele_vertexP->Fill( gsfIter->p() );
684  h_ele_vertexPt->Fill( gsfIter->pt() );
685  h_ele_Et->Fill( gsfIter->superCluster()->energy()/cosh( gsfIter->superCluster()->eta()) );
686  h_ele_vertexEta->Fill( gsfIter->eta() );
687  h_ele_vertexPhi->Fill( gsfIter->phi() );
688  h_ele_vertexX->Fill( gsfIter->vertex().x() );
689  h_ele_vertexY->Fill( gsfIter->vertex().y() );
690  h_ele_vertexZ->Fill( gsfIter->vertex().z() );
691  h_ele_vertexTIP->Fill( vertexTIP );
692 
693  // supercluster related distributions
694  reco::SuperClusterRef sclRef = gsfIter->superCluster() ;
695  // ALREADY DONE IN GSF ELECTRON CORE
696  // if (!gsfIter->ecalDrivenSeed()&&gsfIter->trackerDrivenSeed())
697  // sclRef = gsfIter->parentSuperCluster() ;
698  histSclEn_->Fill(sclRef->energy());
699  double R=TMath::Sqrt(sclRef->x()*sclRef->x() + sclRef->y()*sclRef->y() +sclRef->z()*sclRef->z());
700  double Rt=TMath::Sqrt(sclRef->x()*sclRef->x() + sclRef->y()*sclRef->y());
701  histSclEt_->Fill(sclRef->energy()*(Rt/R));
702  histSclEta_->Fill(sclRef->eta());
703  histSclPhi_->Fill(sclRef->phi());
704  histSclSigEtaEta_->Fill(gsfIter->scSigmaEtaEta());
705 
706  // track related distributions
707  h_ele_ambiguousTracks->Fill( gsfIter->ambiguousGsfTracksSize() );
708  h_ele_ambiguousTracksVsEta->Fill( gsfIter->eta(), gsfIter->ambiguousGsfTracksSize() );
709  h_ele_ambiguousTracksVsPhi->Fill( gsfIter->phi(), gsfIter->ambiguousGsfTracksSize() );
710  h_ele_ambiguousTracksVsPt->Fill( gsfIter->pt(), gsfIter->ambiguousGsfTracksSize() );
711  if (!readAOD_)
712  { // track extra does not exist in AOD
713  h_ele_foundHits->Fill( gsfIter->gsfTrack()->numberOfValidHits() );
714  h_ele_foundHitsVsEta->Fill( gsfIter->eta(), gsfIter->gsfTrack()->numberOfValidHits() );
715  h_ele_foundHitsVsPhi->Fill( gsfIter->phi(), gsfIter->gsfTrack()->numberOfValidHits() );
716  h_ele_foundHitsVsPt->Fill( gsfIter->pt(), gsfIter->gsfTrack()->numberOfValidHits() );
717  h_ele_lostHits->Fill( gsfIter->gsfTrack()->numberOfLostHits() );
718  h_ele_lostHitsVsEta->Fill( gsfIter->eta(), gsfIter->gsfTrack()->numberOfLostHits() );
719  h_ele_lostHitsVsPhi->Fill( gsfIter->phi(), gsfIter->gsfTrack()->numberOfLostHits() );
720  h_ele_lostHitsVsPt->Fill( gsfIter->pt(), gsfIter->gsfTrack()->numberOfLostHits() );
721  h_ele_chi2->Fill( gsfIter->gsfTrack()->normalizedChi2() );
722  h_ele_chi2VsEta->Fill( gsfIter->eta(), gsfIter->gsfTrack()->normalizedChi2() );
723  h_ele_chi2VsPhi->Fill( gsfIter->phi(), gsfIter->gsfTrack()->normalizedChi2() );
724  h_ele_chi2VsPt->Fill( gsfIter->pt(), gsfIter->gsfTrack()->normalizedChi2() );
725  }
726 
727  // from gsf track interface, hence using mean
728  if (!readAOD_)
729  { // track extra does not exist in AOD
730  h_ele_PinMnPout->Fill( gsfIter->gsfTrack()->innerMomentum().R() - gsfIter->gsfTrack()->outerMomentum().R() );
731  h_ele_outerP->Fill( gsfIter->gsfTrack()->outerMomentum().R() );
732  h_ele_outerPt->Fill( gsfIter->gsfTrack()->outerMomentum().Rho() );
733  }
734 
735  // from electron interface, hence using mode
736  h_ele_PinMnPout_mode->Fill( gsfIter->trackMomentumAtVtx().R() - gsfIter->trackMomentumOut().R() );
737  h_ele_outerP_mode->Fill( gsfIter->trackMomentumOut().R() );
738  h_ele_outerPt_mode->Fill( gsfIter->trackMomentumOut().Rho() );
739 
740  /*
741  if (!readAOD_) { // track extra does not exist in AOD
742  edm::RefToBase<TrajectorySeed> seed = gsfIter->gsfTrack()->extra()->seedRef();
743  ElectronSeedRef elseed=seed.castTo<ElectronSeedRef>();
744  h_ele_seed_dphi2_-> Fill(elseed->dPhi2());
745  h_ele_seed_dphi2VsEta_-> Fill(gsfIter->eta(), elseed->dPhi2());
746  h_ele_seed_dphi2VsPt_-> Fill(gsfIter->pt(), elseed->dPhi2()) ;
747  h_ele_seed_drz2_-> Fill(elseed->dRz2());
748  h_ele_seed_drz2VsEta_-> Fill(gsfIter->eta(), elseed->dRz2());
749  h_ele_seed_drz2VsPt_-> Fill(gsfIter->pt(), elseed->dRz2());
750  h_ele_seed_subdet2_-> Fill(elseed->subDet2());
751  }
752  */
753 
754  // match distributions
755  h_ele_EoP->Fill( gsfIter->eSuperClusterOverP() );
756  h_ele_EeleOPout->Fill( gsfIter->eEleClusterOverPout() );
757  h_ele_dEtaSc_propVtx->Fill(gsfIter->deltaEtaSuperClusterTrackAtVtx());
758  h_ele_dPhiSc_propVtx->Fill(gsfIter->deltaPhiSuperClusterTrackAtVtx());
759  h_ele_dEtaCl_propOut->Fill(gsfIter->deltaEtaSeedClusterTrackAtCalo());
760  h_ele_dPhiCl_propOut->Fill(gsfIter->deltaPhiSeedClusterTrackAtCalo());
761  h_ele_dEtaEleCl_propOut->Fill(gsfIter->deltaEtaEleClusterTrackAtCalo());
762  h_ele_dPhiEleCl_propOut->Fill(gsfIter->deltaPhiEleClusterTrackAtCalo());
763  h_ele_HoE->Fill(gsfIter->hadronicOverEm());
764 
765  //classes
766 
767  //fbrem
768 
769  h_ele_mva->Fill(gsfIter->mva_e_pi()) ;
770  if (gsfIter->ecalDrivenSeed()) h_ele_provenance->Fill(1.) ;
771  if (gsfIter->trackerDrivenSeed()) h_ele_provenance->Fill(-1.) ;
772  if (gsfIter->trackerDrivenSeed()||gsfIter->ecalDrivenSeed()) h_ele_provenance->Fill(0.);
773  if (gsfIter->trackerDrivenSeed()&&!gsfIter->ecalDrivenSeed()) h_ele_provenance->Fill(-2.);
774  if (!gsfIter->trackerDrivenSeed()&&gsfIter->ecalDrivenSeed()) h_ele_provenance->Fill(2.);
775 
776  h_ele_tkSumPt_dr03->Fill(gsfIter->dr03TkSumPt());
777  h_ele_ecalRecHitSumEt_dr03->Fill(gsfIter->dr03EcalRecHitSumEt());
778  h_ele_hcalDepth1TowerSumEt_dr03->Fill(gsfIter->dr03HcalDepth1TowerSumEt());
779  h_ele_hcalDepth2TowerSumEt_dr03->Fill(gsfIter->dr03HcalDepth2TowerSumEt());
780  h_ele_tkSumPt_dr04->Fill(gsfIter->dr04TkSumPt());
781  h_ele_ecalRecHitSumEt_dr04->Fill(gsfIter->dr04EcalRecHitSumEt());
782  h_ele_hcalDepth1TowerSumEt_dr04->Fill(gsfIter->dr04HcalDepth1TowerSumEt());
783  h_ele_hcalDepth2TowerSumEt_dr04->Fill(gsfIter->dr04HcalDepth2TowerSumEt());
784  }
785 
786  // association matching object-reco electrons
787  int matchingObjectNum=0 ;
788  reco::SuperClusterCollection::const_iterator moIter ;
789  for
790  ( moIter=recoClusters->begin() ;
791  moIter!=recoClusters->end() ;
792  moIter++ )
793  {
794  // number of matching objects
795  matchingObjectNum++;
796 
797  if
798  ( moIter->energy()/cosh(moIter->eta())>maxPtMatchingObject_ ||
799  fabs(moIter->eta())> maxAbsEtaMatchingObject_ )
800  { continue ; }
801 
802  // suppress the endcaps
803  //if (fabs(moIter->eta()) > 1.5) continue;
804  // select central z
805  //if ( fabs((*mcIter)->production_vertex()->position().z())>50.) continue;
806 
807  h_matchingObjectEta->Fill( moIter->eta() );
808  h_matchingObjectAbsEta->Fill( fabs(moIter->eta()) );
809  h_matchingObjectP->Fill( moIter->energy() );
810  h_matchingObjectPt->Fill( moIter->energy()/cosh(moIter->eta()) );
811  h_matchingObjectPhi->Fill( moIter->phi() );
812  h_matchingObjectZ->Fill( moIter->z() );
813 
814  // find best matched electron
815  bool okGsfFound = false;
816  double gsfOkRatio = 999999.;
817  reco::GsfElectron bestGsfElectron ;
818  reco::GsfElectronCollection::const_iterator gsfIter ;
819  for
820  ( gsfIter=gsfElectrons->begin() ;
821  gsfIter!=gsfElectrons->end() ;
822  gsfIter++ )
823  {
824  double vertexTIP =
825  (gsfIter->vertex().x()-bs.position().x()) * (gsfIter->vertex().x()-bs.position().x()) +
826  (gsfIter->vertex().y()-bs.position().y()) * (gsfIter->vertex().y()-bs.position().y()) ;
827  vertexTIP = sqrt(vertexTIP) ;
828 
829  // select electrons
830  if (!selected(gsfIter,vertexTIP)) continue ;
831 
832  if (Selection_ >= 4)
833  {
834  reco::GsfElectronCollection::const_iterator gsfIter2 ;
835  for
836  ( gsfIter2=gsfIter+1 ;
837  gsfIter2!=gsfElectrons->end() ;
838  gsfIter2++ )
839  {
840  math::XYZTLorentzVector p12 = (*gsfIter).p4()+(*gsfIter2).p4() ;
841  float mee2 = p12.Dot(p12) ;
842  bool opsign = (gsfIter->charge()*gsfIter2->charge()<0.) ;
843  float invMass = sqrt(mee2) ;
844 
845  if (TPchecksign_ && !opsign) break ;
846 
847  // conditions Tag
848  if(TAGcheckclass_ && (gsfIter->classification()==GsfElectron::SHOWERING || gsfIter->isGap())) break;
849 
850  // conditions Probe
851  if(PROBEetcut_ && (gsfIter2->superCluster()->energy()/cosh(gsfIter2->superCluster()->eta())<minEt_)) continue;
852  if(PROBEcheckclass_ && (gsfIter2->classification()==GsfElectron::SHOWERING || gsfIter2->isGap())) continue;
853 
854  if( invMass < massLow_ || invMass > massHigh_ ) continue ;
855 
856  h_ele_mee_os->Fill(invMass) ;
857  bestGsfElectron =* gsfIter2 ;
858  okGsfFound = true ;
859  }
860  }
861  else
862  {
863  reco::GsfElectronCollection::const_iterator gsfIter2 ;
864  for
865  ( gsfIter2=gsfIter+1;
866  gsfIter2!=gsfElectrons->end() ;
867  gsfIter2++ )
868  {
869  math::XYZTLorentzVector p12 = (*gsfIter).p4()+(*gsfIter2).p4() ;
870  float mee2 = p12.Dot(p12) ;
871  //bool opsign = (gsfIter->charge()*gsfIter2->charge()<0.) ;
872  float invMass = sqrt(mee2) ;
873  h_ele_mee_os->Fill(invMass) ;
874  }
875 
876  // matching with a cone in eta phi
877  if ( matchingCondition_ == "Cone" )
878  {
879  double dphi = gsfIter->phi()-moIter->phi() ;
880  if (fabs(dphi)>CLHEP::pi)
881  { dphi = dphi < 0? (CLHEP::twopi) + dphi : dphi - CLHEP::twopi ; }
882  double deltaR = sqrt(std::pow((moIter->eta()-gsfIter->eta()),2) + std::pow(dphi,2)) ;
883  if ( deltaR < deltaR_ )
884  {
885  //if ( (genPc->pdg_id() == 11) && (gsfIter->charge() < 0.) || (genPc->pdg_id() == -11) &&
886  //(gsfIter->charge() > 0.) ){
887  double tmpGsfRatio = gsfIter->p()/moIter->energy();
888  if ( fabs(tmpGsfRatio-1) < fabs(gsfOkRatio-1) && Selection_ != 4 )
889  {
890  gsfOkRatio = tmpGsfRatio;
891  bestGsfElectron=*gsfIter;
892  okGsfFound = true;
893  }
894  //}
895  }
896  }
897  }
898  } // loop over rec ele to look for the best one
899 
900  // analysis when the matching object is matched by a rec electron
901  if (okGsfFound)
902  {
903  // generated distributions for matched electrons
904  h_ele_matchingObjectPt_matched->Fill( moIter->energy()/cosh(moIter->eta()) );
905  h_ele_matchingObjectPhi_matched->Fill( moIter->phi() );
906  h_ele_matchingObjectAbsEta_matched->Fill( fabs(moIter->eta()) );
907  h_ele_matchingObjectEta_matched->Fill( moIter->eta() );
908  h_ele_matchingObjectZ_matched->Fill( moIter->z() );
909 
910 // OBSOLETE
911  // // comparison electron vs matching object
912 // h_ele_EtaMnEtamatchingObject_matched->Fill( bestGsfElectron.eta()-moIter->eta());
913 //
914 // h_ele_PhiMnPhimatchingObject_matched->Fill( bestGsfElectron.phi()-moIter->phi());
915 // h_ele_PhiMnPhimatchingObject2_matched->Fill( bestGsfElectron.phi()-moIter->phi());
916 //
917 // h_ele_PoPmatchingObject_matched->Fill( bestGsfElectron.p()/moIter->energy());
918 // h_ele_PtoPtmatchingObject_matched->Fill( bestGsfElectron.pt()/moIter->energy()/cosh(moIter->eta()));
919 //
920 // if (bestGsfElectron.isEB()) h_ele_PoPmatchingObject_barrel_matched->Fill( bestGsfElectron.p()/moIter->energy());
921 // if (bestGsfElectron.isEE()) h_ele_PoPmatchingObject_endcaps_matched->Fill( bestGsfElectron.p()/moIter->energy());
922 // if (bestGsfElectron.isEB()) h_ele_PtoPtmatchingObject_barrel_matched->Fill( bestGsfElectron.pt()/moIter->energy()/cosh(moIter->eta()));
923 // if (bestGsfElectron.isEE()) h_ele_PtoPtmatchingObject_endcaps_matched->Fill( bestGsfElectron.pt()/moIter->energy()/cosh(moIter->eta()));
924 
925  reco::SuperClusterRef sclRef = bestGsfElectron.superCluster() ;
926 
927  // add here distributions for matched electrons as for all electrons
928  //..
929  } // gsf electron found
930 
931  } // loop overmatching object
932 
933  h_matchingObjectNum->Fill(matchingObjectNum) ;
934 
935  }
936 
938  {
939  // retreive TriggerResults from the event
941  e.getByLabel(triggerResults_,triggerResults) ;
942 
943  bool accept = false ;
944 
945  if (triggerResults.isValid())
946  {
947  //std::cout << "TriggerResults found, number of HLT paths: " << triggerResults->size() << std::endl;
948 
949  // get trigger names
950  const edm::TriggerNames & triggerNames = e.triggerNames(*triggerResults);
951  if (nEvents_==1)
952  {
953  for (unsigned int i=0; i<triggerNames.size(); i++)
954  {
955 // std::cout << "trigger path= " << triggerNames.triggerName(i) << std::endl;
956  }
957  }
958 
959  unsigned int n = HLTPathsByName_.size() ;
960  for (unsigned int i=0; i!=n; i++)
961  {
963  }
964 
965  // empty input vectors (n==0) means any trigger paths
966  if (n==0)
967  {
968  n=triggerResults->size() ;
969  HLTPathsByName_.resize(n) ;
970  HLTPathsByIndex_.resize(n) ;
971  for ( unsigned int i=0 ; i!=n ; i++)
972  {
973  HLTPathsByName_[i]=triggerNames.triggerName(i) ;
974  HLTPathsByIndex_[i]=i ;
975  }
976  }
977 
978 // if (nEvents_==1)
979 // {
980 // if (n>0)
981 // {
982 // std::cout << "HLT trigger paths requested: index, name and valididty:" << std::endl;
983 // for (unsigned int i=0; i!=n; i++)
984 // {
985 // bool validity = HLTPathsByIndex_[i]<triggerResults->size();
986 // std::cout
987 // << " " << HLTPathsByIndex_[i]
988 // << " " << HLTPathsByName_[i]
989 // << " " << validity << std::endl;
990 // }
991 // }
992 // }
993 
994  // count number of requested HLT paths which have fired
995  unsigned int fired=0 ;
996  for ( unsigned int i=0 ; i!=n ; i++ )
997  {
998  if (HLTPathsByIndex_[i]<triggerResults->size())
999  {
1000  if (triggerResults->accept(HLTPathsByIndex_[i]))
1001  {
1002  fired++ ;
1003  //std::cout << "Fired HLT path= " << HLTPathsByName_[i] << std::endl ;
1004  accept = true ;
1005  }
1006  }
1007  }
1008 
1009  }
1010 
1011  return accept ;
1012  }
1013 
1014 bool DQMAnalyzer::selected( const reco::GsfElectronCollection::const_iterator & gsfIter , double vertexTIP )
1015  {
1016  if ((Selection_>0)&&generalCut(gsfIter)) return false ;
1017  if ((Selection_>=1)&&etCut(gsfIter)) return false ;
1018  if ((Selection_>=2)&&isolationCut(gsfIter,vertexTIP)) return false ;
1019  if ((Selection_>=3)&&idCut(gsfIter)) return false ;
1020  return true ;
1021  }
1022 
1023 bool DQMAnalyzer::generalCut( const reco::GsfElectronCollection::const_iterator & gsfIter)
1024  {
1025  if (fabs(gsfIter->eta())>maxAbsEta_) return true ;
1026  if (gsfIter->pt()<minPt_) return true ;
1027 
1028  if (gsfIter->isEB() && isEE_) return true ;
1029  if (gsfIter->isEE() && isEB_) return true ;
1030  if (gsfIter->isEBEEGap() && isNotEBEEGap_) return true ;
1031 
1032  if (gsfIter->ecalDrivenSeed() && isTrackerDriven_) return true ;
1033  if (gsfIter->trackerDrivenSeed() && isEcalDriven_) return true ;
1034 
1035  return false ;
1036  }
1037 
1038 bool DQMAnalyzer::etCut( const reco::GsfElectronCollection::const_iterator & gsfIter )
1039  {
1040  if (gsfIter->superCluster()->energy()/cosh(gsfIter->superCluster()->eta())<minEt_) return true ;
1041 
1042  return false ;
1043  }
1044 
1045 bool DQMAnalyzer::isolationCut( const reco::GsfElectronCollection::const_iterator & gsfIter, double vertexTIP )
1046  {
1047  if (gsfIter->isEB() && vertexTIP > tipMaxBarrel_) return true ;
1048  if (gsfIter->isEE() && vertexTIP > tipMaxEndcaps_) return true ;
1049 
1050  if (gsfIter->dr03TkSumPt() > tkIso03Max_) return true ;
1051  if (gsfIter->isEB() && gsfIter->dr03HcalDepth1TowerSumEt() > hcalIso03Depth1MaxBarrel_) return true ;
1052  if (gsfIter->isEE() && gsfIter->dr03HcalDepth1TowerSumEt() > hcalIso03Depth1MaxEndcaps_) return true ;
1053  if (gsfIter->isEE() && gsfIter->dr03HcalDepth2TowerSumEt() > hcalIso03Depth2MaxEndcaps_) return true ;
1054  if (gsfIter->isEB() && gsfIter->dr03EcalRecHitSumEt() > ecalIso03MaxBarrel_) return true ;
1055  if (gsfIter->isEE() && gsfIter->dr03EcalRecHitSumEt() > ecalIso03MaxEndcaps_) return true ;
1056 
1057  return false ;
1058  }
1059 
1060 bool DQMAnalyzer::idCut( const reco::GsfElectronCollection::const_iterator & gsfIter )
1061  {
1062  if (gsfIter->isEB() && gsfIter->eSuperClusterOverP() < eOverPMinBarrel_) return true ;
1063  if (gsfIter->isEB() && gsfIter->eSuperClusterOverP() > eOverPMaxBarrel_) return true ;
1064  if (gsfIter->isEE() && gsfIter->eSuperClusterOverP() < eOverPMinEndcaps_) return true ;
1065  if (gsfIter->isEE() && gsfIter->eSuperClusterOverP() > eOverPMaxEndcaps_) return true ;
1066  if (gsfIter->isEB() && fabs(gsfIter->deltaEtaSuperClusterTrackAtVtx()) < dEtaMinBarrel_) return true ;
1067  if (gsfIter->isEB() && fabs(gsfIter->deltaEtaSuperClusterTrackAtVtx()) > dEtaMaxBarrel_) return true ;
1068  if (gsfIter->isEE() && fabs(gsfIter->deltaEtaSuperClusterTrackAtVtx()) < dEtaMinEndcaps_) return true ;
1069  if (gsfIter->isEE() && fabs(gsfIter->deltaEtaSuperClusterTrackAtVtx()) > dEtaMaxEndcaps_) return true ;
1070  if (gsfIter->isEB() && fabs(gsfIter->deltaPhiSuperClusterTrackAtVtx()) < dPhiMinBarrel_) return true ;
1071  if (gsfIter->isEB() && fabs(gsfIter->deltaPhiSuperClusterTrackAtVtx()) > dPhiMaxBarrel_) return true ;
1072  if (gsfIter->isEE() && fabs(gsfIter->deltaPhiSuperClusterTrackAtVtx()) < dPhiMinEndcaps_) return true ;
1073  if (gsfIter->isEE() && fabs(gsfIter->deltaPhiSuperClusterTrackAtVtx()) > dPhiMaxEndcaps_) return true ;
1074  if (gsfIter->isEB() && gsfIter->scSigmaIEtaIEta() < sigIetaIetaMinBarrel_) return true ;
1075  if (gsfIter->isEB() && gsfIter->scSigmaIEtaIEta() > sigIetaIetaMaxBarrel_) return true ;
1076  if (gsfIter->isEE() && gsfIter->scSigmaIEtaIEta() < sigIetaIetaMinEndcaps_) return true ;
1077  if (gsfIter->isEE() && gsfIter->scSigmaIEtaIEta() > sigIetaIetaMaxEndcaps_) return true ;
1078  if (gsfIter->isEB() && gsfIter->hadronicOverEm() > hadronicOverEmMaxBarrel_) return true ;
1079  if (gsfIter->isEE() && gsfIter->hadronicOverEm() > hadronicOverEmMaxEndcaps_) return true ;
1080 
1081  return false ;
1082  }
1083 
bool isEcalDriven_
Definition: DQMAnalyzer.h:84
TH1F * histNum_
Definition: DQMAnalyzer.h:196
type
Definition: HCALResponse.h:21
double hcalIso03Depth2MaxEndcaps_
Definition: DQMAnalyzer.h:110
bool trigger(const edm::Event &e)
Definition: DQMAnalyzer.cc:937
double minEt_
Definition: DQMAnalyzer.h:78
double fhitsmax
Definition: DQMAnalyzer.h:128
T getParameter(std::string const &) const
TH1F * h_matchingObjectAbsEta
Definition: DQMAnalyzer.h:172
TFile * histfile_
Definition: DQMAnalyzer.h:157
double dEtaMinBarrel_
Definition: DQMAnalyzer.h:90
double lhitsmax
Definition: DQMAnalyzer.h:129
edm::InputTag beamSpot_
Definition: DQMAnalyzer.h:58
double hoemin
Definition: DQMAnalyzer.h:133
double eOverPMinBarrel_
Definition: DQMAnalyzer.h:86
double etamin
Definition: DQMAnalyzer.h:119
double dEtaMaxEndcaps_
Definition: DQMAnalyzer.h:93
edm::InputTag matchingObjectCollection_
Definition: DQMAnalyzer.h:57
TH1F * h_ele_provenance
Definition: DQMAnalyzer.h:248
double ptmax
Definition: DQMAnalyzer.h:121
double sigIetaIetaMinEndcaps_
Definition: DQMAnalyzer.h:100
TH1F * h_ele_mva
Definition: DQMAnalyzer.h:247
double dPhiMinBarrel_
Definition: DQMAnalyzer.h:94
TH1F * h_matchingObjectEta
Definition: DQMAnalyzer.h:171
TH2F * h_ele_ambiguousTracksVsEta
Definition: DQMAnalyzer.h:205
double maxAbsEtaMatchingObject_
Definition: DQMAnalyzer.h:65
int nbindetamatch
Definition: DQMAnalyzer.h:126
TH1F * h_ele_Et
Definition: DQMAnalyzer.h:186
TH1F * h_ele_dEtaSc_propVtx
Definition: DQMAnalyzer.h:230
TH1F * h_ele_ecalRecHitSumEt_dr04
Definition: DQMAnalyzer.h:255
TH2F * h_ele_chi2VsPhi
Definition: DQMAnalyzer.h:224
TH1F * h_ele_dEtaEleCl_propOut
Definition: DQMAnalyzer.h:234
TH1F * h_ele_dPhiSc_propVtx
Definition: DQMAnalyzer.h:231
double hcalIso03Depth1MaxBarrel_
Definition: DQMAnalyzer.h:108
TH1F * h_ele_ecalRecHitSumEt_dr03
Definition: DQMAnalyzer.h:251
TH1F * h_ele_vertexPhi
Definition: DQMAnalyzer.h:189
TH1F * h_ele_tkSumPt_dr03
Definition: DQMAnalyzer.h:250
double etamax
Definition: DQMAnalyzer.h:119
bool accept() const
Has at least one path accepted the event?
double poptruemin
Definition: DQMAnalyzer.h:131
bool generalCut(const reco::GsfElectronCollection::const_iterator &gsfIter)
double dphimatchmax
Definition: DQMAnalyzer.h:127
double massHigh_
Definition: DQMAnalyzer.h:71
double deltaR_
Definition: DQMAnalyzer.h:66
TH1F * h_matchingObjectP
Definition: DQMAnalyzer.h:173
TH1F * h_ele_matchingObjectAbsEta_matched
Definition: DQMAnalyzer.h:179
TH1F * h_ele_outerPt_mode
Definition: DQMAnalyzer.h:242
double maxPtMatchingObject_
Definition: DQMAnalyzer.h:64
bool readAOD_
Definition: DQMAnalyzer.h:61
double phimin
Definition: DQMAnalyzer.h:120
double detamatchmax
Definition: DQMAnalyzer.h:126
Strings::size_type size() const
Definition: TriggerNames.cc:39
TH1F * h_ele_vertexX
Definition: DQMAnalyzer.h:190
double poptruemax
Definition: DQMAnalyzer.h:131
double detamax
Definition: DQMAnalyzer.h:124
TH1F * histSclSigEtaEta_
Definition: DQMAnalyzer.h:202
double sigIetaIetaMaxBarrel_
Definition: DQMAnalyzer.h:99
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
Definition: TopDQMHelpers.h:30
bool PROBEetcut_
Definition: DQMAnalyzer.h:74
uint16_t size_type
TH1F * h_ele_outerP_mode
Definition: DQMAnalyzer.h:240
TH1F * h_ele_hcalDepth1TowerSumEt_dr03
Definition: DQMAnalyzer.h:252
double hadronicOverEmMaxBarrel_
Definition: DQMAnalyzer.h:102
double phimax
Definition: DQMAnalyzer.h:120
double hcalIso03Depth1MaxEndcaps_
Definition: DQMAnalyzer.h:109
TH1F * h_ele_hcalDepth1TowerSumEt_dr04
Definition: DQMAnalyzer.h:256
return((rh^lh)&mask)
bool selected(const reco::GsfElectronCollection::const_iterator &gsfIter, double vertexTIP)
const Double_t pi
bool isTrackerDriven_
Definition: DQMAnalyzer.h:85
double sigIetaIetaMaxEndcaps_
Definition: DQMAnalyzer.h:101
double dPhiMaxBarrel_
Definition: DQMAnalyzer.h:95
TH1F * h_ele_lostHits
Definition: DQMAnalyzer.h:214
void endJob() override
Definition: DQMAnalyzer.cc:447
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
TH2F * h_ele_lostHitsVsEta
Definition: DQMAnalyzer.h:217
double dphimin
Definition: DQMAnalyzer.h:125
unsigned int nAfterTrigger_
Definition: DQMAnalyzer.h:150
int iEvent
Definition: GenABIO.cc:230
TH1F * h_ele_vertexEta
Definition: DQMAnalyzer.h:187
double eOverPMinEndcaps_
Definition: DQMAnalyzer.h:88
TH1F * h_ele_vertexZ
Definition: DQMAnalyzer.h:192
unsigned int triggerIndex(std::string const &name) const
Definition: TriggerNames.cc:32
void analyze(const edm::Event &e, const edm::EventSetup &c) override
Definition: DQMAnalyzer.cc:648
std::vector< unsigned int > HLTPathsByIndex_
Definition: DQMAnalyzer.h:151
double pmax
Definition: DQMAnalyzer.h:122
T sqrt(T t)
Definition: SSEVec.h:18
unsigned int size() const
Get number of paths stored.
TH2F * h_ele_lostHitsVsPhi
Definition: DQMAnalyzer.h:218
TH1F * h_ele_mee_os
Definition: DQMAnalyzer.h:259
double massLow_
Definition: DQMAnalyzer.h:70
double eOverPMaxBarrel_
Definition: DQMAnalyzer.h:87
bool isNotEBEEGap_
Definition: DQMAnalyzer.h:83
bool isolationCut(const reco::GsfElectronCollection::const_iterator &gsfIter, double vertexTIP)
bool PROBEcheckclass_
Definition: DQMAnalyzer.h:75
double dphimatchmin
Definition: DQMAnalyzer.h:127
TH2F * h_ele_ambiguousTracksVsPhi
Definition: DQMAnalyzer.h:206
std::string outputFile_
Definition: DQMAnalyzer.h:55
TH1F * h_ele_vertexY
Definition: DQMAnalyzer.h:191
bool TAGcheckclass_
Definition: DQMAnalyzer.h:73
TH1F * histSclEta_
Definition: DQMAnalyzer.h:200
TH1F * h_matchingObjectPhi
Definition: DQMAnalyzer.h:175
bool idCut(const reco::GsfElectronCollection::const_iterator &gsfIter)
double tkIso03Max_
Definition: DQMAnalyzer.h:107
double maxAbsEta_
Definition: DQMAnalyzer.h:80
TH1F * histSclEt_
Definition: DQMAnalyzer.h:199
TH1F * h_ele_matchingObjectZ_matched
Definition: DQMAnalyzer.h:182
TH1F * h_ele_foundHits
Definition: DQMAnalyzer.h:208
TH1F * h_ele_PinMnPout_mode
Definition: DQMAnalyzer.h:245
int nbindetamatch2D
Definition: DQMAnalyzer.h:126
static std::string const triggerResults
Definition: EdmProvDump.cc:42
int nbindphimatch2D
Definition: DQMAnalyzer.h:127
bool isValid() const
Definition: HandleBase.h:74
double eopmaxsht
Definition: DQMAnalyzer.h:123
TH2F * h_ele_chi2VsPt
Definition: DQMAnalyzer.h:225
TH1F * h_ele_dPhiEleCl_propOut
Definition: DQMAnalyzer.h:235
TH1F * h_matchingObjectZ
Definition: DQMAnalyzer.h:176
TH1F * histSclPhi_
Definition: DQMAnalyzer.h:201
TH1F * h_ele_matchingObjectPhi_matched
Definition: DQMAnalyzer.h:181
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:535
bool etCut(const reco::GsfElectronCollection::const_iterator &gsfIter)
TH1F * h_ele_hcalDepth2TowerSumEt_dr03
Definition: DQMAnalyzer.h:253
TH2F * h_ele_foundHitsVsPhi
Definition: DQMAnalyzer.h:212
~DQMAnalyzer() override
Definition: DQMAnalyzer.cc:175
double hadronicOverEmMaxEndcaps_
Definition: DQMAnalyzer.h:103
double deltaR(double eta1, double eta2, double phi1, double phi2)
Definition: TreeUtility.cc:17
double tipMaxEndcaps_
Definition: DQMAnalyzer.h:106
double eOverPMaxEndcaps_
Definition: DQMAnalyzer.h:89
double meemin
Definition: DQMAnalyzer.h:132
TH2F * h_ele_foundHitsVsPt
Definition: DQMAnalyzer.h:213
TH1F * h_ele_outerP
Definition: DQMAnalyzer.h:239
TH1F * h_ele_outerPt
Definition: DQMAnalyzer.h:241
double meemax
Definition: DQMAnalyzer.h:132
std::vector< std::string > HLTPathsByName_
Definition: DQMAnalyzer.h:116
TH2F * h_ele_ambiguousTracksVsPt
Definition: DQMAnalyzer.h:207
std::string matchingCondition_
Definition: DQMAnalyzer.h:59
T const * product() const
Definition: Handle.h:81
std::string const & triggerName(unsigned int index) const
Definition: TriggerNames.cc:27
double sigIetaIetaMinBarrel_
Definition: DQMAnalyzer.h:98
TH1F * h_ele_EoP
Definition: DQMAnalyzer.h:227
double detamin
Definition: DQMAnalyzer.h:124
TH1F * h_ele_charge
Definition: DQMAnalyzer.h:194
TH1F * h_ele_tkSumPt_dr04
Definition: DQMAnalyzer.h:254
TH1F * h_ele_matchingObjectPt_matched
Definition: DQMAnalyzer.h:180
double detamatchmin
Definition: DQMAnalyzer.h:126
double minPt_
Definition: DQMAnalyzer.h:79
TH1F * h_ele_vertexPt
Definition: DQMAnalyzer.h:185
edm::InputTag electronCollection_
Definition: DQMAnalyzer.h:56
double ecalIso03MaxEndcaps_
Definition: DQMAnalyzer.h:112
TH1F * h_ele_dEtaCl_propOut
Definition: DQMAnalyzer.h:232
std::string const & label() const
Definition: InputTag.h:36
double hoemax
Definition: DQMAnalyzer.h:133
edm::EventID id() const
Definition: EventBase.h:60
fixed size matrix
TH2F * h_ele_chi2VsEta
Definition: DQMAnalyzer.h:223
HLT enums.
TH1F * h_matchingObjectPt
Definition: DQMAnalyzer.h:174
int nbindphimatch
Definition: DQMAnalyzer.h:127
TH1F * h_ele_EeleOPout
Definition: DQMAnalyzer.h:229
TH1F * h_ele_vertexTIP
Definition: DQMAnalyzer.h:193
SuperClusterRef superCluster() const override
reference to a SuperCluster
Definition: GsfElectron.h:184
edm::InputTag triggerResults_
Definition: DQMAnalyzer.h:115
TH1F * histSclEn_
Definition: DQMAnalyzer.h:198
TH1F * h_ele_dPhiCl_propOut
Definition: DQMAnalyzer.h:233
double dPhiMinEndcaps_
Definition: DQMAnalyzer.h:96
TH1F * h_ele_HoE
Definition: DQMAnalyzer.h:238
TH2F * h_ele_lostHitsVsPt
Definition: DQMAnalyzer.h:219
TH1F * h_ele_chi2
Definition: DQMAnalyzer.h:220
TH1F * h_ele_matchingObjectEta_matched
Definition: DQMAnalyzer.h:178
double dEtaMinEndcaps_
Definition: DQMAnalyzer.h:92
const Point & position() const
position
Definition: BeamSpot.h:62
double dphimax
Definition: DQMAnalyzer.h:125
TH1F * h_matchingObjectNum
Definition: DQMAnalyzer.h:169
double eopmax
Definition: DQMAnalyzer.h:123
bool TPchecksign_
Definition: DQMAnalyzer.h:72
TH1F * h_ele_ambiguousTracks
Definition: DQMAnalyzer.h:204
unsigned int nEvents_
Definition: DQMAnalyzer.h:141
TH2F * h_ele_foundHitsVsEta
Definition: DQMAnalyzer.h:211
double dPhiMaxEndcaps_
Definition: DQMAnalyzer.h:97
double dEtaMaxBarrel_
Definition: DQMAnalyzer.h:91
edm::TriggerNames const & triggerNames(edm::TriggerResults const &triggerResults) const override
Definition: Event.cc:301
DQMAnalyzer(const edm::ParameterSet &conf)
Definition: DQMAnalyzer.cc:55
TH1F * h_ele_hcalDepth2TowerSumEt_dr04
Definition: DQMAnalyzer.h:257
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40
void beginJob() override
Definition: DQMAnalyzer.cc:185
double mvaMin_
Definition: DQMAnalyzer.h:104
double tipMaxBarrel_
Definition: DQMAnalyzer.h:105
double ecalIso03MaxBarrel_
Definition: DQMAnalyzer.h:111
TH1F * h_ele_PinMnPout
Definition: DQMAnalyzer.h:244
int Selection_
Definition: DQMAnalyzer.h:69