CMS 3D CMS Logo

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