CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Classes | Public Member Functions | Private Attributes
PhotonIDSimpleAnalyzer Class Reference

#include <RecoEgamma/PhotonIdentification/test/PhotonIDSimpleAnalyzer.cc>

Inheritance diagram for PhotonIDSimpleAnalyzer:
edm::one::EDAnalyzer<> edm::one::EDAnalyzerBase edm::EDConsumerBase

Classes

struct  struct_recPhoton
 

Public Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void beginJob () override
 
void endJob () override
 
 PhotonIDSimpleAnalyzer (const edm::ParameterSet &)
 
 ~PhotonIDSimpleAnalyzer () override
 
- Public Member Functions inherited from edm::one::EDAnalyzer<>
 EDAnalyzer ()=default
 
 EDAnalyzer (const EDAnalyzer &)=delete
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
const EDAnalyzeroperator= (const EDAnalyzer &)=delete
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsInputProcessBlocks () const final
 
bool wantsProcessBlocks () const final
 
- Public Member Functions inherited from edm::one::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDAnalyzerBase () override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESProxyIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex >
const & 
esGetTokenRecordIndicesVector (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector
< ProductResolverIndexAndSkipBit >
const & 
itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::array< std::vector< ModuleDescription const * > *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Attributes

bool createPhotonTTree_
 
TH1F * h_ebeeGap_
 
TH1F * h_ebetagap_
 
TH1F * h_ebphigap_
 
TH1F * h_eedeeGap_
 
TH1F * h_eeringGap_
 
TH1F * h_hadoverem_
 
TH1F * h_isoEcalRecHit_
 
TH1F * h_isoHcalRecHit_
 
TH1F * h_nPassEM_
 
TH1F * h_nPassingPho_
 
TH1F * h_nPho_
 
TH1F * h_ntrk_hollow_
 
TH1F * h_ntrk_solid_
 
TH1F * h_photonEt_
 
TH1F * h_photonEta_
 
TH1F * h_photonInAnyGap_
 
TH1F * h_photonPhi_
 
TH1F * h_photonScEt_
 
TH1F * h_photonScEta_
 
TH1F * h_photonScEtaWidth_
 
TH1F * h_photonScPhi_
 
TH1F * h_r9_
 
TH1F * h_trk_pt_hollow_
 
TH1F * h_trk_pt_solid_
 
double maxPhotonAbsEta_
 
double maxPhotonHoverE_
 
double minPhotonAbsEta_
 
double minPhotonEt_
 
double minPhotonR9_
 
std::string outputFile_
 
struct_recPhoton recPhoton
 
TFile * rootFile_
 
TTree * tree_PhotonAll_
 

Additional Inherited Members

- Public Types inherited from edm::one::EDAnalyzerBase
typedef EDAnalyzerBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::one::EDAnalyzerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< B > consumes (edm::InputTag tag) noexcept
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes () noexcept
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag) noexcept
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
void resetItemsToGetFrom (BranchType iType)
 

Detailed Description

Description: Generate various histograms for cuts and important photon ID parameters using a data sample of photons in QCD events.

Implementation: <Notes on="" implementation>="">

Definition at line 72 of file PhotonIDSimpleAnalyzer.cc.

Constructor & Destructor Documentation

PhotonIDSimpleAnalyzer::PhotonIDSimpleAnalyzer ( const edm::ParameterSet ps)
explicit

Definition at line 159 of file PhotonIDSimpleAnalyzer.cc.

References edm::ParameterSet::getParameter(), and AlCaHLTBitMon_QueryRunRegistry::string.

