CMS 3D CMS Logo

PhotonValidatorMiniAOD.cc
Go to the documentation of this file.
1 #include <memory>
3 //
11 //#include "CommonTools/UtilAlgos/interface/TFileService.h"
15 //#include "DataFormats/Common/interface/PtrVector.h"
18 //#include "DataFormats/EgammaCandidates/interface/PhotonCore.h"
19 //#include "DataFormats/EgammaCandidates/interface/Photon.h"
23 
24 #include "CLHEP/Units/GlobalPhysicalConstants.h"
25 #include "TTree.h"
26 #include "TFile.h"
27 #include "TH1F.h"
28 #include "TH2F.h"
29 
30 // **********************************************************************
31 
33  : outputFileName_(iConfig.getParameter<std::string>("outputFileName")),
34  photonToken_(consumes<edm::View<pat::Photon> >(
35  iConfig.getUntrackedParameter<edm::InputTag>("PhotonTag", edm::InputTag("slimmedPhotons")))),
36  genpartToken_(consumes<reco::GenParticleCollection>(
37  iConfig.getUntrackedParameter<edm::InputTag>("genpartTag", edm::InputTag("prunedGenParticles"))))
38 
39 {
40  parameters_ = iConfig;
41 }
42 
44 
46  double eMin = parameters_.getParameter<double>("eMin");
47  double eMax = parameters_.getParameter<double>("eMax");
48  int eBin = parameters_.getParameter<int>("eBin");
49 
50  double etMin = parameters_.getParameter<double>("etMin");
51  double etMax = parameters_.getParameter<double>("etMax");
52  int etBin = parameters_.getParameter<int>("etBin");
53 
54  double resMin = parameters_.getParameter<double>("resMin");
55  double resMax = parameters_.getParameter<double>("resMax");
56  int resBin = parameters_.getParameter<int>("resBin");
57 
58  double etaMin = parameters_.getParameter<double>("etaMin");
59  double etaMax = parameters_.getParameter<double>("etaMax");
60  int etaBin = parameters_.getParameter<int>("etaBin");
61 
62  double phiMin = parameters_.getParameter<double>("phiMin");
63  double phiMax = parameters_.getParameter<double>("phiMax");
64  int phiBin = parameters_.getParameter<int>("phiBin");
65 
66  double r9Min = parameters_.getParameter<double>("r9Min");
67  double r9Max = parameters_.getParameter<double>("r9Max");
68  int r9Bin = parameters_.getParameter<int>("r9Bin");
69 
70  iBooker.setCurrentFolder("EgammaV/PhotonValidatorMiniAOD/Photons");
71 
72  h_scEta_[0] = iBooker.book1D("scEta_miniAOD", " SC Eta ", etaBin, etaMin, etaMax);
73  h_scPhi_[0] = iBooker.book1D("scPhi_miniAOD", " SC Phi ", phiBin, phiMin, phiMax);
74 
75  std::string histname = " ";
76 
77  histname = "phoE";
78  h_phoE_[0][0] = iBooker.book1D(histname + "All_miniAOD", " Photon Energy: All ecal ", eBin, eMin, eMax);
79  h_phoE_[0][1] = iBooker.book1D(histname + "Barrel_miniAOD", " Photon Energy: barrel ", eBin, eMin, eMax);
80  h_phoE_[0][2] = iBooker.book1D(histname + "Endcap_miniAOD", " Photon Energy: Endcap ", eBin, eMin, eMax);
81 
82  histname = "phoEt";
83  h_phoEt_[0][0] =
84  iBooker.book1D(histname + "All_miniAOD", " Photon Transverse Energy: All ecal ", etBin, etMin, etMax);
85  h_phoEt_[0][1] =
86  iBooker.book1D(histname + "Barrel_miniAOD", " Photon Transverse Energy: Barrel ", etBin, etMin, etMax);
87  h_phoEt_[0][2] =
88  iBooker.book1D(histname + "Endcap_miniAOD", " Photon Transverse Energy: Endcap ", etBin, etMin, etMax);
89 
90  histname = "eRes";
91  h_phoERes_[0][0] = iBooker.book1D(
92  histname + "All_miniAOD", " Photon E/E_{true}: All ecal; E/E_{true} (GeV)", resBin, resMin, resMax);
93  h_phoERes_[0][1] = iBooker.book1D(
94  histname + "Barrel_miniAOD", "Photon E/E_{true}: Barrel; E/E_{true} (GeV)", resBin, resMin, resMax);
95  h_phoERes_[0][2] = iBooker.book1D(
96  histname + "Endcap_miniAOD", " Photon E/E_{true}: Endcap; E/E_{true} (GeV)", resBin, resMin, resMax);
97 
98  histname = "sigmaEoE";
99  h_phoSigmaEoE_[0][0] =
100  iBooker.book1D(histname + "All_miniAOD", "#sigma_{E}/E: All ecal; #sigma_{E}/E", 100, 0., 0.08);
101  h_phoSigmaEoE_[0][1] =
102  iBooker.book1D(histname + "Barrel_miniAOD", "#sigma_{E}/E: Barrel; #sigma_{E}/E", 100, 0., 0.08);
103  h_phoSigmaEoE_[0][2] =
104  iBooker.book1D(histname + "Endcap_miniAOD", "#sigma_{E}/E: Endcap, #sigma_{E}/E", 100, 0., 0.08);
105 
106  histname = "r9";
107  h_r9_[0][0] = iBooker.book1D(histname + "All_miniAOD", " r9: All Ecal", r9Bin, r9Min, r9Max);
108  h_r9_[0][1] = iBooker.book1D(histname + "Barrel_miniAOD", " r9: Barrel ", r9Bin, r9Min, r9Max);
109  h_r9_[0][2] = iBooker.book1D(histname + "Endcap_miniAOD", " r9: Endcap ", r9Bin, r9Min, r9Max);
110  histname = "full5x5_r9";
111  h_full5x5_r9_[0][0] = iBooker.book1D(histname + "All_miniAOD", " r9: All Ecal", r9Bin, r9Min, r9Max);
112  h_full5x5_r9_[0][1] = iBooker.book1D(histname + "Barrel_miniAOD", " r9: Barrel ", r9Bin, r9Min, r9Max);
113  h_full5x5_r9_[0][2] = iBooker.book1D(histname + "Endcap_miniAOD", " r9: Endcap ", r9Bin, r9Min, r9Max);
114  histname = "r1";
115  h_r1_[0][0] = iBooker.book1D(histname + "All_miniAOD", " e1x5/e5x5: All Ecal", r9Bin, r9Min, r9Max);
116  h_r1_[0][1] = iBooker.book1D(histname + "Barrel_miniAOD", " e1x5/e5x5: Barrel ", r9Bin, r9Min, r9Max);
117  h_r1_[0][2] = iBooker.book1D(histname + "Endcap_miniAOD", " e1x5/e5x5: Endcap ", r9Bin, r9Min, r9Max);
118  histname = "r2";
119  h_r2_[0][0] = iBooker.book1D(histname + "All_miniAOD", " e2x5/e5x5: All Ecal", r9Bin, r9Min, r9Max);
120  h_r2_[0][1] = iBooker.book1D(histname + "Barrel_miniAOD", " e2x5/e5x5: Barrel ", r9Bin, r9Min, r9Max);
121  h_r2_[0][2] = iBooker.book1D(histname + "Endcap_miniAOD", " e2x5/e5x5: Endcap ", r9Bin, r9Min, r9Max);
122  histname = "hOverE";
123  h_hOverE_[0][0] = iBooker.book1D(histname + "All_miniAOD", "H/E: All Ecal", 100, 0., 0.2);
124  h_hOverE_[0][1] = iBooker.book1D(histname + "Barrel_miniAOD", "H/E: Barrel ", 100, 0., 0.2);
125  h_hOverE_[0][2] = iBooker.book1D(histname + "Endcap_miniAOD", "H/E: Endcap ", 100, 0., 0.2);
126  //
127  histname = "newhOverE";
128  h_newhOverE_[0][0] = iBooker.book1D(histname + "All_miniAOD", "new H/E: All Ecal", 100, 0., 0.2);
129  h_newhOverE_[0][1] = iBooker.book1D(histname + "Barrel_miniAOD", "new H/E: Barrel ", 100, 0., 0.2);
130  h_newhOverE_[0][2] = iBooker.book1D(histname + "Endcap_miniAOD", "new H/E: Endcap ", 100, 0., 0.2);
131  //
132  histname = "sigmaIetaIeta";
133  h_sigmaIetaIeta_[0][0] = iBooker.book1D(histname + "All_miniAOD", "sigmaIetaIeta: All Ecal", 100, 0., 0.1);
134  h_sigmaIetaIeta_[0][1] = iBooker.book1D(histname + "Barrel_miniAOD", "sigmaIetaIeta: Barrel ", 100, 0., 0.05);
135  h_sigmaIetaIeta_[0][2] = iBooker.book1D(histname + "Endcap_miniAOD", "sigmaIetaIeta: Endcap ", 100, 0., 0.1);
136  histname = "full5x5_sigmaIetaIeta";
138  iBooker.book1D(histname + "All_miniAOD", "Full5x5 sigmaIetaIeta: All Ecal", 100, 0., 0.1);
140  iBooker.book1D(histname + "Barrel_miniAOD", "Full5x5 sigmaIetaIeta: Barrel ", 100, 0., 0.05);
142  iBooker.book1D(histname + "Endcap_miniAOD", "Full5x5 sigmaIetaIeta: Endcap ", 100, 0., 0.1);
143  //
144  histname = "ecalRecHitSumEtConeDR04";
146  iBooker.book1D(histname + "All_miniAOD", "ecalRecHitSumEtDR04: All Ecal", etBin, etMin, 20.);
148  iBooker.book1D(histname + "Barrel_miniAOD", "ecalRecHitSumEtDR04: Barrel ", etBin, etMin, 20.);
150  iBooker.book1D(histname + "Endcap_miniAOD", "ecalRecHitSumEtDR04: Endcap ", etBin, etMin, 20.);
151  histname = "hcalTowerSumEtConeDR04";
153  iBooker.book1D(histname + "All_miniAOD", "hcalTowerSumEtConeDR04: All Ecal", etBin, etMin, 20.);
155  iBooker.book1D(histname + "Barrel_miniAOD", "hcalTowerSumEtConeDR04: Barrel ", etBin, etMin, 20.);
157  iBooker.book1D(histname + "Endcap_miniAOD", "hcalTowerSumEtConeDR04: Endcap ", etBin, etMin, 20.);
158  //
159  histname = "hcalTowerBcSumEtConeDR04";
161  iBooker.book1D(histname + "All_miniAOD", "hcalTowerBcSumEtConeDR04: All Ecal", etBin, etMin, 20.);
163  iBooker.book1D(histname + "Barrel_miniAOD", "hcalTowerBcSumEtConeDR04: Barrel ", etBin, etMin, 20.);
165  iBooker.book1D(histname + "Endcap_miniAOD", "hcalTowerBcSumEtConeDR04: Endcap ", etBin, etMin, 20.);
166  histname = "isoTrkSolidConeDR04";
167  h_isoTrkSolidConeDR04_[0][0] =
168  iBooker.book1D(histname + "All_miniAOD", "isoTrkSolidConeDR04: All Ecal", etBin, etMin, etMax * 0.1);
169  h_isoTrkSolidConeDR04_[0][1] =
170  iBooker.book1D(histname + "Barrel_miniAOD", "isoTrkSolidConeDR04: Barrel ", etBin, etMin, etMax * 0.1);
171  h_isoTrkSolidConeDR04_[0][2] =
172  iBooker.book1D(histname + "Endcap_miniAOD", "isoTrkSolidConeDR04: Endcap ", etBin, etMin, etMax * 0.1);
173  histname = "nTrkSolidConeDR04";
174  h_nTrkSolidConeDR04_[0][0] = iBooker.book1D(histname + "All_miniAOD", "nTrkSolidConeDR04: All Ecal", 20, 0., 20);
175  h_nTrkSolidConeDR04_[0][1] = iBooker.book1D(histname + "Barrel_miniAOD", "nTrkSolidConeDR04: Barrel ", 20, 0., 20);
176  h_nTrkSolidConeDR04_[0][2] = iBooker.book1D(histname + "Endcap_miniAOD", "nTrkSolidConeDR04: Endcap ", 20, 0., 20);
177 
178  // Infos from Particle Flow - isolation and ID
179  histname = "chargedHadIso";
180  h_chHadIso_[0] = iBooker.book1D(histname + "All_miniAOD", "PF chargedHadIso: All Ecal", etBin, etMin, 20.);
181  h_chHadIso_[1] = iBooker.book1D(histname + "Barrel_miniAOD", "PF chargedHadIso: Barrel", etBin, etMin, 20.);
182  h_chHadIso_[2] = iBooker.book1D(histname + "Endcap_miniAOD", "PF chargedHadIso: Endcap", etBin, etMin, 20.);
183  histname = "neutralHadIso";
184  h_nHadIso_[0] = iBooker.book1D(histname + "All_miniAOD", "PF neutralHadIso: All Ecal", etBin, etMin, 20.);
185  h_nHadIso_[1] = iBooker.book1D(histname + "Barrel_miniAOD", "PF neutralHadIso: Barrel", etBin, etMin, 20.);
186  h_nHadIso_[2] = iBooker.book1D(histname + "Endcap_miniAOD", "PF neutralHadIso: Endcap", etBin, etMin, 20.);
187  histname = "photonIso";
188  h_phoIso_[0] = iBooker.book1D(histname + "All_miniAOD", "PF photonIso: All Ecal", etBin, etMin, 20.);
189  h_phoIso_[1] = iBooker.book1D(histname + "Barrel_miniAOD", "PF photonIso: Barrel", etBin, etMin, 20.);
190  h_phoIso_[2] = iBooker.book1D(histname + "Endcap_miniAOD", "PF photonIso: Endcap", etBin, etMin, 20.);
191 }
192 
194  // ********************************************************************************
195  using namespace edm;
196 
197  // access edm objects
198  Handle<View<pat::Photon> > photonsHandle;
199  iEvent.getByToken(photonToken_, photonsHandle);
200  const auto &photons = *photonsHandle;
201  //
203  iEvent.getByToken(genpartToken_, genParticles);
204 
205  for (reco::GenParticleCollection::const_iterator mcIter = genParticles->begin(); mcIter != genParticles->end();
206  mcIter++) {
207  if (!(mcIter->pdgId() == 22))
208  continue;
209  if (mcIter->mother() != nullptr && !(mcIter->mother()->pdgId() == 25))
210  continue;
211  if (fabs(mcIter->eta()) > 2.5)
212  continue;
213  // if ( mcIter->pt() < 5) continue;
214  // if ( fabs(mcIter->eta()) > 1.4442 && fabs(mcIter->eta()) < 1.566) continue;
215 
216  float mcPhi = mcIter->phi();
217  float mcEta = mcIter->eta();
218  //mcEta = etaTransformation(mcEta, (*mcPho).primaryVertex().z() );
219  float mcEnergy = mcIter->energy();
220 
221  double dR = 9999999.;
222  float minDr = 10000.;
223  int iMatch = -1;
224  bool matched = false;
225  for (size_t ipho = 0; ipho < photons.size(); ipho++) {
226  Ptr<pat::Photon> pho = photons.ptrAt(ipho);
227 
228  double dphi = pho->phi() - mcPhi;
229  if (std::fabs(dphi) > CLHEP::pi) {
230  dphi = dphi < 0 ? (CLHEP::twopi) + dphi : dphi - CLHEP::twopi;
231  }
232  double deta = pho->superCluster()->position().eta() - mcEta;
233 
234  dR = sqrt(pow((deta), 2) + pow(dphi, 2));
235  if (dR < 0.1 && dR < minDr) {
236  minDr = dR;
237  iMatch = ipho;
238  }
239  }
240 
241  if (iMatch > -1)
242  matched = true;
243  if (!matched)
244  continue;
245 
246  Ptr<pat::Photon> matchingPho = photons.ptrAt(iMatch);
247 
248  bool phoIsInBarrel = false;
249  bool phoIsInEndcap = false;
250 
251  float phoEta = matchingPho->superCluster()->position().eta();
252  if (fabs(phoEta) < 1.479) {
253  phoIsInBarrel = true;
254  } else {
255  phoIsInEndcap = true;
256  }
257 
258  float photonE = matchingPho->energy();
259  float sigmaEoE = matchingPho->getCorrectedEnergyError(matchingPho->getCandidateP4type()) / matchingPho->energy();
260  float photonEt = matchingPho->energy() / cosh(matchingPho->eta());
261  // float photonERegr1 = matchingPho->getCorrectedEnergy(reco::Photon::regression1);
262  //float photonERegr2 = matchingPho->getCorrectedEnergy(reco::Photon::regression2);
263  float r9 = matchingPho->r9();
264  float full5x5_r9 = matchingPho->full5x5_r9();
265  float r1 = matchingPho->r1x5();
266  float r2 = matchingPho->r2x5();
267  float sieie = matchingPho->sigmaIetaIeta();
268  float full5x5_sieie = matchingPho->full5x5_sigmaIetaIeta();
269  float hOverE = matchingPho->hadronicOverEm();
270  float newhOverE = matchingPho->hadTowOverEm();
271  float ecalIso = matchingPho->ecalRecHitSumEtConeDR04();
272  float hcalIso = matchingPho->hcalTowerSumEtConeDR04();
273  float newhcalIso = matchingPho->hcalTowerSumEtBcConeDR04();
274  float trkIso = matchingPho->trkSumPtSolidConeDR04();
275  float nIsoTrk = matchingPho->nTrkSolidConeDR04();
276  // PF related quantities
277  float chargedHadIso = matchingPho->chargedHadronIso();
278  float neutralHadIso = matchingPho->neutralHadronIso();
279  float photonIso = matchingPho->photonIso();
280  // float etOutsideMustache = matchingPho->etOutsideMustache();
281  // int nClusterOutsideMustache = matchingPho->nClusterOutsideMustache();
282  //float pfMVA = matchingPho->pfMVA();
283 
284  h_scEta_[0]->Fill(matchingPho->superCluster()->eta());
285  h_scPhi_[0]->Fill(matchingPho->superCluster()->phi());
286 
287  h_phoE_[0][0]->Fill(photonE);
288  h_phoEt_[0][0]->Fill(photonEt);
289 
290  h_phoERes_[0][0]->Fill(photonE / mcEnergy);
291  h_phoSigmaEoE_[0][0]->Fill(sigmaEoE);
292 
293  h_r9_[0][0]->Fill(r9);
294  h_full5x5_r9_[0][0]->Fill(full5x5_r9);
295  h_r1_[0][0]->Fill(r1);
296  h_r2_[0][0]->Fill(r2);
297 
298  h_sigmaIetaIeta_[0][0]->Fill(sieie);
299  h_full5x5_sigmaIetaIeta_[0][0]->Fill(full5x5_sieie);
300  h_hOverE_[0][0]->Fill(hOverE);
301  h_newhOverE_[0][0]->Fill(newhOverE);
302 
305  h_hcalTowerBcSumEtConeDR04_[0][0]->Fill(newhcalIso);
306  h_isoTrkSolidConeDR04_[0][0]->Fill(trkIso);
307  h_nTrkSolidConeDR04_[0][0]->Fill(nIsoTrk);
308 
309  //
310  h_chHadIso_[0]->Fill(chargedHadIso);
311  h_nHadIso_[0]->Fill(neutralHadIso);
312  h_phoIso_[0]->Fill(photonIso);
313 
314  //
315  if (phoIsInBarrel) {
316  h_phoE_[0][1]->Fill(photonE);
317  h_phoEt_[0][1]->Fill(photonEt);
318  h_phoERes_[0][1]->Fill(photonE / mcEnergy);
319  h_phoSigmaEoE_[0][1]->Fill(sigmaEoE);
320 
321  h_r9_[0][1]->Fill(r9);
322  h_full5x5_r9_[0][1]->Fill(full5x5_r9);
323  h_r1_[0][1]->Fill(r1);
324  h_r2_[0][1]->Fill(r2);
325  h_sigmaIetaIeta_[0][1]->Fill(sieie);
326  h_full5x5_sigmaIetaIeta_[0][1]->Fill(full5x5_sieie);
327  h_hOverE_[0][1]->Fill(hOverE);
328  h_newhOverE_[0][1]->Fill(newhOverE);
331  h_hcalTowerBcSumEtConeDR04_[0][1]->Fill(newhcalIso);
332  h_isoTrkSolidConeDR04_[0][1]->Fill(trkIso);
333  h_nTrkSolidConeDR04_[0][1]->Fill(nIsoTrk);
334  h_chHadIso_[1]->Fill(chargedHadIso);
335  h_nHadIso_[1]->Fill(neutralHadIso);
336  h_phoIso_[1]->Fill(photonIso);
337  }
338  if (phoIsInEndcap) {
339  h_phoE_[0][2]->Fill(photonE);
340  h_phoEt_[0][2]->Fill(photonEt);
341 
342  h_phoERes_[0][2]->Fill(photonE / mcEnergy);
343  h_phoSigmaEoE_[0][2]->Fill(sigmaEoE);
344  h_r9_[0][2]->Fill(r9);
345  h_full5x5_r9_[0][2]->Fill(full5x5_r9);
346  h_r1_[0][2]->Fill(r1);
347  h_r2_[0][2]->Fill(r2);
348  h_sigmaIetaIeta_[0][2]->Fill(sieie);
349  h_full5x5_sigmaIetaIeta_[0][2]->Fill(full5x5_sieie);
350  h_hOverE_[0][2]->Fill(hOverE);
351  h_newhOverE_[0][2]->Fill(newhOverE);
354  h_hcalTowerBcSumEtConeDR04_[0][2]->Fill(newhcalIso);
355  h_isoTrkSolidConeDR04_[0][2]->Fill(trkIso);
356  h_nTrkSolidConeDR04_[0][2]->Fill(nIsoTrk);
357  h_chHadIso_[2]->Fill(chargedHadIso);
358  h_nHadIso_[2]->Fill(neutralHadIso);
359  h_phoIso_[2]->Fill(photonIso);
360  }
361 
362  } // end loop over gen photons
363 }
std::vector< GenParticle > GenParticleCollection
collection of GenParticles
edm::EDGetTokenT< reco::GenParticleCollection > genpartToken_
float neutralHadronIso() const
Definition: Photon.h:130
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
Definition: Photon.py:1
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:36
float photonIso() const
Definition: Photon.h:133
float ecalRecHitSumEtConeDR04() const
Definition: Photon.h:460
MonitorElement * h_full5x5_sigmaIetaIeta_[3][3]
void analyze(const edm::Event &, const edm::EventSetup &) override
MonitorElement * h_r1_[3][3]
MonitorElement * h_full5x5_r9_[3][3]
float r1x5() const
Definition: Photon.h:277
MonitorElement * h_phoSigmaEoE_[3][3]
float chargedHadronIso() const
Definition: Photon.h:127
MonitorElement * h_nHadIso_[3]
MonitorElement * h_ecalRecHitSumEtConeDR04_[3][3]
Definition: HeavyIon.h:7
const Double_t pi
void Fill(long long x)
P4type getCandidateP4type() const
Definition: Photon.h:363
eBin
CAREFULL for the time being only Loos exists 1 => Tight Photon = GoodCandidate.
MonitorElement * h_sigmaIetaIeta_[3][3]
float trkSumPtSolidConeDR04() const
Definition: Photon.h:498
int iEvent
Definition: GenABIO.cc:224
MonitorElement * h_chHadIso_[3]
MonitorElement * h_hcalTowerBcSumEtConeDR04_[3][3]
float hcalTowerSumEtConeDR04(int depth=0) const
Definition: Photon.h:478
MonitorElement * h_newhOverE_[3][3]
float sigmaIetaIeta() const
Definition: Photon.h:276
MonitorElement * h_isoTrkSolidConeDR04_[3][3]
T sqrt(T t)
Definition: SSEVec.h:19
MonitorElement * h_phoIso_[3]
float full5x5_sigmaIetaIeta() const
Definition: Photon.h:288
float getCorrectedEnergyError(P4type type) const
MonitorElement * h_nTrkSolidConeDR04_[3][3]
float hcalTowerSumEtBcConeDR04(int depth=0) const
Definition: Photon.h:496
float hadTowOverEm(int depth=0) const
Definition: Photon.h:259
MonitorElement * h_hOverE_[3][3]
MonitorElement * h_scPhi_[2]
MonitorElement * h_phoERes_[3][3]
MonitorElement * h_phoE_[2][3]
MonitorElement * h_r9_[3][3]
int nTrkSolidConeDR04() const
Definition: Photon.h:502
float r2x5() const
Definition: Photon.h:278
float hadronicOverEm(int depth=0) const
Definition: Photon.h:239
reco::SuperClusterRef superCluster() const override
override the superCluster method from CaloJet, to access the internal storage of the supercluster ...
float r9() const
Definition: Photon.h:279
edm::EDGetTokenT< edm::View< pat::Photon > > photonToken_
fixed size matrix
MonitorElement * h_phoEt_[2][3]
HLT enums.
MonitorElement * h_hcalTowerSumEtConeDR04_[3][3]
MonitorElement * h_r2_[3][3]
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
double phi() const final
momentum azimuthal angle
MonitorElement * h_scEta_[2]
PhotonValidatorMiniAOD(const edm::ParameterSet &)
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:29
Definition: Run.h:45
float full5x5_r9() const
Definition: Photon.h:291
double energy() const final
energy
double eta() const final
momentum pseudorapidity