CMS 3D CMS Logo

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

EgammaCoreTools. More...

#include <PhotonAnalyzer.h>

Inheritance diagram for PhotonAnalyzer:
DQMEDAnalyzer edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >

Public Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
 PhotonAnalyzer (const edm::ParameterSet &)
 
 ~PhotonAnalyzer () override
 
- Public Member Functions inherited from DQMEDAnalyzer
void accumulate (edm::Event const &event, edm::EventSetup const &setup) final
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
void beginStream (edm::StreamID id) final
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDAnalyzer ()
 
void endLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 

Private Member Functions

void book2DHistoVector (DQMStore::IBooker &, std::vector< std::vector< MonitorElement * > > &toFill, std::string histoType, std::string histoName, std::string title, int xbin, double xmin, double xmax, int ybin=1, double ymin=1, double ymax=2)
 
void book3DHistoVector (DQMStore::IBooker &, std::vector< std::vector< std::vector< MonitorElement * > > > &toFill, std::string histoType, std::string histoName, std::string title, int xbin, double xmin, double xmax, int ybin=1, double ymin=1, double ymax=2)
 
MonitorElementbookHisto (DQMStore::IBooker &, std::string histoName, std::string title, int bin, double min, double max)
 
void bookHistogramsConversions (DQMStore::IBooker &)
 
void bookHistogramsEfficiency (DQMStore::IBooker &)
 
void bookHistogramsForHistogramCounts (DQMStore::IBooker &)
 
void bookHistogramsInvMass (DQMStore::IBooker &)
 
void bookHistogramsPhotons (DQMStore::IBooker &)
 
void fill2DHistoVector (std::vector< std::vector< MonitorElement * > > &histoVector, double x, int cut, int type)
 
void fill2DHistoVector (std::vector< std::vector< MonitorElement * > > &histoVector, double x, double y, int cut, int type)
 
void fill3DHistoVector (std::vector< std::vector< std::vector< MonitorElement * > > > &histoVector, double x, int cut, int type, int part)
 
void fill3DHistoVector (std::vector< std::vector< std::vector< MonitorElement * > > > &histoVector, double x, double y, int cut, int type, int part)
 
void fillHistogramsForHistogramCounts (DQMStore::IBooker &)
 
float phiNormalization (float &a)
 
bool photonSelection (const reco::Photon *p)
 
bool photonSelectionSlimmed (const reco::Photon *p)
 

Private Attributes

edm::EDGetTokenT
< edm::SortedCollection
< EcalRecHit,
edm::StrictWeakOrdering
< EcalRecHit > > > 
barrelRecHit_token_
 
int chi2Bin_
 
double chi2Max_
 
double chi2Min_
 
std::stringstream currentFolder_
 
double cutStep_
 
int dEtaTracksBin_
 
double dEtaTracksMax_
 
double dEtaTracksMin_
 
int dPhiTracksBin_
 
double dPhiTracksMax_
 
double dPhiTracksMin_
 
int eBin_
 
double eMax_
 
double eMin_
 
edm::EDGetTokenT
< edm::SortedCollection
< EcalRecHit,
edm::StrictWeakOrdering
< EcalRecHit > > > 
endcapRecHit_token_
 
int eOverPBin_
 
double eOverPMax_
 
double eOverPMin_
 
int etaBin_
 
double etaMax_
 
double etaMin_
 
int etBin_
 
double etMax_
 
double etMin_
 
bool excludeBkgHistos_
 
std::string fName_
 
std::vector< std::vector
< MonitorElement * > > 
h_chHadIsoBarrel_
 
std::vector< std::vector
< MonitorElement * > > 
h_chHadIsoEndcap_
 
MonitorElementh_convEt_Loose_
 
MonitorElementh_convEt_Tight_
 
MonitorElementh_convEta_Loose_
 
MonitorElementh_convEta_Tight_
 
std::vector< std::vector
< MonitorElement * > > 
h_convVtxR_
 
std::vector< std::vector
< MonitorElement * > > 
h_convVtxRvsZ_
 
std::vector< std::vector
< MonitorElement * > > 
h_convVtxYvsX_
 
std::vector< std::vector
< MonitorElement * > > 
h_convVtxZ_
 
std::vector< std::vector
< MonitorElement * > > 
h_convVtxZEndcap_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
h_dCotTracks_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
h_dEtaTracksAtEcal_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
h_dPhiTracksAtEcal_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
h_dPhiTracksAtVtx_
 
std::vector< std::vector
< MonitorElement * > > 
h_e1x5VsEt_
 
std::vector< std::vector
< MonitorElement * > > 
h_e1x5VsEta_
 
std::vector< std::vector
< MonitorElement * > > 
h_e2x5VsEt_
 
std::vector< std::vector
< MonitorElement * > > 
h_e2x5VsEta_
 
std::vector< std::vector
< MonitorElement * > > 
h_ecalSum_
 
std::vector< std::vector
< MonitorElement * > > 
h_ecalSumEBarrel_
 
std::vector< std::vector
< MonitorElement * > > 
h_ecalSumEEndcap_
 
std::vector< std::vector
< MonitorElement * > > 
h_ecalSumVsEt_
 
std::vector< std::vector
< MonitorElement * > > 
h_ecalSumVsEta_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
h_eOverPTracks_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
h_h1OverE_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
h_h2OverE_
 
std::vector< std::vector
< MonitorElement * > > 
h_hcalSum_
 
std::vector< std::vector
< MonitorElement * > > 
h_hcalSumEBarrel_
 
std::vector< std::vector
< MonitorElement * > > 
h_hcalSumEEndcap_
 
std::vector< std::vector
< MonitorElement * > > 
h_hcalSumVsEt_
 
std::vector< std::vector
< MonitorElement * > > 
h_hcalSumVsEta_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
h_hOverE_
 
MonitorElementh_invMassAllPhotons_
 
MonitorElementh_invMassOneWithTracks_
 
MonitorElementh_invMassPhotonsEBarrel_
 
MonitorElementh_invMassPhotonsEEndcap_
 
MonitorElementh_invMassPhotonsEEndcapEBarrel_
 
MonitorElementh_invMassTwoWithTracks_
 
MonitorElementh_invMassZeroWithTracks_
 
std::vector< std::vector
< MonitorElement * > > 
h_maxEXtalOver3x3VsEt_
 
std::vector< std::vector
< MonitorElement * > > 
h_maxEXtalOver3x3VsEta_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
h_nConv_
 
std::vector< std::vector
< MonitorElement * > > 
h_nHadIsoBarrel_
 
std::vector< std::vector
< MonitorElement * > > 
h_nHadIsoEndcap_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
h_nPho_
 
MonitorElementh_nRecoVtx_
 
std::vector< std::vector
< MonitorElement * > > 
h_nTrackIsolHollow_
 
std::vector< std::vector
< MonitorElement * > > 
h_nTrackIsolHollowVsEt_
 
std::vector< std::vector
< MonitorElement * > > 
h_nTrackIsolHollowVsEta_
 
std::vector< std::vector
< MonitorElement * > > 
h_nTrackIsolSolid_
 
std::vector< std::vector
< MonitorElement * > > 
h_nTrackIsolSolidVsEt_
 
std::vector< std::vector
< MonitorElement * > > 
h_nTrackIsolSolidVsEta_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
h_phoConvE_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
h_phoConvEt_
 
std::vector< std::vector
< MonitorElement * > > 
h_phoConvEta_
 
std::vector< std::vector
< MonitorElement * > > 
h_phoConvEtaForEfficiency_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
h_phoConvPhi_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
h_phoConvPhiForEfficiency_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
h_phoConvR9_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
h_phoE_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
h_phoEt_
 
std::vector< std::vector
< MonitorElement * > > 
h_phoEt_BadChannels_
 
MonitorElementh_phoEt_Loose_
 
MonitorElementh_phoEt_postHLT_
 
MonitorElementh_phoEt_preHLT_
 
MonitorElementh_phoEt_Tight_
 
std::vector< std::vector
< MonitorElement * > > 
h_phoEta_
 
std::vector< std::vector
< MonitorElement * > > 
h_phoEta_BadChannels_
 
MonitorElementh_phoEta_Loose_
 
MonitorElementh_phoEta_postHLT_
 
MonitorElementh_phoEta_preHLT_
 
MonitorElementh_phoEta_Tight_
 
MonitorElementh_phoEta_Vertex_
 
std::vector< std::vector
< MonitorElement * > > 
h_phoIsoBarrel_
 
std::vector< std::vector
< MonitorElement * > > 
h_phoIsoEndcap_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
h_phoPhi_
 
std::vector< std::vector
< MonitorElement * > > 
h_phoPhi_BadChannels_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
h_phoSigmaEoverE_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
h_phoSigmaIetaIeta_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
h_pOverETracks_
 
std::vector< std::vector
< MonitorElement * > > 
h_r1x5VsEt_
 
std::vector< std::vector
< MonitorElement * > > 
h_r1x5VsEta_
 
std::vector< std::vector
< MonitorElement * > > 
h_r2x5VsEt_
 
std::vector< std::vector
< MonitorElement * > > 
h_r2x5VsEta_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
h_r9_
 
std::vector< std::vector
< MonitorElement * > > 
h_r9VsEt_
 
std::vector< std::vector
< MonitorElement * > > 
h_r9VsEta_
 
std::vector< std::vector
< MonitorElement * > > 
h_scEta_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
h_scPhi_
 
std::vector< std::vector
< MonitorElement * > > 
h_sigmaIetaIetaVsEta_
 
std::vector< std::vector
< MonitorElement * > > 
h_tkChi2_
 
std::vector< std::vector
< MonitorElement * > > 
h_trackPtSumHollow_
 
std::vector< std::vector
< MonitorElement * > > 
h_trackPtSumHollowVsEt_
 
std::vector< std::vector
< MonitorElement * > > 
h_trackPtSumHollowVsEta_
 
std::vector< std::vector
< MonitorElement * > > 
h_trackPtSumSolid_
 
std::vector< std::vector
< MonitorElement * > > 
h_trackPtSumSolidVsEt_
 
std::vector< std::vector
< MonitorElement * > > 
h_trackPtSumSolidVsEta_
 
std::vector< std::vector
< MonitorElement * > > 
h_vertexChi2Prob_
 
int histo_index_conversions_
 
int histo_index_efficiency_
 
int histo_index_invMass_
 
int histo_index_photons_
 
int hOverEBin_
 
double hOverEMax_
 
double hOverEMin_
 
double invMassEtCut_
 
bool isHeavyIon_
 
int isolationStrength_
 
bool minimalSetOfHistos_
 
double minPhoEtCut_
 
int nEvt_
 
int numberBin_
 
double numberMax_
 
double numberMin_
 
int numberOfSteps_
 
edm::EDGetTokenT
< reco::VertexCollection
offline_pvToken_
 
std::vector< std::vector
< MonitorElement * > > 
p_dCotTracksVsEta_
 
std::vector< std::vector
< MonitorElement * > > 
p_e1x5VsEt_
 
std::vector< std::vector
< MonitorElement * > > 
p_e1x5VsEta_
 
std::vector< std::vector
< MonitorElement * > > 
p_e2x5VsEt_
 
std::vector< std::vector
< MonitorElement * > > 
p_e2x5VsEta_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
p_ecalSumVsEt_
 
std::vector< std::vector
< MonitorElement * > > 
p_ecalSumVsEta_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
p_hcalSumVsEt_
 
std::vector< std::vector
< MonitorElement * > > 
p_hcalSumVsEta_
 
std::vector< std::vector
< MonitorElement * > > 
p_hOverEVsEt_
 
std::vector< std::vector
< MonitorElement * > > 
p_hOverEVsEta_
 
std::vector< std::vector
< MonitorElement * > > 
p_maxEXtalOver3x3VsEt_
 
std::vector< std::vector
< MonitorElement * > > 
p_maxEXtalOver3x3VsEta_
 
std::vector< std::vector
< MonitorElement * > > 
p_nHitsVsEta_
 
std::vector< std::vector
< MonitorElement * > > 
p_nTrackIsolHollowVsEt_
 
std::vector< std::vector
< MonitorElement * > > 
p_nTrackIsolHollowVsEta_
 
std::vector< std::vector
< MonitorElement * > > 
p_nTrackIsolSolidVsEt_
 
std::vector< std::vector
< MonitorElement * > > 
p_nTrackIsolSolidVsEta_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
p_phoSigmaEoverEvsNVtx_
 
std::vector< std::vector
< MonitorElement * > > 
p_r1x5VsEt_
 
std::vector< std::vector
< MonitorElement * > > 
p_r1x5VsEta_
 
std::vector< std::vector
< MonitorElement * > > 
p_r2x5VsEt_
 
std::vector< std::vector
< MonitorElement * > > 
p_r2x5VsEta_
 
std::vector< std::vector
< MonitorElement * > > 
p_r9VsEt_
 
std::vector< std::vector
< MonitorElement * > > 
p_r9VsEta_
 
std::vector< std::vector
< MonitorElement * > > 
p_sigmaIetaIetaVsEta_
 
std::vector< std::vector
< MonitorElement * > > 
p_tkChi2VsEta_
 
std::vector< std::vector
< MonitorElement * > > 
p_trackPtSumHollowVsEt_
 
std::vector< std::vector
< MonitorElement * > > 
p_trackPtSumHollowVsEta_
 
std::vector< std::vector
< MonitorElement * > > 
p_trackPtSumSolidVsEt_
 
std::vector< std::vector
< MonitorElement * > > 
p_trackPtSumSolidVsEta_
 
std::vector< std::string > parts_
 
int phiBin_
 
double phiMax_
 
double phiMin_
 
edm::EDGetTokenT< std::vector
< reco::Photon > > 
photon_token_
 
edm::EDGetTokenT
< edm::ValueMap< bool > > 
PhotonIDLoose_token_
 
edm::EDGetTokenT
< edm::ValueMap< bool > > 
PhotonIDTight_token_
 
double photonMaxEta_
 
unsigned int prescaleFactor_
 
int r9Bin_
 
double r9Max_
 
double r9Min_
 
int rBin_
 
int reducedEtaBin_
 
int reducedEtBin_
 
int reducedR9Bin_
 
int reducedSumBin_
 
double rMax_
 
double rMin_
 
int sigmaIetaBin_
 
double sigmaIetaMax_
 
double sigmaIetaMin_
 
bool standAlone_
 
int sumBin_
 
double sumMax_
 
double sumMin_
 
MonitorElementtotalNumberOfHistos_conversionsFolder
 
MonitorElementtotalNumberOfHistos_efficiencyFolder
 
MonitorElementtotalNumberOfHistos_invMassFolder
 
MonitorElementtotalNumberOfHistos_photonsFolder
 
edm::EDGetTokenT
< trigger::TriggerEvent
triggerEvent_token_
 
std::vector< std::string > types_
 
bool useBinning_
 
bool useTriggerFiltering_
 
int xBin_
 
double xMax_
 
double xMin_
 
int yBin_
 
double yMax_
 
double yMin_
 
int zBin_
 
double zMax_
 
double zMin_
 

Additional Inherited Members

- Public Types inherited from DQMEDAnalyzer
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
using CacheTypes = CacheContexts< T...>
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T...>
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 
- Static Public Member Functions inherited from DQMEDAnalyzer
static void globalEndJob (DQMEDAnalyzerGlobalCache const *)
 
static void globalEndLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup, LuminosityBlockContext const *context)
 
static void globalEndRunProduce (edm::Run &run, edm::EventSetup const &setup, RunContext const *context)
 
static std::unique_ptr
< DQMEDAnalyzerGlobalCache
initializeGlobalCache (edm::ParameterSet const &)
 
- Protected Member Functions inherited from DQMEDAnalyzer
uint64_t meId () const
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 
unsigned int streamId_
 

Detailed Description

EgammaCoreTools.

$Id: PhotonAnalyzer authors: Nancy Marinelli, U. of Notre Dame, US Jamie Antonelli, U. of Notre Dame, US

Definition at line 97 of file PhotonAnalyzer.h.

Constructor & Destructor Documentation

PhotonAnalyzer::PhotonAnalyzer ( const edm::ParameterSet pset)
explicit

Definition at line 19 of file PhotonAnalyzer.cc.

References etaMax_(), etaMin_(), edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), HLT_FULL_cff::InputTag, and types_().