159  {
160  // Read Parameters from configuration file
161 
162  // output filename
163  outputFile_ = ps.getParameter<std::string>("outputFile");
164  // Read variables that must be passed to allow a
165  // supercluster to be placed in histograms as a photon.
166  minPhotonEt_ = ps.getParameter<double>("minPhotonEt");
167  minPhotonAbsEta_ = ps.getParameter<double>("minPhotonAbsEta");
168  maxPhotonAbsEta_ = ps.getParameter<double>("maxPhotonAbsEta");
169  minPhotonR9_ = ps.getParameter<double>("minPhotonR9");
170  maxPhotonHoverE_ = ps.getParameter<double>("maxPhotonHoverE");
171 
172  // Read variable to that decidedes whether
173  // a TTree of photons is created or not
174  createPhotonTTree_ = ps.getParameter<bool>("createPhotonTTree");
175 
176  // open output file to store histograms
177  rootFile_ = TFile::Open(outputFile_.c_str(), "RECREATE");
178 }
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
PhotonIDSimpleAnalyzer::~PhotonIDSimpleAnalyzer ( )
override

Definition at line 183 of file PhotonIDSimpleAnalyzer.cc.

183  {
184  // do anything here that needs to be done at desctruction time
185  // (e.g. close files, deallocate resources etc.)
186 
187  delete rootFile_;
188 }

Member Function Documentation

void PhotonIDSimpleAnalyzer::analyze ( const edm::Event evt,
const edm::EventSetup es 
)
overridevirtual

Implements edm::one::EDAnalyzerBase.

Definition at line 244 of file PhotonIDSimpleAnalyzer.cc.

References edm::Event::getByLabel(), and interactiveExample::photons.

