CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
EgammaObjects.cc
Go to the documentation of this file.
2 
5 
14 
16 
18 {
19  particleID = ps.getParameter<int>("particleID");
20  EtCut = ps.getParameter<int>("EtCut");
21 
22  if( particleID == 22 ) particleString = "Photon";
23  else if( particleID == 11 ) particleString = "Electron";
24  else
25  throw(std::runtime_error("\n\nEgammaObjects: Only 11 = Photon and 22 = Electron are acceptable parictleIDs! Exiting...\n\n"));
26 
27  loadCMSSWObjects(ps);
29 
30  rootFile_ = TFile::Open(ps.getParameter<std::string>("outputFile").c_str(),"RECREATE");
31 
34  hist_deltaEtaVsEt_ = 0 ;
35  hist_deltaEtaVsE_ = 0 ;
42 
43  hist_Phi_ = 0 ;
44  hist_PhiOverTruth_ = 0 ;
47  hist_deltaPhiVsEt_ = 0 ;
48  hist_deltaPhiVsE_ = 0 ;
55 
56  hist_All_recoMass_ = 0 ;
60 
65 
70 
75 
80 
85 
86 }
87 
89 {
90  MCTruthCollectionT_ = consumes<edm::HepMCProduct>(
91  ps.getParameter<edm::InputTag>("MCTruthCollection"));
92  RecoCollectionT_ = consumes<reco::GsfElectronCollection>(
93  ps.getParameter<edm::InputTag>("RecoCollection"));
94 }
95 
97 {
98  hist_min_Et_ = ps.getParameter<double>("hist_min_Et");
99  hist_max_Et_ = ps.getParameter<double>("hist_max_Et");
100  hist_bins_Et_ = ps.getParameter<int> ("hist_bins_Et");
101 
102  hist_min_E_ = ps.getParameter<double>("hist_min_E");
103  hist_max_E_ = ps.getParameter<double>("hist_max_E");
104  hist_bins_E_ = ps.getParameter<int> ("hist_bins_E");
105 
106  hist_min_Eta_ = ps.getParameter<double>("hist_min_Eta");
107  hist_max_Eta_ = ps.getParameter<double>("hist_max_Eta");
108  hist_bins_Eta_ = ps.getParameter<int> ("hist_bins_Eta");
109 
110  hist_min_Phi_ = ps.getParameter<double>("hist_min_Phi");
111  hist_max_Phi_ = ps.getParameter<double>("hist_max_Phi");
112  hist_bins_Phi_ = ps.getParameter<int> ("hist_bins_Phi");
113 
114  hist_min_EtOverTruth_ = ps.getParameter<double>("hist_min_EtOverTruth");
115  hist_max_EtOverTruth_ = ps.getParameter<double>("hist_max_EtOverTruth");
116  hist_bins_EtOverTruth_ = ps.getParameter<int> ("hist_bins_EtOverTruth");
117 
118  hist_min_EOverTruth_ = ps.getParameter<double>("hist_min_EOverTruth");
119  hist_max_EOverTruth_ = ps.getParameter<double>("hist_max_EOverTruth");
120  hist_bins_EOverTruth_ = ps.getParameter<int> ("hist_bins_EOverTruth");
121 
122  hist_min_EtaOverTruth_ = ps.getParameter<double>("hist_min_EtaOverTruth");
123  hist_max_EtaOverTruth_ = ps.getParameter<double>("hist_max_EtaOverTruth");
124  hist_bins_EtaOverTruth_ = ps.getParameter<int> ("hist_bins_EtaOverTruth");
125 
126  hist_min_PhiOverTruth_ = ps.getParameter<double>("hist_min_PhiOverTruth");
127  hist_max_PhiOverTruth_ = ps.getParameter<double>("hist_max_PhiOverTruth");
128  hist_bins_PhiOverTruth_ = ps.getParameter<int> ("hist_bins_PhiOverTruth");
129 
130  hist_min_deltaEta_ = ps.getParameter<double>("hist_min_deltaEta");
131  hist_max_deltaEta_ = ps.getParameter<double>("hist_max_deltaEta");
132  hist_bins_deltaEta_ = ps.getParameter<int> ("hist_bins_deltaEta");
133 
134  hist_min_deltaPhi_ = ps.getParameter<double>("hist_min_deltaPhi");
135  hist_max_deltaPhi_ = ps.getParameter<double>("hist_max_deltaPhi");
136  hist_bins_deltaPhi_ = ps.getParameter<int> ("hist_bins_deltaPhi");
137 
138  hist_min_recoMass_ = ps.getParameter<double>("hist_min_recoMass");
139  hist_max_recoMass_ = ps.getParameter<double>("hist_max_recoMass");
140  hist_bins_recoMass_ = ps.getParameter<int> ("hist_bins_recoMass");
141 }
142 
144 {
145  delete rootFile_;
146 }
147 
149 {
150  TH1::SetDefaultSumw2(true);
151 
154 }
155 
157 {
158  hist_Et_
159  = new TH1D("hist_Et_",("Et Distribution of "+particleString).c_str(),
162  = new TH1D("hist_EtOverTruth_",("Reco Et over True Et of "+particleString).c_str(),
165  = new TH1D("hist_EtEfficiency_",("# of True "+particleString+" Reconstructed over # of True "+particleString+" VS Et of "+particleString).c_str(),
168  = new TH1D("hist_EtNumRecoOverNumTrue_",("# of Reco "+particleString+" over # of True "+particleString+" VS Et of "+particleString).c_str(),
170 
171  hist_E_
172  = new TH1D("hist_E_",("E Distribution of "+particleString).c_str(),
175  = new TH1D("hist_EOverTruth_",("Reco E over True E of "+particleString).c_str(),
178  = new TH1D("hist_EEfficiency_",("# of True "+particleString+" Reconstructed over # of True "+particleString+" VS E of "+particleString).c_str(),
181  = new TH1D("hist_ENumRecoOverNumTrue_",("# of Reco "+particleString+" over # of True "+particleString+" VS E of "+particleString).c_str(),
183 
184  hist_Eta_
185  = new TH1D("hist_Eta_",("Eta Distribution of "+particleString).c_str(),
188  = new TH1D("hist_EtaOverTruth_",("Reco Eta over True Eta of "+particleString).c_str(),
191  = new TH1D("hist_EtaEfficiency_",("# of True "+particleString+" Reconstructed over # of True "+particleString+" VS Eta of "+particleString).c_str(),
194  = new TH1D("hist_EtaNumRecoOverNumTrue_",("# of Reco "+particleString+" over # of True "+particleString+" VS Eta of "+particleString).c_str(),
196 
197  hist_Phi_
198  = new TH1D("hist_Phi_",("Phi Distribution of "+particleString).c_str(),
201  = new TH1D("hist_PhiOverTruth_",("Reco Phi over True Phi of "+particleString).c_str(),
204  = new TH1D("hist_PhiEfficiency_",("# of True "+particleString+" Reconstructed over # of True "+particleString+" VS Phi of "+particleString).c_str(),
207  = new TH1D("hist_PhiNumRecoOverNumTrue_",("# of Reco "+particleString+" over # of True "+particleString+" VS Phi of "+particleString).c_str(),
209 
210  std::string recoParticleName;
211 
212  if( particleID == 22 ) recoParticleName = "Higgs";
213  else if( particleID == 11 ) recoParticleName = "Z";
214 
216  = new TH1D("hist_All_recoMass_",(recoParticleName+" Mass from "+particleString+" in All Regions").c_str(),
219  = new TH1D("hist_BarrelOnly_recoMass_",(recoParticleName+" Mass from "+particleString+" in Barrel").c_str(),
222  = new TH1D("hist_EndcapOnly_recoMass_",(recoParticleName+" Mass from "+particleString+" in EndCap").c_str(),
225  = new TH1D("hist_Mixed_recoMass_",(recoParticleName+" Mass from "+particleString+" in Split Detectors").c_str(),
227 
229  = new TH1D("hist_recoMass_withBackgroud_NoEtCut_",(recoParticleName+" Mass from "+particleString+" with Background, No Et Cut").c_str(),
232  = new TH1D("hist_recoMass_withBackgroud_5EtCut_",(recoParticleName+" Mass from "+particleString+" with Background, 5 Et Cut").c_str(),
235  = new TH1D("hist_recoMass_withBackgroud_10EtCut_",(recoParticleName+" Mass from "+particleString+" with Background, 10 Et Cut").c_str(),
238  = new TH1D("hist_recoMass_withBackgroud_20EtCut_",(recoParticleName+" Mass from "+particleString+" with Background, 20 Et Cut").c_str(),
240 }
241 
243 {
245  = new TH2D("_TEMP_scatterPlot_EtOverTruthVsEt_","_TEMP_scatterPlot_EtOverTruthVsEt_",
248  = new TH2D("_TEMP_scatterPlot_EtOverTruthVsE_","_TEMP_scatterPlot_EtOverTruthVsE_",
251  = new TH2D("_TEMP_scatterPlot_EtOverTruthVsEta_","_TEMP_scatterPlot_EtOverTruthVsEta_",
254  = new TH2D("_TEMP_scatterPlot_EtOverTruthVsPhi_","_TEMP_scatterPlot_EtOverTruthVsPhi_",
256 
258  = new TH2D("_TEMP_scatterPlot_EOverTruthVsEt_","_TEMP_scatterPlot_EOverTruthVsEt_",
261  = new TH2D("_TEMP_scatterPlot_EOverTruthVsE_","_TEMP_scatterPlot_EOverTruthVsE_",
264  = new TH2D("_TEMP_scatterPlot_EOverTruthVsEta_","_TEMP_scatterPlot_EOverTruthVsEta_",
267  = new TH2D("_TEMP_scatterPlot_EOverTruthVsPhi_","_TEMP_scatterPlot_EOverTruthVsPhi_",
269 
271  = new TH2D("_TEMP_scatterPlot_deltaEtaVsEt_","_TEMP_scatterPlot_deltaEtaVsEt_",
274  = new TH2D("_TEMP_scatterPlot_deltaEtaVsE_","_TEMP_scatterPlot_deltaEtaVsE_",
277  = new TH2D("_TEMP_scatterPlot_deltaEtaVsEta_","_TEMP_scatterPlot_deltaEtaVsEta_",
280  = new TH2D("_TEMP_scatterPlot_deltaEtaVsPhi_","_TEMP_scatterPlot_deltaEtaVsPhi_",
282 
284  = new TH2D("_TEMP_scatterPlot_deltaPhiVsEt_","_TEMP_scatterPlot_deltaPhiVsEt_",
287  = new TH2D("_TEMP_scatterPlot_deltaPhiVsE_","_TEMP_scatterPlot_deltaPhiVsE_",
290  = new TH2D("_TEMP_scatterPlot_deltaPhiVsEta_","_TEMP_scatterPlot_deltaPhiVsEta_",
293  = new TH2D("_TEMP_scatterPlot_deltaPhiVsPhi_","_TEMP_scatterPlot_deltaPhiVsPhi_",
295 }
296 
297 void EgammaObjects::analyze( const edm::Event& evt, const edm::EventSetup& es )
298 {
299  if( particleID == 22 ) analyzePhotons(evt, es);
300  else if( particleID == 11 ) analyzeElectrons(evt, es);
301 }
302 
304 {
306  evt.getByToken(RecoCollectionT_, pPhotons);
307  if (!pPhotons.isValid()) {
308  Labels l;
310  edm::LogError("EgammaObjects")
311  << "Error! can't get collection with label "
312  << l.module;
313  }
314 
315  const reco::PhotonCollection* photons = pPhotons.product();
316  std::vector<reco::Photon> photonsMCMatched;
317 
318  for(reco::PhotonCollection::const_iterator aClus = photons->begin(); aClus != photons->end(); aClus++)
319  {
320  if(aClus->et() >= EtCut)
321  {
322  hist_Et_->Fill(aClus->et());
323  hist_E_->Fill(aClus->energy());
324  hist_Eta_->Fill(aClus->eta());
325  hist_Phi_->Fill(aClus->phi());
326  }
327  }
328 
329  for(int firstPhoton = 0, numPhotons = photons->size(); firstPhoton < numPhotons - 1; firstPhoton++)
330  for(int secondPhoton = firstPhoton + 1; secondPhoton < numPhotons; secondPhoton++)
331  {
332  reco::Photon pOne = (*photons)[firstPhoton];
333  reco::Photon pTwo = (*photons)[secondPhoton];
334 
335  double recoMass = findRecoMass(pOne, pTwo);
336 
337  hist_recoMass_withBackgroud_NoEtCut_->Fill(recoMass);
338 
339  if(pOne.et() >= 5 && pTwo.et() >= 5)
340  hist_recoMass_withBackgroud_5EtCut_->Fill(recoMass);
341 
342  if(pOne.et() >= 10 && pTwo.et() >= 10)
343  hist_recoMass_withBackgroud_10EtCut_->Fill(recoMass);
344 
345  if(pOne.et() >= 20 && pTwo.et() >= 20)
346  hist_recoMass_withBackgroud_20EtCut_->Fill(recoMass);
347  }
348 
350  evt.getByToken(MCTruthCollectionT_, pMCTruth);
351  if (!pMCTruth.isValid()) {
352  Labels l;
354  edm::LogError("EgammaObjects")
355  << "Error! can't get collection with label "
356  << l.module;
357  }
358 
359  const HepMC::GenEvent* genEvent = pMCTruth->GetEvent();
360 
361  for(HepMC::GenEvent::particle_const_iterator currentParticle = genEvent->particles_begin();
362  currentParticle != genEvent->particles_end(); currentParticle++ )
363  {
364  if(abs((*currentParticle)->pdg_id())==22 && (*currentParticle)->status()==1
365  && (*currentParticle)->momentum().e()/cosh(ecalEta((*currentParticle)->momentum().eta(), (*currentParticle)->production_vertex()->position().z()/10.,
366  (*currentParticle)->production_vertex()->position().perp()/10.)) >= EtCut)
367  {
368  HepMC::FourVector vtx = (*currentParticle)->production_vertex()->position();
369  double phiTrue = (*currentParticle)->momentum().phi();
370  double etaTrue = ecalEta((*currentParticle)->momentum().eta(), vtx.z()/10., vtx.perp()/10.);
371  double eTrue = (*currentParticle)->momentum().e();
372  double etTrue = (*currentParticle)->momentum().e()/cosh(etaTrue);
373 
374  double etaCurrent, etaFound = -999;
375  double phiCurrent, phiFound = -999;
376  double etCurrent, etFound = -999;
377  double eCurrent, eFound = -999;
378 
379  reco::Photon bestMatchPhoton;
380 
381  double closestParticleDistance = 999;
382 
383  for(reco::PhotonCollection::const_iterator aClus = photons->begin(); aClus != photons->end(); aClus++)
384  {
385  if(aClus->et() > EtCut)
386  {
387  etaCurrent = aClus->eta();
388  phiCurrent = aClus->phi();
389  etCurrent = aClus->et();
390  eCurrent = aClus->energy();
391 
392  double deltaPhi = phiCurrent-phiTrue;
393  if(deltaPhi > Geom::pi()) deltaPhi -= 2.*Geom::pi();
394  if(deltaPhi < -Geom::pi()) deltaPhi += 2.*Geom::pi();
395  double deltaR = std::sqrt(std::pow(etaCurrent-etaTrue,2)+std::pow(deltaPhi,2));
396 
397  if(deltaR < closestParticleDistance)
398  {
399  etFound = etCurrent;
400  eFound = eCurrent;
401  etaFound = etaCurrent;
402  phiFound = phiCurrent;
403  closestParticleDistance = deltaR;
404  bestMatchPhoton = *aClus;
405  }
406  }
407  }
408 
409  if(closestParticleDistance < 0.05 && etFound/etTrue > .5 && etFound/etTrue < 1.5)
410  {
411  hist_EtOverTruth_->Fill(etFound/etTrue);
412  hist_EOverTruth_->Fill(eFound/eTrue);
413  hist_EtaOverTruth_->Fill(etaFound/etaTrue);
414  hist_PhiOverTruth_->Fill(phiFound/phiTrue);
415 
416  hist_EtEfficiency_->Fill(etTrue);
417  hist_EEfficiency_->Fill(eTrue);
418  hist_EtaEfficiency_->Fill(etaTrue);
419  hist_PhiEfficiency_->Fill(phiTrue);
420 
421  double deltaPhi = phiFound-phiTrue;
422  if(deltaPhi > Geom::pi()) deltaPhi -= 2.*Geom::pi();
423  if(deltaPhi < -Geom::pi()) deltaPhi += 2.*Geom::pi();
424 
425  _TEMP_scatterPlot_EtOverTruthVsEt_->Fill(etFound,etFound/etTrue);
426  _TEMP_scatterPlot_EtOverTruthVsE_->Fill(eFound,etFound/etTrue);
427  _TEMP_scatterPlot_EtOverTruthVsEta_->Fill(etaFound,etFound/etTrue);
428  _TEMP_scatterPlot_EtOverTruthVsPhi_->Fill(phiFound,etFound/etTrue);
429 
430  _TEMP_scatterPlot_EOverTruthVsEt_->Fill(etFound,eFound/eTrue);
431  _TEMP_scatterPlot_EOverTruthVsE_->Fill(eFound,eFound/eTrue);
432  _TEMP_scatterPlot_EOverTruthVsEta_->Fill(etaFound,eFound/eTrue);
433  _TEMP_scatterPlot_EOverTruthVsPhi_->Fill(phiFound,eFound/eTrue);
434 
435  _TEMP_scatterPlot_deltaEtaVsEt_->Fill(etFound,etaFound-etaTrue);
436  _TEMP_scatterPlot_deltaEtaVsE_->Fill(eFound,etaFound-etaTrue);
437  _TEMP_scatterPlot_deltaEtaVsEta_->Fill(etaFound,etaFound-etaTrue);
438  _TEMP_scatterPlot_deltaEtaVsPhi_->Fill(phiFound,etaFound-etaTrue);
439 
440  _TEMP_scatterPlot_deltaPhiVsEt_->Fill(etFound,deltaPhi);
441  _TEMP_scatterPlot_deltaPhiVsE_->Fill(eFound,deltaPhi);
442  _TEMP_scatterPlot_deltaPhiVsEta_->Fill(etaFound,deltaPhi);
443  _TEMP_scatterPlot_deltaPhiVsPhi_->Fill(phiFound,deltaPhi);
444 
445  photonsMCMatched.push_back(bestMatchPhoton);
446  }
447 
448  hist_EtNumRecoOverNumTrue_->Fill(etTrue);
449  hist_ENumRecoOverNumTrue_->Fill(eTrue);
450  hist_EtaNumRecoOverNumTrue_->Fill(etaTrue);
451  hist_PhiNumRecoOverNumTrue_->Fill(phiTrue);
452  }
453  }
454 
455  if(photonsMCMatched.size() == 2)
456  {
457  reco::Photon pOne = photonsMCMatched[0];
458  reco::Photon pTwo = photonsMCMatched[1];
459 
460  double recoMass = findRecoMass(pOne, pTwo);
461 
462  hist_All_recoMass_->Fill(recoMass);
463 
464  if(pOne.superCluster()->seed()->algo() == 1 && pTwo.superCluster()->seed()->algo() == 1)
465  hist_BarrelOnly_recoMass_->Fill(recoMass);
466  else if(pOne.superCluster()->seed()->algo() == 0 && pTwo.superCluster()->seed()->algo() == 0)
467  hist_EndcapOnly_recoMass_->Fill(recoMass);
468  else
469  hist_Mixed_recoMass_->Fill(recoMass);
470  }
471 }
472 
474 {
476  evt.getByToken(RecoCollectionT_, pElectrons);
477  if (!pElectrons.isValid()) {
478  Labels l;
480  edm::LogError("DOEPlotsProducerElectrons")
481  << "Error! can't get collection with label "
482  << l.module;
483  }
484 
485  const reco::GsfElectronCollection* electrons = pElectrons.product();
486  std::vector<reco::GsfElectron> electronsMCMatched;
487 
488  for(reco::GsfElectronCollection::const_iterator aClus = electrons->begin(); aClus != electrons->end(); aClus++)
489  {
490  if(aClus->et() >= EtCut)
491  {
492  hist_Et_->Fill(aClus->et());
493  hist_E_->Fill(aClus->energy());
494  hist_Eta_->Fill(aClus->eta());
495  hist_Phi_->Fill(aClus->phi());
496  }
497  }
498 
499  for(int firstElectron = 0, numElectrons = electrons->size(); firstElectron < numElectrons - 1; firstElectron++)
500  for(int secondElectron = firstElectron + 1; secondElectron < numElectrons; secondElectron++)
501  {
502  reco::GsfElectron eOne = (*electrons)[firstElectron];
503  reco::GsfElectron eTwo = (*electrons)[secondElectron];
504 
505  double recoMass = findRecoMass(eOne, eTwo);
506 
507  hist_recoMass_withBackgroud_NoEtCut_->Fill(recoMass);
508 
509  if(eOne.et() >= 5 && eTwo.et() >= 5)
510  hist_recoMass_withBackgroud_5EtCut_->Fill(recoMass);
511 
512  if(eOne.et() >= 10 && eTwo.et() >= 10)
513  hist_recoMass_withBackgroud_10EtCut_->Fill(recoMass);
514 
515  if(eOne.et() >= 20 && eTwo.et() >= 20)
516  hist_recoMass_withBackgroud_20EtCut_->Fill(recoMass);
517  }
518 
520  evt.getByToken(MCTruthCollectionT_, pMCTruth);
521  if (!pMCTruth.isValid()) {
522  Labels l;
524  edm::LogError("DOEPlotsProducerElectrons")
525  << "Error! can't get collection with label "
526  << l.module;
527  }
528 
529  const HepMC::GenEvent* genEvent = pMCTruth->GetEvent();
530  for(HepMC::GenEvent::particle_const_iterator currentParticle = genEvent->particles_begin();
531  currentParticle != genEvent->particles_end(); currentParticle++ )
532  {
533  if(abs((*currentParticle)->pdg_id())==11 && (*currentParticle)->status()==1
534  && (*currentParticle)->momentum().e()/cosh((*currentParticle)->momentum().eta()) >= EtCut)
535  {
536  double phiTrue = (*currentParticle)->momentum().phi();
537  double etaTrue = (*currentParticle)->momentum().eta();
538  double eTrue = (*currentParticle)->momentum().e();
539  double etTrue = (*currentParticle)->momentum().e()/cosh(etaTrue);
540 
541  double etaCurrent, etaFound = -999;
542  double phiCurrent, phiFound = -999;
543  double etCurrent, etFound = -999;
544  double eCurrent, eFound = -999;
545 
546  reco::GsfElectron bestMatchElectron;
547 
548  double closestParticleDistance = 999;
549 
550  for(reco::GsfElectronCollection::const_iterator aClus = electrons->begin(); aClus != electrons->end(); aClus++)
551  {
552  if(aClus->et() > EtCut)
553  {
554  etaCurrent = aClus->eta();
555  phiCurrent = aClus->phi();
556  etCurrent = aClus->et();
557  eCurrent = aClus->energy();
558 
559  double deltaPhi = phiCurrent-phiTrue;
560  if(deltaPhi > Geom::pi()) deltaPhi -= 2.*Geom::pi();
561  if(deltaPhi < -Geom::pi()) deltaPhi += 2.*Geom::pi();
562  double deltaR = std::sqrt(std::pow(etaCurrent-etaTrue,2)+std::pow(deltaPhi,2));
563 
564  if(deltaR < closestParticleDistance)
565  {
566  etFound = etCurrent;
567  eFound = eCurrent;
568  etaFound = etaCurrent;
569  phiFound = phiCurrent;
570  closestParticleDistance = deltaR;
571  bestMatchElectron = *aClus;
572  }
573  }
574  }
575 
576  if(closestParticleDistance < 0.05 && etFound/etTrue > .5 && etFound/etTrue < 1.5)
577  {
578  hist_EtOverTruth_->Fill(etFound/etTrue);
579  hist_EOverTruth_->Fill(eFound/eTrue);
580  hist_EtaOverTruth_->Fill(etaFound/etaTrue);
581  hist_PhiOverTruth_->Fill(phiFound/phiTrue);
582 
583  hist_EtEfficiency_->Fill(etTrue);
584  hist_EEfficiency_->Fill(eTrue);
585  hist_EtaEfficiency_->Fill(etaTrue);
586  hist_PhiEfficiency_->Fill(phiTrue);
587 
588  double deltaPhi = phiFound-phiTrue;
589  if(deltaPhi > Geom::pi()) deltaPhi -= 2.*Geom::pi();
590  if(deltaPhi < -Geom::pi()) deltaPhi += 2.*Geom::pi();
591 
592  _TEMP_scatterPlot_EtOverTruthVsEt_->Fill(etFound,etFound/etTrue);
593  _TEMP_scatterPlot_EtOverTruthVsE_->Fill(eFound,etFound/etTrue);
594  _TEMP_scatterPlot_EtOverTruthVsEta_->Fill(etaFound,etFound/etTrue);
595  _TEMP_scatterPlot_EtOverTruthVsPhi_->Fill(phiFound,etFound/etTrue);
596 
597  _TEMP_scatterPlot_EOverTruthVsEt_->Fill(etFound,eFound/eTrue);
598  _TEMP_scatterPlot_EOverTruthVsE_->Fill(eFound,eFound/eTrue);
599  _TEMP_scatterPlot_EOverTruthVsEta_->Fill(etaFound,eFound/eTrue);
600  _TEMP_scatterPlot_EOverTruthVsPhi_->Fill(phiFound,eFound/eTrue);
601 
602  _TEMP_scatterPlot_deltaEtaVsEt_->Fill(etFound,etaFound-etaTrue);
603  _TEMP_scatterPlot_deltaEtaVsE_->Fill(eFound,etaFound-etaTrue);
604  _TEMP_scatterPlot_deltaEtaVsEta_->Fill(etaFound,etaFound-etaTrue);
605  _TEMP_scatterPlot_deltaEtaVsPhi_->Fill(phiFound,etaFound-etaTrue);
606 
607  _TEMP_scatterPlot_deltaPhiVsEt_->Fill(etFound,deltaPhi);
608  _TEMP_scatterPlot_deltaPhiVsE_->Fill(eFound,deltaPhi);
609  _TEMP_scatterPlot_deltaPhiVsEta_->Fill(etaFound,deltaPhi);
610  _TEMP_scatterPlot_deltaPhiVsPhi_->Fill(phiFound,deltaPhi);
611 
612  electronsMCMatched.push_back(bestMatchElectron);
613  }
614 
615  hist_EtNumRecoOverNumTrue_->Fill(etTrue);
616  hist_ENumRecoOverNumTrue_->Fill(eTrue);
617  hist_EtaNumRecoOverNumTrue_->Fill(etaTrue);
618  hist_PhiNumRecoOverNumTrue_->Fill(phiTrue);
619  }
620  }
621 
622  if(electronsMCMatched.size() == 2)
623  {
624  reco::GsfElectron eOne = electronsMCMatched[0];
625  reco::GsfElectron eTwo = electronsMCMatched[1];
626 
627  double recoMass = findRecoMass(eOne, eTwo);
628 
629  hist_All_recoMass_->Fill(recoMass);
630 
631  if(eOne.superCluster()->seed()->algo() == 1 && eTwo.superCluster()->seed()->algo() == 1)
632  hist_BarrelOnly_recoMass_->Fill(recoMass);
633  else if(eOne.superCluster()->seed()->algo() == 0 && eTwo.superCluster()->seed()->algo() == 0)
634  hist_EndcapOnly_recoMass_->Fill(recoMass);
635  else
636  hist_Mixed_recoMass_->Fill(recoMass);
637  }
638 }
639 
641 {
642  double cosTheta
643  = (cos(pOne.superCluster()->phi() - pTwo.superCluster()->phi()) + sinh(pOne.superCluster()->eta()) * sinh(pTwo.superCluster()->eta())) /
644  (cosh(pOne.superCluster()->eta()) * cosh(pTwo.superCluster()->eta()));
645 
646  double recoMass = sqrt(2 * (pOne.superCluster())->energy() * (pTwo.superCluster())->energy() * (1 - cosTheta));
647 
648  return recoMass;
649 }
650 
652 {
653  double cosTheta
654  = (cos(eOne.caloPosition().phi() - eTwo.caloPosition().phi()) + sinh(eOne.caloPosition().eta()) * sinh(eTwo.caloPosition().eta())) /
655  (cosh(eOne.caloPosition().eta()) * cosh(eTwo.caloPosition().eta()));
656 
657  double recoMass = sqrt(2 * eOne.caloEnergy() * eTwo.caloEnergy() * (1 - cosTheta));
658 
659  return recoMass;
660 }
661 
662 float EgammaObjects::ecalEta(float EtaParticle , float Zvertex, float plane_Radius)
663 {
664  const float R_ECAL = 136.5;
665  const float Z_Endcap = 328.0;
666  const float etaBarrelEndcap = 1.479;
667 
668  if(EtaParticle != 0.)
669  {
670  float Theta = 0.0 ;
671  float ZEcal = (R_ECAL-plane_Radius)*sinh(EtaParticle)+Zvertex;
672 
673  if(ZEcal != 0.0) Theta = atan(R_ECAL/ZEcal);
674  if(Theta<0.0) Theta = Theta+Geom::pi() ;
675 
676  float ETA = - log(tan(0.5*Theta));
677 
678  if( std::abs(ETA) > etaBarrelEndcap )
679  {
680  float Zend = Z_Endcap ;
681  if(EtaParticle<0.0 ) Zend = -Zend ;
682  float Zlen = Zend - Zvertex ;
683  float RR = Zlen/sinh(EtaParticle);
684  Theta = atan((RR+plane_Radius)/Zend);
685  if(Theta<0.0) Theta = Theta+Geom::pi() ;
686  ETA = - log(tan(0.5*Theta));
687  }
688 
689  return ETA;
690  }
691  else
692  {
693  edm::LogWarning("") << "[EgammaObjects::ecalEta] Warning: Eta equals to zero, not correcting" ;
694  return EtaParticle;
695  }
696 }
697 
698 
700 {
701  rootFile_->cd();
702  rootFile_->mkdir(particleString.c_str());
703 
706  fitHistos();
707 
708  applyLabels();
709  setDrawOptions();
710  saveHistos();
711  rootFile_->Close();
712 }
713 
715 {
716  _TEMP_scatterPlot_EtOverTruthVsEt_->FitSlicesY(0,1,hist_bins_Et_,10,"QRG3");
717  _TEMP_scatterPlot_EtOverTruthVsE_->FitSlicesY(0,1,hist_bins_E_,10,"QRG3");
718  _TEMP_scatterPlot_EtOverTruthVsEta_->FitSlicesY(0,1,hist_bins_Eta_,10,"QRG2");
719  _TEMP_scatterPlot_EtOverTruthVsPhi_->FitSlicesY(0,1,hist_bins_Phi_,10,"QRG2");
720 
721  _TEMP_scatterPlot_EOverTruthVsEt_->FitSlicesY(0,1,hist_bins_Et_,10,"QRG3");
722  _TEMP_scatterPlot_EOverTruthVsE_->FitSlicesY(0,1,hist_bins_E_,10,"QRG3");
723  _TEMP_scatterPlot_EOverTruthVsEta_->FitSlicesY(0,1,hist_bins_Eta_,10,"QRG2");
724  _TEMP_scatterPlot_EOverTruthVsPhi_->FitSlicesY(0,1,hist_bins_Phi_,10,"QRG2");
725 
726  _TEMP_scatterPlot_deltaEtaVsEt_->FitSlicesY(0,1,hist_bins_Et_,10,"QRG3");
727  _TEMP_scatterPlot_deltaEtaVsE_->FitSlicesY(0,1,hist_bins_E_,10,"QRG3");
728  _TEMP_scatterPlot_deltaEtaVsEta_->FitSlicesY(0,1,hist_bins_Eta_,10,"QRG2");
729  _TEMP_scatterPlot_deltaEtaVsPhi_->FitSlicesY(0,1,hist_bins_Phi_,10,"QRG2");
730 
731  _TEMP_scatterPlot_deltaPhiVsEt_->FitSlicesY(0,1,hist_bins_Et_,10,"QRG3");
732  _TEMP_scatterPlot_deltaPhiVsE_->FitSlicesY(0,1,hist_bins_E_,10,"QRG3");
733  _TEMP_scatterPlot_deltaPhiVsEta_->FitSlicesY(0,1,hist_bins_Eta_,10,"QRG2");
734  _TEMP_scatterPlot_deltaPhiVsPhi_->FitSlicesY(0,1,hist_bins_Phi_,10,"QRG2");
735 
736  hist_EtOverTruthVsEt_ = (TH1D*)gDirectory->Get("_TEMP_scatterPlot_EtOverTruthVsEt__1");
737  hist_EtOverTruthVsE_ = (TH1D*)gDirectory->Get("_TEMP_scatterPlot_EtOverTruthVsE__1");
738  hist_EtOverTruthVsEta_ = (TH1D*)gDirectory->Get("_TEMP_scatterPlot_EtOverTruthVsEta__1");
739  hist_EtOverTruthVsPhi_ = (TH1D*)gDirectory->Get("_TEMP_scatterPlot_EtOverTruthVsPhi__1");
740 
741  hist_EOverTruthVsEt_ = (TH1D*)gDirectory->Get("_TEMP_scatterPlot_EOverTruthVsEt__1");
742  hist_EOverTruthVsE_ = (TH1D*)gDirectory->Get("_TEMP_scatterPlot_EOverTruthVsE__1");
743  hist_EOverTruthVsEta_ = (TH1D*)gDirectory->Get("_TEMP_scatterPlot_EOverTruthVsEta__1");
744  hist_EOverTruthVsPhi_ = (TH1D*)gDirectory->Get("_TEMP_scatterPlot_EOverTruthVsPhi__1");
745 
746  hist_deltaEtaVsEt_ = (TH1D*)gDirectory->Get("_TEMP_scatterPlot_deltaEtaVsEt__1");
747  hist_deltaEtaVsE_ = (TH1D*)gDirectory->Get("_TEMP_scatterPlot_deltaEtaVsE__1");
748  hist_deltaEtaVsEta_ = (TH1D*)gDirectory->Get("_TEMP_scatterPlot_deltaEtaVsEta__1");
749  hist_deltaEtaVsPhi_ = (TH1D*)gDirectory->Get("_TEMP_scatterPlot_deltaEtaVsPhi__1");
750 
751  hist_deltaPhiVsEt_ = (TH1D*)gDirectory->Get("_TEMP_scatterPlot_deltaPhiVsEt__1");
752  hist_deltaPhiVsE_ = (TH1D*)gDirectory->Get("_TEMP_scatterPlot_deltaPhiVsE__1");
753  hist_deltaPhiVsEta_ = (TH1D*)gDirectory->Get("_TEMP_scatterPlot_deltaPhiVsEta__1");
754  hist_deltaPhiVsPhi_ = (TH1D*)gDirectory->Get("_TEMP_scatterPlot_deltaPhiVsPhi__1");
755 
756  hist_EtOverTruthVsEt_->SetNameTitle("hist_EtOverTruthVsEt_",("Reco Et over True Et VS Et of "+particleString).c_str());
757  hist_EtOverTruthVsE_->SetNameTitle("hist_EtOverTruthVsE_",("Reco Et over True Et VS E of "+particleString).c_str());
758  hist_EtOverTruthVsEta_->SetNameTitle("hist_EtOverTruthVsEta_",("Reco Et over True Et VS Eta of "+particleString).c_str());
759  hist_EtOverTruthVsPhi_->SetNameTitle("hist_EtOverTruthVsPhi_",("Reco Et over True Et VS Phi of "+particleString).c_str());
760 
761  hist_EOverTruthVsEt_->SetNameTitle("hist_EOverTruthVsEt_",("Reco E over True E VS Et of "+particleString).c_str());
762  hist_EOverTruthVsE_->SetNameTitle("hist_EOverTruthVsE_",("Reco E over True E VS E of "+particleString).c_str());
763  hist_EOverTruthVsEta_->SetNameTitle("hist_EOverTruthVsEta_",("Reco E over True E VS Eta of "+particleString).c_str());
764  hist_EOverTruthVsPhi_->SetNameTitle("hist_EOverTruthVsPhi_",("Reco E over True E VS Phi of "+particleString).c_str());
765 
766  hist_deltaEtaVsEt_->SetNameTitle("hist_deltaEtaVsEt_",("delta Eta VS Et of "+particleString).c_str());
767  hist_deltaEtaVsE_->SetNameTitle("hist_deltaEtaVsE_",("delta Eta VS E of "+particleString).c_str());
768  hist_deltaEtaVsEta_->SetNameTitle("hist_deltaEtaVsEta_",("delta Eta VS Eta of "+particleString).c_str());
769  hist_deltaEtaVsPhi_->SetNameTitle("hist_deltaEtaVsPhi_",("delta Eta VS Phi of "+particleString).c_str());
770 
771  hist_deltaPhiVsEt_->SetNameTitle("hist_deltaPhiVsEt_",("delta Phi VS Et of "+particleString).c_str());
772  hist_deltaPhiVsE_->SetNameTitle("hist_deltaPhiVsE_",("delta Phi VS E of "+particleString).c_str());
773  hist_deltaPhiVsEta_->SetNameTitle("hist_deltaPhiVsEta_",("delta Phi VS Eta of "+particleString).c_str());
774  hist_deltaPhiVsPhi_->SetNameTitle("hist_deltaPhiVsPhi_",("delta Phi VS Phi of "+particleString).c_str());
775 
776  hist_resolutionEtVsEt_ = (TH1D*)gDirectory->Get("_TEMP_scatterPlot_EtOverTruthVsEt__2");
777  hist_resolutionEtVsE_ = (TH1D*)gDirectory->Get("_TEMP_scatterPlot_EtOverTruthVsE__2");
778  hist_resolutionEtVsEta_ = (TH1D*)gDirectory->Get("_TEMP_scatterPlot_EtOverTruthVsEta__2");
779  hist_resolutionEtVsPhi_ = (TH1D*)gDirectory->Get("_TEMP_scatterPlot_EtOverTruthVsPhi__2");
780 
781  hist_resolutionEVsEt_ = (TH1D*)gDirectory->Get("_TEMP_scatterPlot_EOverTruthVsEt__2");
782  hist_resolutionEVsE_ = (TH1D*)gDirectory->Get("_TEMP_scatterPlot_EOverTruthVsE__2");
783  hist_resolutionEVsEta_ = (TH1D*)gDirectory->Get("_TEMP_scatterPlot_EOverTruthVsEta__2");
784  hist_resolutionEVsPhi_ = (TH1D*)gDirectory->Get("_TEMP_scatterPlot_EOverTruthVsPhi__2");
785 
786  hist_resolutionEtaVsEt_ = (TH1D*)gDirectory->Get("_TEMP_scatterPlot_deltaEtaVsEt__2");
787  hist_resolutionEtaVsE_ = (TH1D*)gDirectory->Get("_TEMP_scatterPlot_deltaEtaVsE__2");
788  hist_resolutionEtaVsEta_ = (TH1D*)gDirectory->Get("_TEMP_scatterPlot_deltaEtaVsEta__2");
789  hist_resolutionEtaVsPhi_ = (TH1D*)gDirectory->Get("_TEMP_scatterPlot_deltaEtaVsPhi__2");
790 
791  hist_resolutionPhiVsEt_ = (TH1D*)gDirectory->Get("_TEMP_scatterPlot_deltaPhiVsEt__2");
792  hist_resolutionPhiVsE_ = (TH1D*)gDirectory->Get("_TEMP_scatterPlot_deltaPhiVsE__2");
793  hist_resolutionPhiVsEta_ = (TH1D*)gDirectory->Get("_TEMP_scatterPlot_deltaPhiVsEta__2");
794  hist_resolutionPhiVsPhi_ = (TH1D*)gDirectory->Get("_TEMP_scatterPlot_deltaPhiVsPhi__2");
795 
796  hist_resolutionEtVsEt_->SetNameTitle("hist_resolutionEtVsEt_",("#sigma of Reco Et over True Et VS Et of "+particleString).c_str());
797  hist_resolutionEtVsE_->SetNameTitle("hist_resolutionEtVsE_",("#sigma of Reco Et over True Et VS E of "+particleString).c_str());
798  hist_resolutionEtVsEta_->SetNameTitle("hist_resolutionEtVsEta_",("#sigma of Reco Et over True Et VS Eta of "+particleString).c_str());
799  hist_resolutionEtVsPhi_->SetNameTitle("hist_resolutionEtVsPhi_",("#sigma of Reco Et over True Et VS Phi of "+particleString).c_str());
800 
801  hist_resolutionEVsEt_->SetNameTitle("hist_resolutionEVsEt_",("#sigma of Reco E over True E VS Et of "+particleString).c_str());
802  hist_resolutionEVsE_->SetNameTitle("hist_resolutionEVsE_",("#sigma of Reco E over True E VS E of "+particleString).c_str());
803  hist_resolutionEVsEta_->SetNameTitle("hist_resolutionEVsEta_",("#sigma of Reco E over True E VS Eta of "+particleString).c_str());
804  hist_resolutionEVsPhi_->SetNameTitle("hist_resolutionEVsPhi_",("#sigma of Reco E over True E VS Phi of "+particleString).c_str());
805 
806  hist_resolutionEtaVsEt_->SetNameTitle("hist_resolutionEtaVsEt_",("#sigma of delta Eta VS Et of "+particleString).c_str());
807  hist_resolutionEtaVsE_->SetNameTitle("hist_resolutionEtaVsE_",("#sigma of delta Eta VS E of "+particleString).c_str());
808  hist_resolutionEtaVsEta_->SetNameTitle("hist_resolutionEtaVsEta_",("#sigma of delta Eta VS Eta of "+particleString).c_str());
809  hist_resolutionEtaVsPhi_->SetNameTitle("hist_resolutionEtaVsPhi_",("#sigma of delta Eta VS Phi of "+particleString).c_str());
810 
811  hist_resolutionPhiVsEt_->SetNameTitle("hist_resolutionPhiVsEt_",("#sigma of delta Phi VS Et of "+particleString).c_str());
812  hist_resolutionPhiVsE_->SetNameTitle("hist_resolutionPhiVsE_",("#sigma of delta Phi VS E of "+particleString).c_str());
813  hist_resolutionPhiVsEta_->SetNameTitle("hist_resolutionPhiVsEta_",("#sigma of delta Phi VS Eta of "+particleString).c_str());
814  hist_resolutionPhiVsPhi_->SetNameTitle("hist_resolutionPhiVsPhi_",("#sigma of delta Phi VS Phi of "+particleString).c_str());
815 }
816 
818 {
823 
828 }
829 
831 {
832  hist_EtOverTruth_->Fit("gaus","QEM");
833 // hist_EtNumRecoOverNumTrue_->Fit("pol1","QEM");
834 
835  hist_EOverTruth_->Fit("gaus","QEM");
836 // hist_ENumRecoOverNumTrue_->Fit("pol1","QEM");
837 
838  hist_EtaOverTruth_->Fit("gaus","QEM");
839 // hist_EtaNumRecoOverNumTrue_->Fit("pol1","QEM");
840 
841  hist_PhiOverTruth_->Fit("gaus","QEM");
842 // hist_PhiNumRecoOverNumTrue_->Fit("pol1","QEM");
843 
844  /*
845  hist_EtOverTruthVsEt_->Fit("pol1","QEM");
846  hist_EtOverTruthVsEta_->Fit("pol1","QEM");
847  hist_EtOverTruthVsPhi_->Fit("pol1","QEM");
848  hist_resolutionEtVsEt_->Fit("pol1","QEM");
849  hist_resolutionEtVsEta_->Fit("pol1","QEM");
850  hist_resolutionEtVsPhi_->Fit("pol1","QEM");
851 
852  hist_EOverTruthVsEt_->Fit("pol1","QEM");
853  hist_EOverTruthVsEta_->Fit("pol1","QEM");
854  hist_EOverTruthVsPhi_->Fit("pol1","QEM");
855  hist_resolutionEVsEt_->Fit("pol1","QEM");
856  hist_resolutionEVsEta_->Fit("pol1","QEM");
857  hist_resolutionEVsPhi_->Fit("pol1","QEM");
858 
859  hist_deltaEtaVsEt_->Fit("pol1","QEM");
860  hist_deltaEtaVsEta_->Fit("pol1","QEM");
861  hist_deltaEtaVsPhi_->Fit("pol1","QEM");
862  hist_resolutionEtaVsEt_->Fit("pol1","QEM");
863  hist_resolutionEtaVsEta_->Fit("pol1","QEM");
864  hist_resolutionEtaVsPhi_->Fit("pol1","QEM");
865 
866  hist_deltaPhiVsEt_->Fit("pol1","QEM");
867  hist_deltaPhiVsEta_->Fit("pol1","QEM");
868  hist_deltaPhiVsPhi_->Fit("pol1","QEM");
869  hist_resolutionPhiVsEt_->Fit("pol1","QEM");
870  hist_resolutionPhiVsEta_->Fit("pol1","QEM");
871  hist_resolutionPhiVsPhi_->Fit("pol1","QEM");
872  */
873 }
874 
876 {
877  hist_Et_->GetXaxis()->SetTitle("Et (GeV)");
878  hist_Et_->GetYaxis()->SetTitle("# per Et Bin");
879  hist_EtOverTruth_->GetXaxis()->SetTitle("Reco Et/True Et");
880  hist_EtOverTruth_->GetYaxis()->SetTitle("# per Ratio Bin");
881  hist_EtEfficiency_->GetXaxis()->SetTitle("Et (GeV)");
882  hist_EtEfficiency_->GetYaxis()->SetTitle("# True Reconstructed/# True per Et Bin");
883  hist_EtNumRecoOverNumTrue_->GetXaxis()->SetTitle("Et (GeV)");
884  hist_EtNumRecoOverNumTrue_->GetYaxis()->SetTitle("# Reco/# True per Et Bin");
885  hist_EtOverTruthVsEt_->GetXaxis()->SetTitle("Et (GeV)");
886  hist_EtOverTruthVsEt_->GetYaxis()->SetTitle("Reco Et/True Et per Et Bin");
887  hist_EtOverTruthVsE_->GetXaxis()->SetTitle("E (GeV)");
888  hist_EtOverTruthVsE_->GetYaxis()->SetTitle("Reco Et/True Et per E Bin");
889  hist_EtOverTruthVsEta_->GetXaxis()->SetTitle("#eta (Radians)");
890  hist_EtOverTruthVsEta_->GetYaxis()->SetTitle("Reco Et/True Et per Eta Bin");
891  hist_EtOverTruthVsPhi_->GetXaxis()->SetTitle("#phi (Radians)");
892  hist_EtOverTruthVsPhi_->GetYaxis()->SetTitle("Reco Et/True Et per Phi Bin");
893  hist_resolutionEtVsEt_->GetXaxis()->SetTitle("Et (GeV)");
894  hist_resolutionEtVsEt_->GetYaxis()->SetTitle("#sigma of Reco Et/True Et per Et Bin");
895  hist_resolutionEtVsE_->GetXaxis()->SetTitle("E (GeV)");
896  hist_resolutionEtVsE_->GetYaxis()->SetTitle("#sigma of Reco Et/True Et per E Bin");
897  hist_resolutionEtVsEta_->GetXaxis()->SetTitle("#eta (Radians)");
898  hist_resolutionEtVsEta_->GetYaxis()->SetTitle("#sigma of Reco Et/True Et per Eta Bin");
899  hist_resolutionEtVsPhi_->GetXaxis()->SetTitle("#phi (Radians)");
900  hist_resolutionEtVsPhi_->GetYaxis()->SetTitle("#sigma of Reco Et/True Et per Phi Bin");
901 
902  hist_E_->GetXaxis()->SetTitle("E (GeV)");
903  hist_E_->GetYaxis()->SetTitle("# per E Bin");
904  hist_EOverTruth_->GetXaxis()->SetTitle("Reco E/True E");
905  hist_EOverTruth_->GetYaxis()->SetTitle("# per Ratio Bin");
906  hist_EEfficiency_->GetXaxis()->SetTitle("E (GeV)");
907  hist_EEfficiency_->GetYaxis()->SetTitle("# True Reconstructed/# True per E Bin");
908  hist_ENumRecoOverNumTrue_->GetXaxis()->SetTitle("E (GeV)");
909  hist_ENumRecoOverNumTrue_->GetYaxis()->SetTitle("# Reco/# True per E Bin");
910  hist_EOverTruthVsEt_->GetXaxis()->SetTitle("Et (GeV)");
911  hist_EOverTruthVsEt_->GetYaxis()->SetTitle("Reco E/True E per Et Bin");
912  hist_EOverTruthVsE_->GetXaxis()->SetTitle("E (GeV)");
913  hist_EOverTruthVsE_->GetYaxis()->SetTitle("Reco E/True E per E Bin");
914  hist_EOverTruthVsEta_->GetXaxis()->SetTitle("#eta (Radians)");
915  hist_EOverTruthVsEta_->GetYaxis()->SetTitle("Reco E/True E per Eta Bin");
916  hist_EOverTruthVsPhi_->GetXaxis()->SetTitle("#phi (Radians)");
917  hist_EOverTruthVsPhi_->GetYaxis()->SetTitle("Reco E/True E per Phi Bin");
918  hist_resolutionEVsEt_->GetXaxis()->SetTitle("Et (GeV)");
919  hist_resolutionEVsEt_->GetYaxis()->SetTitle("#sigma of Reco E/True E per Et Bin");
920  hist_resolutionEVsE_->GetXaxis()->SetTitle("E (GeV)");
921  hist_resolutionEVsE_->GetYaxis()->SetTitle("#sigma of Reco E/True E per E Bin");
922  hist_resolutionEVsEta_->GetXaxis()->SetTitle("#eta (Radians)");
923  hist_resolutionEVsEta_->GetYaxis()->SetTitle("#sigma of Reco E/True E per Eta Bin");
924  hist_resolutionEVsPhi_->GetXaxis()->SetTitle("#phi (Radians)");
925  hist_resolutionEVsPhi_->GetYaxis()->SetTitle("#sigma of Reco E/True E per Phi Bin");
926 
927  hist_Eta_->GetXaxis()->SetTitle("#eta (Radians)");
928  hist_Eta_->GetYaxis()->SetTitle("# per Eta Bin");
929  hist_EtaOverTruth_->GetXaxis()->SetTitle("Reco Eta/True Eta");
930  hist_EtaOverTruth_->GetYaxis()->SetTitle("# per Ratio Bin");
931  hist_EtaEfficiency_->GetXaxis()->SetTitle("#eta (Radians)");
932  hist_EtaEfficiency_->GetYaxis()->SetTitle("# True Reconstructed/# True per Eta Bin");
933  hist_EtaNumRecoOverNumTrue_->GetXaxis()->SetTitle("#eta (Radians)");
934  hist_EtaNumRecoOverNumTrue_->GetYaxis()->SetTitle("# Reco/# True per Eta Bin");
935  hist_deltaEtaVsEt_->GetXaxis()->SetTitle("Et (GeV)");
936  hist_deltaEtaVsEt_->GetYaxis()->SetTitle("Reco Eta - True Eta per Et Bin");
937  hist_deltaEtaVsE_->GetXaxis()->SetTitle("E (GeV)");
938  hist_deltaEtaVsE_->GetYaxis()->SetTitle("Reco Eta - True Eta per E Bin");
939  hist_deltaEtaVsEta_->GetXaxis()->SetTitle("#eta (Radians)");
940  hist_deltaEtaVsEta_->GetYaxis()->SetTitle("Reco Eta - True Eta per Eta Bin");
941  hist_deltaEtaVsPhi_->GetXaxis()->SetTitle("#phi (Radians)");
942  hist_deltaEtaVsPhi_->GetYaxis()->SetTitle("Reco Eta - True Eta per Phi Bin");
943  hist_resolutionEtaVsEt_->GetXaxis()->SetTitle("Et (GeV)");
944  hist_resolutionEtaVsEt_->GetYaxis()->SetTitle("#sigma of Reco Eta - True Eta per Et Bin");
945  hist_resolutionEtaVsE_->GetXaxis()->SetTitle("E (GeV)");
946  hist_resolutionEtaVsE_->GetYaxis()->SetTitle("#sigma of Reco Eta - True Eta per E Bin");
947  hist_resolutionEtaVsEta_->GetXaxis()->SetTitle("#eta (Radians)");
948  hist_resolutionEtaVsEta_->GetYaxis()->SetTitle("#sigma of Reco Eta - True Eta per Eta Bin");
949  hist_resolutionEtaVsPhi_->GetXaxis()->SetTitle("#phi (Radians)");
950  hist_resolutionEtaVsPhi_->GetYaxis()->SetTitle("#sigma of Reco Eta - True Eta per Phi Bin");
951 
952  hist_Phi_->GetXaxis()->SetTitle("#phi (Radians)");
953  hist_Phi_->GetYaxis()->SetTitle("# per Phi Bin");
954  hist_PhiOverTruth_->GetXaxis()->SetTitle("Reco Phi/True Phi");
955  hist_PhiOverTruth_->GetYaxis()->SetTitle("# per Ratio Bin");
956  hist_PhiEfficiency_->GetXaxis()->SetTitle("#phi (Radians)");
957  hist_PhiEfficiency_->GetYaxis()->SetTitle("# True Reconstructed/# True per Phi Bin");
958  hist_PhiNumRecoOverNumTrue_->GetXaxis()->SetTitle("#Phi (Radians)");
959  hist_PhiNumRecoOverNumTrue_->GetYaxis()->SetTitle("# Reco/# True per Phi Bin");
960  hist_deltaPhiVsEt_->GetXaxis()->SetTitle("Et (GeV)");
961  hist_deltaPhiVsEt_->GetYaxis()->SetTitle("Reco Phi - True Phi per Et Bin");
962  hist_deltaPhiVsE_->GetXaxis()->SetTitle("E (GeV)");
963  hist_deltaPhiVsE_->GetYaxis()->SetTitle("Reco Phi - True Phi per E Bin");
964  hist_deltaPhiVsEta_->GetXaxis()->SetTitle("#eta (Radians)");
965  hist_deltaPhiVsEta_->GetYaxis()->SetTitle("Reco Phi - True Phi per Eta Bin");
966  hist_deltaPhiVsPhi_->GetXaxis()->SetTitle("#phi (Radians)");
967  hist_deltaPhiVsPhi_->GetYaxis()->SetTitle("Reco Phi - True Phi per Phi Bin");
968  hist_resolutionPhiVsEt_->GetXaxis()->SetTitle("Et (GeV)");
969  hist_resolutionPhiVsEt_->GetYaxis()->SetTitle("#sigma of Reco Phi - True Phi per Et Bin");
970  hist_resolutionPhiVsE_->GetXaxis()->SetTitle("E (GeV)");
971  hist_resolutionPhiVsE_->GetYaxis()->SetTitle("#sigma of Reco Phi - True Phi per E Bin");
972  hist_resolutionPhiVsEta_->GetXaxis()->SetTitle("#eta (Radians)");
973  hist_resolutionPhiVsEta_->GetYaxis()->SetTitle("#sigma of Reco Phi - True Phi per Eta Bin");
974  hist_resolutionPhiVsPhi_->GetXaxis()->SetTitle("#phi (Radians)");
975  hist_resolutionPhiVsPhi_->GetYaxis()->SetTitle("#sigma of Reco Phi - True Phi per Phi Bin");
976 
977  std::string recoParticleName;
978 
979  if( particleID == 22 ) recoParticleName = "Reco Higgs";
980  else if( particleID == 11 ) recoParticleName = "Reco Z";
981 
982  hist_All_recoMass_->GetXaxis()->SetTitle((recoParticleName+" Mass (GeV)").c_str());
983  hist_All_recoMass_->GetYaxis()->SetTitle("# of Reco Masses per Mass Bin");
984  hist_BarrelOnly_recoMass_->GetXaxis()->SetTitle((recoParticleName+" Mass (GeV)").c_str());
985  hist_BarrelOnly_recoMass_->GetYaxis()->SetTitle("# of Reco Masses per Mass Bin");
986  hist_EndcapOnly_recoMass_->GetXaxis()->SetTitle((recoParticleName+" Mass (GeV)").c_str());
987  hist_EndcapOnly_recoMass_->GetYaxis()->SetTitle("# of Reco Masses per Mass Bin");
988  hist_Mixed_recoMass_->GetXaxis()->SetTitle((recoParticleName+" Mass (GeV)").c_str());
989  hist_Mixed_recoMass_->GetYaxis()->SetTitle("# of Reco Masses per Mass Bin");
990  hist_recoMass_withBackgroud_NoEtCut_->GetXaxis()->SetTitle((recoParticleName+" Mass (GeV)").c_str());
991  hist_recoMass_withBackgroud_NoEtCut_->GetYaxis()->SetTitle("# of Reco Masses per Mass Bin");
992  hist_recoMass_withBackgroud_5EtCut_->GetXaxis()->SetTitle((recoParticleName+" Mass (GeV)").c_str());
993  hist_recoMass_withBackgroud_5EtCut_->GetYaxis()->SetTitle("# of Reco Masses per Mass Bin");
994  hist_recoMass_withBackgroud_10EtCut_->GetXaxis()->SetTitle((recoParticleName+" Mass (GeV)").c_str());
995  hist_recoMass_withBackgroud_10EtCut_->GetYaxis()->SetTitle("# of Reco Masses per Mass Bin");
996  hist_recoMass_withBackgroud_20EtCut_->GetXaxis()->SetTitle((recoParticleName+" Mass (GeV)").c_str());
997  hist_recoMass_withBackgroud_20EtCut_->GetYaxis()->SetTitle("# of Reco Masses per Mass Bin");
998 }
999 
1001 {
1002  hist_Et_->SetOption("e");
1003  hist_EtOverTruth_->SetOption("e");
1004  hist_EtEfficiency_->SetOption("e");
1005  hist_EtNumRecoOverNumTrue_->SetOption("e");
1006  hist_EtOverTruthVsEt_->SetOption("e");
1007  hist_EtOverTruthVsE_->SetOption("e");
1008  hist_EtOverTruthVsEta_->SetOption("e");
1009  hist_EtOverTruthVsPhi_->SetOption("e");
1010  hist_resolutionEtVsEt_->SetOption("e");
1011  hist_resolutionEtVsE_->SetOption("e");
1012  hist_resolutionEtVsEta_->SetOption("e");
1013  hist_resolutionEtVsPhi_->SetOption("e");
1014 
1015  hist_E_->SetOption("e");
1016  hist_EOverTruth_->SetOption("e");
1017  hist_EEfficiency_->SetOption("e");
1018  hist_ENumRecoOverNumTrue_->SetOption("e");
1019  hist_EOverTruthVsEt_->SetOption("e");
1020  hist_EOverTruthVsE_->SetOption("e");
1021  hist_EOverTruthVsEta_->SetOption("e");
1022  hist_EOverTruthVsPhi_->SetOption("e");
1023  hist_resolutionEVsEt_->SetOption("e");
1024  hist_resolutionEVsE_->SetOption("e");
1025  hist_resolutionEVsEta_->SetOption("e");
1026  hist_resolutionEVsPhi_->SetOption("e");
1027 
1028  hist_Eta_->SetOption("e");
1029  hist_EtaOverTruth_->SetOption("e");
1030  hist_EtaEfficiency_->SetOption("e");
1031  hist_EtaNumRecoOverNumTrue_->SetOption("e");
1032  hist_deltaEtaVsEt_->SetOption("e");
1033  hist_deltaEtaVsE_->SetOption("e");
1034  hist_deltaEtaVsEta_->SetOption("e");
1035  hist_deltaEtaVsPhi_->SetOption("e");
1036  hist_resolutionEtaVsEt_->SetOption("e");
1037  hist_resolutionEtaVsE_->SetOption("e");
1038  hist_resolutionEtaVsEta_->SetOption("e");
1039  hist_resolutionEtaVsPhi_->SetOption("e");
1040 
1041  hist_Phi_->SetOption("e");
1042  hist_PhiOverTruth_->SetOption("e");
1043  hist_PhiEfficiency_->SetOption("e");
1044  hist_PhiNumRecoOverNumTrue_->SetOption("e");
1045  hist_deltaPhiVsEt_->SetOption("e");
1046  hist_deltaPhiVsE_->SetOption("e");
1047  hist_deltaPhiVsEta_->SetOption("e");
1048  hist_deltaPhiVsPhi_->SetOption("e");
1049  hist_resolutionPhiVsEt_->SetOption("e");
1050  hist_resolutionPhiVsE_->SetOption("e");
1051  hist_resolutionPhiVsEta_->SetOption("e");
1052  hist_resolutionPhiVsPhi_->SetOption("e");
1053 
1054  hist_All_recoMass_->SetOption("e");
1055  hist_BarrelOnly_recoMass_->SetOption("e");
1056  hist_EndcapOnly_recoMass_->SetOption("e");
1057  hist_Mixed_recoMass_->SetOption("e");
1058  hist_recoMass_withBackgroud_NoEtCut_->SetOption("e");
1059  hist_recoMass_withBackgroud_5EtCut_->SetOption("e");
1060  hist_recoMass_withBackgroud_10EtCut_->SetOption("e");
1061  hist_recoMass_withBackgroud_20EtCut_->SetOption("e");
1062 }
1063 
1065 {
1066  rootFile_->cd();
1067  rootFile_->GetDirectory(particleString.c_str())->mkdir("ET");
1068  rootFile_->cd(("/"+particleString+"/ET").c_str());
1069 
1070  hist_Et_->Write();
1071  hist_EtOverTruth_->Write();
1072  hist_EtEfficiency_->Write();
1073  hist_EtNumRecoOverNumTrue_->Write();
1074  hist_EtOverTruthVsEt_->Write();
1075  hist_EtOverTruthVsE_->Write();
1076  hist_EtOverTruthVsEta_->Write();
1077  hist_EtOverTruthVsPhi_->Write();
1078  hist_resolutionEtVsEt_->Write();
1079  hist_resolutionEtVsE_->Write();
1080  hist_resolutionEtVsEta_->Write();
1081  hist_resolutionEtVsPhi_->Write();
1082 
1083  rootFile_->cd();
1084  rootFile_->GetDirectory(particleString.c_str())->mkdir("E");
1085  rootFile_->cd(("/"+particleString+"/E").c_str());
1086 
1087  hist_E_->Write();
1088  hist_EOverTruth_->Write();
1089  hist_EEfficiency_->Write();
1090  hist_ENumRecoOverNumTrue_->Write();
1091  hist_EOverTruthVsEt_->Write();
1092  hist_EOverTruthVsE_->Write();
1093  hist_EOverTruthVsEta_->Write();
1094  hist_EOverTruthVsPhi_->Write();
1095  hist_resolutionEVsEt_->Write();
1096  hist_resolutionEVsE_->Write();
1097  hist_resolutionEVsEta_->Write();
1098  hist_resolutionEVsPhi_->Write();
1099 
1100  rootFile_->cd();
1101  rootFile_->GetDirectory(particleString.c_str())->mkdir("Eta");
1102  rootFile_->cd(("/"+particleString+"/Eta").c_str());
1103 
1104  hist_Eta_->Write();
1105  hist_EtaOverTruth_->Write();
1106  hist_EtaEfficiency_->Write();
1107  hist_EtaNumRecoOverNumTrue_->Write();
1108  hist_deltaEtaVsEt_->Write();
1109  hist_deltaEtaVsE_->Write();
1110  hist_deltaEtaVsEta_->Write();
1111  hist_deltaEtaVsPhi_->Write();
1112  hist_resolutionEtaVsEt_->Write();
1113  hist_resolutionEtaVsE_->Write();
1114  hist_resolutionEtaVsEta_->Write();
1115  hist_resolutionEtaVsPhi_->Write();
1116 
1117  rootFile_->cd();
1118  rootFile_->GetDirectory(particleString.c_str())->mkdir("Phi");
1119  rootFile_->cd(("/"+particleString+"/Phi").c_str());
1120 
1121  hist_Phi_->Write();
1122  hist_PhiOverTruth_->Write();
1123  hist_PhiEfficiency_->Write();
1124  hist_PhiNumRecoOverNumTrue_->Write();
1125  hist_deltaPhiVsEt_->Write();
1126  hist_deltaPhiVsE_->Write();
1127  hist_deltaPhiVsEta_->Write();
1128  hist_deltaPhiVsPhi_->Write();
1129  hist_resolutionPhiVsEt_->Write();
1130  hist_resolutionPhiVsE_->Write();
1131  hist_resolutionPhiVsEta_->Write();
1132  hist_resolutionPhiVsPhi_->Write();
1133 
1134  std::string recoParticleName;
1135 
1136  if( particleID == 22 ) recoParticleName = "HiggsRecoMass";
1137  else if( particleID == 11 ) recoParticleName = "ZRecoMass";
1138 
1139  rootFile_->cd();
1140  rootFile_->GetDirectory(particleString.c_str())->mkdir(recoParticleName.c_str());
1141  rootFile_->cd(("/"+particleString+"/"+recoParticleName).c_str());
1142 
1143  hist_All_recoMass_->Write();
1144  hist_BarrelOnly_recoMass_->Write();
1145  hist_EndcapOnly_recoMass_->Write();
1146  hist_Mixed_recoMass_->Write();
1151 
1152  rootFile_->cd();
1153  rootFile_->GetDirectory(particleString.c_str())->mkdir("_TempScatterPlots");
1154  rootFile_->cd(("/"+particleString+"/_TempScatterPlots").c_str());
1155 
1160 
1165 
1170 
1175 
1176  rootFile_->cd();
1177 }
1178 
TH1D * hist_resolutionEVsPhi_
TH2D * _TEMP_scatterPlot_EtOverTruthVsPhi_
double hist_min_deltaEta_
Definition: EgammaObjects.h:75
int hist_bins_deltaEta_
Definition: EgammaObjects.h:77
T getParameter(std::string const &) const
double hist_min_EtaOverTruth_
Definition: EgammaObjects.h:67
TH2D * _TEMP_scatterPlot_deltaEtaVsEta_
TH1D * hist_resolutionEVsE_
int hist_bins_deltaPhi_
Definition: EgammaObjects.h:81
TH2D * _TEMP_scatterPlot_deltaPhiVsPhi_
TH1D * hist_PhiEfficiency_
TH1D * hist_deltaEtaVsEta_
float ecalEta(float EtaParticle, float Zvertex, float plane_Radius)
int hist_bins_recoMass_
Definition: EgammaObjects.h:85
void analyzePhotons(const edm::Event &, const edm::EventSetup &)
TH1D * hist_EOverTruth_
TH1D * hist_EtOverTruthVsEt_
Definition: EgammaObjects.h:91
TH1D * hist_resolutionEVsEta_
virtual double et() const
transverse energy
TH1D * hist_deltaEtaVsPhi_
TH1D * hist_EEfficiency_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:434
TH1D * hist_EOverTruthVsEt_
TH1D * hist_recoMass_withBackgroud_20EtCut_
TH2D * _TEMP_scatterPlot_EtOverTruthVsE_
double hist_max_Eta_
Definition: EgammaObjects.h:52
TH2D * _TEMP_scatterPlot_deltaPhiVsE_
void getEfficiencyHistosViaDividing()
TH1D * hist_Mixed_recoMass_
double hist_min_PhiOverTruth_
Definition: EgammaObjects.h:71
double hist_max_Phi_
Definition: EgammaObjects.h:56
TH1D * hist_resolutionPhiVsPhi_
TH1D * hist_resolutionEtVsEta_
Definition: EgammaObjects.h:97
reco::SuperClusterRef superCluster() const
Ref to SuperCluster.
Definition: Photon.cc:58
TH2D * _TEMP_scatterPlot_EOverTruthVsEta_
virtual void endJob()
TH2D * _TEMP_scatterPlot_deltaPhiVsEt_
TH1D * hist_ENumRecoOverNumTrue_
TH1D * hist_deltaPhiVsPhi_
double hist_max_EtaOverTruth_
Definition: EgammaObjects.h:68
void loadHistoParameters(const edm::ParameterSet &ps)
double hist_min_Phi_
Definition: EgammaObjects.h:55
TH1D * hist_EOverTruthVsE_
double hist_min_Eta_
Definition: EgammaObjects.h:51
TH1D * hist_EtNumRecoOverNumTrue_
Definition: EgammaObjects.h:90
std::vector< GsfElectron > GsfElectronCollection
collection of GsfElectron objects
TH1D * hist_resolutionEVsEt_
void createTempHistoObjects()
TH1D * hist_resolutionEtVsPhi_
Definition: EgammaObjects.h:98
std::string particleString
Definition: EgammaObjects.h:39
TH1D * hist_EtOverTruth_
Definition: EgammaObjects.h:88
int hist_bins_EOverTruth_
Definition: EgammaObjects.h:65
TH1D * hist_EOverTruthVsPhi_
TH2D * _TEMP_scatterPlot_EtOverTruthVsEta_
TH1D * hist_EtOverTruthVsEta_
Definition: EgammaObjects.h:93
double hist_min_EtOverTruth_
Definition: EgammaObjects.h:59
#define ETA
TH1D * hist_EOverTruthVsEta_
void getDeltaResHistosViaSlicing()
TH1D * hist_resolutionEtVsE_
Definition: EgammaObjects.h:96
TH2D * _TEMP_scatterPlot_deltaEtaVsE_
double hist_max_recoMass_
Definition: EgammaObjects.h:84
TH1D * hist_PhiNumRecoOverNumTrue_
double hist_max_E_
Definition: EgammaObjects.h:48
TH1D * hist_PhiOverTruth_
double hist_min_deltaPhi_
Definition: EgammaObjects.h:79
TH1D * hist_recoMass_withBackgroud_5EtCut_
TH2D * _TEMP_scatterPlot_deltaEtaVsPhi_
virtual float eta() const
momentum pseudorapidity
T sqrt(T t)
Definition: SSEVec.h:48
TH1D * hist_resolutionEtVsEt_
Definition: EgammaObjects.h:95
virtual SuperClusterRef superCluster() const
reference to a SuperCluster
Definition: GsfElectron.h:182
TH2D * _TEMP_scatterPlot_EOverTruthVsEt_
double hist_max_deltaEta_
Definition: EgammaObjects.h:76
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
TH1D * hist_EtOverTruthVsE_
Definition: EgammaObjects.h:92
TH1D * hist_resolutionEtaVsE_
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
TH1D * hist_BarrelOnly_recoMass_
tuple genEvent
Definition: MCTruth.py:33
TH1D * hist_EndcapOnly_recoMass_
TH1D * hist_deltaPhiVsEt_
TH1D * hist_EtaOverTruth_
TH1D * hist_deltaPhiVsEta_
bool isValid() const
Definition: HandleBase.h:76
TH1D * hist_deltaEtaVsEt_
double hist_max_deltaPhi_
Definition: EgammaObjects.h:80
int hist_bins_EtOverTruth_
Definition: EgammaObjects.h:61
edm::EDGetTokenT< edm::HepMCProduct > MCTruthCollectionT_
Definition: EgammaObjects.h:35
TH1D * hist_recoMass_withBackgroud_10EtCut_
double deltaR(double eta1, double eta2, double phi1, double phi2)
Definition: TreeUtility.cc:17
edm::EDGetTokenT< reco::GsfElectronCollection > RecoCollectionT_
Definition: EgammaObjects.h:36
TH1D * hist_resolutionPhiVsEt_
double hist_max_PhiOverTruth_
Definition: EgammaObjects.h:72
void analyzeElectrons(const edm::Event &, const edm::EventSetup &)
TH2D * _TEMP_scatterPlot_deltaPhiVsEta_
TH2D * _TEMP_scatterPlot_EOverTruthVsE_
double hist_max_EtOverTruth_
Definition: EgammaObjects.h:60
double hist_min_E_
Definition: EgammaObjects.h:47
EgammaObjects(const edm::ParameterSet &)
TH1D * hist_All_recoMass_
TH2D * _TEMP_scatterPlot_deltaEtaVsEt_
double hist_min_Et_
Definition: EgammaObjects.h:43
math::XYZPoint caloPosition() const
Definition: GsfElectron.h:320
TH2D * _TEMP_scatterPlot_EOverTruthVsPhi_
TH1D * hist_deltaEtaVsE_
std::vector< Photon > PhotonCollection
collectin of Photon objects
Definition: PhotonFwd.h:9
TH1D * hist_resolutionEtaVsPhi_
static const float etaBarrelEndcap
T const * product() const
Definition: Handle.h:81
TH1D * hist_EtOverTruthVsPhi_
Definition: EgammaObjects.h:94
static const float Z_Endcap
void labelsForToken(EDGetToken iToken, Labels &oLabels) const
TH1D * hist_deltaPhiVsE_
double hist_min_recoMass_
Definition: EgammaObjects.h:83
TH1D * hist_EtaEfficiency_
TH1D * hist_resolutionPhiVsE_
double pi()
Definition: Pi.h:31
double hist_min_EOverTruth_
Definition: EgammaObjects.h:63
void loadCMSSWObjects(const edm::ParameterSet &ps)
TH1D * hist_recoMass_withBackgroud_NoEtCut_
TH2D * _TEMP_scatterPlot_EtOverTruthVsEt_
int hist_bins_PhiOverTruth_
Definition: EgammaObjects.h:73
static const float R_ECAL
double findRecoMass(const reco::Photon &pOne, const reco::Photon &pTwo)
double hist_max_EOverTruth_
Definition: EgammaObjects.h:64
double hist_max_Et_
Definition: EgammaObjects.h:44
virtual void beginJob()
int hist_bins_EtaOverTruth_
Definition: EgammaObjects.h:69
TFile * rootFile_
Definition: EgammaObjects.h:33
void createBookedHistoObjects()
TH1D * hist_resolutionEtaVsEta_
TH1D * hist_resolutionPhiVsEta_
float caloEnergy() const
Definition: GsfElectron.h:775
TH1D * hist_EtEfficiency_
Definition: EgammaObjects.h:89
virtual void analyze(const edm::Event &, const edm::EventSetup &)
TH1D * hist_EtaNumRecoOverNumTrue_
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40
TH1D * hist_resolutionEtaVsEt_