19  {
20  fName_ = pset.getParameter<string>("analyzerName");
21  prescaleFactor_ = pset.getUntrackedParameter<int>("prescaleFactor", 1);
22 
23  photon_token_ = consumes<vector<reco::Photon> >(pset.getParameter<edm::InputTag>("phoProducer"));
24  barrelRecHit_token_ = consumes<edm::SortedCollection<EcalRecHit, edm::StrictWeakOrdering<EcalRecHit> > >(
25  pset.getParameter<edm::InputTag>("barrelRecHitProducer"));
26  PhotonIDLoose_token_ = consumes<edm::ValueMap<bool> >(pset.getParameter<edm::InputTag>("photonIDLoose"));
27  PhotonIDTight_token_ = consumes<edm::ValueMap<bool> >(pset.getParameter<edm::InputTag>("photonIDTight"));
28  endcapRecHit_token_ = consumes<edm::SortedCollection<EcalRecHit, edm::StrictWeakOrdering<EcalRecHit> > >(
29  pset.getParameter<edm::InputTag>("endcapRecHitProducer"));
30  triggerEvent_token_ = consumes<trigger::TriggerEvent>(pset.getParameter<edm::InputTag>("triggerEvent"));
31  offline_pvToken_ = consumes<reco::VertexCollection>(
32  pset.getUntrackedParameter<edm::InputTag>("offlinePV", edm::InputTag("offlinePrimaryVertices")));
33 
34  minPhoEtCut_ = pset.getParameter<double>("minPhoEtCut");
35  photonMaxEta_ = pset.getParameter<double>("maxPhoEta");
36  invMassEtCut_ = pset.getParameter<double>("invMassEtCut");
37  cutStep_ = pset.getParameter<double>("cutStep");
38  numberOfSteps_ = pset.getParameter<int>("numberOfSteps");
39  useBinning_ = pset.getParameter<bool>("useBinning");
40  useTriggerFiltering_ = pset.getParameter<bool>("useTriggerFiltering");
41  minimalSetOfHistos_ = pset.getParameter<bool>("minimalSetOfHistos");
42  excludeBkgHistos_ = pset.getParameter<bool>("excludeBkgHistos");
43  standAlone_ = pset.getParameter<bool>("standAlone");
44  isolationStrength_ = pset.getParameter<int>("isolationStrength");
45  isHeavyIon_ = pset.getUntrackedParameter<bool>("isHeavyIon", false);
46 
51 
52  nEvt_ = 0;
53 
54  // Determining parts...
55  parts_.push_back("AllEcal");
56  parts_.push_back("Barrel");
57  parts_.push_back("Endcaps");
58  // ...and types
59  types_.push_back("All");
60  types_.push_back("GoodCandidate");
61  if (!excludeBkgHistos_) {
62  types_.push_back("Background");
63  }
64 
65  // Histogram parameters
66  etaBin_ = pset.getParameter<int>("etaBin");
67  etaMin_ = pset.getParameter<double>("etaMin");
68  etaMax_ = pset.getParameter<double>("etaMax");
69 
70  etBin_ = pset.getParameter<int>("etBin");
71  etMin_ = pset.getParameter<double>("etMin");
72  etMax_ = pset.getParameter<double>("etMax");
73 
74  phiBin_ = pset.getParameter<int>("phiBin");
75  phiMin_ = pset.getParameter<double>("phiMin");
76  phiMax_ = pset.getParameter<double>("phiMax");
77 
78  eBin_ = pset.getParameter<int>("eBin");
79  eMin_ = pset.getParameter<double>("eMin");
80  eMax_ = pset.getParameter<double>("eMax");
81 
82  numberBin_ = pset.getParameter<int>("numberBin");
83  numberMin_ = pset.getParameter<double>("numberMin");
84  numberMax_ = pset.getParameter<double>("numberMax");
85 
86  r9Bin_ = pset.getParameter<int>("r9Bin");
87  r9Min_ = pset.getParameter<double>("r9Min");
88  r9Max_ = pset.getParameter<double>("r9Max");
89 
90  sigmaIetaBin_ = pset.getParameter<int>("sigmaIetaBin");
91  sigmaIetaMin_ = pset.getParameter<double>("sigmaIetaMin");
92  sigmaIetaMax_ = pset.getParameter<double>("sigmaIetaMax");
93 
94  sumBin_ = pset.getParameter<int>("sumBin");
95  sumMin_ = pset.getParameter<double>("sumMin");
96  sumMax_ = pset.getParameter<double>("sumMax");
97 
98  hOverEBin_ = pset.getParameter<int>("hOverEBin");
99  hOverEMin_ = pset.getParameter<double>("hOverEMin");
100  hOverEMax_ = pset.getParameter<double>("hOverEMax");
101 
102  eOverPBin_ = pset.getParameter<int>("eOverPBin");
103  eOverPMin_ = pset.getParameter<double>("eOverPMin");
104  eOverPMax_ = pset.getParameter<double>("eOverPMax");
105 
106  dPhiTracksBin_ = pset.getParameter<int>("dPhiTracksBin");
107  dPhiTracksMin_ = pset.getParameter<double>("dPhiTracksMin");
108  dPhiTracksMax_ = pset.getParameter<double>("dPhiTracksMax");
109 
110  dEtaTracksBin_ = pset.getParameter<int>("dEtaTracksBin");
111  dEtaTracksMin_ = pset.getParameter<double>("dEtaTracksMin");
112  dEtaTracksMax_ = pset.getParameter<double>("dEtaTracksMax");
113 
114  chi2Bin_ = pset.getParameter<int>("chi2Bin");
115  chi2Min_ = pset.getParameter<double>("chi2Min");
116  chi2Max_ = pset.getParameter<double>("chi2Max");
117 
118  zBin_ = pset.getParameter<int>("zBin");
119  zMin_ = pset.getParameter<double>("zMin");
120  zMax_ = pset.getParameter<double>("zMax");
121 
122  rBin_ = pset.getParameter<int>("rBin");
123  rMin_ = pset.getParameter<double>("rMin");
124  rMax_ = pset.getParameter<double>("rMax");
125 
126  xBin_ = pset.getParameter<int>("xBin");
127  xMin_ = pset.getParameter<double>("xMin");
128  xMax_ = pset.getParameter<double>("xMax");
129 
130  yBin_ = pset.getParameter<int>("yBin");
131  yMin_ = pset.getParameter<double>("yMin");
132  yMax_ = pset.getParameter<double>("yMax");
133 
134  reducedEtBin_ = etBin_ / 4;
135  reducedEtaBin_ = etaBin_ / 4;
136  reducedR9Bin_ = r9Bin_ / 4;
137  reducedSumBin_ = sumBin_ / 4;
138 }
T getUntrackedParameter(std::string const &, T const &) const
edm::EDGetTokenT< reco::VertexCollection > offline_pvToken_
edm::EDGetTokenT< edm::ValueMap< bool > > PhotonIDLoose_token_
std::vector< std::string > parts_
int histo_index_conversions_
edm::EDGetTokenT< edm::ValueMap< bool > > PhotonIDTight_token_
std::string fName_
unsigned int prescaleFactor_
std::vector< std::string > types_
edm::EDGetTokenT< edm::SortedCollection< EcalRecHit, edm::StrictWeakOrdering< EcalRecHit > > > barrelRecHit_token_
edm::EDGetTokenT< edm::SortedCollection< EcalRecHit, edm::StrictWeakOrdering< EcalRecHit > > > endcapRecHit_token_
edm::EDGetTokenT< trigger::TriggerEvent > triggerEvent_token_
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
edm::EDGetTokenT< std::vector< reco::Photon > > photon_token_
PhotonAnalyzer::~PhotonAnalyzer ( )
override

Definition at line 140 of file PhotonAnalyzer.cc.

140 {}

Member Function Documentation

void PhotonAnalyzer::analyze ( const edm::Event e,
const edm::EventSetup esup 
)
overridevirtual

End loop over Reco photons

Reimplemented from DQMEDAnalyzer.

Definition at line 1415 of file PhotonAnalyzer.cc.

References edm::SortedCollection< T, SORT >::begin(), reco::Photon::chargedHadronIso(), ChiSquaredProbability(), conversions_cfi::conversions, reco::Photon::conversions(), GOODCOLL_filter_cfg::cut, reco::deltaR(), HLT_FULL_cff::deltaR, deltaRMax, reco::Photon::e1x5(), reco::Photon::e2x5(), reco::Photon::e3x3(), reco::Photon::ecalRecHitSumEtConeDR04(), edm::RefVector< C, T, F >::empty(), edm::SortedCollection< T, SORT >::end(), reco::LeafCandidate::energy(), reco::LeafCandidate::et(), reco::LeafCandidate::eta(), trigger::TriggerEvent::filterKeys(), trigger::TriggerEvent::filterTag(), edm::Event::getByToken(), reco::Photon::getCandidateP4type(), reco::Photon::getCorrectedEnergyError(), trigger::TriggerEvent::getObjects(), reco::Photon::hadronicOverEm(), reco::Photon::hasConversionTracks(), reco::Photon::hcalTowerSumEtConeDR04(), mps_fire::i, edm::EventBase::id(), reco::Photon::isEB(), reco::Photon::isEE(), edm::Ref< C, T, F >::isNonnull(), edm::HandleBase::isValid(), label, edm::InputTag::label(), reco::Photon::maxEnergyXtal(), reco::Photon::neutralHadronIso(), HLT_FULL_cff::normalizedChi2, reco::Photon::nTrkHollowConeDR04(), reco::Photon::nTrkSolidConeDR04(), HLT_FULL_cff::numberOfValidHits, reco::Photon::p4(), reco::LeafCandidate::phi(), reco::Photon::photonIso(), edm::Handle< T >::product(), reco::Photon::r1x5(), reco::Photon::r2x5(), reco::Photon::r9(), hitfit::scalar(), reco::Photon::sigmaIetaIeta(), edm::RefVector< C, T, F >::size(), trigger::TriggerEvent::sizeFilters(), mathSSE::sqrt(), reco::Photon::superCluster(), tracks, reco::Photon::trkSumPtHollowConeDR04(), reco::Photon::trkSumPtSolidConeDR04(), types_(), parallelization::uint(), and trackerHitRTTI::vector.