244  {
245  using namespace std;
246  using namespace edm;
247 
248  // grab photons
250  evt.getByLabel("photons", "", photonColl);
251 
252  Handle<edm::ValueMap<bool> > loosePhotonQual;
253  evt.getByLabel("PhotonIDProd", "PhotonCutBasedIDLoose", loosePhotonQual);
254  Handle<edm::ValueMap<bool> > looseEMQual;
255  evt.getByLabel("PhotonIDProd", "PhotonCutBasedIDLooseEM", looseEMQual);
256  // grab PhotonId objects
257  // Handle<reco::PhotonIDAssociationCollection> photonIDMapColl;
258  // evt.getByLabel("PhotonIDProd", "PhotonAssociatedID", photonIDMapColl);
259 
260  // create reference to the object types we are interested in
261  const reco::PhotonCollection* photons = photonColl.product();
262  const edm::ValueMap<bool>* phoMap = loosePhotonQual.product();
263  const edm::ValueMap<bool>* lEMMap = looseEMQual.product();
264  int photonCounter = 0;
265  int idxpho = 0;
266  reco::PhotonCollection::const_iterator pho;
267  for (pho = (*photons).begin(); pho != (*photons).end(); pho++) {
268  edm::Ref<reco::PhotonCollection> photonref(photonColl, idxpho);
269  //reco::PhotonIDAssociationCollection::const_iterator photonIter = phoMap->find(photonref);
270  //const reco::PhotonIDRef &phtn = photonIter->val;
271  //const reco::PhotonRef &pho = photonIter->key;
272 
273  float photonEt = pho->et();
274  float superClusterEt = (pho->superCluster()->energy()) / (cosh(pho->superCluster()->position().eta()));
275  bool LoosePhotonQu = (*phoMap)[photonref];
276  h_nPassingPho_->Fill(LoosePhotonQu);
277  bool LooseEMQu = (*lEMMap)[photonref];
278  h_nPassEM_->Fill(LooseEMQu);
279  // Only store photon candidates (SuperClusters) that pass some simple cuts
280  bool passCuts = (photonEt > minPhotonEt_) && (fabs(pho->eta()) > minPhotonAbsEta_) &&
281  (fabs(pho->eta()) < maxPhotonAbsEta_) && (pho->r9() > minPhotonR9_) &&
282  (pho->hadronicOverEm() < maxPhotonHoverE_);
283 
284  if (passCuts) {
286  // fill histograms //
288  // PhotonID Variables
289  h_isoEcalRecHit_->Fill(pho->ecalRecHitSumEtConeDR04());
290  h_isoHcalRecHit_->Fill(pho->hcalTowerSumEtConeDR04());
291  h_trk_pt_solid_->Fill(pho->trkSumPtSolidConeDR04());
292  h_trk_pt_hollow_->Fill(pho->trkSumPtHollowConeDR04());
293  h_ntrk_solid_->Fill(pho->nTrkSolidConeDR04());
294  h_ntrk_hollow_->Fill(pho->nTrkHollowConeDR04());
295  h_ebetagap_->Fill(pho->isEBEtaGap());
296  h_ebphigap_->Fill(pho->isEBPhiGap());
297  h_eeringGap_->Fill(pho->isEERingGap());
298  h_eedeeGap_->Fill(pho->isEEDeeGap());
299  h_ebeeGap_->Fill(pho->isEBEEGap());
300  h_r9_->Fill(pho->r9());
301 
302  // Photon Variables
303  h_photonEt_->Fill(photonEt);
304  h_photonEta_->Fill(pho->eta());
305  h_photonPhi_->Fill(pho->phi());
306  h_hadoverem_->Fill(pho->hadronicOverEm());
307 
308  // Photon's SuperCluster Variables
309  // eta is with respect to detector (not physics) vertex,
310  // thus Et and eta are different from photon.
311  h_photonScEt_->Fill(superClusterEt);
312  h_photonScEta_->Fill(pho->superCluster()->position().eta());
313  h_photonScPhi_->Fill(pho->superCluster()->position().phi());
314  h_photonScEtaWidth_->Fill(pho->superCluster()->etaWidth());
315 
316  // It passed photon cuts, mark it
317 
319  // fill TTree (optional) //
321  if (createPhotonTTree_) {
322  recPhoton.isolationEcalRecHit = pho->ecalRecHitSumEtConeDR04();
323  recPhoton.isolationHcalRecHit = pho->hcalTowerSumEtConeDR04();
324  recPhoton.isolationSolidTrkCone = pho->trkSumPtSolidConeDR04();
325  recPhoton.isolationHollowTrkCone = pho->trkSumPtHollowConeDR04();
326  recPhoton.nTrkSolidCone = pho->nTrkSolidConeDR04();
327  recPhoton.nTrkHollowCone = pho->nTrkHollowConeDR04();
328  recPhoton.isEBEtaGap = pho->isEBEtaGap();
329  recPhoton.isEBPhiGap = pho->isEBPhiGap();
330  recPhoton.isEERingGap = pho->isEERingGap();
331  recPhoton.isEEDeeGap = pho->isEEDeeGap();
332  recPhoton.isEBEEGap = pho->isEBEEGap();
333  recPhoton.r9 = pho->r9();
334  recPhoton.et = pho->et();
335  recPhoton.eta = pho->eta();
336  recPhoton.phi = pho->phi();
337  recPhoton.hadronicOverEm = pho->hadronicOverEm();
338 
339  // Fill the tree (this records all the recPhoton.* since
340  // tree_PhotonAll_ was set to point at that.
341  tree_PhotonAll_->Fill();
342  }
343 
344  // Record whether it was near any module gap.
345  // Very convoluted at the moment.
346  bool inAnyGap = pho->isEBEEGap() || (pho->isEB() && pho->isEBEtaGap()) || (pho->isEB() && pho->isEBPhiGap()) ||
347  (pho->isEE() && pho->isEERingGap()) || (pho->isEE() && pho->isEEDeeGap());
348  if (inAnyGap) {
349  h_photonInAnyGap_->Fill(1.0);
350  } else {
351  h_photonInAnyGap_->Fill(0.0);
352  }
353 
354  photonCounter++;
355  } else {
356  // This didn't pass photon cuts, mark it
357  }
358  idxpho++;
359  } // End Loop over photons
360  h_nPho_->Fill(photonCounter);
361 }
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:500
std::vector< Photon > PhotonCollection
collectin of Photon objects
Definition: PhotonFwd.h:9
void PhotonIDSimpleAnalyzer::beginJob ( void  )
overridevirtual

