CMS 3D CMS Logo

PhotonIDSimpleAnalyzer.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Package: PhotonIDSimpleAnalyzer
4 // Class: PhotonIDSimpleAnalyzer
5 //
14 //
15 // Original Author: J. Stilley, A. Askew
16 // Editing Author: M.B. Anderson
17 //
18 // Created: Fri May 9 11:03:51 CDT 2008
19 //
20 
22 // CMSSW includes //
26 
44 // Root include files //
46 #include "TH1F.h"
47 #include "TH2F.h"
48 #include "TFile.h"
49 #include "TMath.h"
50 #include "TTree.h"
51 
52 // system include files
53 #include <memory>
54 
55 // user include files
58 
61 
63 
64 #include <string>
65 #include "TH1.h"
66 #include "TTree.h"
67 
68 class TFile;
69 
70 //
71 // class declaration
72 //
74 public:
76  ~PhotonIDSimpleAnalyzer() override;
77 
78  void analyze(const edm::Event&, const edm::EventSetup&) override;
79  void beginJob() override;
80  void endJob() override;
81 
82 private:
83  std::string outputFile_; // output file
84  double minPhotonEt_; // minimum photon Et
85  double minPhotonAbsEta_; // min and
86  double maxPhotonAbsEta_; // max abs(eta)
87  double minPhotonR9_; // minimum R9 = E(3x3)/E(SuperCluster)
88  double maxPhotonHoverE_; // maximum HCAL / ECAL
89  bool createPhotonTTree_; // Create a TTree of photon variables
90 
91  // Will be used for creating TTree of photons.
92  // These names did not have to match those from a phtn->...
93  // but do match for clarity.
101  float isEBEtaGap;
102  float isEBPhiGap;
103  float isEERingGap;
104  float isEEDeeGap;
105  float isEBEEGap;
106  float r9;
107  float et;
108  float eta;
109  float phi;
111  };
113 
114  // root file to store histograms
115  TFile* rootFile_;
116 
117  // data members for histograms to be filled
118 
119  // PhotonID Histograms
126  TH1F* h_ebetagap_;
127  TH1F* h_ebphigap_;
129  TH1F* h_eedeeGap_;
130  TH1F* h_ebeeGap_;
131  TH1F* h_r9_;
132 
133  // Photon Histograms
134  TH1F* h_photonEt_;
138 
139  // Photon's SuperCluster Histograms
144 
145  // Composite or Other Histograms
148  TH1F* h_nPassEM_;
149  TH1F* h_nPho_;
150 
151  // TTree
153 };
154 
155 using namespace std;
156 
158 // Constructor //
161  // Read Parameters from configuration file
162 
163  // output filename
164  outputFile_ = ps.getParameter<std::string>("outputFile");
165  // Read variables that must be passed to allow a
166  // supercluster to be placed in histograms as a photon.
167  minPhotonEt_ = ps.getParameter<double>("minPhotonEt");
168  minPhotonAbsEta_ = ps.getParameter<double>("minPhotonAbsEta");
169  maxPhotonAbsEta_ = ps.getParameter<double>("maxPhotonAbsEta");
170  minPhotonR9_ = ps.getParameter<double>("minPhotonR9");
171  maxPhotonHoverE_ = ps.getParameter<double>("maxPhotonHoverE");
172 
173  // Read variable to that decidedes whether
174  // a TTree of photons is created or not
175  createPhotonTTree_ = ps.getParameter<bool>("createPhotonTTree");
176 
177  // open output file to store histograms
178  rootFile_ = TFile::Open(outputFile_.c_str(), "RECREATE");
179 }
180 
182 // Destructor //
185  // do anything here that needs to be done at desctruction time
186  // (e.g. close files, deallocate resources etc.)
187 
188  delete rootFile_;
189 }
190 
192 // method called once each job just before starting event loop //
195  // go to *OUR* rootfile
196  rootFile_->cd();
197 
198  // Book Histograms
199  // PhotonID Histograms
200  h_isoEcalRecHit_ = new TH1F("photonEcalIso", "Ecal Rec Hit Isolation", 300, 0, 300);
201  h_isoHcalRecHit_ = new TH1F("photonHcalIso", "Hcal Rec Hit Isolation", 300, 0, 300);
202  h_trk_pt_solid_ = new TH1F("photonTrackSolidIso", "Sum of track pT in a cone of #DeltaR", 300, 0, 300);
203  h_trk_pt_hollow_ = new TH1F("photonTrackHollowIso", "Sum of track pT in a hollow cone", 300, 0, 300);
204  h_ntrk_solid_ = new TH1F("photonTrackCountSolid", "Number of tracks in a cone of #DeltaR", 100, 0, 100);
205  h_ntrk_hollow_ = new TH1F("photonTrackCountHollow", "Number of tracks in a hollow cone", 100, 0, 100);
206  h_ebetagap_ = new TH1F("photonInEBEtagap", "Ecal Barrel eta gap flag", 2, -0.5, 1.5);
207  h_ebphigap_ = new TH1F("photonInEBEtagap", "Ecal Barrel phi gap flag", 2, -0.5, 1.5);
208  h_eeringGap_ = new TH1F("photonInEERinggap", "Ecal Endcap ring gap flag", 2, -0.5, 1.5);
209  h_eedeeGap_ = new TH1F("photonInEEDeegap", "Ecal Endcap dee gap flag", 2, -0.5, 1.5);
210  h_ebeeGap_ = new TH1F("photonInEEgap", "Ecal Barrel/Endcap gap flag", 2, -0.5, 1.5);
211  h_r9_ = new TH1F("photonR9", "R9 = E(3x3) / E(SuperCluster)", 300, 0, 3);
212 
213  // Photon Histograms
214  h_photonEt_ = new TH1F("photonEt", "Photon E_{T}", 200, 0, 200);
215  h_photonEta_ = new TH1F("photonEta", "Photon #eta", 800, -4, 4);
216  h_photonPhi_ = new TH1F("photonPhi", "Photon #phi", 628, -1. * TMath::Pi(), TMath::Pi());
217  h_hadoverem_ = new TH1F("photonHoverE", "Hadronic over EM", 200, 0, 1);
218 
219  // Photon's SuperCluster Histograms
220  h_photonScEt_ = new TH1F("photonScEt", "Photon SuperCluster E_{T}", 200, 0, 200);
221  h_photonScEta_ = new TH1F("photonScEta", "Photon #eta", 800, -4, 4);
222  h_photonScPhi_ = new TH1F("photonScPhi", "Photon #phi", 628, -1. * TMath::Pi(), TMath::Pi());
223  h_photonScEtaWidth_ = new TH1F("photonScEtaWidth", "#eta-width", 100, 0, .1);
224 
225  // Composite or Other Histograms
226  h_photonInAnyGap_ = new TH1F("photonInAnyGap", "Photon in any gap flag", 2, -0.5, 1.5);
227  h_nPassingPho_ = new TH1F("photonLoosePhoton", "Total number photons (0=NotPassing, 1=Passing)", 2, -0.5, 1.5);
228  h_nPassEM_ = new TH1F("photonLooseEM", "Total number photons (0=NotPassing, 1=Passing)", 2, -0.5, 1.5);
229  h_nPho_ = new TH1F("photonCount", "Number of photons passing cuts in event", 10, 0, 10);
230 
231  // Create a TTree of photons if set to 'True' in config file
232  if (createPhotonTTree_) {
233  tree_PhotonAll_ = new TTree("TreePhotonAll", "Reconstructed Photon");
234  tree_PhotonAll_->Branch("recPhoton",
235  &recPhoton.isolationEcalRecHit,
236  "isolationEcalRecHit/"
237  "F:isolationHcalRecHit:isolationSolidTrkCone:isolationHollowTrkCone:nTrkSolidCone:"
238  "nTrkHollowCone:isEBGap:isEEGap:isEBEEGap:r9:et:eta:phi:hadronicOverEm");
239  }
240 }
241 
243 // method called to for each event //
246  using namespace std;
247  using namespace edm;
248 
249  // grab photons
251  evt.getByLabel("photons", "", photonColl);
252 
253  Handle<edm::ValueMap<Bool_t> > loosePhotonQual;
254  evt.getByLabel("PhotonIDProd", "PhotonCutBasedIDLoose", loosePhotonQual);
255  Handle<edm::ValueMap<Bool_t> > looseEMQual;
256  evt.getByLabel("PhotonIDProd", "PhotonCutBasedIDLooseEM", looseEMQual);
257  // grab PhotonId objects
258  // Handle<reco::PhotonIDAssociationCollection> photonIDMapColl;
259  // evt.getByLabel("PhotonIDProd", "PhotonAssociatedID", photonIDMapColl);
260 
261  // create reference to the object types we are interested in
262  const reco::PhotonCollection* photons = photonColl.product();
263  const edm::ValueMap<Bool_t>* phoMap = loosePhotonQual.product();
264  const edm::ValueMap<Bool_t>* lEMMap = looseEMQual.product();
265  int photonCounter = 0;
266  int idxpho = 0;
267  reco::PhotonCollection::const_iterator pho;
268  for (pho = (*photons).begin(); pho != (*photons).end(); pho++) {
269  edm::Ref<reco::PhotonCollection> photonref(photonColl, idxpho);
270  //reco::PhotonIDAssociationCollection::const_iterator photonIter = phoMap->find(photonref);
271  //const reco::PhotonIDRef &phtn = photonIter->val;
272  //const reco::PhotonRef &pho = photonIter->key;
273 
274  float photonEt = pho->et();
275  float superClusterEt = (pho->superCluster()->energy()) / (cosh(pho->superCluster()->position().eta()));
276  Bool_t LoosePhotonQu = (*phoMap)[photonref];
277  h_nPassingPho_->Fill(LoosePhotonQu);
278  Bool_t LooseEMQu = (*lEMMap)[photonref];
279  h_nPassEM_->Fill(LooseEMQu);
280  // Only store photon candidates (SuperClusters) that pass some simple cuts
281  bool passCuts = (photonEt > minPhotonEt_) && (fabs(pho->eta()) > minPhotonAbsEta_) &&
282  (fabs(pho->eta()) < maxPhotonAbsEta_) && (pho->r9() > minPhotonR9_) &&
283  (pho->hadronicOverEm() < maxPhotonHoverE_);
284 
285  if (passCuts) {
287  // fill histograms //
289  // PhotonID Variables
290  h_isoEcalRecHit_->Fill(pho->ecalRecHitSumEtConeDR04());
291  h_isoHcalRecHit_->Fill(pho->hcalTowerSumEtConeDR04());
292  h_trk_pt_solid_->Fill(pho->trkSumPtSolidConeDR04());
293  h_trk_pt_hollow_->Fill(pho->trkSumPtHollowConeDR04());
294  h_ntrk_solid_->Fill(pho->nTrkSolidConeDR04());
295  h_ntrk_hollow_->Fill(pho->nTrkHollowConeDR04());
296  h_ebetagap_->Fill(pho->isEBEtaGap());
297  h_ebphigap_->Fill(pho->isEBPhiGap());
298  h_eeringGap_->Fill(pho->isEERingGap());
299  h_eedeeGap_->Fill(pho->isEEDeeGap());
300  h_ebeeGap_->Fill(pho->isEBEEGap());
301  h_r9_->Fill(pho->r9());
302 
303  // Photon Variables
304  h_photonEt_->Fill(photonEt);
305  h_photonEta_->Fill(pho->eta());
306  h_photonPhi_->Fill(pho->phi());
307  h_hadoverem_->Fill(pho->hadronicOverEm());
308 
309  // Photon's SuperCluster Variables
310  // eta is with respect to detector (not physics) vertex,
311  // thus Et and eta are different from photon.
312  h_photonScEt_->Fill(superClusterEt);
313  h_photonScEta_->Fill(pho->superCluster()->position().eta());
314  h_photonScPhi_->Fill(pho->superCluster()->position().phi());
315  h_photonScEtaWidth_->Fill(pho->superCluster()->etaWidth());
316 
317  // It passed photon cuts, mark it
318 
320  // fill TTree (optional) //
322  if (createPhotonTTree_) {
323  recPhoton.isolationEcalRecHit = pho->ecalRecHitSumEtConeDR04();
324  recPhoton.isolationHcalRecHit = pho->hcalTowerSumEtConeDR04();
325  recPhoton.isolationSolidTrkCone = pho->trkSumPtSolidConeDR04();
326  recPhoton.isolationHollowTrkCone = pho->trkSumPtHollowConeDR04();
327  recPhoton.nTrkSolidCone = pho->nTrkSolidConeDR04();
328  recPhoton.nTrkHollowCone = pho->nTrkHollowConeDR04();
329  recPhoton.isEBEtaGap = pho->isEBEtaGap();
330  recPhoton.isEBPhiGap = pho->isEBPhiGap();
331  recPhoton.isEERingGap = pho->isEERingGap();
332  recPhoton.isEEDeeGap = pho->isEEDeeGap();
333  recPhoton.isEBEEGap = pho->isEBEEGap();
334  recPhoton.r9 = pho->r9();
335  recPhoton.et = pho->et();
336  recPhoton.eta = pho->eta();
337  recPhoton.phi = pho->phi();
338  recPhoton.hadronicOverEm = pho->hadronicOverEm();
339 
340  // Fill the tree (this records all the recPhoton.* since
341  // tree_PhotonAll_ was set to point at that.
342  tree_PhotonAll_->Fill();
343  }
344 
345  // Record whether it was near any module gap.
346  // Very convoluted at the moment.
347  bool inAnyGap = pho->isEBEEGap() || (pho->isEB() && pho->isEBEtaGap()) || (pho->isEB() && pho->isEBPhiGap()) ||
348  (pho->isEE() && pho->isEERingGap()) || (pho->isEE() && pho->isEEDeeGap());
349  if (inAnyGap) {
350  h_photonInAnyGap_->Fill(1.0);
351  } else {
352  h_photonInAnyGap_->Fill(0.0);
353  }
354 
355  photonCounter++;
356  } else {
357  // This didn't pass photon cuts, mark it
358  }
359  idxpho++;
360  } // End Loop over photons
361  h_nPho_->Fill(photonCounter);
362 }
363 
365 // method called once each job just after ending the event loop //
368  // go to *OUR* root file and store histograms
369  rootFile_->cd();
370 
371  // PhotonID Histograms
372  h_isoEcalRecHit_->Write();
373  h_isoHcalRecHit_->Write();
374  h_trk_pt_solid_->Write();
375  h_trk_pt_hollow_->Write();
376  h_ntrk_solid_->Write();
377  h_ntrk_hollow_->Write();
378  h_ebetagap_->Write();
379  h_ebphigap_->Write();
380  h_eeringGap_->Write();
381  h_eedeeGap_->Write();
382  h_ebeeGap_->Write();
383  h_r9_->Write();
384 
385  // Photon Histograms
386  h_photonEt_->Write();
387  h_photonEta_->Write();
388  h_photonPhi_->Write();
389  h_hadoverem_->Write();
390 
391  // Photon's SuperCluster Histograms
392  h_photonScEt_->Write();
393  h_photonScEta_->Write();
394  h_photonScPhi_->Write();
395  h_photonScEtaWidth_->Write();
396 
397  // Composite or Other Histograms
398  h_photonInAnyGap_->Write();
399  h_nPassingPho_->Write();
400  h_nPassEM_->Write();
401  h_nPho_->Write();
402 
403  // Write the root file (really writes the TTree)
404  rootFile_->Write();
405  rootFile_->Close();
406 }
407 
408 //define this as a plug-in
PhotonIDSimpleAnalyzer::h_photonScPhi_
TH1F * h_photonScPhi_
Definition: PhotonIDSimpleAnalyzer.cc:142
PhotonIDSimpleAnalyzer::h_photonEta_
TH1F * h_photonEta_
Definition: PhotonIDSimpleAnalyzer.cc:135
CaloJetCollection.h
CaloJet.h
EDAnalyzer.h
PhotonIDSimpleAnalyzer::h_nPassEM_
TH1F * h_nPassEM_
Definition: PhotonIDSimpleAnalyzer.cc:148
PhotonIDSimpleAnalyzer::struct_recPhoton::isEBEEGap
float isEBEEGap
Definition: PhotonIDSimpleAnalyzer.cc:105
PhotonIDSimpleAnalyzer::struct_recPhoton
Definition: PhotonIDSimpleAnalyzer.cc:94
PhotonIDSimpleAnalyzer::struct_recPhoton::isolationHollowTrkCone
float isolationHollowTrkCone
Definition: PhotonIDSimpleAnalyzer.cc:98
edm::Handle::product
T const * product() const
Definition: Handle.h:70
ESHandle.h
BasicCluster.h
edm
HLT enums.
Definition: AlignableModifier.h:19
EBDetId.h
PhotonIDSimpleAnalyzer::h_trk_pt_hollow_
TH1F * h_trk_pt_hollow_
Definition: PhotonIDSimpleAnalyzer.cc:123
EcalBarrelTopology.h
PhotonIDSimpleAnalyzer::h_trk_pt_solid_
TH1F * h_trk_pt_solid_
Definition: PhotonIDSimpleAnalyzer.cc:122
PhotonIDSimpleAnalyzer::struct_recPhoton::nTrkSolidCone
float nTrkSolidCone
Definition: PhotonIDSimpleAnalyzer.cc:99
PhotonIDSimpleAnalyzer::h_eeringGap_
TH1F * h_eeringGap_
Definition: PhotonIDSimpleAnalyzer.cc:128
PhotonFwd.h
PhotonIDSimpleAnalyzer::h_ebeeGap_
TH1F * h_ebeeGap_
Definition: PhotonIDSimpleAnalyzer.cc:130
edm::one::EDAnalyzer
Definition: EDAnalyzer.h:30
PhotonIDSimpleAnalyzer::h_isoHcalRecHit_
TH1F * h_isoHcalRecHit_
Definition: PhotonIDSimpleAnalyzer.cc:121
PhotonIDSimpleAnalyzer::struct_recPhoton::isEERingGap
float isEERingGap
Definition: PhotonIDSimpleAnalyzer.cc:103
edm::Handle< reco::PhotonCollection >
PhotonIDSimpleAnalyzer::rootFile_
TFile * rootFile_
Definition: PhotonIDSimpleAnalyzer.cc:115
PhotonIDSimpleAnalyzer::~PhotonIDSimpleAnalyzer
~PhotonIDSimpleAnalyzer() override
Definition: PhotonIDSimpleAnalyzer.cc:184
EcalRecHitCollections.h
PhotonIDSimpleAnalyzer::h_nPassingPho_
TH1F * h_nPassingPho_
Definition: PhotonIDSimpleAnalyzer.cc:147
PhotonIDSimpleAnalyzer::h_nPho_
TH1F * h_nPho_
Definition: PhotonIDSimpleAnalyzer.cc:149
PhotonIDSimpleAnalyzer::struct_recPhoton::isolationHcalRecHit
float isolationHcalRecHit
Definition: PhotonIDSimpleAnalyzer.cc:96
edm::Ref
Definition: AssociativeIterator.h:58
GenParticle.h
MakerMacros.h
Photon.h
PhotonIDSimpleAnalyzer::beginJob
void beginJob() override
Definition: PhotonIDSimpleAnalyzer.cc:194
PhotonIDSimpleAnalyzer::maxPhotonAbsEta_
double maxPhotonAbsEta_
Definition: PhotonIDSimpleAnalyzer.cc:86
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
PhotonIDSimpleAnalyzer::h_hadoverem_
TH1F * h_hadoverem_
Definition: PhotonIDSimpleAnalyzer.cc:137
PhotonIDSimpleAnalyzer::minPhotonAbsEta_
double minPhotonAbsEta_
Definition: PhotonIDSimpleAnalyzer.cc:85
PhotonIDSimpleAnalyzer::createPhotonTTree_
bool createPhotonTTree_
Definition: PhotonIDSimpleAnalyzer.cc:89
GenParticleFwd.h
PhotonIDSimpleAnalyzer::struct_recPhoton::hadronicOverEm
float hadronicOverEm
Definition: PhotonIDSimpleAnalyzer.cc:110
PhotonIDSimpleAnalyzer::endJob
void endJob() override
Definition: PhotonIDSimpleAnalyzer.cc:367
PhotonIDSimpleAnalyzer::struct_recPhoton::r9
float r9
Definition: PhotonIDSimpleAnalyzer.cc:106
edm::Event::getByLabel
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:491
PhotonIDSimpleAnalyzer::struct_recPhoton::nTrkHollowCone
float nTrkHollowCone
Definition: PhotonIDSimpleAnalyzer.cc:100
PhotonIDSimpleAnalyzer::h_ntrk_solid_
TH1F * h_ntrk_solid_
Definition: PhotonIDSimpleAnalyzer.cc:124
PhotonIDSimpleAnalyzer::minPhotonEt_
double minPhotonEt_
Definition: PhotonIDSimpleAnalyzer.cc:84
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
PhotonIDSimpleAnalyzer::h_isoEcalRecHit_
TH1F * h_isoEcalRecHit_
Definition: PhotonIDSimpleAnalyzer.cc:120
CaloSubdetectorGeometry.h
edm::ParameterSet
Definition: ParameterSet.h:36
PhotonIDSimpleAnalyzer::struct_recPhoton::phi
float phi
Definition: PhotonIDSimpleAnalyzer.cc:109
PhotonIDSimpleAnalyzer::minPhotonR9_
double minPhotonR9_
Definition: PhotonIDSimpleAnalyzer.cc:87
PhotonIDSimpleAnalyzer
Definition: PhotonIDSimpleAnalyzer.cc:73
Event.h
PhotonIDSimpleAnalyzer::h_photonScEtaWidth_
TH1F * h_photonScEtaWidth_
Definition: PhotonIDSimpleAnalyzer.cc:143
PhotonIDSimpleAnalyzer::h_photonEt_
TH1F * h_photonEt_
Definition: PhotonIDSimpleAnalyzer.cc:134
CaloTopologyRecord.h
PhotonIDSimpleAnalyzer::h_ntrk_hollow_
TH1F * h_ntrk_hollow_
Definition: PhotonIDSimpleAnalyzer.cc:125
PhotonIDSimpleAnalyzer::maxPhotonHoverE_
double maxPhotonHoverE_
Definition: PhotonIDSimpleAnalyzer.cc:88
PhotonIDSimpleAnalyzer::outputFile_
std::string outputFile_
Definition: PhotonIDSimpleAnalyzer.cc:83
PhotonIDSimpleAnalyzer::struct_recPhoton::isEBPhiGap
float isEBPhiGap
Definition: PhotonIDSimpleAnalyzer.cc:102
BPHMonitor_cfi.photons
photons
Definition: BPHMonitor_cfi.py:91
IdealGeometryRecord.h
edm::EventSetup
Definition: EventSetup.h:57
PhotonIDSimpleAnalyzer::struct_recPhoton::et
float et
Definition: PhotonIDSimpleAnalyzer.cc:107
EcalRecHit.h
PhotonIDSimpleAnalyzer::struct_recPhoton::isEBEtaGap
float isEBEtaGap
Definition: PhotonIDSimpleAnalyzer.cc:101
PhotonIDSimpleAnalyzer::h_photonScEta_
TH1F * h_photonScEta_
Definition: PhotonIDSimpleAnalyzer.cc:141
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
std
Definition: JetResolutionObject.h:76
PhotonIDSimpleAnalyzer::h_eedeeGap_
TH1F * h_eedeeGap_
Definition: PhotonIDSimpleAnalyzer.cc:129
DetId.h
Frameworkfwd.h
PhotonIDSimpleAnalyzer::recPhoton
struct_recPhoton recPhoton
Definition: PhotonIDSimpleAnalyzer.cc:112
PhotonIDSimpleAnalyzer::h_ebphigap_
TH1F * h_ebphigap_
Definition: PhotonIDSimpleAnalyzer.cc:127
edm::ValueMap
Definition: ValueMap.h:107
CaloGeometry.h
PhotonIDSimpleAnalyzer::h_photonPhi_
TH1F * h_photonPhi_
Definition: PhotonIDSimpleAnalyzer.cc:136
HcalRecHitCollections.h
PhotonIDSimpleAnalyzer::struct_recPhoton::isolationSolidTrkCone
float isolationSolidTrkCone
Definition: PhotonIDSimpleAnalyzer.cc:97
Pi
const double Pi
Definition: CosmicMuonParameters.h:18
reco::PhotonCollection
std::vector< Photon > PhotonCollection
collectin of Photon objects
Definition: PhotonFwd.h:9
PhotonIDSimpleAnalyzer::tree_PhotonAll_
TTree * tree_PhotonAll_
Definition: PhotonIDSimpleAnalyzer.cc:152
ParameterSet.h
PhotonIDSimpleAnalyzer::h_ebetagap_
TH1F * h_ebetagap_
Definition: PhotonIDSimpleAnalyzer.cc:126
PhotonIDSimpleAnalyzer::struct_recPhoton::eta
float eta
Definition: PhotonIDSimpleAnalyzer.cc:108
edm::Event
Definition: Event.h:73
PhotonIDSimpleAnalyzer::h_photonInAnyGap_
TH1F * h_photonInAnyGap_
Definition: PhotonIDSimpleAnalyzer.cc:146
PhotonIDSimpleAnalyzer::PhotonIDSimpleAnalyzer
PhotonIDSimpleAnalyzer(const edm::ParameterSet &)
Definition: PhotonIDSimpleAnalyzer.cc:160
PhotonIDSimpleAnalyzer::analyze
void analyze(const edm::Event &, const edm::EventSetup &) override
Definition: PhotonIDSimpleAnalyzer.cc:245
PhotonIDSimpleAnalyzer::h_r9_
TH1F * h_r9_
Definition: PhotonIDSimpleAnalyzer.cc:131
PhotonIDSimpleAnalyzer::struct_recPhoton::isolationEcalRecHit
float isolationEcalRecHit
Definition: PhotonIDSimpleAnalyzer.cc:95
PhotonIDSimpleAnalyzer::h_photonScEt_
TH1F * h_photonScEt_
Definition: PhotonIDSimpleAnalyzer.cc:140
PhotonIDSimpleAnalyzer::struct_recPhoton::isEEDeeGap
float isEEDeeGap
Definition: PhotonIDSimpleAnalyzer.cc:104