1415  {
1416  using namespace edm;
1417 
1418  if (nEvt_ % prescaleFactor_)
1419  return;
1420  nEvt_++;
1421  LogInfo(fName_) << "PhotonAnalyzer Analyzing event number: " << e.id() << " Global Counter " << nEvt_ << "\n";
1422 
1423  // Get the trigger results
1424  bool validTriggerEvent = true;
1425  edm::Handle<trigger::TriggerEvent> triggerEventHandle;
1426  const trigger::TriggerEvent dummyTE;
1427  e.getByToken(triggerEvent_token_, triggerEventHandle);
1428  if (!triggerEventHandle.isValid()) {
1429  edm::LogInfo(fName_) << "Error! Can't get the product: triggerEvent_" << endl;
1430  validTriggerEvent = false;
1431  }
1432  const trigger::TriggerEvent& triggerEvent(validTriggerEvent ? *(triggerEventHandle.product()) : dummyTE);
1433 
1434  // Get the reconstructed photons
1435  // bool validPhotons=true;
1436  Handle<reco::PhotonCollection> photonHandle;
1437  e.getByToken(photon_token_, photonHandle);
1438  if (!photonHandle.isValid()) {
1439  edm::LogInfo(fName_) << "Error! Can't get the product: photon_token_" << endl;
1440  // validPhotons=false;
1441  }
1442  const reco::PhotonCollection& photonCollection(*(photonHandle.product()));
1443 
1444  // Get the PhotonId objects
1445  // bool validloosePhotonID=true;
1446  Handle<edm::ValueMap<bool> > loosePhotonFlag;
1447  e.getByToken(PhotonIDLoose_token_, loosePhotonFlag);
1448  if (!loosePhotonFlag.isValid()) {
1449  edm::LogInfo(fName_) << "Error! Can't get the product: PhotonIDLoose_token_" << endl;
1450  // validloosePhotonID=false;
1451  }
1452  // edm::ValueMap<bool> dummyLPID;
1453  // const edm::ValueMap<bool>& loosePhotonID(validloosePhotonID? *(loosePhotonFlag.product()) : dummyLPID);
1454 
1455  // bool validtightPhotonID=true;
1456  Handle<edm::ValueMap<bool> > tightPhotonFlag;
1457  e.getByToken(PhotonIDTight_token_, tightPhotonFlag);
1458  if (!tightPhotonFlag.isValid()) {
1459  edm::LogInfo(fName_) << "Error! Can't get the product: PhotonIDTight_token_" << endl;
1460  // validtightPhotonID=false;
1461  }
1462  // edm::ValueMap<bool> dummyTPI;
1463  // const edm::ValueMap<bool>& tightPhotonID(validtightPhotonID ? *(tightPhotonFlag.product()) : dummyTPI);
1464 
1466  if (!isHeavyIon_) {
1467  e.getByToken(offline_pvToken_, vtxH);
1468  h_nRecoVtx_->Fill(float(vtxH->size()));
1469  }
1470 
1471  // Create array to hold #photons/event information
1472  int nPho[100][3][3];
1473 
1474  for (int cut = 0; cut != 100; ++cut) {
1475  for (unsigned int type = 0; type != types_.size(); ++type) {
1476  for (unsigned int part = 0; part != parts_.size(); ++part) {
1477  nPho[cut][type][part] = 0;
1478  }
1479  }
1480  }
1481  // Create array to hold #conversions/event information
1482  int nConv[100][3][3];
1483 
1484  for (int cut = 0; cut != 100; ++cut) {
1485  for (unsigned int type = 0; type != types_.size(); ++type) {
1486  for (unsigned int part = 0; part != parts_.size(); ++part) {
1487  nConv[cut][type][part] = 0;
1488  }
1489  }
1490  }
1491 
1492  //Prepare list of photon-related HLT filter names
1493  vector<int> Keys;
1494 
1495  for (uint filterIndex = 0; filterIndex < triggerEvent.sizeFilters();
1496  ++filterIndex) { //loop over all trigger filters in event (i.e. filters passed)
1497  string label = triggerEvent.filterTag(filterIndex).label();
1498  if (label.find("Photon") != string::npos) { //get photon-related filters
1499  for (uint filterKeyIndex = 0; filterKeyIndex < triggerEvent.filterKeys(filterIndex).size();
1500  ++filterKeyIndex) { //loop over keys to objects passing this filter
1501  Keys.push_back(
1502  triggerEvent.filterKeys(filterIndex)[filterKeyIndex]); //add keys to a vector for later reference
1503  }
1504  }
1505  }
1506 
1507  // sort Keys vector in ascending order
1508  // and erases duplicate entries from the vector
1509  sort(Keys.begin(), Keys.end());
1510  for (uint i = 0; i < Keys.size();) {
1511  if (i != (Keys.size() - 1)) {
1512  if (Keys[i] == Keys[i + 1])
1513  Keys.erase(Keys.begin() + i + 1);
1514  else
1515  ++i;
1516  } else
1517  ++i;
1518  }
1519 
1520  //We now have a vector of unique keys to TriggerObjects passing a photon-related filter
1521 
1522  // old int photonCounter = 0;
1523 
1525  for (unsigned int iPho = 0; iPho < photonHandle->size(); iPho++) {
1526  const reco::Photon* aPho = &photonCollection[iPho];
1527  // for( reco::PhotonCollection::const_iterator iPho = photonCollection.begin(); iPho != photonCollection.end(); iPho++) {
1528 
1529  //for HLT efficiency plots
1530 
1531  h_phoEta_preHLT_->Fill(aPho->eta());
1532  h_phoEt_preHLT_->Fill(aPho->et());
1533 
1534  double deltaR = 1000.;
1535  double deltaRMin = 1000.;
1536  double deltaRMax = 0.05; //sets deltaR threshold for matching photons to trigger objects
1537 
1538  for (vector<int>::const_iterator objectKey = Keys.begin(); objectKey != Keys.end();
1539  objectKey++) { //loop over keys to objects that fired photon triggers
1540 
1541  deltaR = reco::deltaR(triggerEvent.getObjects()[(*objectKey)].eta(),
1542  triggerEvent.getObjects()[(*objectKey)].phi(),
1543  aPho->superCluster()->eta(),
1544  aPho->superCluster()->phi());
1545  if (deltaR < deltaRMin)
1546  deltaRMin = deltaR;
1547  }
1548 
1549  if (deltaRMin > deltaRMax) { //photon fails delta R cut
1551  continue; //throw away photons that haven't passed any photon filters
1552  }
1553 
1554  if (deltaRMin <= deltaRMax) { //photon passes delta R cut
1555  h_phoEta_postHLT_->Fill(aPho->eta());
1556  h_phoEt_postHLT_->Fill(aPho->et());
1557  }
1558 
1559  // if (aPho->et() < minPhoEtCut_) continue;
1560  bool isLoosePhoton(false), isTightPhoton(false);
1561  if (photonSelection(aPho))
1562  isLoosePhoton = true;
1563 
1564  //find out which part of the Ecal contains the photon
1565  bool phoIsInBarrel = false;
1566  bool phoIsInEndcap = false;
1567  float etaPho = aPho->superCluster()->eta();
1568  if (fabs(etaPho) < 1.479)
1569  phoIsInBarrel = true;
1570  else {
1571  phoIsInEndcap = true;
1572  }
1573 
1574  int part = 0;
1575  if (phoIsInBarrel)
1576  part = 1;
1577  if (phoIsInEndcap)
1578  part = 2;
1579 
1581  bool isIsolated = false;
1582  if (isolationStrength_ == 0)
1583  isIsolated = isLoosePhoton;
1584  if (isolationStrength_ == 1)
1585  isIsolated = isTightPhoton;
1586  if (isolationStrength_ == 2)
1587  isIsolated = photonSelectionSlimmed(aPho);
1588 
1589  int type = 0;
1590  if (isIsolated)
1591  type = 1;
1592  if (!excludeBkgHistos_ && !isIsolated)
1593  type = 2;
1594 
1595  //get rechit collection containing this photon
1596  bool validEcalRecHits = true;
1597  edm::Handle<EcalRecHitCollection> ecalRecHitHandle;
1598  EcalRecHitCollection ecalRecHitCollection;
1599  if (phoIsInBarrel) {
1600  // Get handle to barrel rec hits
1601  e.getByToken(barrelRecHit_token_, ecalRecHitHandle);
1602  if (!ecalRecHitHandle.isValid()) {
1603  edm::LogError(fName_) << "Error! Can't get the product: barrelRecHit_token_";
1604  validEcalRecHits = false;
1605  }
1606  } else if (phoIsInEndcap) {
1607  // Get handle to endcap rec hits
1608  e.getByToken(endcapRecHit_token_, ecalRecHitHandle);
1609  if (!ecalRecHitHandle.isValid()) {
1610  edm::LogError(fName_) << "Error! Can't get the product: endcapRecHit_token";
1611  validEcalRecHits = false;
1612  }
1613  }
1614  if (validEcalRecHits)
1615  ecalRecHitCollection = *(ecalRecHitHandle.product());
1616 
1617  //if (aPho->isEBEEGap()) continue; //cut out gap photons
1618 
1619  //filling histograms to make isolation efficiencies
1620  if (isLoosePhoton) {
1621  h_phoEta_Loose_->Fill(aPho->eta());
1622  h_phoEt_Loose_->Fill(aPho->et());
1623  }
1624  if (isTightPhoton) {
1625  h_phoEta_Tight_->Fill(aPho->eta());
1626  h_phoEt_Tight_->Fill(aPho->et());
1627  }
1628 
1629  for (int cut = 0; cut != numberOfSteps_; ++cut) { //loop over different transverse energy cuts
1630  double Et = aPho->et();
1631  bool passesCuts = false;
1632 
1633  //sorting the photon into the right Et-dependant folder
1634  if (useBinning_ && Et > (cut + 1) * cutStep_ && ((Et < (cut + 2) * cutStep_) | (cut == numberOfSteps_ - 1))) {
1635  passesCuts = true;
1636  } else if (!useBinning_ && Et > (cut + 1) * cutStep_) {
1637  passesCuts = true;
1638  }
1639 
1640  if (passesCuts) {
1641  //filling isolation variable histograms
1642 
1643  //tracker isolation variables
1646 
1647  if (standAlone_)
1650  if (standAlone_)
1653 
1654  if (standAlone_)
1657  if (standAlone_)
1660 
1664 
1665  if (standAlone_)
1668  if (standAlone_)
1671 
1672  if (standAlone_)
1675  if (standAlone_)
1678  //calorimeter isolation variables
1679 
1681  if (aPho->isEB()) {
1683  }
1684  if (aPho->isEE()) {
1686  }
1687  if (standAlone_)
1690  if (standAlone_)
1693 
1695 
1697  if (aPho->isEB()) {
1699  }
1700  if (aPho->isEE()) {
1702  }
1703  if (standAlone_)
1706  if (standAlone_)
1709 
1713 
1716 
1717  // filling pf isolation variables
1718  if (aPho->isEB()) {
1722  }
1723  if (aPho->isEE()) {
1727  }
1728 
1729  //filling photon histograms
1730  nPho[cut][0][0]++;
1731  nPho[cut][0][part]++;
1732  if (type != 0) {
1733  nPho[cut][type][0]++;
1734  nPho[cut][type][part]++;
1735  }
1736 
1737  //energy variables
1738 
1741  aPho->getCorrectedEnergyError(aPho->getCandidateP4type()) / aPho->energy(),
1742  cut,
1743  type,
1744  part);
1745 
1746  if (!isHeavyIon_)
1748  float(vtxH->size()),
1749  aPho->getCorrectedEnergyError(aPho->getCandidateP4type()) / aPho->energy(),
1750  cut,
1751  type,
1752  part);
1753 
1754  fill3DHistoVector(h_phoEt_, aPho->et(), cut, type, part);
1755 
1756  //geometrical variables
1757 
1758  fill2DHistoVector(h_phoEta_, aPho->eta(), cut, type);
1759  fill2DHistoVector(h_scEta_, aPho->superCluster()->eta(), cut, type);
1760 
1761  fill3DHistoVector(h_phoPhi_, aPho->phi(), cut, type, part);
1762  fill3DHistoVector(h_scPhi_, aPho->superCluster()->phi(), cut, type, part);
1763 
1764  //shower shape variables
1765 
1766  fill3DHistoVector(h_r9_, aPho->r9(), cut, type, part);
1767  if (standAlone_)
1768  fill2DHistoVector(h_r9VsEta_, aPho->eta(), aPho->r9(), cut, type);
1769  fill2DHistoVector(p_r9VsEta_, aPho->eta(), aPho->r9(), cut, type);
1770  if (standAlone_)
1771  fill2DHistoVector(h_r9VsEt_, aPho->et(), aPho->r9(), cut, type);
1772  fill2DHistoVector(p_r9VsEt_, aPho->et(), aPho->r9(), cut, type);
1773 
1774  if (standAlone_)
1775  fill2DHistoVector(h_e1x5VsEta_, aPho->eta(), aPho->e1x5(), cut, type);
1776  fill2DHistoVector(p_e1x5VsEta_, aPho->eta(), aPho->e1x5(), cut, type);
1777  if (standAlone_)
1778  fill2DHistoVector(h_e1x5VsEt_, aPho->et(), aPho->e1x5(), cut, type);
1779  fill2DHistoVector(p_e1x5VsEt_, aPho->et(), aPho->e1x5(), cut, type);
1780 
1781  if (standAlone_)
1782  fill2DHistoVector(h_e2x5VsEta_, aPho->eta(), aPho->e2x5(), cut, type);
1783  fill2DHistoVector(p_e2x5VsEta_, aPho->eta(), aPho->e2x5(), cut, type);
1784  if (standAlone_)
1785  fill2DHistoVector(h_e2x5VsEt_, aPho->et(), aPho->e2x5(), cut, type);
1786  fill2DHistoVector(p_e2x5VsEt_, aPho->et(), aPho->e2x5(), cut, type);
1787 
1788  if (standAlone_)
1789  fill2DHistoVector(h_maxEXtalOver3x3VsEta_, aPho->eta(), aPho->maxEnergyXtal() / aPho->e3x3(), cut, type);
1790  fill2DHistoVector(p_maxEXtalOver3x3VsEta_, aPho->eta(), aPho->maxEnergyXtal() / aPho->e3x3(), cut, type);
1791  if (standAlone_)
1792  fill2DHistoVector(h_maxEXtalOver3x3VsEt_, aPho->et(), aPho->maxEnergyXtal() / aPho->e3x3(), cut, type);
1793  fill2DHistoVector(p_maxEXtalOver3x3VsEt_, aPho->et(), aPho->maxEnergyXtal() / aPho->e3x3(), cut, type);
1794 
1795  if (standAlone_)
1796  fill2DHistoVector(h_r1x5VsEta_, aPho->eta(), aPho->r1x5(), cut, type);
1797  fill2DHistoVector(p_r1x5VsEta_, aPho->eta(), aPho->r1x5(), cut, type);
1798  if (standAlone_)
1799  fill2DHistoVector(h_r1x5VsEt_, aPho->et(), aPho->r1x5(), cut, type);
1800  fill2DHistoVector(p_r1x5VsEt_, aPho->et(), aPho->r1x5(), cut, type);
1801 
1802  if (standAlone_)
1803  fill2DHistoVector(h_r2x5VsEta_, aPho->eta(), aPho->r2x5(), cut, type);
1804  fill2DHistoVector(p_r2x5VsEta_, aPho->eta(), aPho->r2x5(), cut, type);
1805  if (standAlone_)
1806  fill2DHistoVector(h_r2x5VsEt_, aPho->et(), aPho->r2x5(), cut, type);
1807  fill2DHistoVector(p_r2x5VsEt_, aPho->et(), aPho->r2x5(), cut, type);
1808 
1810  if (standAlone_)
1813 
1814  //filling histograms for photons containing a bad ECAL channel
1815  bool atLeastOneDeadChannel = false;
1816  for (reco::CaloCluster_iterator bcIt = aPho->superCluster()->clustersBegin();
1817  bcIt != aPho->superCluster()->clustersEnd();
1818  ++bcIt) { //loop over basic clusters in SC
1819  for (vector<pair<DetId, float> >::const_iterator rhIt = (*bcIt)->hitsAndFractions().begin();
1820  rhIt != (*bcIt)->hitsAndFractions().end();
1821  ++rhIt) { //loop over rec hits in basic cluster
1822 
1823  for (EcalRecHitCollection::const_iterator it = ecalRecHitCollection.begin();
1824  it != ecalRecHitCollection.end();
1825  ++it) { //loop over all rec hits to find the right ones
1826  if (rhIt->first == (*it).id()) { //found the matching rechit
1827  if ((*it).recoFlag() == 9) { //has a bad channel
1828  atLeastOneDeadChannel = true;
1829  break;
1830  }
1831  }
1832  }
1833  }
1834  }
1835  if (atLeastOneDeadChannel) {
1839  }
1840 
1841  // filling conversion-related histograms
1842  if (aPho->hasConversionTracks()) {
1843  nConv[cut][0][0]++;
1844  nConv[cut][0][part]++;
1845  nConv[cut][type][0]++;
1846  nConv[cut][type][part]++;
1847  }
1848 
1849  //loop over conversions (don't forget, we're still inside the photon loop,
1850  // i.e. these are all the conversions for this ONE photon, not for all the photons in the event)
1852  for (unsigned int iConv = 0; iConv < conversions.size(); iConv++) {
1853  reco::ConversionRef aConv = conversions[iConv];
1854 
1855  if (aConv->nTracks() < 2)
1856  continue;
1857 
1858  //fill histogram for denominator of vertex reconstruction efficiency plot
1859  if (cut == 0)
1860  h_phoEta_Vertex_->Fill(aConv->refittedPairMomentum().eta());
1861 
1862  if (!(aConv->conversionVertex().isValid()))
1863  continue;
1864 
1865  float chi2Prob = ChiSquaredProbability(aConv->conversionVertex().chi2(), aConv->conversionVertex().ndof());
1866 
1867  if (chi2Prob < 0.0005)
1868  continue;
1869 
1870  fill2DHistoVector(h_vertexChi2Prob_, chi2Prob, cut, type);
1871 
1875 
1876  if (cut == 0 && isLoosePhoton) {
1877  h_convEta_Loose_->Fill(aPho->eta());
1878  h_convEt_Loose_->Fill(aPho->et());
1879  }
1880  if (cut == 0 && isTightPhoton) {
1881  h_convEta_Tight_->Fill(aPho->eta());
1882  h_convEt_Tight_->Fill(aPho->et());
1883  }
1884 
1885  fill2DHistoVector(h_phoConvEta_, aConv->refittedPairMomentum().eta(), cut, type);
1886  fill3DHistoVector(h_phoConvPhi_, aConv->refittedPairMomentum().phi(), cut, type, part);
1887 
1888  //we use the photon position because we'll be dividing it by a photon histogram (not a conversion histogram)
1891 
1892  //vertex histograms
1893  double convR = sqrt(aConv->conversionVertex().position().perp2());
1894  double scalar = aConv->conversionVertex().position().x() * aConv->refittedPairMomentum().x() +
1895  aConv->conversionVertex().position().y() * aConv->refittedPairMomentum().y();
1896  if (scalar < 0)
1897  convR = -convR;
1898 
1900  aConv->conversionVertex().position().z(),
1901  convR,
1902  cut,
1903  type); //trying to "see" R-Z view of tracker
1904  fill2DHistoVector(h_convVtxZ_, aConv->conversionVertex().position().z(), cut, type);
1905 
1906  if (fabs(aPho->eta()) > 1.5) { //trying to "see" tracker endcaps
1907  fill2DHistoVector(h_convVtxZEndcap_, aConv->conversionVertex().position().z(), cut, type);
1908  } else if (fabs(aPho->eta()) < 1) { //trying to "see" tracker barrel
1909  fill2DHistoVector(h_convVtxR_, convR, cut, type);
1911  aConv->conversionVertex().position().x(),
1912  aConv->conversionVertex().position().y(),
1913  cut,
1914  type);
1915  }
1916 
1917  const std::vector<edm::RefToBase<reco::Track> > tracks = aConv->tracks();
1918 
1919  for (unsigned int i = 0; i < tracks.size(); i++) {
1920  fill2DHistoVector(h_tkChi2_, tracks[i]->normalizedChi2(), cut, type);
1921  fill2DHistoVector(p_tkChi2VsEta_, aPho->eta(), tracks[i]->normalizedChi2(), cut, type);
1922  fill2DHistoVector(p_dCotTracksVsEta_, aPho->eta(), aConv->pairCotThetaSeparation(), cut, type);
1923  fill2DHistoVector(p_nHitsVsEta_, aPho->eta(), float(tracks[i]->numberOfValidHits()), cut, type);
1924  }
1925 
1926  //calculating delta eta and delta phi of the two tracks
1927 
1928  float DPhiTracksAtVtx = -99;
1929  float dPhiTracksAtEcal = -99;
1930  float dEtaTracksAtEcal = -99;
1931 
1932  float phiTk1 = aConv->tracksPin()[0].phi();
1933  float phiTk2 = aConv->tracksPin()[1].phi();
1934  DPhiTracksAtVtx = phiTk1 - phiTk2;
1935  DPhiTracksAtVtx = phiNormalization(DPhiTracksAtVtx);
1936 
1937  if (!aConv->bcMatchingWithTracks().empty() && aConv->bcMatchingWithTracks()[0].isNonnull() &&
1938  aConv->bcMatchingWithTracks()[1].isNonnull()) {
1939  float recoPhi1 = aConv->ecalImpactPosition()[0].phi();
1940  float recoPhi2 = aConv->ecalImpactPosition()[1].phi();
1941  float recoEta1 = aConv->ecalImpactPosition()[0].eta();
1942  float recoEta2 = aConv->ecalImpactPosition()[1].eta();
1943 
1944  recoPhi1 = phiNormalization(recoPhi1);
1945  recoPhi2 = phiNormalization(recoPhi2);
1946 
1947  dPhiTracksAtEcal = recoPhi1 - recoPhi2;
1948  dPhiTracksAtEcal = phiNormalization(dPhiTracksAtEcal);
1949  dEtaTracksAtEcal = recoEta1 - recoEta2;
1950  }
1951 
1952  fill3DHistoVector(h_dPhiTracksAtVtx_, DPhiTracksAtVtx, cut, type, part);
1953  fill3DHistoVector(h_dPhiTracksAtEcal_, fabs(dPhiTracksAtEcal), cut, type, part);
1954  fill3DHistoVector(h_dEtaTracksAtEcal_, dEtaTracksAtEcal, cut, type, part);
1955  fill3DHistoVector(h_eOverPTracks_, aConv->EoverPrefittedTracks(), cut, type, part);
1956  fill3DHistoVector(h_pOverETracks_, 1. / aConv->EoverPrefittedTracks(), cut, type, part);
1957  fill3DHistoVector(h_dCotTracks_, aConv->pairCotThetaSeparation(), cut, type, part);
1958  } //end loop over conversions
1959  } //end loop over photons passing cuts
1960  } //end loop over transverse energy cuts
1961 
1962  //make invariant mass plots
1963 
1964  if (isIsolated && aPho->et() >= invMassEtCut_) {
1965  for (unsigned int iPho2 = iPho + 1; iPho2 < photonHandle->size(); iPho2++) {
1966  const reco::Photon* aPho2 = &photonCollection[iPho2];
1967 
1968  // for (reco::PhotonCollection::const_iterator iPho2=iPho+1; iPho2!=photonCollection.end(); iPho2++){
1969 
1970  // edm::Ref<reco::PhotonCollection> photonref2(photonHandle, photonCounter); //note: it's correct to use photonCounter and not photonCounter+1
1971  //since it has already been incremented earlier
1972 
1973  bool isTightPhoton2(false), isLoosePhoton2(false);
1974  if (photonSelection(aPho2))
1975  isLoosePhoton2 = true;
1976 
1977  // Old if ( !isHeavyIon_ ) {
1978  // isTightPhoton2 = (tightPhotonID)[aPho2];
1979  // isLoosePhoton2 = (loosePhotonID)[aPho2];
1980  // }
1981 
1982  bool isIsolated2 = false;
1983  if (isolationStrength_ == 0)
1984  isIsolated2 = isLoosePhoton2;
1985  if (isolationStrength_ == 1)
1986  isIsolated2 = isTightPhoton2;
1987  if (isolationStrength_ == 2)
1988  isIsolated2 = photonSelectionSlimmed(aPho2);
1989 
1990  reco::ConversionRefVector conversions = aPho->conversions();
1991  reco::ConversionRefVector conversions2 = aPho2->conversions();
1992 
1993  if (isIsolated2 && aPho2->et() >= invMassEtCut_) {
1994  math::XYZTLorentzVector p12 = aPho->p4() + aPho2->p4();
1995  float gamgamMass2 = p12.Dot(p12);
1996 
1997  h_invMassAllPhotons_->Fill(sqrt(gamgamMass2));
1998  if (aPho->isEB() && aPho2->isEB()) {
1999  h_invMassPhotonsEBarrel_->Fill(sqrt(gamgamMass2));
2000  } else if (aPho->isEE() && aPho2->isEE()) {
2001  h_invMassPhotonsEEndcap_->Fill(sqrt(gamgamMass2));
2002  } else {
2003  h_invMassPhotonsEEndcapEBarrel_->Fill(sqrt(gamgamMass2));
2004  }
2005 
2006  if (!conversions.empty() && conversions[0]->nTracks() >= 2) {
2007  if (!conversions2.empty() && conversions2[0]->nTracks() >= 2)
2008  h_invMassTwoWithTracks_->Fill(sqrt(gamgamMass2));
2009  else
2010  h_invMassOneWithTracks_->Fill(sqrt(gamgamMass2));
2011  } else if (!conversions2.empty() && conversions2[0]->nTracks() >= 2)
2012  h_invMassOneWithTracks_->Fill(sqrt(gamgamMass2));
2013  else
2014  h_invMassZeroWithTracks_->Fill(sqrt(gamgamMass2));
2015  }
2016  }
2017  }
2018  }
2019 
2020  //filling number of photons/conversions per event histograms
2021  for (int cut = 0; cut != numberOfSteps_; ++cut) {
2022  for (uint type = 0; type != types_.size(); ++type) {
2023  for (uint part = 0; part != parts_.size(); ++part) {
2024  h_nPho_[cut][type][part]->Fill(float(nPho[cut][type][part]));
2025  h_nConv_[cut][type][part]->Fill(float(nConv[cut][type][part]));
2026  }
2027  }
2028  }
2029 } //End of Analyze method
bool photonSelection(const reco::Photon *p)
std::vector< std::vector< MonitorElement * > > h_sigmaIetaIetaVsEta_
MonitorElement * h_invMassOneWithTracks_
std::vector< std::vector< std::vector< MonitorElement * > > > h_dEtaTracksAtEcal_
std::vector< std::vector< std::vector< MonitorElement * > > > h_phoEt_
edm::EDGetTokenT< reco::VertexCollection > offline_pvToken_
MonitorElement * h_phoEt_preHLT_
std::vector< std::vector< MonitorElement * > > h_phoEta_BadChannels_
std::vector< std::vector< MonitorElement * > > p_maxEXtalOver3x3VsEta_
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:238
std::vector< std::vector< MonitorElement * > > p_trackPtSumSolidVsEta_
std::vector< std::vector< MonitorElement * > > h_nTrackIsolSolid_
std::vector< std::vector< MonitorElement * > > p_hOverEVsEta_
bool isEE() const
Definition: Photon.h:122
The single EDProduct to be saved for each event (AOD case)
Definition: TriggerEvent.h:25
std::vector< std::vector< MonitorElement * > > p_nTrackIsolSolidVsEt_
std::vector< std::vector< MonitorElement * > > p_r9VsEta_
float chargedHadronIso() const
Accessors for Particle Flow Isolation variables.
Definition: Photon.h:542
edm::EDGetTokenT< edm::ValueMap< bool > > PhotonIDLoose_token_
float neutralHadronIso() const
Definition: Photon.h:546
std::vector< std::vector< MonitorElement * > > p_sigmaIetaIetaVsEta_
double deltaRMax
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:539
std::vector< std::vector< MonitorElement * > > h_e1x5VsEt_
std::vector< std::vector< std::vector< MonitorElement * > > > h_phoE_
MonitorElement * h_phoEta_Vertex_
std::vector< std::vector< MonitorElement * > > p_e2x5VsEta_
std::vector< std::vector< MonitorElement * > > p_e1x5VsEta_
std::vector< std::vector< MonitorElement * > > h_convVtxRvsZ_
std::vector< std::vector< MonitorElement * > > p_r2x5VsEt_
float hcalTowerSumEtConeDR04(int depth=0) const
Definition: Photon.h:472
std::vector< std::string > parts_
MonitorElement * h_convEta_Loose_
MonitorElement * h_nRecoVtx_
float trkSumPtSolidConeDR04() const
Definition: Photon.h:492
std::vector< std::vector< MonitorElement * > > h_nHadIsoBarrel_
std::vector< std::vector< MonitorElement * > > h_phoEta_
std::vector< EcalRecHit >::const_iterator const_iterator
float e1x5() const
Shower shape variables.
Definition: Photon.h:264
std::vector< std::vector< MonitorElement * > > h_chHadIsoEndcap_
std::vector< std::vector< MonitorElement * > > h_hcalSumEBarrel_
std::vector< std::vector< std::vector< MonitorElement * > > > h_phoConvPhiForEfficiency_
std::vector< std::vector< MonitorElement * > > p_r1x5VsEt_
float ecalRecHitSumEtConeDR04() const
Definition: Photon.h:454
std::vector< std::vector< MonitorElement * > > h_nTrackIsolHollow_
MonitorElement * h_phoEta_preHLT_
auto const & tracks
cannot be loose
edm::EDGetTokenT< edm::ValueMap< bool > > PhotonIDTight_token_
std::vector< std::vector< MonitorElement * > > h_convVtxZ_
std::vector< std::vector< MonitorElement * > > h_ecalSumVsEta_
std::vector< std::vector< std::vector< MonitorElement * > > > h_dCotTracks_
std::vector< std::vector< MonitorElement * > > h_chHadIsoBarrel_
std::vector< std::vector< std::vector< MonitorElement * > > > h_hOverE_
MonitorElement * h_convEt_Loose_
std::vector< std::vector< std::vector< MonitorElement * > > > h_phoSigmaEoverE_
std::vector< std::vector< MonitorElement * > > h_trackPtSumSolidVsEta_
Log< level::Error, false > LogError
std::vector< std::vector< std::vector< MonitorElement * > > > h_pOverETracks_
void fill3DHistoVector(std::vector< std::vector< std::vector< MonitorElement * > > > &histoVector, double x, int cut, int type, int part)
std::vector< std::vector< std::vector< MonitorElement * > > > h_phoConvR9_
bool empty() const
Is the RefVector empty.
Definition: RefVector.h:99
std::vector< std::vector< MonitorElement * > > h_r9VsEta_
std::vector< std::vector< MonitorElement * > > h_hcalSumEEndcap_
tuple numberOfValidHits
std::vector< std::vector< MonitorElement * > > h_vertexChi2Prob_
MonitorElement * h_phoEt_postHLT_
float photonIso() const
Definition: Photon.h:547
std::vector< std::vector< MonitorElement * > > h_convVtxZEndcap_
std::vector< std::vector< MonitorElement * > > h_nTrackIsolHollowVsEta_
MonitorElement * h_convEta_Tight_
std::vector< std::vector< MonitorElement * > > h_e2x5VsEta_
std::vector< std::vector< MonitorElement * > > h_ecalSum_
std::vector< std::vector< MonitorElement * > > p_dCotTracksVsEta_
std::vector< std::vector< std::vector< MonitorElement * > > > p_hcalSumVsEt_
void Fill(long long x)
std::vector< std::vector< MonitorElement * > > h_scEta_
std::vector< std::vector< MonitorElement * > > h_r1x5VsEt_
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
MonitorElement * h_invMassZeroWithTracks_
char const * label
std::vector< std::vector< std::vector< MonitorElement * > > > h_phoConvE_
void fill2DHistoVector(std::vector< std::vector< MonitorElement * > > &histoVector, double x, int cut, int type)
std::vector< std::vector< MonitorElement * > > h_convVtxR_
std::vector< std::vector< MonitorElement * > > h_hcalSumVsEta_
std::vector< std::vector< MonitorElement * > > h_maxEXtalOver3x3VsEta_
std::string fName_
std::vector< std::vector< MonitorElement * > > h_phoConvEta_
std::vector< std::vector< std::vector< MonitorElement * > > > h_eOverPTracks_
std::vector< std::vector< MonitorElement * > > h_maxEXtalOver3x3VsEt_
MonitorElement * h_phoEt_Tight_
std::vector< std::vector< MonitorElement * > > h_hcalSum_
MonitorElement * h_invMassPhotonsEBarrel_
std::vector< std::vector< MonitorElement * > > p_hcalSumVsEta_
std::vector< std::vector< MonitorElement * > > h_r1x5VsEta_
reco::SuperClusterRef superCluster() const override
Ref to SuperCluster.
std::vector< std::vector< std::vector< MonitorElement * > > > h_phoConvEt_
std::vector< std::vector< MonitorElement * > > p_nHitsVsEta_
reco::ConversionRefVector conversions() const
vector of references to Conversion&#39;s
Definition: Photon.h:61
unsigned int prescaleFactor_
std::vector< std::string > types_
T sqrt(T t)
Definition: SSEVec.h:19
std::vector< std::vector< std::vector< MonitorElement * > > > h_h1OverE_
std::vector< std::vector< MonitorElement * > > p_r1x5VsEta_
float sigmaIetaIeta() const
Definition: Photon.h:270
std::vector< std::vector< MonitorElement * > > p_hOverEVsEt_
std::vector< std::vector< std::vector< MonitorElement * > > > h_dPhiTracksAtVtx_
edm::EDGetTokenT< edm::SortedCollection< EcalRecHit, edm::StrictWeakOrdering< EcalRecHit > > > barrelRecHit_token_
std::vector< std::vector< MonitorElement * > > h_phoIsoEndcap_
edm::EDGetTokenT< edm::SortedCollection< EcalRecHit, edm::StrictWeakOrdering< EcalRecHit > > > endcapRecHit_token_
std::vector< std::vector< MonitorElement * > > p_e2x5VsEt_
std::vector< std::vector< MonitorElement * > > p_maxEXtalOver3x3VsEt_
MonitorElement * h_invMassTwoWithTracks_
std::vector< std::vector< MonitorElement * > > h_nTrackIsolHollowVsEt_
float e2x5() const
Definition: Photon.h:265
float ChiSquaredProbability(double chiSquared, double nrDOF)
std::vector< std::vector< std::vector< MonitorElement * > > > h_phoSigmaIetaIeta_
std::vector< std::vector< MonitorElement * > > h_e2x5VsEt_
int nTrkHollowConeDR04() const
Definition: Photon.h:498
std::vector< std::vector< MonitorElement * > > h_phoPhi_BadChannels_
MonitorElement * h_invMassPhotonsEEndcapEBarrel_
std::vector< std::vector< MonitorElement * > > p_nTrackIsolSolidVsEta_
bool isValid() const
Definition: HandleBase.h:70
float hadronicOverEm(int depth=0) const
Definition: Photon.h:233
float r1x5() const
Definition: Photon.h:271
float phiNormalization(float &a)
MonitorElement * h_phoEta_Tight_
std::vector< std::vector< MonitorElement * > > h_nTrackIsolSolidVsEt_
float getCorrectedEnergyError(P4type type) const
std::vector< std::vector< std::vector< MonitorElement * > > > p_phoSigmaEoverEvsNVtx_
P4type getCandidateP4type() const
Definition: Photon.h:357
MonitorElement * h_phoEt_Loose_
constexpr auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:30
const_iterator end() const
std::vector< std::vector< std::vector< MonitorElement * > > > p_ecalSumVsEt_
std::vector< std::vector< std::vector< MonitorElement * > > > h_r9_
MonitorElement * h_invMassAllPhotons_
Log< level::Info, false > LogInfo
std::vector< std::vector< MonitorElement * > > p_nTrackIsolHollowVsEt_
bool hasConversionTracks() const
Bool flagging photons with a vector of refereces to conversions with size &gt;0.
Definition: Photon.h:67
std::vector< std::vector< MonitorElement * > > h_trackPtSumHollowVsEt_
std::vector< std::vector< MonitorElement * > > h_nTrackIsolSolidVsEta_
edm::EDGetTokenT< trigger::TriggerEvent > triggerEvent_token_
std::vector< std::vector< std::vector< MonitorElement * > > > h_scPhi_
float e3x3() const
Definition: Photon.h:266
bool photonSelectionSlimmed(const reco::Photon *p)
T const * product() const
Definition: Handle.h:70
std::vector< std::vector< MonitorElement * > > p_e1x5VsEt_
std::vector< size_type > Keys
part
Definition: HCALResponse.h:20
std::vector< Photon > PhotonCollection
collectin of Photon objects
Definition: PhotonFwd.h:9
MonitorElement * h_invMassPhotonsEEndcap_
int nTrkSolidConeDR04() const
Definition: Photon.h:496
std::vector< std::vector< MonitorElement * > > p_nTrackIsolHollowVsEta_
const LorentzVector & p4(P4type type) const
std::vector< std::vector< MonitorElement * > > h_trackPtSumSolidVsEt_
std::vector< std::vector< std::vector< MonitorElement * > > > h_h2OverE_
std::vector< std::vector< MonitorElement * > > p_r2x5VsEta_
std::vector< std::vector< MonitorElement * > > p_r9VsEt_
std::vector< std::vector< MonitorElement * > > h_phoIsoBarrel_
std::vector< std::vector< MonitorElement * > > p_trackPtSumHollowVsEta_
bool isEB() const
Definition: Photon.h:120
float trkSumPtHollowConeDR04() const
Definition: Photon.h:494
float r2x5() const
Definition: Photon.h:272
edm::EventID id() const
Definition: EventBase.h:59
std::vector< std::vector< MonitorElement * > > p_trackPtSumSolidVsEt_
std::vector< std::vector< MonitorElement * > > p_ecalSumVsEta_
tuple normalizedChi2
double et() const final
transverse energy
std::vector< std::vector< MonitorElement * > > h_tkChi2_
std::vector< std::vector< MonitorElement * > > h_trackPtSumHollowVsEta_
std::vector< std::vector< MonitorElement * > > h_phoConvEtaForEfficiency_
float r9() const
Definition: Photon.h:273
MonitorElement * h_convEt_Tight_
std::vector< std::vector< MonitorElement * > > h_hcalSumVsEt_
std::vector< std::vector< MonitorElement * > > p_trackPtSumHollowVsEt_
MonitorElement * h_phoEta_postHLT_
size_type size() const
Size of the RefVector.
Definition: RefVector.h:102
std::vector< std::vector< MonitorElement * > > h_e1x5VsEta_
MonitorElement * h_phoEta_Loose_
std::vector< std::vector< std::vector< MonitorElement * > > > h_dPhiTracksAtEcal_
std::vector< std::vector< MonitorElement * > > h_trackPtSumSolid_
std::vector< std::vector< std::vector< MonitorElement * > > > h_nConv_
std::vector< std::vector< MonitorElement * > > h_r2x5VsEt_
edm::EDGetTokenT< std::vector< reco::Photon > > photon_token_
std::vector< std::vector< MonitorElement * > > h_phoEt_BadChannels_
double phi() const final
momentum azimuthal angle
std::vector< std::vector< MonitorElement * > > h_r2x5VsEta_
std::vector< std::vector< MonitorElement * > > h_nHadIsoEndcap_
std::vector< std::vector< std::vector< MonitorElement * > > > h_phoPhi_
std::vector< std::vector< MonitorElement * > > h_convVtxYvsX_
std::vector< std::vector< MonitorElement * > > h_trackPtSumHollow_
std::vector< std::vector< std::vector< MonitorElement * > > > h_nPho_
std::vector< std::vector< MonitorElement * > > h_r9VsEt_
std::vector< std::vector< std::vector< MonitorElement * > > > h_phoConvPhi_
std::vector< std::vector< MonitorElement * > > h_ecalSumVsEt_
const_iterator begin() const
std::vector< std::vector< MonitorElement * > > h_ecalSumEEndcap_
std::vector< std::vector< MonitorElement * > > h_ecalSumEBarrel_
double scalar(const CLHEP::HepGenMatrix &m)
Return the matrix as a scalar. Raise an assertion if the matris is not .
Definition: matutil.cc:166
double energy() const final
energy
std::vector< std::vector< MonitorElement * > > p_tkChi2VsEta_
double eta() const final
momentum pseudorapidity
float maxEnergyXtal() const
Definition: Photon.h:268
void PhotonAnalyzer::book2DHistoVector ( DQMStore::IBooker ,
std::vector< std::vector< MonitorElement * > > &  toFill,
std::string  histoType,
std::string  histoName,
std::string  title,
int  xbin,
double  xmin,
double  xmax,
int  ybin = 1,
double  ymin = 1,
double  ymax = 2 
)
private