Reimplemented from edm::one::EDAnalyzerBase.

Definition at line 193 of file PhotonIDSimpleAnalyzer.cc.

References M_PI.

193  {
194  // go to *OUR* rootfile
195  rootFile_->cd();
196 
197  // Book Histograms
198  // PhotonID Histograms
199  h_isoEcalRecHit_ = new TH1F("photonEcalIso", "Ecal Rec Hit Isolation", 300, 0, 300);
200  h_isoHcalRecHit_ = new TH1F("photonHcalIso", "Hcal Rec Hit Isolation", 300, 0, 300);
201  h_trk_pt_solid_ = new TH1F("photonTrackSolidIso", "Sum of track pT in a cone of #DeltaR", 300, 0, 300);
202  h_trk_pt_hollow_ = new TH1F("photonTrackHollowIso", "Sum of track pT in a hollow cone", 300, 0, 300);
203  h_ntrk_solid_ = new TH1F("photonTrackCountSolid", "Number of tracks in a cone of #DeltaR", 100, 0, 100);
204  h_ntrk_hollow_ = new TH1F("photonTrackCountHollow", "Number of tracks in a hollow cone", 100, 0, 100);
205  h_ebetagap_ = new TH1F("photonInEBEtagap", "Ecal Barrel eta gap flag", 2, -0.5, 1.5);
206  h_ebphigap_ = new TH1F("photonInEBEtagap", "Ecal Barrel phi gap flag", 2, -0.5, 1.5);
207  h_eeringGap_ = new TH1F("photonInEERinggap", "Ecal Endcap ring gap flag", 2, -0.5, 1.5);
208  h_eedeeGap_ = new TH1F("photonInEEDeegap", "Ecal Endcap dee gap flag", 2, -0.5, 1.5);
209  h_ebeeGap_ = new TH1F("photonInEEgap", "Ecal Barrel/Endcap gap flag", 2, -0.5, 1.5);
210  h_r9_ = new TH1F("photonR9", "R9 = E(3x3) / E(SuperCluster)", 300, 0, 3);
211 
212  // Photon Histograms
213  h_photonEt_ = new TH1F("photonEt", "Photon E_{T}", 200, 0, 200);
214  h_photonEta_ = new TH1F("photonEta", "Photon #eta", 800, -4, 4);
215  h_photonPhi_ = new TH1F("photonPhi", "Photon #phi", 628, -1. * M_PI, M_PI);
216  h_hadoverem_ = new TH1F("photonHoverE", "Hadronic over EM", 200, 0, 1);
217 
218  // Photon's SuperCluster Histograms
219  h_photonScEt_ = new TH1F("photonScEt", "Photon SuperCluster E_{T}", 200, 0, 200);
220  h_photonScEta_ = new TH1F("photonScEta", "Photon #eta", 800, -4, 4);
221  h_photonScPhi_ = new TH1F("photonScPhi", "Photon #phi", 628, -1. * M_PI, M_PI);
222  h_photonScEtaWidth_ = new TH1F("photonScEtaWidth", "#eta-width", 100, 0, .1);
223 
224  // Composite or Other Histograms
225  h_photonInAnyGap_ = new TH1F("photonInAnyGap", "Photon in any gap flag", 2, -0.5, 1.5);
226  h_nPassingPho_ = new TH1F("photonLoosePhoton", "Total number photons (0=NotPassing, 1=Passing)", 2, -0.5, 1.5);
227  h_nPassEM_ = new TH1F("photonLooseEM", "Total number photons (0=NotPassing, 1=Passing)", 2, -0.5, 1.5);
228  h_nPho_ = new TH1F("photonCount", "Number of photons passing cuts in event", 10, 0, 10);
229 
230  // Create a TTree of photons if set to 'True' in config file
231  if (createPhotonTTree_) {
232  tree_PhotonAll_ = new TTree("TreePhotonAll", "Reconstructed Photon");
233  tree_PhotonAll_->Branch("recPhoton",
235  "isolationEcalRecHit/"
236  "F:isolationHcalRecHit:isolationSolidTrkCone:isolationHollowTrkCone:nTrkSolidCone:"
237  "nTrkHollowCone:isEBGap:isEEGap:isEBEEGap:r9:et:eta:phi:hadronicOverEm");
238  }
239 }
#define M_PI
void PhotonIDSimpleAnalyzer::endJob ( void  )
overridevirtual

Reimplemented from edm::one::EDAnalyzerBase.

Definition at line 366 of file PhotonIDSimpleAnalyzer.cc.

366  {
367  // go to *OUR* root file and store histograms
368  rootFile_->cd();
369 
370  // PhotonID Histograms
371  h_isoEcalRecHit_->Write();
372  h_isoHcalRecHit_->Write();
373  h_trk_pt_solid_->Write();
374  h_trk_pt_hollow_->Write();
375  h_ntrk_solid_->Write();
376  h_ntrk_hollow_->Write();
377  h_ebetagap_->Write();
378  h_ebphigap_->Write();
379  h_eeringGap_->Write();
380  h_eedeeGap_->Write();
381  h_ebeeGap_->Write();
382  h_r9_->Write();
383 
384  // Photon Histograms
385  h_photonEt_->Write();
386  h_photonEta_->Write();
387  h_photonPhi_->Write();
388  h_hadoverem_->Write();
389 
390  // Photon's SuperCluster Histograms
391  h_photonScEt_->Write();
392  h_photonScEta_->Write();
393  h_photonScPhi_->Write();
394  h_photonScEtaWidth_->Write();
395 
396  // Composite or Other Histograms
397  h_photonInAnyGap_->Write();
398  h_nPassingPho_->Write();
399  h_nPassEM_->Write();
400  h_nPho_->Write();
401 
402  // Write the root file (really writes the TTree)
403  rootFile_->Write();
404  rootFile_->Close();
405 }

Member Data Documentation

bool PhotonIDSimpleAnalyzer::createPhotonTTree_
private

Definition at line 88 of file PhotonIDSimpleAnalyzer.cc.

TH1F* PhotonIDSimpleAnalyzer::h_ebeeGap_
private

Definition at line 129 of file PhotonIDSimpleAnalyzer.cc.

TH1F* PhotonIDSimpleAnalyzer::h_ebetagap_
private

Definition at line 125 of file PhotonIDSimpleAnalyzer.cc.

TH1F* PhotonIDSimpleAnalyzer::h_ebphigap_
private

Definition at line 126 of file PhotonIDSimpleAnalyzer.cc.

TH1F* PhotonIDSimpleAnalyzer::h_eedeeGap_
private

Definition at line 128 of file PhotonIDSimpleAnalyzer.cc.

TH1F* PhotonIDSimpleAnalyzer::h_eeringGap_
private

Definition at line 127 of file PhotonIDSimpleAnalyzer.cc.

TH1F* PhotonIDSimpleAnalyzer::h_hadoverem_
private

Definition at line 136 of file PhotonIDSimpleAnalyzer.cc.

TH1F* PhotonIDSimpleAnalyzer::h_isoEcalRecHit_
private

Definition at line 119 of file PhotonIDSimpleAnalyzer.cc.

TH1F* PhotonIDSimpleAnalyzer::h_isoHcalRecHit_
private

Definition at line 120 of file PhotonIDSimpleAnalyzer.cc.

TH1F* PhotonIDSimpleAnalyzer::h_nPassEM_
private

Definition at line 147 of file PhotonIDSimpleAnalyzer.cc.