Definition at line 1253 of file PhotonAnalyzer.cc.

References dqm::implementation::IBooker::book1D(), dqm::implementation::IBooker::book2D(), dqm::implementation::IBooker::bookProfile(), gather_cfg::cout, GOODCOLL_filter_cfg::cut, class-composition::kind, dqm::implementation::NavigatorBase::pwd(), dqm::implementation::NavigatorBase::setCurrentFolder(), runGCPTkAlMap::title, types_(), parallelization::uint(), hlt_dqm_clientPB-live_cfg::xmax, hlt_dqm_clientPB-live_cfg::xmin, SiStrip_OfflineMonitoring_cff::ymax, and SiStrip_OfflineMonitoring_cff::ymin.

1263  {
1264  int histo_index = 0;
1265 
1266  vector<MonitorElement*> temp1DVector;
1267 
1268  //determining which folder we're in
1269  bool conversionPlot = false;
1270  if (iBooker.pwd().find("Conversions") != string::npos)
1271  conversionPlot = true;
1272  bool TwoDPlot = false;
1273  if (histoName.find("2D") != string::npos)
1274  TwoDPlot = true;
1275 
1276  if (conversionPlot) {
1278  histo_index = histo_index_conversions_;
1279  } else {
1281  histo_index = histo_index_photons_;
1282  }
1283 
1284  stringstream histo_number_stream;
1285  histo_number_stream << "h_";
1286  if (histo_index < 10)
1287  histo_number_stream << "0";
1288  histo_number_stream << histo_index << "_";
1289 
1290  for (int cut = 0; cut != numberOfSteps_; ++cut) { //looping over Et cut values
1291  for (uint type = 0; type != types_.size(); ++type) { //looping over isolation type
1292  currentFolder_.str("");
1293  currentFolder_ << "Egamma/" + fName_ + "/" << types_[type] << "Photons/Et above " << (cut + 1) * cutStep_
1294  << " GeV";
1295  if (conversionPlot)
1296  currentFolder_ << "/Conversions";
1297 
1298  iBooker.setCurrentFolder(currentFolder_.str());
1299 
1300  string kind;
1301  if (conversionPlot)
1302  kind = " Conversions: ";
1303  else
1304  kind = " Photons: ";
1305 
1306  if (histoType == "1D")
1307  temp1DVector.push_back(
1308  iBooker.book1D(histo_number_stream.str() + histoName, types_[type] + kind + title, xbin, xmin, xmax));
1309  else if (histoType == "2D") {
1310  if ((TwoDPlot && type == 0) || !TwoDPlot) { //only book the 2D plots in the "AllPhotons" folder
1311  temp1DVector.push_back(iBooker.book2D(
1312  histo_number_stream.str() + histoName, types_[type] + kind + title, xbin, xmin, xmax, ybin, ymin, ymax));
1313  }
1314  } else if (histoType == "Profile")
1315  temp1DVector.push_back(iBooker.bookProfile(
1316  histo_number_stream.str() + histoName, types_[type] + kind + title, xbin, xmin, xmax, ybin, ymin, ymax, ""));
1317  else
1318  cout << "bad histoType\n";
1319  }
1320 
1321  temp2DVector.push_back(temp1DVector);
1322  temp1DVector.clear();
1323  }
1324 }
int histo_index_conversions_
std::stringstream currentFolder_
std::string fName_
std::vector< std::string > types_
tuple cout
Definition: gather_cfg.py:144
void PhotonAnalyzer::book3DHistoVector ( DQMStore::IBooker ,
std::vector< std::vector< std::vector< MonitorElement * > > > &  toFill,
std::string  histoType,
std::string  histoName,
std::string  title,
int  xbin,
double  xmin,
double  xmax,
int  ybin = 1,
double  ymin = 1,
double  ymax = 2 
)
private

Definition at line 1326 of file PhotonAnalyzer.cc.

References dqm::implementation::IBooker::book1D(), dqm::implementation::IBooker::book2D(), dqm::implementation::IBooker::bookProfile(), gather_cfg::cout, GOODCOLL_filter_cfg::cut, class-composition::kind, dqm::implementation::NavigatorBase::pwd(), dqm::implementation::NavigatorBase::setCurrentFolder(), runGCPTkAlMap::title, types_(), parallelization::uint(), hlt_dqm_clientPB-live_cfg::xmax, hlt_dqm_clientPB-live_cfg::xmin, SiStrip_OfflineMonitoring_cff::ymax, and SiStrip_OfflineMonitoring_cff::ymin.

1336  {
1337  int histo_index = 0;
1338 
1339  vector<MonitorElement*> temp1DVector;
1340  vector<vector<MonitorElement*> > temp2DVector;
1341 
1342  //determining which folder we're in
1343  bool conversionPlot = false;
1344  if (iBooker.pwd().find("Conversions") != string::npos)
1345  conversionPlot = true;
1346 
1347  if (conversionPlot) {
1349  histo_index = histo_index_conversions_;
1350  } else {
1352  histo_index = histo_index_photons_;
1353  }
1354 
1355  stringstream histo_number_stream;
1356  histo_number_stream << "h_";
1357  if (histo_index < 10)
1358  histo_number_stream << "0";
1359  histo_number_stream << histo_index << "_";
1360 
1361  for (int cut = 0; cut != numberOfSteps_; ++cut) { //looping over Et cut values
1362  for (uint type = 0; type != types_.size(); ++type) { //looping over isolation type
1363  for (uint part = 0; part != parts_.size(); ++part) { //looping over different parts of the ecal
1364  currentFolder_.str("");
1365  currentFolder_ << "Egamma/" + fName_ + "/" << types_[type] << "Photons/Et above " << (cut + 1) * cutStep_
1366  << " GeV";
1367  if (conversionPlot)
1368  currentFolder_ << "/Conversions";
1369  iBooker.setCurrentFolder(currentFolder_.str());
1370 
1371  string kind;
1372  if (conversionPlot)
1373  kind = " Conversions: ";
1374  else
1375  kind = " Photons: ";
1376 
1377  if (histoType == "1D")
1378  temp1DVector.push_back(iBooker.book1D(histo_number_stream.str() + histoName + parts_[part],
1379  types_[type] + kind + parts_[part] + ": " + title,
1380  xbin,
1381  xmin,
1382  xmax));
1383  else if (histoType == "2D")
1384  temp1DVector.push_back(iBooker.book2D(histo_number_stream.str() + histoName + parts_[part],
1385  types_[type] + kind + parts_[part] + ": " + title,
1386  xbin,
1387  xmin,
1388  xmax,
1389  ybin,
1390  ymin,
1391  ymax));
1392  else if (histoType == "Profile")
1393  temp1DVector.push_back(iBooker.bookProfile(histo_number_stream.str() + histoName + parts_[part],
1394  types_[type] + kind + parts_[part] + ": " + title,
1395  xbin,
1396  xmin,
1397  xmax,
1398  ybin,
1399  ymin,
1400  ymax,
1401  ""));
1402  else
1403  cout << "bad histoType\n";
1404  }
1405  temp2DVector.push_back(temp1DVector);
1406  temp1DVector.clear();
1407  }
1408  temp3DVector.push_back(temp2DVector);
1409  temp2DVector.clear();
1410  }
1411 }
std::vector< std::string > parts_
int histo_index_conversions_
std::stringstream currentFolder_
std::string fName_
std::vector< std::string > types_
part
Definition: HCALResponse.h:20
tuple cout
Definition: gather_cfg.py:144
PhotonAnalyzer::MonitorElement * PhotonAnalyzer::bookHisto ( DQMStore::IBooker ,
std::string  histoName,
std::string  title,
int  bin,
double  min,
double  max 
)
private