TH1F* PhotonIDSimpleAnalyzer::h_nPassingPho_
private

Definition at line 146 of file PhotonIDSimpleAnalyzer.cc.

TH1F* PhotonIDSimpleAnalyzer::h_nPho_
private

Definition at line 148 of file PhotonIDSimpleAnalyzer.cc.

TH1F* PhotonIDSimpleAnalyzer::h_ntrk_hollow_
private

Definition at line 124 of file PhotonIDSimpleAnalyzer.cc.

TH1F* PhotonIDSimpleAnalyzer::h_ntrk_solid_
private

Definition at line 123 of file PhotonIDSimpleAnalyzer.cc.

TH1F* PhotonIDSimpleAnalyzer::h_photonEt_
private

Definition at line 133 of file PhotonIDSimpleAnalyzer.cc.

TH1F* PhotonIDSimpleAnalyzer::h_photonEta_
private

Definition at line 134 of file PhotonIDSimpleAnalyzer.cc.

TH1F* PhotonIDSimpleAnalyzer::h_photonInAnyGap_
private

Definition at line 145 of file PhotonIDSimpleAnalyzer.cc.

TH1F* PhotonIDSimpleAnalyzer::h_photonPhi_
private

Definition at line 135 of file PhotonIDSimpleAnalyzer.cc.

TH1F* PhotonIDSimpleAnalyzer::h_photonScEt_
private

Definition at line 139 of file PhotonIDSimpleAnalyzer.cc.

TH1F* PhotonIDSimpleAnalyzer::h_photonScEta_
private

Definition at line 140 of file PhotonIDSimpleAnalyzer.cc.

TH1F* PhotonIDSimpleAnalyzer::h_photonScEtaWidth_
private

Definition at line 142 of file PhotonIDSimpleAnalyzer.cc.

TH1F* PhotonIDSimpleAnalyzer::h_photonScPhi_
private

Definition at line 141 of file PhotonIDSimpleAnalyzer.cc.

TH1F* PhotonIDSimpleAnalyzer::h_r9_
private

Definition at line 130 of file PhotonIDSimpleAnalyzer.cc.

TH1F* PhotonIDSimpleAnalyzer::h_trk_pt_hollow_
private

Definition at line 122 of file PhotonIDSimpleAnalyzer.cc.

TH1F* PhotonIDSimpleAnalyzer::h_trk_pt_solid_
private

Definition at line 121 of file PhotonIDSimpleAnalyzer.cc.

double PhotonIDSimpleAnalyzer::maxPhotonAbsEta_
private

Definition at line 85 of file PhotonIDSimpleAnalyzer.cc.

double PhotonIDSimpleAnalyzer::maxPhotonHoverE_
private

Definition at line 87 of file PhotonIDSimpleAnalyzer.cc.

double PhotonIDSimpleAnalyzer::minPhotonAbsEta_
private

Definition at line 84 of file PhotonIDSimpleAnalyzer.cc.

double PhotonIDSimpleAnalyzer::minPhotonEt_
private

Definition at line 83 of file PhotonIDSimpleAnalyzer.cc.

double PhotonIDSimpleAnalyzer::minPhotonR9_
private

Definition at line 86 of file PhotonIDSimpleAnalyzer.cc.

std::string PhotonIDSimpleAnalyzer::outputFile_
private

Definition at line 82 of file PhotonIDSimpleAnalyzer.cc.

struct_recPhoton PhotonIDSimpleAnalyzer::recPhoton
private

Definition at line 111 of file PhotonIDSimpleAnalyzer.cc.

TFile* PhotonIDSimpleAnalyzer::rootFile_
private

Definition at line 114 of file PhotonIDSimpleAnalyzer.cc.

TTree* PhotonIDSimpleAnalyzer::tree_PhotonAll_
private

Definition at line 151 of file PhotonIDSimpleAnalyzer.cc.