Definition at line 1230 of file PhotonAnalyzer.cc.

References newFWLiteAna::bin, dqm::implementation::IBooker::book1D(), SiStripPI::max, min(), dqm::implementation::NavigatorBase::pwd(), and runGCPTkAlMap::title.

1231  {
1232  int histo_index = 0;
1233  stringstream histo_number_stream;
1234 
1235  //determining which folder we're in
1236  if (iBooker.pwd().find("InvMass") != string::npos) {
1238  histo_index = histo_index_invMass_;
1239  }
1240  if (iBooker.pwd().find("Efficiencies") != string::npos) {
1242  histo_index = histo_index_efficiency_;
1243  }
1244 
1245  histo_number_stream << "h_";
1246  if (histo_index < 10)
1247  histo_number_stream << "0";
1248  histo_number_stream << histo_index;
1249 
1250  return iBooker.book1D(histo_number_stream.str() + "_" + histoName, title, bin, min, max);
1251 }
T min(T a, T b)
Definition: MathUtil.h:58
void PhotonAnalyzer::bookHistograms ( DQMStore::IBooker iBooker,
edm::Run const &  ,
edm::EventSetup const &   
)
overridevirtual

Implements DQMEDAnalyzer.

Definition at line 142 of file PhotonAnalyzer.cc.

144  {
146 
147  bookHistogramsEfficiency(iBooker);
148  bookHistogramsInvMass(iBooker);
149  bookHistogramsPhotons(iBooker);
150  bookHistogramsConversions(iBooker);
151 
153 }
void bookHistogramsPhotons(DQMStore::IBooker &)
void bookHistogramsConversions(DQMStore::IBooker &)
void fillHistogramsForHistogramCounts(DQMStore::IBooker &)
void bookHistogramsInvMass(DQMStore::IBooker &)
void bookHistogramsForHistogramCounts(DQMStore::IBooker &)
void bookHistogramsEfficiency(DQMStore::IBooker &)
void PhotonAnalyzer::bookHistogramsConversions ( DQMStore::IBooker iBooker)
private

Definition at line 1095 of file PhotonAnalyzer.cc.

References etaMax_(), etaMin_(), and dqm::implementation::NavigatorBase::setCurrentFolder().

1095  {
1096  // Set folder
1097  iBooker.setCurrentFolder("Egamma/" + fName_ + "/AllPhotons/Et Above 0 GeV/Conversions");
1098 
1099  //ENERGY VARIABLES
1100  book3DHistoVector(iBooker, h_phoConvE_, "1D", "phoConvE", "E;E (GeV)", eBin_, eMin_, eMax_);
1101  book3DHistoVector(iBooker, h_phoConvEt_, "1D", "phoConvEt", "E_{T};E_{T} (GeV)", etBin_, etMin_, etMax_);
1102 
1103  //GEOMETRICAL VARIABLES
1104  book2DHistoVector(iBooker, h_phoConvEta_, "1D", "phoConvEta", "#eta;#eta", etaBin_, etaMin_, etaMax_);
1105  book3DHistoVector(iBooker, h_phoConvPhi_, "1D", "phoConvPhi", "#phi;#phi", phiBin_, phiMin_, phiMax_);
1106 
1107  //NUMBER OF PHOTONS
1108  book3DHistoVector(iBooker,
1109  h_nConv_,
1110  "1D",
1111  "nConv",
1112  "Number Of Conversions per Event ;# conversions",
1113  numberBin_,
1114  numberMin_,
1115  numberMax_);
1116 
1117  //SHOWER SHAPE VARIABLES
1118  book3DHistoVector(iBooker, h_phoConvR9_, "1D", "phoConvR9", "R9;R9", r9Bin_, r9Min_, r9Max_);
1119 
1120  //TRACK RELATED VARIABLES
1121  book3DHistoVector(iBooker, h_eOverPTracks_, "1D", "eOverPTracks", "E/P;E/P", eOverPBin_, eOverPMin_, eOverPMax_);
1122  book3DHistoVector(iBooker, h_pOverETracks_, "1D", "pOverETracks", "P/E;P/E", eOverPBin_, eOverPMin_, eOverPMax_);
1123  book3DHistoVector(iBooker,
1125  "1D",
1126  "dPhiTracksAtVtx",
1127  "#Delta#phi of Tracks at Vertex;#Delta#phi",
1130  dPhiTracksMax_);
1131  book3DHistoVector(iBooker,
1133  "1D",
1134  "dPhiTracksAtEcal",
1135  "Abs(#Delta#phi) of Tracks at Ecal;#Delta#phi",
1137  0.,
1138  dPhiTracksMax_);
1139  book3DHistoVector(iBooker,
1141  "1D",
1142  "dEtaTracksAtEcal",
1143  "#Delta#eta of Tracks at Ecal;#Delta#eta",
1146  dEtaTracksMax_);
1147  book3DHistoVector(iBooker,
1148  h_dCotTracks_,
1149  "1D",
1150  "dCotTracks",
1151  "#Deltacot(#theta) of Tracks;#Deltacot(#theta)",
1154  dEtaTracksMax_);
1155  book2DHistoVector(iBooker,
1157  "Profile",
1158  "dCotTracksVsEta",
1159  "Avg #Deltacot(#theta) of Tracks vs #eta;#eta;#Deltacot(#theta)",
1160  etaBin_,
1161  etaMin_,
1162  etaMax_,
1165  dEtaTracksMax_);
1166  book2DHistoVector(iBooker,
1167  p_nHitsVsEta_,
1168  "Profile",
1169  "nHitsVsEta",
1170  "Avg Number of Hits per Track vs #eta;#eta;# hits",
1171  etaBin_,
1172  etaMin_,
1173  etaMax_,
1174  etaBin_,
1175  0,
1176  16);
1178  iBooker, h_tkChi2_, "1D", "tkChi2", "#chi^{2} of Track Fitting;#chi^{2}", chi2Bin_, chi2Min_, chi2Max_);
1179  book2DHistoVector(iBooker,
1181  "Profile",
1182  "tkChi2VsEta",
1183  "Avg #chi^{2} of Track Fitting vs #eta;#eta;#chi^{2}",
1184  etaBin_,
1185  etaMin_,
1186  etaMax_,
1187  chi2Bin_,
1188  chi2Min_,
1189  chi2Max_);
1190 
1191  //VERTEX RELATED VARIABLES
1192  book2DHistoVector(iBooker,
1194  "2D",
1195  "convVtxRvsZ",
1196  "Vertex Position;Z (cm);R (cm)",
1197  500,
1198  zMin_,
1199  zMax_,
1200  rBin_,
1201  rMin_,
1202  rMax_);
1204  iBooker, h_convVtxZEndcap_, "1D", "convVtxZEndcap", "Vertex Position: #eta > 1.5;Z (cm)", zBin_, zMin_, zMax_);
1205  book2DHistoVector(iBooker, h_convVtxZ_, "1D", "convVtxZ", "Vertex Position;Z (cm)", zBin_, zMin_, zMax_);
1206  book2DHistoVector(iBooker, h_convVtxR_, "1D", "convVtxR", "Vertex Position: #eta < 1;R (cm)", rBin_, rMin_, rMax_);
1207  book2DHistoVector(iBooker,
1209  "2D",
1210  "convVtxYvsX",
1211  "Vertex Position: #eta < 1;X (cm);Y (cm)",
1212  xBin_,
1213  xMin_,
1214  xMax_,
1215  yBin_,
1216  yMin_,
1217  yMax_);
1218  book2DHistoVector(iBooker,
1220  "1D",
1221  "vertexChi2Prob",
1222  "#chi^{2} Probability of Vertex Fitting;#chi^{2}",
1223  100,
1224  0.,
1225  1.0);
1226 }
std::vector< std::vector< std::vector< MonitorElement * > > > h_dEtaTracksAtEcal_
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
std::vector< std::vector< MonitorElement * > > h_convVtxRvsZ_
std::vector< std::vector< MonitorElement * > > h_convVtxZ_
std::vector< std::vector< std::vector< MonitorElement * > > > h_dCotTracks_
std::vector< std::vector< std::vector< MonitorElement * > > > h_pOverETracks_
std::vector< std::vector< std::vector< MonitorElement * > > > h_phoConvR9_
std::vector< std::vector< MonitorElement * > > h_vertexChi2Prob_
std::vector< std::vector< MonitorElement * > > h_convVtxZEndcap_
std::vector< std::vector< MonitorElement * > > p_dCotTracksVsEta_
std::vector< std::vector< std::vector< MonitorElement * > > > h_phoConvE_
std::vector< std::vector< MonitorElement * > > h_convVtxR_
std::string fName_
std::vector< std::vector< MonitorElement * > > h_phoConvEta_
std::vector< std::vector< std::vector< MonitorElement * > > > h_eOverPTracks_
std::vector< std::vector< std::vector< MonitorElement * > > > h_phoConvEt_
std::vector< std::vector< MonitorElement * > > p_nHitsVsEta_
std::vector< std::vector< std::vector< MonitorElement * > > > h_dPhiTracksAtVtx_
void book3DHistoVector(DQMStore::IBooker &, std::vector< std::vector< std::vector< MonitorElement * > > > &toFill, std::string histoType, std::string histoName, std::string title, int xbin, double xmin, double xmax, int ybin=1, double ymin=1, double ymax=2)
std::vector< std::vector< MonitorElement * > > h_tkChi2_
std::vector< std::vector< std::vector< MonitorElement * > > > h_dPhiTracksAtEcal_
void book2DHistoVector(DQMStore::IBooker &, std::vector< std::vector< MonitorElement * > > &toFill, std::string histoType, std::string histoName, std::string title, int xbin, double xmin, double xmax, int ybin=1, double ymin=1, double ymax=2)
std::vector< std::vector< std::vector< MonitorElement * > > > h_nConv_
std::vector< std::vector< MonitorElement * > > h_convVtxYvsX_
std::vector< std::vector< std::vector< MonitorElement * > > > h_phoConvPhi_
std::vector< std::vector< MonitorElement * > > p_tkChi2VsEta_
void PhotonAnalyzer::bookHistogramsEfficiency ( DQMStore::IBooker iBooker)
private

Definition at line 172 of file PhotonAnalyzer.cc.

References dqm::implementation::IBooker::book1D(), GOODCOLL_filter_cfg::cut, etaMax_(), etaMin_(), dqm::implementation::NavigatorBase::setCurrentFolder(), types_(), and parallelization::uint().

172  {
173  // Set folder
174  iBooker.setCurrentFolder("Egamma/" + fName_ + "/Efficiencies");
175 
176  // Don't number these histograms with the "bookHisto" method, since they'll be erased in the offline client
177  h_phoEta_Loose_ = iBooker.book1D("phoEtaLoose", "Loose Photon #eta", etaBin_, etaMin_, etaMax_);
178  h_phoEta_Tight_ = iBooker.book1D("phoEtaTight", "Tight Photon #eta", etaBin_, etaMin_, etaMax_);
179 
180  h_phoEt_Loose_ = iBooker.book1D("phoEtLoose", "Loose Photon E_{T}", etBin_, etMin_, etMax_);
181  h_phoEt_Tight_ = iBooker.book1D("phoEtTight", "Tight Photon E_{T}", etBin_, etMin_, etMax_);
182 
183  h_phoEta_preHLT_ = iBooker.book1D("phoEtaPreHLT", "Photon #eta: before HLT", etaBin_, etaMin_, etaMax_);
184  h_phoEta_postHLT_ = iBooker.book1D("phoEtaPostHLT", "Photon #eta: after HLT", etaBin_, etaMin_, etaMax_);
185  h_phoEt_preHLT_ = iBooker.book1D("phoEtPreHLT", "Photon E_{T}: before HLT", etBin_, etMin_, etMax_);
186  h_phoEt_postHLT_ = iBooker.book1D("phoEtPostHLT", "Photon E_{T}: after HLT", etBin_, etMin_, etMax_);
187 
188  h_convEta_Loose_ = iBooker.book1D("convEtaLoose", "Converted Loose Photon #eta", etaBin_, etaMin_, etaMax_);
189  h_convEta_Tight_ = iBooker.book1D("convEtaTight", "Converted Tight Photon #eta", etaBin_, etaMin_, etaMax_);
190  h_convEt_Loose_ = iBooker.book1D("convEtLoose", "Converted Loose Photon E_{T}", etBin_, etMin_, etMax_);
191  h_convEt_Tight_ = iBooker.book1D("convEtTight", "Converted Tight Photon E_{T}", etBin_, etMin_, etMax_);
192 
194  iBooker.book1D("phoEtaVertex", "Converted Photons before valid vertex cut: #eta", etaBin_, etaMin_, etaMax_);
195 
196  // Some temporary vectors
197  vector<MonitorElement*> temp1DVectorEta;
198  vector<MonitorElement*> temp1DVectorPhi;
199  vector<vector<MonitorElement*> > temp2DVectorPhi;
200 
201  for (int cut = 0; cut != numberOfSteps_; ++cut) { //looping over Et cut values
202  for (uint type = 0; type != types_.size(); ++type) { //looping over isolation type
203  currentFolder_.str("");
204  currentFolder_ << "Egamma/" + fName_ + "/" << types_[type] << "Photons/Et above " << (cut + 1) * cutStep_
205  << " GeV/Conversions";
206  iBooker.setCurrentFolder(currentFolder_.str());
207 
208  temp1DVectorEta.push_back(
209  iBooker.book1D("phoConvEtaForEfficiency", "Converted Photon #eta;#eta", etaBin_, etaMin_, etaMax_));
210  for (uint part = 0; part != parts_.size(); ++part) {
211  temp1DVectorPhi.push_back(iBooker.book1D(
212  "phoConvPhiForEfficiency" + parts_[part], "Converted Photon #phi;#phi", phiBin_, phiMin_, phiMax_));
213  }
214  temp2DVectorPhi.push_back(temp1DVectorPhi);
215  temp1DVectorPhi.clear();
216  }
217  h_phoConvEtaForEfficiency_.push_back(temp1DVectorEta);
218  temp1DVectorEta.clear();
219  h_phoConvPhiForEfficiency_.push_back(temp2DVectorPhi);
220  temp2DVectorPhi.clear();
221  }
222 }
MonitorElement * h_phoEt_preHLT_
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
MonitorElement * h_phoEta_Vertex_
std::vector< std::string > parts_
MonitorElement * h_convEta_Loose_
std::vector< std::vector< std::vector< MonitorElement * > > > h_phoConvPhiForEfficiency_
MonitorElement * h_phoEta_preHLT_
MonitorElement * h_convEt_Loose_
MonitorElement * h_phoEt_postHLT_
std::stringstream currentFolder_
MonitorElement * h_convEta_Tight_
std::string fName_
MonitorElement * h_phoEt_Tight_
std::vector< std::string > types_
MonitorElement * h_phoEta_Tight_
MonitorElement * h_phoEt_Loose_
part
Definition: HCALResponse.h:20
std::vector< std::vector< MonitorElement * > > h_phoConvEtaForEfficiency_
MonitorElement * h_convEt_Tight_
MonitorElement * h_phoEta_postHLT_
MonitorElement * h_phoEta_Loose_
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
void PhotonAnalyzer::bookHistogramsForHistogramCounts ( DQMStore::IBooker iBooker)
private

Definition at line 155 of file PhotonAnalyzer.cc.

References dqm::implementation::IBooker::bookInt(), and dqm::implementation::NavigatorBase::setCurrentFolder().

155  {
156  iBooker.setCurrentFolder("Egamma/" + fName_ + "/");
157  // Int values stored in MEs to keep track of how many histograms are in each folder
158  totalNumberOfHistos_efficiencyFolder = iBooker.bookInt("numberOfHistogramsInEfficiencyFolder");
159  totalNumberOfHistos_invMassFolder = iBooker.bookInt("numberOfHistogramsInInvMassFolder");
160  totalNumberOfHistos_photonsFolder = iBooker.bookInt("numberOfHistogramsInPhotonsFolder");
161  totalNumberOfHistos_conversionsFolder = iBooker.bookInt("numberOfHistogramsInConversionsFolder");
162 }
MonitorElement * totalNumberOfHistos_photonsFolder
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
MonitorElement * totalNumberOfHistos_efficiencyFolder
MonitorElement * totalNumberOfHistos_conversionsFolder
std::string fName_
MonitorElement * totalNumberOfHistos_invMassFolder
MonitorElement * bookInt(TString const &name, FUNC onbooking=NOOP())
Definition: DQMStore.h:73
void PhotonAnalyzer::bookHistogramsInvMass ( DQMStore::IBooker iBooker)
private

Definition at line 224 of file PhotonAnalyzer.cc.

References dqm::implementation::NavigatorBase::setCurrentFolder().

224  {
225  // Set folder
226  iBooker.setCurrentFolder("Egamma/" + fName_ + "/InvMass");
227 
229  "invMassAllIsolatedPhotons",
230  "Two photon invariant mass: All isolated photons;M (GeV)",
231  etBin_,
232  etMin_,
233  etMax_);
235  "invMassIsoPhotonsEBarrel",
236  "Two photon invariant mass: isolated photons in barrel; M (GeV)",
237  etBin_,
238  etMin_,
239  etMax_);
241  "invMassIsoPhotonsEEndcap",
242  "Two photon invariant mass: isolated photons in endcap; M (GeV)",
243  etBin_,
244  etMin_,
245  etMax_);
247  "invMassIsoPhotonsEEndcapEBarrel",
248  "Two photon invariant mass: isolated photons in endcap-barrel; M (GeV)",
249  etBin_,
250  etMin_,
251  etMax_);
252 
254  iBooker, "invMassZeroWithTracks", "Two photon invariant mass: Neither has tracks;M (GeV)", etBin_, etMin_, etMax_);
256  iBooker, "invMassOneWithTracks", "Two photon invariant mass: Only one has tracks;M (GeV)", etBin_, etMin_, etMax_);
258  iBooker, "invMassTwoWithTracks", "Two photon invariant mass: Both have tracks;M (GeV)", etBin_, etMin_, etMax_);
259 
260  h_nRecoVtx_ = bookHisto(iBooker, "nOfflineVtx", "# of Offline Vertices", 200, -0.5, 199.5);
261 }
MonitorElement * h_invMassOneWithTracks_
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
MonitorElement * h_nRecoVtx_
MonitorElement * bookHisto(DQMStore::IBooker &, std::string histoName, std::string title, int bin, double min, double max)
MonitorElement * h_invMassZeroWithTracks_
std::string fName_
MonitorElement * h_invMassPhotonsEBarrel_
MonitorElement * h_invMassTwoWithTracks_
MonitorElement * h_invMassPhotonsEEndcapEBarrel_
MonitorElement * h_invMassAllPhotons_
MonitorElement * h_invMassPhotonsEEndcap_
void PhotonAnalyzer::bookHistogramsPhotons ( DQMStore::IBooker iBooker)
private

Definition at line 263 of file PhotonAnalyzer.cc.

References etaMax_(), and etaMin_().

263  {
264  // Set folder
265  // Folder is set by the book2DHistoVector and book3DHistoVector methods
266 
267  //ENERGY VARIABLES
268  book3DHistoVector(iBooker, h_phoE_, "1D", "phoE", "Energy;E (GeV)", eBin_, eMin_, eMax_);
269  book3DHistoVector(iBooker, h_phoSigmaEoverE_, "1D", "phoSigmaEoverE", "#sigma_{E}/E; #sigma_{E}/E", 100, 0., 0.08);
270  book3DHistoVector(iBooker,
272  "Profile",
273  "phoSigmaEoverEvsNVtx",
274  "#sigma_{E}/E vs NVtx; N_{vtx}; #sigma_{E}/E",
275  200,
276  -0.5,
277  199.5,
278  100,
279  0.,
280  0.08);
281  book3DHistoVector(iBooker, h_phoEt_, "1D", "phoEt", "E_{T};E_{T} (GeV)", etBin_, etMin_, etMax_);
282 
283  //NUMBER OF PHOTONS
285  iBooker, h_nPho_, "1D", "nPho", "Number of Photons per Event;# #gamma", numberBin_, numberMin_, numberMax_);
286 
287  //GEOMETRICAL VARIABLES
288  //photon eta/phi
289  book2DHistoVector(iBooker, h_phoEta_, "1D", "phoEta", "#eta;#eta", etaBin_, etaMin_, etaMax_);
290  book3DHistoVector(iBooker, h_phoPhi_, "1D", "phoPhi", "#phi;#phi", phiBin_, phiMin_, phiMax_);
291 
292  //supercluster eta/phi
293  book2DHistoVector(iBooker, h_scEta_, "1D", "scEta", "SuperCluster #eta;#eta", etaBin_, etaMin_, etaMax_);
294  book3DHistoVector(iBooker, h_scPhi_, "1D", "scPhi", "SuperCluster #phi;#phi", phiBin_, phiMin_, phiMax_);
295 
296  //SHOWER SHAPE VARIABLES
297  //r9
298  book3DHistoVector(iBooker, h_r9_, "1D", "r9", "R9;R9", r9Bin_, r9Min_, r9Max_);
299  if (standAlone_) {
300  book2DHistoVector(iBooker,
301  h_r9VsEt_,
302  "2D",
303  "r9VsEt2D",
304  "R9 vs E_{T};E_{T} (GeV);R9",
306  etMin_,
307  etMax_,
309  r9Min_,
310  r9Max_);
311  }
312  book2DHistoVector(iBooker,
313  p_r9VsEt_,
314  "Profile",
315  "r9VsEt",
316  "Avg R9 vs E_{T};E_{T} (GeV);R9",
317  etBin_,
318  etMin_,
319  etMax_,
320  r9Bin_,
321  r9Min_,
322  r9Max_);
323  if (standAlone_) {
324  book2DHistoVector(iBooker,
325  h_r9VsEta_,
326  "2D",
327  "r9VsEta2D",
328  "R9 vs #eta;#eta;R9",
330  etaMin_,
331  etaMax_,
333  r9Min_,
334  r9Max_);
335  }
336  book2DHistoVector(iBooker,
337  p_r9VsEta_,
338  "Profile",
339  "r9VsEta",
340  "Avg R9 vs #eta;#eta;R9",
341  etaBin_,
342  etaMin_,
343  etaMax_,
344  r9Bin_,
345  r9Min_,
346  r9Max_);
347 
348  //sigma ieta ieta
349  book3DHistoVector(iBooker,
351  "1D",
352  "phoSigmaIetaIeta",
353  "#sigma_{i#etai#eta};#sigma_{i#etai#eta}",
356  sigmaIetaMax_);
357  if (standAlone_) {
358  book2DHistoVector(iBooker,
360  "2D",
361  "sigmaIetaIetaVsEta2D",
362  "#sigma_{i#etai#eta} vs #eta;#eta;#sigma_{i#etai#eta}",
364  etaMin_,
365  etaMax_,
368  sigmaIetaMax_);
369  }
370  book2DHistoVector(iBooker,
372  "Profile",
373  "sigmaIetaIetaVsEta",
374  "Avg #sigma_{i#etai#eta} vs #eta;#eta;#sigma_{i#etai#eta}",
375  etaBin_,
376  etaMin_,
377  etaMax_,
380  sigmaIetaMax_);
381 
382  //e1x5
383  if (standAlone_) {
384  book2DHistoVector(iBooker,
385  h_e1x5VsEt_,
386  "2D",
387  "e1x5VsEt2D",
388  "E1x5 vs E_{T};E_{T} (GeV);E1X5 (GeV)",
390  etMin_,
391  etMax_,
393  etMin_,
394  etMax_);
395  }
396  book2DHistoVector(iBooker,
397  p_e1x5VsEt_,
398  "Profile",
399  "e1x5VsEt",
400  "Avg E1x5 vs E_{T};E_{T} (GeV);E1X5 (GeV)",
401  etBin_,
402  etMin_,
403  etMax_,
404  etBin_,
405  etMin_,
406  etMax_);
407  if (standAlone_) {
408  book2DHistoVector(iBooker,
409  h_e1x5VsEta_,
410  "2D",
411  "e1x5VsEta2D",
412  "E1x5 vs #eta;#eta;E1X5 (GeV)",
414  etaMin_,
415  etaMax_,
417  etMin_,
418  etMax_);
419  }
420  book2DHistoVector(iBooker,
421  p_e1x5VsEta_,
422  "Profile",
423  "e1x5VsEta",
424  "Avg E1x5 vs #eta;#eta;E1X5 (GeV)",
425  etaBin_,
426  etaMin_,
427  etaMax_,
428  etBin_,
429  etMin_,
430  etMax_);
431 
432  //e2x5
433  if (standAlone_) {
434  book2DHistoVector(iBooker,
435  h_e2x5VsEt_,
436  "2D",
437  "e2x5VsEt2D",
438  "E2x5 vs E_{T};E_{T} (GeV);E2X5 (GeV)",
440  etMin_,
441  etMax_,
443  etMin_,
444  etMax_);
445  }
446  book2DHistoVector(iBooker,
447  p_e2x5VsEt_,
448  "Profile",
449  "e2x5VsEt",
450  "Avg E2x5 vs E_{T};E_{T} (GeV);E2X5 (GeV)",
451  etBin_,
452  etMin_,
453  etMax_,
454  etBin_,
455  etMin_,
456  etMax_);
457  if (standAlone_) {
458  book2DHistoVector(iBooker,
459  h_e2x5VsEta_,
460  "2D",
461  "e2x5VsEta2D",
462  "E2x5 vs #eta;#eta;E2X5 (GeV)",
464  etaMin_,
465  etaMax_,
467  etMin_,
468  etMax_);
469  }
470  book2DHistoVector(iBooker,
471  p_e2x5VsEta_,
472  "Profile",
473  "e2x5VsEta",
474  "Avg E2x5 vs #eta;#eta;E2X5 (GeV)",
475  etaBin_,
476  etaMin_,
477  etaMax_,
478  etBin_,
479  etMin_,
480  etMax_);
481 
482  //r1x5
483  if (standAlone_) {
484  book2DHistoVector(iBooker,
485  h_r1x5VsEt_,
486  "2D",
487  "r1x5VsEt2D",
488  "R1x5 vs E_{T};E_{T} (GeV);R1X5",
490  etMin_,
491  etMax_,
493  r9Min_,
494  r9Max_);
495  }
496  book2DHistoVector(iBooker,
497  p_r1x5VsEt_,
498  "Profile",
499  "r1x5VsEt",
500  "Avg R1x5 vs E_{T};E_{T} (GeV);R1X5",
501  etBin_,
502  etMin_,
503  etMax_,
504  r9Bin_,
505  r9Min_,
506  r9Max_);
507  if (standAlone_) {
508  book2DHistoVector(iBooker,
509  h_r1x5VsEta_,
510  "2D",
511  "r1x5VsEta2D",
512  "R1x5 vs #eta;#eta;R1X5",
514  etaMin_,
515  etaMax_,
517  r9Min_,
518  r9Max_);
519  }
520  book2DHistoVector(iBooker,
521  p_r1x5VsEta_,
522  "Profile",
523  "r1x5VsEta",
524  "Avg R1x5 vs #eta;#eta;R1X5",
525  etaBin_,
526  etaMin_,
527  etaMax_,
528  r9Bin_,
529  r9Min_,
530  r9Max_);
531 
532  //r2x5
533  if (standAlone_) {
534  book2DHistoVector(iBooker,
535  h_r2x5VsEt_,
536  "2D",
537  "r2x5VsEt2D",
538  "R2x5 vs E_{T};E_{T} (GeV);R2X5",
540  etMin_,
541  etMax_,
543  r9Min_,
544  r9Max_);
545  }
546  book2DHistoVector(iBooker,
547  p_r2x5VsEt_,
548  "Profile",
549  "r2x5VsEt",
550  "Avg R2x5 vs E_{T};E_{T} (GeV);R2X5",
551  etBin_,
552  etMin_,
553  etMax_,
554  r9Bin_,
555  r9Min_,
556  r9Max_);
557  if (standAlone_) {
558  book2DHistoVector(iBooker,
559  h_r2x5VsEta_,
560  "2D",
561  "r2x5VsEta2D",
562  "R2x5 vs #eta;#eta;R2X5",
564  etaMin_,
565  etaMax_,
567  r9Min_,
568  r9Max_);
569  }
570  book2DHistoVector(iBooker,
571  p_r2x5VsEta_,
572  "Profile",
573  "r2x5VsEta",
574  "Avg R2x5 vs #eta;#eta;R2X5",
575  etaBin_,
576  etaMin_,
577  etaMax_,
578  r9Bin_,
579  r9Min_,
580  r9Max_);
581 
582  //maxEXtalOver3x3
583  if (standAlone_) {
584  book2DHistoVector(iBooker,
586  "2D",
587  "maxEXtalOver3x3VsEt2D",
588  "(Max Xtal E)/E3x3 vs E_{T};E_{T} (GeV);(Max Xtal E)/E3x3",
590  etMin_,
591  etMax_,
592  r9Bin_,
593  r9Min_,
594  r9Max_);
595  }
596  book2DHistoVector(iBooker,
598  "Profile",
599  "maxEXtalOver3x3VsEt",
600  "Avg (Max Xtal E)/E3x3 vs E_{T};E_{T} (GeV);(Max Xtal E)/E3x3",
601  etBin_,
602  etMin_,
603  etMax_,
604  r9Bin_,
605  r9Min_,
606  r9Max_);
607  if (standAlone_) {
608  book2DHistoVector(iBooker,
610  "2D",
611  "maxEXtalOver3x3VsEta2D",
612  "(Max Xtal E)/E3x3 vs #eta;#eta;(Max Xtal E)/E3x3",
614  etaMin_,
615  etaMax_,
616  r9Bin_,
617  r9Min_,
618  r9Max_);
619  }
620  book2DHistoVector(iBooker,
622  "Profile",
623  "maxEXtalOver3x3VsEta",
624  "Avg (Max Xtal E)/E3x3 vs #eta;#eta;(Max Xtal E)/E3x3",
625  etaBin_,
626  etaMin_,
627  etaMax_,
628  r9Bin_,
629  r9Min_,
630  r9Max_);
631 
632  //TRACK ISOLATION VARIABLES
633  //nTrackIsolSolid
634  book2DHistoVector(iBooker,
636  "1D",
637  "nIsoTracksSolid",
638  "Number Of Tracks in the Solid Iso Cone;# tracks",
639  numberBin_,
640  numberMin_,
641  numberMax_);
642  if (standAlone_) {
643  book2DHistoVector(iBooker,
645  "2D",
646  "nIsoTracksSolidVsEt2D",
647  "Number Of Tracks in the Solid Iso Cone vs E_{T};E_{T};# tracks",
649  etMin_,
650  etMax_,
651  numberBin_,
652  numberMin_,
653  numberMax_);
654  }
655  book2DHistoVector(iBooker,
657  "Profile",
658  "nIsoTracksSolidVsEt",
659  "Avg Number Of Tracks in the Solid Iso Cone vs E_{T};E_{T};# tracks",
660  etBin_,
661  etMin_,
662  etMax_,
663  numberBin_,
664  numberMin_,
665  numberMax_);
666  if (standAlone_) {
667  book2DHistoVector(iBooker,
669  "2D",
670  "nIsoTracksSolidVsEta2D",
671  "Number Of Tracks in the Solid Iso Cone vs #eta;#eta;# tracks",
673  etaMin_,
674  etaMax_,
675  numberBin_,
676  numberMin_,
677  numberMax_);
678  }
679  book2DHistoVector(iBooker,
681  "Profile",
682  "nIsoTracksSolidVsEta",
683  "Avg Number Of Tracks in the Solid Iso Cone vs #eta;#eta;# tracks",
684  etaBin_,
685  etaMin_,
686  etaMax_,
687  numberBin_,
688  numberMin_,
689  numberMax_);
690 
691  //nTrackIsolHollow
692  book2DHistoVector(iBooker,
694  "1D",
695  "nIsoTracksHollow",
696  "Number Of Tracks in the Hollow Iso Cone;# tracks",
697  numberBin_,
698  numberMin_,
699  numberMax_);
700  if (standAlone_) {
701  book2DHistoVector(iBooker,
703  "2D",
704  "nIsoTracksHollowVsEt2D",
705  "Number Of Tracks in the Hollow Iso Cone vs E_{T};E_{T};# tracks",
707  etMin_,
708  etMax_,
709  numberBin_,
710  numberMin_,
711  numberMax_);
712  }
713  book2DHistoVector(iBooker,
715  "Profile",
716  "nIsoTracksHollowVsEt",
717  "Avg Number Of Tracks in the Hollow Iso Cone vs E_{T};E_{T};# tracks",
718  etBin_,
719  etMin_,
720  etMax_,
721  numberBin_,
722  numberMin_,
723  numberMax_);
724  if (standAlone_) {
725  book2DHistoVector(iBooker,
727  "2D",
728  "nIsoTracksHollowVsEta2D",
729  "Number Of Tracks in the Hollow Iso Cone vs #eta;#eta;# tracks",
731  etaMin_,
732  etaMax_,
733  numberBin_,
734  numberMin_,
735  numberMax_);
736  }
737  book2DHistoVector(iBooker,
739  "Profile",
740  "nIsoTracksHollowVsEta",
741  "Avg Number Of Tracks in the Hollow Iso Cone vs #eta;#eta;# tracks",
742  etaBin_,
743  etaMin_,
744  etaMax_,
745  numberBin_,
746  numberMin_,
747  numberMax_);
748 
749  //trackPtSumSolid
750  book2DHistoVector(iBooker,
752  "1D",
753  "isoPtSumSolid",
754  "Track P_{T} Sum in the Solid Iso Cone;P_{T} (GeV)",
755  sumBin_,
756  sumMin_,
757  sumMax_);
758  if (standAlone_) {
759  book2DHistoVector(iBooker,
761  "2D",
762  "isoPtSumSolidVsEt2D",
763  "Track P_{T} Sum in the Solid Iso Cone;E_{T} (GeV);P_{T} (GeV)",
765  etMin_,
766  etMax_,
768  sumMin_,
769  sumMax_);
770  }
771  book2DHistoVector(iBooker,
773  "Profile",
774  "isoPtSumSolidVsEt",
775  "Avg Track P_{T} Sum in the Solid Iso Cone vs E_{T};E_{T} (GeV);P_{T} (GeV)",
776  etBin_,
777  etMin_,
778  etMax_,
779  sumBin_,
780  sumMin_,
781  sumMax_);
782  if (standAlone_) {
783  book2DHistoVector(iBooker,
785  "2D",
786  "isoPtSumSolidVsEta2D",
787  "Track P_{T} Sum in the Solid Iso Cone;#eta;P_{T} (GeV)",
789  etaMin_,
790  etaMax_,
792  sumMin_,
793  sumMax_);
794  }
795  book2DHistoVector(iBooker,
797  "Profile",
798  "isoPtSumSolidVsEta",
799  "Avg Track P_{T} Sum in the Solid Iso Cone vs #eta;#eta;P_{T} (GeV)",
800  etaBin_,
801  etaMin_,
802  etaMax_,
803  sumBin_,
804  sumMin_,
805  sumMax_);
806 
807  //trackPtSumHollow
808  book2DHistoVector(iBooker,
810  "1D",
811  "isoPtSumHollow",
812  "Track P_{T} Sum in the Hollow Iso Cone;P_{T} (GeV)",
813  sumBin_,
814  sumMin_,
815  sumMax_);
816  if (standAlone_) {
817  book2DHistoVector(iBooker,
819  "2D",
820  "isoPtSumHollowVsEt2D",
821  "Track P_{T} Sum in the Hollow Iso Cone;E_{T} (GeV);P_{T} (GeV)",
823  etMin_,
824  etMax_,
826  sumMin_,
827  sumMax_);
828  }
829  book2DHistoVector(iBooker,
831  "Profile",
832  "isoPtSumHollowVsEt",
833  "Avg Track P_{T} Sum in the Hollow Iso Cone vs E_{T};E_{T} (GeV);P_{T} (GeV)",
834  etBin_,
835  etMin_,
836  etMax_,
837  sumBin_,
838  sumMin_,
839  sumMax_);
840  if (standAlone_) {
841  book2DHistoVector(iBooker,
843  "2D",
844  "isoPtSumHollowVsEta2D",
845  "Track P_{T} Sum in the Hollow Iso Cone;#eta;P_{T} (GeV)",
847  etaMin_,
848  etaMax_,
850  sumMin_,
851  sumMax_);
852  }
853  book2DHistoVector(iBooker,
855  "Profile",
856  "isoPtSumHollowVsEta",
857  "Avg Track P_{T} Sum in the Hollow Iso Cone vs #eta;#eta;P_{T} (GeV)",
858  etaBin_,
859  etaMin_,
860  etaMax_,
861  sumBin_,
862  sumMin_,
863  sumMax_);
864 
865  //CALORIMETER ISOLATION VARIABLES
866  //ecal sum
868  iBooker, h_ecalSum_, "1D", "ecalSum", "Ecal Sum in the Iso Cone;E (GeV)", sumBin_, sumMin_, sumMax_);
869  book2DHistoVector(iBooker,
871  "1D",
872  "ecalSumEBarrel",
873  "Ecal Sum in the IsoCone for Barrel;E (GeV)",
874  sumBin_,
875  sumMin_,
876  sumMax_);
877  book2DHistoVector(iBooker,
879  "1D",
880  "ecalSumEEndcap",
881  "Ecal Sum in the IsoCone for Endcap;E (GeV)",
882  sumBin_,
883  sumMin_,
884  sumMax_);
885  if (standAlone_) {
886  book2DHistoVector(iBooker,
888  "2D",
889  "ecalSumVsEt2D",
890  "Ecal Sum in the Iso Cone;E_{T} (GeV);E (GeV)",
892  etMin_,
893  etMax_,
895  sumMin_,
896  sumMax_);
897  }
898  book3DHistoVector(iBooker,
900  "Profile",
901  "ecalSumVsEt",
902  "Avg Ecal Sum in the Iso Cone vs E_{T};E_{T} (GeV);E (GeV)",
903  etBin_,
904  etMin_,
905  etMax_,
906  sumBin_,
907  sumMin_,
908  sumMax_);
909  if (standAlone_) {
910  book2DHistoVector(iBooker,
912  "2D",
913  "ecalSumVsEta2D",
914  "Ecal Sum in the Iso Cone;#eta;E (GeV)",
916  etaMin_,
917  etaMax_,
919  sumMin_,
920  sumMax_);
921  }
922  book2DHistoVector(iBooker,
924  "Profile",
925  "ecalSumVsEta",
926  "Avg Ecal Sum in the Iso Cone vs #eta;#eta;E (GeV)",
927  etaBin_,
928  etaMin_,
929  etaMax_,
930  sumBin_,
931  sumMin_,
932  sumMax_);
933 
934  //hcal sum
936  iBooker, h_hcalSum_, "1D", "hcalSum", "Hcal Sum in the Iso Cone;E (GeV)", sumBin_, sumMin_, sumMax_);
937  book2DHistoVector(iBooker,
939  "1D",
940  "hcalSumEBarrel",
941  "Hcal Sum in the IsoCone for Barrel;E (GeV)",
942  sumBin_,
943  sumMin_,
944  sumMax_);
945  book2DHistoVector(iBooker,
947  "1D",
948  "hcalSumEEndcap",
949  "Hcal Sum in the IsoCone for Endcap;E (GeV)",
950  sumBin_,
951  sumMin_,
952  sumMax_);
953  if (standAlone_) {
954  book2DHistoVector(iBooker,
956  "2D",
957  "hcalSumVsEt2D",
958  "Hcal Sum in the Iso Cone;E_{T} (GeV);E (GeV)",
960  etMin_,
961  etMax_,
963  sumMin_,
964  sumMax_);
965  }
966  book3DHistoVector(iBooker,
968  "Profile",
969  "hcalSumVsEt",
970  "Avg Hcal Sum in the Iso Cone vs E_{T};E_{T} (GeV);E (GeV)",
971  etBin_,
972  etMin_,
973  etMax_,
974  sumBin_,
975  sumMin_,
976  sumMax_);
977  if (standAlone_) {
978  book2DHistoVector(iBooker,
980  "2D",
981  "hcalSumVsEta2D",
982  "Hcal Sum in the Iso Cone;#eta;E (GeV)",
984  etaMin_,
985  etaMax_,
987  sumMin_,
988  sumMax_);
989  }
990  book2DHistoVector(iBooker,
992  "Profile",
993  "hcalSumVsEta",
994  "Avg Hcal Sum in the Iso Cone vs #eta;#eta;E (GeV)",
995  etaBin_,
996  etaMin_,
997  etaMax_,
998  sumBin_,
999  sumMin_,
1000  sumMax_);
1001 
1002  //h over e
1003  book3DHistoVector(iBooker, h_hOverE_, "1D", "hOverE", "H/E;H/E", hOverEBin_, hOverEMin_, hOverEMax_);
1004  book2DHistoVector(iBooker,
1005  p_hOverEVsEt_,
1006  "Profile",
1007  "hOverEVsEt",
1008  "Avg H/E vs Et;E_{T} (GeV);H/E",
1009  etBin_,
1010  etMin_,
1011  etMax_,
1012  hOverEBin_,
1013  hOverEMin_,
1014  hOverEMax_);
1015  book2DHistoVector(iBooker,
1017  "Profile",
1018  "hOverEVsEta",
1019  "Avg H/E vs #eta;#eta;H/E",
1020  etaBin_,
1021  etaMin_,
1022  etaMax_,
1023  hOverEBin_,
1024  hOverEMin_,
1025  hOverEMax_);
1026  book3DHistoVector(iBooker, h_h1OverE_, "1D", "h1OverE", "H/E for Depth 1;H/E", hOverEBin_, hOverEMin_, hOverEMax_);
1027  book3DHistoVector(iBooker, h_h2OverE_, "1D", "h2OverE", "H/E for Depth 2;H/E", hOverEBin_, hOverEMin_, hOverEMax_);
1028 
1029  // pf isolation
1031  iBooker, h_phoIsoBarrel_, "1D", "phoIsoBarrel", "PF photon iso Barrel;E (GeV)", reducedEtBin_, etMin_, 25.);
1033  iBooker, h_phoIsoEndcap_, "1D", "phoIsoEndcap", "PF photon iso Endcap;E (GeV)", reducedEtBin_, etMin_, 25.);
1034  book2DHistoVector(iBooker,
1036  "1D",
1037  "chHadIsoBarrel",
1038  "PF charged Had iso Barrel;E (GeV)",
1039  reducedEtBin_,
1040  etMin_,
1041  25.);
1042  book2DHistoVector(iBooker,
1044  "1D",
1045  "chHadIsoEndcap",
1046  "PF charged Had iso Endcap;E (GeV)",
1047  reducedEtBin_,
1048  etMin_,
1049  25.);
1050  book2DHistoVector(iBooker,
1052  "1D",
1053  "neutralHadIsoBarrel",
1054  "PF neutral Had iso Barrel;E (GeV)",
1055  reducedEtBin_,
1056  etMin_,
1057  25.);
1058  book2DHistoVector(iBooker,
1060  "1D",
1061  "neutralHadIsoEndcap",
1062  "PF neutral Had iso Endcap;E (GeV)",
1063  reducedEtBin_,
1064  etMin_,
1065  25.);
1066 
1067  //OTHER VARIABLES
1068  //bad channel histograms
1069  book2DHistoVector(iBooker,
1071  "1D",
1072  "phoEtBadChannels",
1073  "Fraction Containing Bad Channels: E_{T};E_{T} (GeV)",
1074  etBin_,
1075  etMin_,
1076  etMax_);
1077  book2DHistoVector(iBooker,
1079  "1D",
1080  "phoEtaBadChannels",
1081  "Fraction Containing Bad Channels: #eta;#eta",
1082  etaBin_,
1083  etaMin_,
1084  etaMax_);
1085  book2DHistoVector(iBooker,
1087  "1D",
1088  "phoPhiBadChannels",
1089  "Fraction Containing Bad Channels: #phi;#phi",
1090  phiBin_,
1091  phiMin_,
1092  phiMax_);
1093 }
std::vector< std::vector< MonitorElement * > > h_sigmaIetaIetaVsEta_
std::vector< std::vector< std::vector< MonitorElement * > > > h_phoEt_
std::vector< std::vector< MonitorElement * > > h_phoEta_BadChannels_
std::vector< std::vector< MonitorElement * > > p_maxEXtalOver3x3VsEta_
std::vector< std::vector< MonitorElement * > > p_trackPtSumSolidVsEta_
std::vector< std::vector< MonitorElement * > > h_nTrackIsolSolid_
std::vector< std::vector< MonitorElement * > > p_hOverEVsEta_
std::vector< std::vector< MonitorElement * > > p_nTrackIsolSolidVsEt_
std::vector< std::vector< MonitorElement * > > p_r9VsEta_
std::vector< std::vector< MonitorElement * > > p_sigmaIetaIetaVsEta_
std::vector< std::vector< MonitorElement * > > h_e1x5VsEt_
std::vector< std::vector< std::vector< MonitorElement * > > > h_phoE_
std::vector< std::vector< MonitorElement * > > p_e2x5VsEta_
std::vector< std::vector< MonitorElement * > > p_e1x5VsEta_
std::vector< std::vector< MonitorElement * > > p_r2x5VsEt_
std::vector< std::vector< MonitorElement * > > h_nHadIsoBarrel_
std::vector< std::vector< MonitorElement * > > h_phoEta_
std::vector< std::vector< MonitorElement * > > h_chHadIsoEndcap_
std::vector< std::vector< MonitorElement * > > h_hcalSumEBarrel_
std::vector< std::vector< MonitorElement * > > p_r1x5VsEt_
std::vector< std::vector< MonitorElement * > > h_nTrackIsolHollow_
std::vector< std::vector< MonitorElement * > > h_ecalSumVsEta_
std::vector< std::vector< MonitorElement * > > h_chHadIsoBarrel_
std::vector< std::vector< std::vector< MonitorElement * > > > h_hOverE_
std::vector< std::vector< std::vector< MonitorElement * > > > h_phoSigmaEoverE_
std::vector< std::vector< MonitorElement * > > h_trackPtSumSolidVsEta_
std::vector< std::vector< MonitorElement * > > h_r9VsEta_
std::vector< std::vector< MonitorElement * > > h_hcalSumEEndcap_
std::vector< std::vector< MonitorElement * > > h_nTrackIsolHollowVsEta_
std::vector< std::vector< MonitorElement * > > h_e2x5VsEta_
std::vector< std::vector< MonitorElement * > > h_ecalSum_
std::vector< std::vector< std::vector< MonitorElement * > > > p_hcalSumVsEt_
std::vector< std::vector< MonitorElement * > > h_scEta_
std::vector< std::vector< MonitorElement * > > h_r1x5VsEt_
std::vector< std::vector< MonitorElement * > > h_hcalSumVsEta_
std::vector< std::vector< MonitorElement * > > h_maxEXtalOver3x3VsEta_
std::vector< std::vector< MonitorElement * > > h_maxEXtalOver3x3VsEt_
std::vector< std::vector< MonitorElement * > > h_hcalSum_
std::vector< std::vector< MonitorElement * > > p_hcalSumVsEta_
std::vector< std::vector< MonitorElement * > > h_r1x5VsEta_
std::vector< std::vector< std::vector< MonitorElement * > > > h_h1OverE_
std::vector< std::vector< MonitorElement * > > p_r1x5VsEta_
std::vector< std::vector< MonitorElement * > > p_hOverEVsEt_
std::vector< std::vector< MonitorElement * > > h_phoIsoEndcap_
std::vector< std::vector< MonitorElement * > > p_e2x5VsEt_
std::vector< std::vector< MonitorElement * > > p_maxEXtalOver3x3VsEt_
std::vector< std::vector< MonitorElement * > > h_nTrackIsolHollowVsEt_
std::vector< std::vector< std::vector< MonitorElement * > > > h_phoSigmaIetaIeta_
std::vector< std::vector< MonitorElement * > > h_e2x5VsEt_
std::vector< std::vector< MonitorElement * > > h_phoPhi_BadChannels_
std::vector< std::vector< MonitorElement * > > p_nTrackIsolSolidVsEta_
std::vector< std::vector< MonitorElement * > > h_nTrackIsolSolidVsEt_
std::vector< std::vector< std::vector< MonitorElement * > > > p_phoSigmaEoverEvsNVtx_
std::vector< std::vector< std::vector< MonitorElement * > > > p_ecalSumVsEt_
std::vector< std::vector< std::vector< MonitorElement * > > > h_r9_
std::vector< std::vector< MonitorElement * > > p_nTrackIsolHollowVsEt_
std::vector< std::vector< MonitorElement * > > h_trackPtSumHollowVsEt_
void book3DHistoVector(DQMStore::IBooker &, std::vector< std::vector< std::vector< MonitorElement * > > > &toFill, std::string histoType, std::string histoName, std::string title, int xbin, double xmin, double xmax, int ybin=1, double ymin=1, double ymax=2)
std::vector< std::vector< MonitorElement * > > h_nTrackIsolSolidVsEta_
std::vector< std::vector< std::vector< MonitorElement * > > > h_scPhi_
std::vector< std::vector< MonitorElement * > > p_e1x5VsEt_
std::vector< std::vector< MonitorElement * > > p_nTrackIsolHollowVsEta_
std::vector< std::vector< MonitorElement * > > h_trackPtSumSolidVsEt_
std::vector< std::vector< std::vector< MonitorElement * > > > h_h2OverE_
std::vector< std::vector< MonitorElement * > > p_r2x5VsEta_
std::vector< std::vector< MonitorElement * > > p_r9VsEt_
std::vector< std::vector< MonitorElement * > > h_phoIsoBarrel_
std::vector< std::vector< MonitorElement * > > p_trackPtSumHollowVsEta_
std::vector< std::vector< MonitorElement * > > p_trackPtSumSolidVsEt_
std::vector< std::vector< MonitorElement * > > p_ecalSumVsEta_
std::vector< std::vector< MonitorElement * > > h_trackPtSumHollowVsEta_
std::vector< std::vector< MonitorElement * > > h_hcalSumVsEt_
std::vector< std::vector< MonitorElement * > > p_trackPtSumHollowVsEt_
std::vector< std::vector< MonitorElement * > > h_e1x5VsEta_
std::vector< std::vector< MonitorElement * > > h_trackPtSumSolid_
void book2DHistoVector(DQMStore::IBooker &, std::vector< std::vector< MonitorElement * > > &toFill, std::string histoType, std::string histoName, std::string title, int xbin, double xmin, double xmax, int ybin=1, double ymin=1, double ymax=2)
std::vector< std::vector< MonitorElement * > > h_r2x5VsEt_
std::vector< std::vector< MonitorElement * > > h_phoEt_BadChannels_
std::vector< std::vector< MonitorElement * > > h_r2x5VsEta_
std::vector< std::vector< MonitorElement * > > h_nHadIsoEndcap_
std::vector< std::vector< std::vector< MonitorElement * > > > h_phoPhi_
std::vector< std::vector< MonitorElement * > > h_trackPtSumHollow_
std::vector< std::vector< std::vector< MonitorElement * > > > h_nPho_
std::vector< std::vector< MonitorElement * > > h_r9VsEt_
std::vector< std::vector< MonitorElement * > > h_ecalSumVsEt_
std::vector< std::vector< MonitorElement * > > h_ecalSumEEndcap_
std::vector< std::vector< MonitorElement * > > h_ecalSumEBarrel_
void PhotonAnalyzer::fill2DHistoVector ( std::vector< std::vector< MonitorElement * > > &  histoVector,
double  x,
int  cut,
int  type 
)
private
void PhotonAnalyzer::fill2DHistoVector ( std::vector< std::vector< MonitorElement * > > &  histoVector,
double  x,
double  y,
int  cut,
int  type 
)
private
void PhotonAnalyzer::fill3DHistoVector ( std::vector< std::vector< std::vector< MonitorElement * > > > &  histoVector,
double  x,
int  cut,
int  type,
int  part 
)
private
void PhotonAnalyzer::fill3DHistoVector ( std::vector< std::vector< std::vector< MonitorElement * > > > &  histoVector,
double  x,
double  y,
int  cut,
int  type,
int  part 
)
private
void PhotonAnalyzer::fillHistogramsForHistogramCounts ( DQMStore::IBooker iBooker)
private

Definition at line 164 of file PhotonAnalyzer.cc.

References dqm::implementation::NavigatorBase::setCurrentFolder().

164  {
165  iBooker.setCurrentFolder("Egamma/" + fName_ + "/");
170 }
MonitorElement * totalNumberOfHistos_photonsFolder
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
MonitorElement * totalNumberOfHistos_efficiencyFolder
int histo_index_conversions_
MonitorElement * totalNumberOfHistos_conversionsFolder
void Fill(long long x)
std::string fName_
MonitorElement * totalNumberOfHistos_invMassFolder
float PhotonAnalyzer::phiNormalization ( float &  a)
private

Definition at line 2033 of file PhotonAnalyzer.cc.

References PI, and TWOPI.

2033  {
2034  const float PI = 3.1415927;
2035  const float TWOPI = 2.0 * PI;
2036 
2037  if (phi > PI) {
2038  phi = phi - TWOPI;
2039  }
2040  if (phi < -PI) {
2041  phi = phi + TWOPI;
2042  }
2043 
2044  return phi;
2045 }
#define TWOPI
#define PI
Definition: QcdUeDQM.h:37
bool PhotonAnalyzer::photonSelection ( const reco::Photon p)
private

remove after moriond if (EtCorrEcalIso>4.0) result=false;

remove after moriond if (EtCorrEcalIso>50.0) result=false;

Definition at line 2075 of file PhotonAnalyzer.cc.

References reco::Photon::chargedHadronIso(), reco::LeafCandidate::eta(), reco::Photon::hadTowOverEm(), reco::Photon::hcalTowerSumEtConeDR03(), reco::Photon::isEB(), reco::Photon::isEBEEGap(), reco::Photon::isEE(), reco::LeafCandidate::pt(), reco::Photon::r9(), mps_fire::result, reco::Photon::sigmaIetaIeta(), and reco::Photon::trkSumPtHollowConeDR03().

2075  {
2076  bool result = true;
2077  if (pho->pt() < minPhoEtCut_)
2078  result = false;
2079  if (fabs(pho->eta()) > photonMaxEta_)
2080  result = false;
2081  if (pho->isEBEEGap())
2082  result = false;
2083 
2084  double EtCorrHcalIso = pho->hcalTowerSumEtConeDR03() - 0.005 * pho->pt();
2085  double EtCorrTrkIso = pho->trkSumPtHollowConeDR03() - 0.002 * pho->pt();
2086 
2087  if (pho->r9() <= 0.9) {
2088  if (pho->isEB() && (pho->hadTowOverEm() > 0.075 || pho->sigmaIetaIeta() > 0.014))
2089  result = false;
2090  if (pho->isEE() && (pho->hadTowOverEm() > 0.075 || pho->sigmaIetaIeta() > 0.034))
2091  result = false;
2093  if (EtCorrHcalIso > 4.0)
2094  result = false;
2095  if (EtCorrTrkIso > 4.0)
2096  result = false;
2097  if (pho->chargedHadronIso() > 4)
2098  result = false;
2099  } else {
2100  if (pho->isEB() && (pho->hadTowOverEm() > 0.082 || pho->sigmaIetaIeta() > 0.014))
2101  result = false;
2102  if (pho->isEE() && (pho->hadTowOverEm() > 0.075 || pho->sigmaIetaIeta() > 0.034))
2103  result = false;
2105  if (EtCorrHcalIso > 50.0)
2106  result = false;
2107  if (EtCorrTrkIso > 50.0)
2108  result = false;
2109  if (pho->chargedHadronIso() > 4)
2110  result = false;
2111  }
2112  return result;
2113 }
tuple result
Definition: mps_fire.py:311
bool PhotonAnalyzer::photonSelectionSlimmed ( const reco::Photon p)
private

Definition at line 2115 of file PhotonAnalyzer.cc.

References reco::LeafCandidate::eta(), reco::Photon::isEBEEGap(), reco::LeafCandidate::pt(), and mps_fire::result.

2115  {
2116  bool result = true;
2117 
2118  if (pho->pt() < minPhoEtCut_)
2119  result = false;
2120  if (fabs(pho->eta()) > photonMaxEta_)
2121  result = false;
2122  if (pho->isEBEEGap())
2123  result = false;
2124 
2125  return result;
2126 }
tuple result
Definition: mps_fire.py:311

Member Data Documentation

edm::EDGetTokenT<edm::SortedCollection<EcalRecHit, edm::StrictWeakOrdering<EcalRecHit> > > PhotonAnalyzer::barrelRecHit_token_
private

Definition at line 164 of file PhotonAnalyzer.h.

int PhotonAnalyzer::chi2Bin_
private

Definition at line 252 of file PhotonAnalyzer.h.

double PhotonAnalyzer::chi2Max_
private

Definition at line 254 of file PhotonAnalyzer.h.

double PhotonAnalyzer::chi2Min_
private

Definition at line 253 of file PhotonAnalyzer.h.

std::stringstream PhotonAnalyzer::currentFolder_
private

Definition at line 189 of file PhotonAnalyzer.h.

double PhotonAnalyzer::cutStep_
private

Definition at line 173 of file PhotonAnalyzer.h.

int PhotonAnalyzer::dEtaTracksBin_
private

Definition at line 248 of file PhotonAnalyzer.h.

double PhotonAnalyzer::dEtaTracksMax_
private

Definition at line 250 of file PhotonAnalyzer.h.

double PhotonAnalyzer::dEtaTracksMin_
private

Definition at line 249 of file PhotonAnalyzer.h.

int PhotonAnalyzer::dPhiTracksBin_
private

Definition at line 244 of file PhotonAnalyzer.h.

double PhotonAnalyzer::dPhiTracksMax_
private

Definition at line 246 of file PhotonAnalyzer.h.

double PhotonAnalyzer::dPhiTracksMin_
private

Definition at line 245 of file PhotonAnalyzer.h.

int PhotonAnalyzer::eBin_
private

Definition at line 216 of file PhotonAnalyzer.h.

double PhotonAnalyzer::eMax_
private

Definition at line 218 of file PhotonAnalyzer.h.

double PhotonAnalyzer::eMin_
private

Definition at line 217 of file PhotonAnalyzer.h.

edm::EDGetTokenT<edm::SortedCollection<EcalRecHit, edm::StrictWeakOrdering<EcalRecHit> > > PhotonAnalyzer::endcapRecHit_token_
private

Definition at line 165 of file PhotonAnalyzer.h.

int PhotonAnalyzer::eOverPBin_
private

Definition at line 240 of file PhotonAnalyzer.h.

double PhotonAnalyzer::eOverPMax_
private

Definition at line 242 of file PhotonAnalyzer.h.

double PhotonAnalyzer::eOverPMin_
private

Definition at line 241 of file PhotonAnalyzer.h.

int PhotonAnalyzer::etaBin_
private

Definition at line 204 of file PhotonAnalyzer.h.

double PhotonAnalyzer::etaMax_
private

Definition at line 206 of file PhotonAnalyzer.h.

double PhotonAnalyzer::etaMin_
private

Definition at line 205 of file PhotonAnalyzer.h.

int PhotonAnalyzer::etBin_
private

Definition at line 208 of file PhotonAnalyzer.h.

double PhotonAnalyzer::etMax_
private

Definition at line 210 of file PhotonAnalyzer.h.

double PhotonAnalyzer::etMin_
private

Definition at line 209 of file PhotonAnalyzer.h.

bool PhotonAnalyzer::excludeBkgHistos_
private

Definition at line 181 of file PhotonAnalyzer.h.

std::string PhotonAnalyzer::fName_
private

Definition at line 157 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_chHadIsoBarrel_
private

Definition at line 338 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_chHadIsoEndcap_
private

Definition at line 339 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_convEt_Loose_
private

Definition at line 296 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_convEt_Tight_
private

Definition at line 297 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_convEta_Loose_
private

Definition at line 294 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_convEta_Tight_
private

Definition at line 295 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_convVtxR_
private

Definition at line 395 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_convVtxRvsZ_
private

Definition at line 391 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_convVtxYvsX_
private

Definition at line 394 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_convVtxZ_
private

Definition at line 393 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_convVtxZEndcap_
private

Definition at line 392 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_dCotTracks_
private

Definition at line 457 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_dEtaTracksAtEcal_
private

Definition at line 462 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_dPhiTracksAtEcal_
private

Definition at line 460 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_dPhiTracksAtVtx_
private

Definition at line 459 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_e1x5VsEt_
private

Definition at line 400 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_e1x5VsEta_
private

Definition at line 401 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_e2x5VsEt_
private

Definition at line 403 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_e2x5VsEta_
private

Definition at line 404 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_ecalSum_
private

Definition at line 329 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_ecalSumEBarrel_
private

Definition at line 330 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_ecalSumEEndcap_
private

Definition at line 331 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_ecalSumVsEt_
private

Definition at line 322 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_ecalSumVsEta_
private

Definition at line 315 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_eOverPTracks_
private

Definition at line 454 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_h1OverE_
private

Definition at line 441 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_h2OverE_
private

Definition at line 442 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_hcalSum_
private

Definition at line 332 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_hcalSumEBarrel_
private

Definition at line 333 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_hcalSumEEndcap_
private

Definition at line 334 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_hcalSumVsEt_
private

Definition at line 323 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_hcalSumVsEta_
private

Definition at line 316 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_hOverE_
private

Definition at line 440 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_invMassAllPhotons_
private

Definition at line 304 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_invMassOneWithTracks_
private

Definition at line 302 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_invMassPhotonsEBarrel_
private

Definition at line 305 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_invMassPhotonsEEndcap_
private

Definition at line 306 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_invMassPhotonsEEndcapEBarrel_
private

Definition at line 307 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_invMassTwoWithTracks_
private

Definition at line 301 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_invMassZeroWithTracks_
private

Definition at line 303 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_maxEXtalOver3x3VsEt_
private

Definition at line 406 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_maxEXtalOver3x3VsEta_
private

Definition at line 407 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_nConv_
private

Definition at line 452 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_nHadIsoBarrel_
private

Definition at line 340 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_nHadIsoEndcap_
private

Definition at line 341 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_nPho_
private

Definition at line 446 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_nRecoVtx_
private

Definition at line 282 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_nTrackIsolHollow_
private

Definition at line 327 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_nTrackIsolHollowVsEt_
private

Definition at line 320 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_nTrackIsolHollowVsEta_
private

Definition at line 313 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_nTrackIsolSolid_
private

Definition at line 325 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_nTrackIsolSolidVsEt_
private

Definition at line 318 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_nTrackIsolSolidVsEta_
private

Definition at line 311 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_phoConvE_
private

Definition at line 448 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_phoConvEt_
private

Definition at line 449 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_phoConvEta_
private

Definition at line 389 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_phoConvEtaForEfficiency_
private

Definition at line 383 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_phoConvPhi_
private

Definition at line 438 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_phoConvPhiForEfficiency_
private

Definition at line 437 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_phoConvR9_
private

Definition at line 450 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_phoE_
private

Definition at line 430 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_phoEt_
private

Definition at line 433 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_phoEt_BadChannels_
private

Definition at line 386 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_phoEt_Loose_
private

Definition at line 286 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_phoEt_postHLT_
private

Definition at line 292 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_phoEt_preHLT_
private

Definition at line 291 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_phoEt_Tight_
private

Definition at line 287 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_phoEta_
private

Definition at line 380 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_phoEta_BadChannels_
private

Definition at line 385 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_phoEta_Loose_
private

Definition at line 284 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_phoEta_postHLT_
private

Definition at line 290 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_phoEta_preHLT_
private

Definition at line 289 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_phoEta_Tight_
private

Definition at line 285 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_phoEta_Vertex_
private

Definition at line 299 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_phoIsoBarrel_
private

Definition at line 336 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_phoIsoEndcap_
private

Definition at line 337 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_phoPhi_
private

Definition at line 435 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_phoPhi_BadChannels_
private

Definition at line 387 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_phoSigmaEoverE_
private

Definition at line 431 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_phoSigmaIetaIeta_
private

Definition at line 444 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_pOverETracks_
private

Definition at line 455 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_r1x5VsEt_
private

Definition at line 409 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_r1x5VsEta_
private

Definition at line 410 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_r2x5VsEt_
private

Definition at line 412 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_r2x5VsEta_
private

Definition at line 413 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_r9_
private

Definition at line 434 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_r9VsEt_
private

Definition at line 397 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_r9VsEta_
private

Definition at line 398 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_scEta_
private

Definition at line 381 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_scPhi_
private

Definition at line 436 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_sigmaIetaIetaVsEta_
private

Definition at line 415 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_tkChi2_
private

Definition at line 417 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_trackPtSumHollow_
private

Definition at line 328 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_trackPtSumHollowVsEt_
private

Definition at line 321 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_trackPtSumHollowVsEta_
private

Definition at line 314 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_trackPtSumSolid_
private

Definition at line 326 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_trackPtSumSolidVsEt_
private

Definition at line 319 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_trackPtSumSolidVsEta_
private

Definition at line 312 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_vertexChi2Prob_
private

Definition at line 419 of file PhotonAnalyzer.h.

int PhotonAnalyzer::histo_index_conversions_
private

Definition at line 192 of file PhotonAnalyzer.h.

int PhotonAnalyzer::histo_index_efficiency_
private

Definition at line 193 of file PhotonAnalyzer.h.

int PhotonAnalyzer::histo_index_invMass_
private

Definition at line 194 of file PhotonAnalyzer.h.

int PhotonAnalyzer::histo_index_photons_
private

Definition at line 191 of file PhotonAnalyzer.h.

int PhotonAnalyzer::hOverEBin_
private

Definition at line 236 of file PhotonAnalyzer.h.

double PhotonAnalyzer::hOverEMax_
private

Definition at line 238 of file PhotonAnalyzer.h.

double PhotonAnalyzer::hOverEMin_
private

Definition at line 237 of file PhotonAnalyzer.h.

double PhotonAnalyzer::invMassEtCut_
private

Definition at line 171 of file PhotonAnalyzer.h.

bool PhotonAnalyzer::isHeavyIon_
private

Definition at line 185 of file PhotonAnalyzer.h.

int PhotonAnalyzer::isolationStrength_
private

Definition at line 183 of file PhotonAnalyzer.h.

bool PhotonAnalyzer::minimalSetOfHistos_
private

Definition at line 180 of file PhotonAnalyzer.h.

double PhotonAnalyzer::minPhoEtCut_
private

Definition at line 169 of file PhotonAnalyzer.h.

int PhotonAnalyzer::nEvt_
private

Definition at line 196 of file PhotonAnalyzer.h.

int PhotonAnalyzer::numberBin_
private

Definition at line 220 of file PhotonAnalyzer.h.

double PhotonAnalyzer::numberMax_
private

Definition at line 222 of file PhotonAnalyzer.h.

double PhotonAnalyzer::numberMin_
private

Definition at line 221 of file PhotonAnalyzer.h.

int PhotonAnalyzer::numberOfSteps_
private

Definition at line 174 of file PhotonAnalyzer.h.

edm::EDGetTokenT<reco::VertexCollection> PhotonAnalyzer::offline_pvToken_
private

Definition at line 167 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_dCotTracksVsEta_
private

Definition at line 375 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_e1x5VsEt_
private

Definition at line 358 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_e1x5VsEta_
private

Definition at line 359 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_e2x5VsEt_
private

Definition at line 361 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_e2x5VsEta_
private

Definition at line 362 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::p_ecalSumVsEt_
private

Definition at line 427 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_ecalSumVsEta_
private

Definition at line 347 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::p_hcalSumVsEt_
private

Definition at line 428 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_hcalSumVsEta_
private

Definition at line 348 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_hOverEVsEt_
private

Definition at line 378 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_hOverEVsEta_
private

Definition at line 377 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_maxEXtalOver3x3VsEt_
private

Definition at line 364 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_maxEXtalOver3x3VsEta_
private

Definition at line 365 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_nHitsVsEta_
private

Definition at line 421 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_nTrackIsolHollowVsEt_
private

Definition at line 352 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_nTrackIsolHollowVsEta_
private

Definition at line 345 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_nTrackIsolSolidVsEt_
private

Definition at line 350 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_nTrackIsolSolidVsEta_
private

Definition at line 343 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::p_phoSigmaEoverEvsNVtx_
private

Definition at line 432 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_r1x5VsEt_
private

Definition at line 367 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_r1x5VsEta_
private

Definition at line 368 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_r2x5VsEt_
private

Definition at line 370 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_r2x5VsEta_
private

Definition at line 371 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_r9VsEt_
private

Definition at line 355 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_r9VsEta_
private

Definition at line 356 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_sigmaIetaIetaVsEta_
private

Definition at line 373 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_tkChi2VsEta_
private

Definition at line 423 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_trackPtSumHollowVsEt_
private

Definition at line 353 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_trackPtSumHollowVsEta_
private

Definition at line 346 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_trackPtSumSolidVsEt_
private

Definition at line 351 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_trackPtSumSolidVsEta_
private

Definition at line 344 of file PhotonAnalyzer.h.

std::vector<std::string> PhotonAnalyzer::parts_
private

Definition at line 199 of file PhotonAnalyzer.h.

int PhotonAnalyzer::phiBin_
private

Definition at line 212 of file PhotonAnalyzer.h.

double PhotonAnalyzer::phiMax_
private

Definition at line 214 of file PhotonAnalyzer.h.

double PhotonAnalyzer::phiMin_
private

Definition at line 213 of file PhotonAnalyzer.h.

edm::EDGetTokenT<std::vector<reco::Photon> > PhotonAnalyzer::photon_token_
private

Definition at line 161 of file PhotonAnalyzer.h.

edm::EDGetTokenT<edm::ValueMap<bool> > PhotonAnalyzer::PhotonIDLoose_token_
private

Definition at line 162 of file PhotonAnalyzer.h.

edm::EDGetTokenT<edm::ValueMap<bool> > PhotonAnalyzer::PhotonIDTight_token_
private

Definition at line 163 of file PhotonAnalyzer.h.

double PhotonAnalyzer::photonMaxEta_
private

Definition at line 170 of file PhotonAnalyzer.h.

unsigned int PhotonAnalyzer::prescaleFactor_
private

Definition at line 159 of file PhotonAnalyzer.h.

int PhotonAnalyzer::r9Bin_
private

Definition at line 224 of file PhotonAnalyzer.h.

double PhotonAnalyzer::r9Max_
private

Definition at line 226 of file PhotonAnalyzer.h.

double PhotonAnalyzer::r9Min_
private

Definition at line 225 of file PhotonAnalyzer.h.

int PhotonAnalyzer::rBin_
private

Definition at line 260 of file PhotonAnalyzer.h.

int PhotonAnalyzer::reducedEtaBin_
private

Definition at line 273 of file PhotonAnalyzer.h.

int PhotonAnalyzer::reducedEtBin_
private

Definition at line 272 of file PhotonAnalyzer.h.

int PhotonAnalyzer::reducedR9Bin_
private

Definition at line 274 of file PhotonAnalyzer.h.

int PhotonAnalyzer::reducedSumBin_
private

Definition at line 275 of file PhotonAnalyzer.h.

double PhotonAnalyzer::rMax_
private

Definition at line 262 of file PhotonAnalyzer.h.

double PhotonAnalyzer::rMin_
private

Definition at line 261 of file PhotonAnalyzer.h.

int PhotonAnalyzer::sigmaIetaBin_
private

Definition at line 228 of file PhotonAnalyzer.h.

double PhotonAnalyzer::sigmaIetaMax_
private

Definition at line 230 of file PhotonAnalyzer.h.

double PhotonAnalyzer::sigmaIetaMin_
private

Definition at line 229 of file PhotonAnalyzer.h.

bool PhotonAnalyzer::standAlone_
private

Definition at line 178 of file PhotonAnalyzer.h.

int PhotonAnalyzer::sumBin_
private

Definition at line 232 of file PhotonAnalyzer.h.

double PhotonAnalyzer::sumMax_
private

Definition at line 234 of file PhotonAnalyzer.h.

double PhotonAnalyzer::sumMin_
private

Definition at line 233 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::totalNumberOfHistos_conversionsFolder
private

Definition at line 280 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::totalNumberOfHistos_efficiencyFolder
private

Definition at line 277 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::totalNumberOfHistos_invMassFolder
private

Definition at line 278 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::totalNumberOfHistos_photonsFolder
private

Definition at line 279 of file PhotonAnalyzer.h.

edm::EDGetTokenT<trigger::TriggerEvent> PhotonAnalyzer::triggerEvent_token_
private

Definition at line 166 of file PhotonAnalyzer.h.

std::vector<std::string> PhotonAnalyzer::types_
private

Definition at line 198 of file PhotonAnalyzer.h.

bool PhotonAnalyzer::useBinning_
private

Definition at line 176 of file PhotonAnalyzer.h.

bool PhotonAnalyzer::useTriggerFiltering_
private

Definition at line 177 of file PhotonAnalyzer.h.

int PhotonAnalyzer::xBin_
private

Definition at line 264 of file PhotonAnalyzer.h.

double PhotonAnalyzer::xMax_
private

Definition at line 266 of file PhotonAnalyzer.h.

double PhotonAnalyzer::xMin_
private

Definition at line 265 of file PhotonAnalyzer.h.

int PhotonAnalyzer::yBin_
private

Definition at line 268 of file PhotonAnalyzer.h.

double PhotonAnalyzer::yMax_
private

Definition at line 270 of file PhotonAnalyzer.h.

double PhotonAnalyzer::yMin_
private

Definition at line 269 of file PhotonAnalyzer.h.

int PhotonAnalyzer::zBin_
private

Definition at line 256 of file PhotonAnalyzer.h.

double PhotonAnalyzer::zMax_
private

Definition at line 258 of file PhotonAnalyzer.h.

double PhotonAnalyzer::zMin_
private

Definition at line 257 of file PhotonAnalyzer.h.