CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros 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::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > > edm::stream::EDAnalyzerBase edm::EDConsumerBase

Public Member Functions

virtual void analyze (const edm::Event &, const edm::EventSetup &)
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
 PhotonAnalyzer (const edm::ParameterSet &)
 
virtual ~PhotonAnalyzer ()
 
- Public Member Functions inherited from DQMEDAnalyzer
virtual void beginRun (edm::Run const &, edm::EventSetup const &) final
 
virtual void beginStream (edm::StreamID id) final
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDAnalyzer (void)
 
virtual void endLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, dqmDetails::NoCache *) const final
 
virtual void endRunSummary (edm::Run const &, edm::EventSetup const &, dqmDetails::NoCache *) const final
 
uint32_t streamId () const
 
- Public Member Functions inherited from edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > >
 EDAnalyzer ()=default
 
- Public Member Functions inherited from edm::stream::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDAnalyzerBase ()
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
 EDConsumerBase ()
 
ProductHolderIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
std::vector
< ProductHolderIndexAndSkipBit >
const & 
itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesDependentUpon (const std::string &iProcessName, std::vector< const char * > &oModuleLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

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::PhotonRef &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_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 edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > >
typedef CacheContexts< T...> CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T...> HasAbility
 
typedef
CacheTypes::LuminosityBlockCache 
LuminosityBlockCache
 
typedef
LuminosityBlockContextT
< LuminosityBlockCache,
RunCache, GlobalCache
LuminosityBlockContext
 
typedef
CacheTypes::LuminosityBlockSummaryCache 
LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache,
GlobalCache
RunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 
- Public Types inherited from edm::stream::EDAnalyzerBase
typedef EDAnalyzerAdaptorBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from DQMEDAnalyzer
static std::shared_ptr
< dqmDetails::NoCache
globalBeginLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, LuminosityBlockContext const *)
 
static std::shared_ptr
< dqmDetails::NoCache
globalBeginRunSummary (edm::Run const &, edm::EventSetup const &, RunContext const *)
 
static void globalEndLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, LuminosityBlockContext const *, dqmDetails::NoCache *)
 
static void globalEndRunSummary (edm::Run const &, edm::EventSetup const &, RunContext const *, dqmDetails::NoCache *)
 
- Static Public Member Functions inherited from edm::stream::EDAnalyzerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

EgammaCoreTools.

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

Definition at line 101 of file PhotonAnalyzer.h.

Constructor & Destructor Documentation

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

Definition at line 20 of file PhotonAnalyzer.cc.

References edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), and HLT_25ns14e33_v1_cff::InputTag.

21 {
22  fName_ = pset.getParameter<string>("analyzerName");
23  prescaleFactor_ = pset.getUntrackedParameter<int>("prescaleFactor",1);
24 
25  photon_token_ = consumes<vector<reco::Photon> >(pset.getParameter<edm::InputTag>("phoProducer"));
26  barrelRecHit_token_ = consumes<edm::SortedCollection<EcalRecHit,edm::StrictWeakOrdering<EcalRecHit> > >(pset.getParameter<edm::InputTag>("barrelRecHitProducer"));
27  PhotonIDLoose_token_ = consumes<edm::ValueMap<bool> >(pset.getParameter<edm::InputTag>("photonIDLoose"));
28  PhotonIDTight_token_ = consumes<edm::ValueMap<bool> >(pset.getParameter<edm::InputTag>("photonIDTight"));
29  endcapRecHit_token_ = consumes<edm::SortedCollection<EcalRecHit,edm::StrictWeakOrdering<EcalRecHit> > >(pset.getParameter<edm::InputTag>("endcapRecHitProducer"));
30  triggerEvent_token_ = consumes<trigger::TriggerEvent>(pset.getParameter<edm::InputTag>("triggerEvent"));
31  offline_pvToken_ = consumes<reco::VertexCollection>(pset.getUntrackedParameter<edm::InputTag>("offlinePV", edm::InputTag("offlinePrimaryVertices")));
32 
33  minPhoEtCut_ = pset.getParameter<double>("minPhoEtCut");
34  photonMaxEta_ = pset.getParameter<double>("maxPhoEta");
35  invMassEtCut_ = pset.getParameter<double>("invMassEtCut");
36  cutStep_ = pset.getParameter<double>("cutStep");
37  numberOfSteps_ = pset.getParameter<int>("numberOfSteps");
38  useBinning_ = pset.getParameter<bool>("useBinning");
39  useTriggerFiltering_ = pset.getParameter<bool>("useTriggerFiltering");
40  minimalSetOfHistos_ = pset.getParameter<bool>("minimalSetOfHistos");
41  excludeBkgHistos_ = pset.getParameter<bool>("excludeBkgHistos");
42  standAlone_ = pset.getParameter<bool>("standAlone");
43  isolationStrength_ = pset.getParameter<int>("isolationStrength");
44  isHeavyIon_ = pset.getUntrackedParameter<bool>("isHeavyIon",false);
45 
50 
51  nEvt_=0;
52 
53  // Determining parts...
54  parts_.push_back("AllEcal");
55  parts_.push_back("Barrel");
56  parts_.push_back("Endcaps");
57  // ...and types
58  types_.push_back("All");
59  types_.push_back("GoodCandidate");
60  if (!excludeBkgHistos_)
61  {
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;
136  reducedR9Bin_ = r9Bin_/4;
137  reducedSumBin_ = sumBin_/4;
138 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
edm::EDGetTokenT< reco::VertexCollection > offline_pvToken_
edm::EDGetTokenT< edm::SortedCollection< EcalRecHit, edm::StrictWeakOrdering< EcalRecHit > > > barrelRecHit_token_
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 > > > endcapRecHit_token_
edm::EDGetTokenT< trigger::TriggerEvent > triggerEvent_token_
edm::EDGetTokenT< std::vector< reco::Photon > > photon_token_
PhotonAnalyzer::~PhotonAnalyzer ( )
virtual

Definition at line 140 of file PhotonAnalyzer.cc.

141 {
142 }

Member Function Documentation

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

End loop over Reco photons

Implements edm::stream::EDAnalyzerBase.

Definition at line 607 of file PhotonAnalyzer.cc.

References edm::SortedCollection< T, SORT >::begin(), ChiSquaredProbability(), conversions_cfi::conversions, GOODCOLL_filter_cfg::cut, deltaR(), reco::deltaR(), deltaRMax, edm::SortedCollection< T, SORT >::end(), HcalObjRepresent::Fill(), edm::Event::getByToken(), i, edm::EventBase::id(), edm::Ref< C, T, F >::isNonnull(), edm::HandleBase::isValid(), diffTwoXMLs::label, edm::Handle< T >::product(), hitfit::scalar(), edm::RefVector< C, T, F >::size(), python.multivaluedict::sort(), mathSSE::sqrt(), testEve_cfg::tracks, and funct::true.

608 {
609  using namespace edm;
610 
611  if (nEvt_% prescaleFactor_ ) return;
612  nEvt_++;
613  LogInfo(fName_) << "PhotonAnalyzer Analyzing event number: " << e.id() << " Global Counter " << nEvt_ <<"\n";
614 
615  // Get the trigger results
616  bool validTriggerEvent=true;
617  edm::Handle<trigger::TriggerEvent> triggerEventHandle;
618  trigger::TriggerEvent triggerEvent;
619  e.getByToken(triggerEvent_token_,triggerEventHandle);
620  if(!triggerEventHandle.isValid()) {
621  edm::LogInfo(fName_) << "Error! Can't get the product: triggerEvent_" << endl;
622  validTriggerEvent=false;
623  }
624  if(validTriggerEvent) triggerEvent = *(triggerEventHandle.product());
625 
626  // Get the reconstructed photons
627  // bool validPhotons=true;
628  Handle<reco::PhotonCollection> photonHandle;
629  reco::PhotonCollection photonCollection;
630  e.getByToken(photon_token_ , photonHandle);
631  if ( !photonHandle.isValid()) {
632  edm::LogInfo(fName_) << "Error! Can't get the product: photon_token_" << endl;
633  // validPhotons=false;
634  }
635  // if(validPhotons) photonCollection = *(photonHandle.product());
636 
637  // Get the PhotonId objects
638  bool validloosePhotonID=true;
639  Handle<edm::ValueMap<bool> > loosePhotonFlag;
640  edm::ValueMap<bool> loosePhotonID;
641  e.getByToken(PhotonIDLoose_token_, loosePhotonFlag);
642  if ( !loosePhotonFlag.isValid()) {
643  edm::LogInfo(fName_) << "Error! Can't get the product: PhotonIDLoose_token_" << endl;
644  validloosePhotonID=false;
645  }
646  if (validloosePhotonID) loosePhotonID = *(loosePhotonFlag.product());
647 
648  bool validtightPhotonID=true;
649  Handle<edm::ValueMap<bool> > tightPhotonFlag;
650  edm::ValueMap<bool> tightPhotonID;
651  e.getByToken(PhotonIDTight_token_, tightPhotonFlag);
652  if ( !tightPhotonFlag.isValid()) {
653  edm::LogInfo(fName_) << "Error! Can't get the product: PhotonIDTight_token_" << endl;
654  validtightPhotonID=false;
655  }
656  if (validtightPhotonID) tightPhotonID = *(tightPhotonFlag.product());
657 
658 
660  if ( !isHeavyIon_) {
661  e.getByToken(offline_pvToken_, vtxH);
662  h_nRecoVtx_ ->Fill (float(vtxH->size()));
663  }
664 
665  // Create array to hold #photons/event information
666  int nPho[100][3][3];
667 
668  for (int cut=0; cut!=100; ++cut){
669  for (unsigned int type=0; type!=types_.size(); ++type){
670  for (unsigned int part=0; part!=parts_.size(); ++part){
671  nPho[cut][type][part] = 0;
672  }
673  }
674  }
675  // Create array to hold #conversions/event information
676  int nConv[100][3][3];
677 
678  for (int cut=0; cut!=100; ++cut){
679  for (unsigned int type=0; type!=types_.size(); ++type){
680  for (unsigned int part=0; part!=parts_.size(); ++part){
681  nConv[cut][type][part] = 0;
682  }
683  }
684  }
685 
686  //Prepare list of photon-related HLT filter names
687  vector<int> Keys;
688 
689  for(uint filterIndex=0;filterIndex<triggerEvent.sizeFilters();++filterIndex){ //loop over all trigger filters in event (i.e. filters passed)
690  string label = triggerEvent.filterTag(filterIndex).label();
691  if(label.find( "Photon" ) != string::npos ) { //get photon-related filters
692  for(uint filterKeyIndex=0;filterKeyIndex<triggerEvent.filterKeys(filterIndex).size();++filterKeyIndex){ //loop over keys to objects passing this filter
693  Keys.push_back(triggerEvent.filterKeys(filterIndex)[filterKeyIndex]); //add keys to a vector for later reference
694  }
695  }
696  }
697 
698  // sort Keys vector in ascending order
699  // and erases duplicate entries from the vector
700  sort(Keys.begin(),Keys.end());
701  for ( uint i=0 ; i<Keys.size() ; )
702  {
703  if (i!=(Keys.size()-1))
704  {
705  if (Keys[i]==Keys[i+1]) Keys.erase(Keys.begin()+i+1) ;
706  else ++i ;
707  }
708  else ++i ;
709  }
710 
711  //We now have a vector of unique keys to TriggerObjects passing a photon-related filter
712 
713  // old int photonCounter = 0;
714 
716  for(unsigned int iPho=0; iPho < photonHandle->size(); iPho++) {
717  reco::PhotonRef aPho(reco::PhotonRef(photonHandle, iPho));
718  // for( reco::PhotonCollection::const_iterator iPho = photonCollection.begin(); iPho != photonCollection.end(); iPho++) {
719 
720  //for HLT efficiency plots
721 
722  h_phoEta_preHLT_->Fill(aPho->eta());
723  h_phoEt_preHLT_->Fill( aPho->et());
724 
725  double deltaR=1000.;
726  double deltaRMin=1000.;
727  double deltaRMax=0.05;//sets deltaR threshold for matching photons to trigger objects
728 
729  for (vector<int>::const_iterator objectKey=Keys.begin();objectKey!=Keys.end();objectKey++){ //loop over keys to objects that fired photon triggers
730 
731  deltaR = reco::deltaR(triggerEvent.getObjects()[(*objectKey)].eta(),triggerEvent.getObjects()[(*objectKey)].phi(),aPho->superCluster()->eta(),aPho->superCluster()->phi());
732  if(deltaR < deltaRMin) deltaRMin = deltaR;
733 
734  }
735 
736  if(deltaRMin > deltaRMax) { //photon fails delta R cut
737  if(useTriggerFiltering_) continue; //throw away photons that haven't passed any photon filters
738  }
739 
740  if(deltaRMin <= deltaRMax) { //photon passes delta R cut
741  h_phoEta_postHLT_->Fill(aPho->eta() );
742  h_phoEt_postHLT_->Fill( aPho->et() );
743  }
744 
745  // if (aPho->et() < minPhoEtCut_) continue;
746  bool isLoosePhoton(false), isTightPhoton(false);
747  if ( photonSelection (aPho) ) isLoosePhoton=true ;
748 
749  //find out which part of the Ecal contains the photon
750  bool phoIsInBarrel=false;
751  bool phoIsInEndcap=false;
752  float etaPho = aPho->superCluster()->eta();
753  if ( fabs(etaPho) < 1.479 )
754  phoIsInBarrel=true;
755  else {
756  phoIsInEndcap=true;
757  }
758 
759  int part = 0;
760  if ( phoIsInBarrel ) part = 1;
761  if ( phoIsInEndcap ) part = 2;
762 
764  bool isIsolated=false;
765  if ( isolationStrength_ == 0) isIsolated = isLoosePhoton;
766  if ( isolationStrength_ == 1) isIsolated = isTightPhoton;
767 
768  int type=0;
769  if ( isIsolated ) type=1;
770  if ( !excludeBkgHistos_ && !isIsolated ) type=2;
771 
772  //get rechit collection containing this photon
773  bool validEcalRecHits=true;
774  edm::Handle<EcalRecHitCollection> ecalRecHitHandle;
775  EcalRecHitCollection ecalRecHitCollection;
776  if ( phoIsInBarrel ) {
777  // Get handle to barrel rec hits
778  e.getByToken(barrelRecHit_token_, ecalRecHitHandle);
779  if (!ecalRecHitHandle.isValid()) {
780  edm::LogError(fName_) << "Error! Can't get the product: barrelRecHit_token_";
781  validEcalRecHits=false;
782  }
783  }
784  else if ( phoIsInEndcap ) {
785  // Get handle to endcap rec hits
786  e.getByToken(endcapRecHit_token_, ecalRecHitHandle);
787  if (!ecalRecHitHandle.isValid()) {
788  edm::LogError(fName_) << "Error! Can't get the product: endcapRecHit_token";
789  validEcalRecHits=false;
790  }
791  }
792  if (validEcalRecHits) ecalRecHitCollection = *(ecalRecHitHandle.product());
793 
794  //if (aPho->isEBEEGap()) continue; //cut out gap photons
795 
796  //filling histograms to make isolation efficiencies
797  if(isLoosePhoton){
798  h_phoEta_Loose_->Fill(aPho->eta());
799  h_phoEt_Loose_->Fill( aPho->et() );
800  }
801  if(isTightPhoton){
802  h_phoEta_Tight_->Fill(aPho->eta());
803  h_phoEt_Tight_->Fill( aPho->et() );
804  }
805 
806  for (int cut = 0; cut !=numberOfSteps_; ++cut) { //loop over different transverse energy cuts
807  double Et = aPho->et();
808  bool passesCuts = false;
809 
810  //sorting the photon into the right Et-dependant folder
811  if ( useBinning_ && Et > (cut+1)*cutStep_ && ( (Et < (cut+2)*cutStep_) | (cut == numberOfSteps_-1) ) ){
812  passesCuts = true;
813  }
814  else if ( !useBinning_ && Et > (cut+1)*cutStep_ ){
815  passesCuts = true;
816  }
817 
818  if (passesCuts){
819  //filling isolation variable histograms
820 
821  //tracker isolation variables
822  fill2DHistoVector(h_nTrackIsolSolid_, aPho->nTrkSolidConeDR04(), cut,type);
823  fill2DHistoVector(h_nTrackIsolHollow_,aPho->nTrkHollowConeDR04(),cut,type);
824 
825  if (standAlone_) fill2DHistoVector(h_nTrackIsolSolidVsEta_, aPho->eta(),aPho->nTrkSolidConeDR04(), cut,type);
826  fill2DHistoVector(p_nTrackIsolSolidVsEta_, aPho->eta(),aPho->nTrkSolidConeDR04(), cut,type);
827  if (standAlone_) fill2DHistoVector(h_nTrackIsolHollowVsEta_,aPho->eta(),aPho->nTrkHollowConeDR04(),cut,type);
828  fill2DHistoVector(p_nTrackIsolHollowVsEta_,aPho->eta(),aPho->nTrkHollowConeDR04(),cut,type);
829 
830  if (standAlone_) fill2DHistoVector(h_nTrackIsolSolidVsEt_, aPho->et(), aPho->nTrkSolidConeDR04(), cut,type);
831  fill2DHistoVector(p_nTrackIsolSolidVsEt_, aPho->et(), aPho->nTrkSolidConeDR04(), cut,type);
832  if (standAlone_) fill2DHistoVector(h_nTrackIsolHollowVsEt_, aPho->et(), aPho->nTrkHollowConeDR04(),cut,type);
833  fill2DHistoVector(p_nTrackIsolHollowVsEt_, aPho->et(), aPho->nTrkHollowConeDR04(),cut,type);
834 
836  fill2DHistoVector(h_trackPtSumSolid_, aPho->trkSumPtSolidConeDR04(),cut,type);
837  fill2DHistoVector(h_trackPtSumHollow_,aPho->trkSumPtSolidConeDR04(),cut,type);
838 
839  if (standAlone_) fill2DHistoVector(h_trackPtSumSolidVsEta_, aPho->eta(),aPho->trkSumPtSolidConeDR04(), cut,type);
840  fill2DHistoVector(p_trackPtSumSolidVsEta_, aPho->eta(),aPho->trkSumPtSolidConeDR04(), cut,type);
841  if (standAlone_) fill2DHistoVector(h_trackPtSumHollowVsEta_,aPho->eta(),aPho->trkSumPtHollowConeDR04(),cut,type);
842  fill2DHistoVector(p_trackPtSumHollowVsEta_,aPho->eta(),aPho->trkSumPtHollowConeDR04(),cut,type);
843 
844  if (standAlone_) fill2DHistoVector(h_trackPtSumSolidVsEt_, aPho->et(), aPho->trkSumPtSolidConeDR04(), cut,type);
845  fill2DHistoVector(p_trackPtSumSolidVsEt_, aPho->et(), aPho->trkSumPtSolidConeDR04(), cut,type);
846  if (standAlone_) fill2DHistoVector(h_trackPtSumHollowVsEt_, aPho->et(), aPho->trkSumPtHollowConeDR04(),cut,type);
847  fill2DHistoVector(p_trackPtSumHollowVsEt_, aPho->et(), aPho->trkSumPtHollowConeDR04(),cut,type);
848  //calorimeter isolation variables
849 
850  fill2DHistoVector(h_ecalSum_,aPho->ecalRecHitSumEtConeDR04(),cut,type);
851  if(aPho->isEB()){fill2DHistoVector(h_ecalSumEBarrel_,aPho->ecalRecHitSumEtConeDR04(),cut,type);}
852  if(aPho->isEE()){fill2DHistoVector(h_ecalSumEEndcap_,aPho->ecalRecHitSumEtConeDR04(),cut,type);}
853  if (standAlone_) fill2DHistoVector(h_ecalSumVsEta_,aPho->eta(),aPho->ecalRecHitSumEtConeDR04(),cut,type);
854  fill2DHistoVector(p_ecalSumVsEta_,aPho->eta(),aPho->ecalRecHitSumEtConeDR04(),cut,type);
855  if (standAlone_) fill2DHistoVector(h_ecalSumVsEt_, aPho->et(), aPho->ecalRecHitSumEtConeDR04(),cut,type);
856  fill3DHistoVector(p_ecalSumVsEt_, aPho->et(), aPho->ecalRecHitSumEtConeDR04(),cut,type,part);
857 
859 
860  fill2DHistoVector(h_hcalSum_,aPho->hcalTowerSumEtConeDR04(),cut,type);
861  if(aPho->isEB()){fill2DHistoVector(h_hcalSumEBarrel_,aPho->hcalTowerSumEtConeDR04(),cut,type);}
862  if(aPho->isEE()){fill2DHistoVector(h_hcalSumEEndcap_,aPho->hcalTowerSumEtConeDR04(),cut,type);}
863  if (standAlone_) fill2DHistoVector(h_hcalSumVsEta_,aPho->eta(),aPho->hcalTowerSumEtConeDR04(),cut,type);
864  fill2DHistoVector(p_hcalSumVsEta_,aPho->eta(),aPho->hcalTowerSumEtConeDR04(),cut,type);
865  if (standAlone_) fill2DHistoVector(h_hcalSumVsEt_, aPho->et(), aPho->hcalTowerSumEtConeDR04(),cut,type);
866  fill3DHistoVector(p_hcalSumVsEt_, aPho->et(), aPho->hcalTowerSumEtConeDR04(),cut,type,part);
867 
868  fill3DHistoVector(h_hOverE_,aPho->hadronicOverEm(),cut,type,part);
869  fill2DHistoVector(p_hOverEVsEta_,aPho->eta(),aPho->hadronicOverEm(),cut,type);
870  fill2DHistoVector(p_hOverEVsEt_, aPho->et(), aPho->hadronicOverEm(),cut,type);
871 
872  fill3DHistoVector(h_h1OverE_,aPho->hadronicDepth1OverEm(),cut,type,part);
873  fill3DHistoVector(h_h2OverE_,aPho->hadronicDepth2OverEm(),cut,type,part);
874 
875  // filling pf isolation variables
876  if(aPho->isEB()) {
877  fill2DHistoVector( h_phoIsoBarrel_, aPho->photonIso(),cut,type);
878  fill2DHistoVector( h_chHadIsoBarrel_, aPho->chargedHadronIso(),cut,type);
879  fill2DHistoVector( h_nHadIsoBarrel_, aPho->neutralHadronIso(),cut,type);
880  }
881  if(aPho->isEE()) {
882  fill2DHistoVector( h_phoIsoEndcap_, aPho->photonIso(),cut,type);
883  fill2DHistoVector( h_chHadIsoEndcap_, aPho->chargedHadronIso(),cut,type);
884  fill2DHistoVector( h_nHadIsoEndcap_, aPho->neutralHadronIso(),cut,type);
885  }
886 
887  //filling photon histograms
888  nPho[cut][0][0]++;
889  nPho[cut][0][part]++;
890  if(type != 0)
891  {
892  nPho[cut][type][0]++;
893  nPho[cut][type][part]++;
894  }
895 
896  //energy variables
897 
898  fill3DHistoVector(h_phoE_, aPho->energy(),cut,type,part);
899  fill3DHistoVector(h_phoSigmaEoverE_, aPho->getCorrectedEnergyError(aPho->getCandidateP4type())/aPho->energy(),cut,type,part);
900 
901  if ( !isHeavyIon_) fill3DHistoVector(p_phoSigmaEoverEvsNVtx_, float(vtxH->size()), aPho->getCorrectedEnergyError(aPho->getCandidateP4type())/aPho->energy(),cut,type,part);
902 
903  fill3DHistoVector(h_phoEt_,aPho->et(), cut,type,part);
904 
905  //geometrical variables
906 
907  fill2DHistoVector(h_phoEta_,aPho->eta(),cut,type);
908  fill2DHistoVector(h_scEta_, aPho->superCluster()->eta(),cut,type);
909 
910  fill3DHistoVector(h_phoPhi_,aPho->phi(),cut,type,part);
911  fill3DHistoVector(h_scPhi_, aPho->superCluster()->phi(),cut,type,part);
912 
913  //shower shape variables
914 
915  fill3DHistoVector(h_r9_,aPho->r9(),cut,type,part);
916  if (standAlone_) fill2DHistoVector(h_r9VsEta_,aPho->eta(),aPho->r9(),cut,type);
917  fill2DHistoVector(p_r9VsEta_,aPho->eta(),aPho->r9(),cut,type);
918  if (standAlone_) fill2DHistoVector(h_r9VsEt_, aPho->et(), aPho->r9(),cut,type);
919  fill2DHistoVector(p_r9VsEt_, aPho->et(), aPho->r9(),cut,type);
920 
921  if (standAlone_) fill2DHistoVector(h_e1x5VsEta_,aPho->eta(),aPho->e1x5(),cut,type);
922  fill2DHistoVector(p_e1x5VsEta_,aPho->eta(),aPho->e1x5(),cut,type);
923  if (standAlone_) fill2DHistoVector(h_e1x5VsEt_, aPho->et(), aPho->e1x5(),cut,type);
924  fill2DHistoVector(p_e1x5VsEt_, aPho->et(), aPho->e1x5(),cut,type);
925 
926  if (standAlone_) fill2DHistoVector(h_e2x5VsEta_,aPho->eta(),aPho->e2x5(),cut,type);
927  fill2DHistoVector(p_e2x5VsEta_,aPho->eta(),aPho->e2x5(),cut,type);
928  if (standAlone_) fill2DHistoVector(h_e2x5VsEt_, aPho->et(), aPho->e2x5(),cut,type);
929  fill2DHistoVector(p_e2x5VsEt_, aPho->et(), aPho->e2x5(),cut,type);
930 
931  if (standAlone_) fill2DHistoVector(h_maxEXtalOver3x3VsEta_,aPho->eta(),aPho->maxEnergyXtal()/aPho->e3x3(),cut,type);
932  fill2DHistoVector(p_maxEXtalOver3x3VsEta_,aPho->eta(),aPho->maxEnergyXtal()/aPho->e3x3(),cut,type);
933  if (standAlone_) fill2DHistoVector(h_maxEXtalOver3x3VsEt_, aPho->et(), aPho->maxEnergyXtal()/aPho->e3x3(),cut,type);
934  fill2DHistoVector(p_maxEXtalOver3x3VsEt_, aPho->et(), aPho->maxEnergyXtal()/aPho->e3x3(),cut,type);
935 
936  if (standAlone_) fill2DHistoVector(h_r1x5VsEta_,aPho->eta(),aPho->r1x5(),cut,type);
937  fill2DHistoVector(p_r1x5VsEta_,aPho->eta(),aPho->r1x5(),cut,type);
938  if (standAlone_) fill2DHistoVector(h_r1x5VsEt_, aPho->et(), aPho->r1x5(),cut,type);
939  fill2DHistoVector(p_r1x5VsEt_, aPho->et(), aPho->r1x5(),cut,type);
940 
941  if (standAlone_) fill2DHistoVector(h_r2x5VsEta_,aPho->eta(),aPho->r2x5(),cut,type);
942  fill2DHistoVector(p_r2x5VsEta_,aPho->eta(),aPho->r2x5(),cut,type);
943  if (standAlone_) fill2DHistoVector(h_r2x5VsEt_, aPho->et(), aPho->r2x5(),cut,type);
944  fill2DHistoVector(p_r2x5VsEt_, aPho->et(), aPho->r2x5(),cut,type);
945 
946  fill3DHistoVector(h_phoSigmaIetaIeta_,aPho->sigmaIetaIeta(),cut,type,part);
947  if (standAlone_) fill2DHistoVector(h_sigmaIetaIetaVsEta_,aPho->eta(),aPho->sigmaIetaIeta(),cut,type);
948  fill2DHistoVector(p_sigmaIetaIetaVsEta_,aPho->eta(),aPho->sigmaIetaIeta(),cut,type);
949 
950  //filling histograms for photons containing a bad ECAL channel
951  bool atLeastOneDeadChannel=false;
952  for(reco::CaloCluster_iterator bcIt = aPho->superCluster()->clustersBegin();bcIt != aPho->superCluster()->clustersEnd(); ++bcIt) { //loop over basic clusters in SC
953  for(vector< pair<DetId, float> >::const_iterator rhIt = (*bcIt)->hitsAndFractions().begin();rhIt != (*bcIt)->hitsAndFractions().end(); ++rhIt) { //loop over rec hits in basic cluster
954 
955  for(EcalRecHitCollection::const_iterator it = ecalRecHitCollection.begin(); it != ecalRecHitCollection.end(); ++it) { //loop over all rec hits to find the right ones
956  if (rhIt->first == (*it).id() ) { //found the matching rechit
957  if ( (*it).recoFlag() == 9 ) { //has a bad channel
958  atLeastOneDeadChannel=true;
959  break;
960  }
961  }
962  }
963  }
964  }
965  if ( atLeastOneDeadChannel ) {
969  }
970 
971  // filling conversion-related histograms
972  if(aPho->hasConversionTracks()){
973  nConv[cut][0][0]++;
974  nConv[cut][0][part]++;
975  nConv[cut][type][0]++;
976  nConv[cut][type][part]++;
977  }
978 
979  //loop over conversions (don't forget, we're still inside the photon loop,
980  // i.e. these are all the conversions for this ONE photon, not for all the photons in the event)
981  reco::ConversionRefVector conversions = aPho->conversions();
982  for (unsigned int iConv=0; iConv<conversions.size(); iConv++) {
983 
984  reco::ConversionRef aConv=conversions[iConv];
985 
986  if ( aConv->nTracks() <2 ) continue;
987 
988  //fill histogram for denominator of vertex reconstruction efficiency plot
989  if(cut==0) h_phoEta_Vertex_->Fill(aConv->refittedPairMomentum().eta());
990 
991  if ( !(aConv->conversionVertex().isValid()) ) continue;
992 
993  float chi2Prob = ChiSquaredProbability( aConv->conversionVertex().chi2(), aConv->conversionVertex().ndof() );
994 
995  if(chi2Prob<0.0005) continue;
996 
997  fill2DHistoVector(h_vertexChi2Prob_,chi2Prob,cut,type);
998 
999  fill3DHistoVector(h_phoConvE_, aPho->energy(),cut,type,part);
1002 
1003  if (cut==0 && isLoosePhoton){
1004  h_convEta_Loose_->Fill(aPho->eta());
1005  h_convEt_Loose_->Fill( aPho->et() );
1006  }
1007  if (cut==0 && isTightPhoton){
1008  h_convEta_Tight_->Fill(aPho->eta());
1009  h_convEt_Tight_->Fill( aPho->et() );
1010  }
1011 
1012  fill2DHistoVector(h_phoConvEta_,aConv->refittedPairMomentum().eta(),cut,type);
1013  fill3DHistoVector(h_phoConvPhi_,aConv->refittedPairMomentum().phi(),cut,type,part);
1014 
1015  //we use the photon position because we'll be dividing it by a photon histogram (not a conversion histogram)
1018 
1019  //vertex histograms
1020  double convR= sqrt(aConv->conversionVertex().position().perp2());
1021  double scalar = aConv->conversionVertex().position().x()*aConv->refittedPairMomentum().x() + aConv->conversionVertex().position().y()*aConv->refittedPairMomentum().y();
1022  if ( scalar < 0 ) convR= -convR;
1023 
1024  fill2DHistoVector(h_convVtxRvsZ_,aConv->conversionVertex().position().z(), convR,cut,type);//trying to "see" R-Z view of tracker
1025  fill2DHistoVector(h_convVtxZ_,aConv->conversionVertex().position().z(), cut,type);
1026 
1027 
1028  if( fabs(aPho->eta()) > 1.5){//trying to "see" tracker endcaps
1029  fill2DHistoVector(h_convVtxZEndcap_,aConv->conversionVertex().position().z(), cut,type);
1030  }
1031  else if(fabs(aPho->eta()) < 1){//trying to "see" tracker barrel
1032  fill2DHistoVector(h_convVtxR_,convR,cut,type);
1033  fill2DHistoVector(h_convVtxYvsX_,aConv->conversionVertex().position().x(),aConv->conversionVertex().position().y(),cut,type);
1034  }
1035 
1036 
1037  const std::vector<edm::RefToBase<reco::Track> > tracks = aConv->tracks();
1038 
1039 
1040  for (unsigned int i=0; i<tracks.size(); i++) {
1041  fill2DHistoVector(h_tkChi2_,tracks[i]->normalizedChi2(),cut,type);
1042  fill2DHistoVector(p_tkChi2VsEta_,aPho->eta(),tracks[i]->normalizedChi2(),cut,type);
1043  fill2DHistoVector(p_dCotTracksVsEta_,aPho->eta(),aConv->pairCotThetaSeparation(),cut,type);
1044  fill2DHistoVector(p_nHitsVsEta_,aPho->eta(),float(tracks[i]->numberOfValidHits()),cut,type);
1045  }
1046 
1047  //calculating delta eta and delta phi of the two tracks
1048 
1049  float DPhiTracksAtVtx = -99;
1050  float dPhiTracksAtEcal= -99;
1051  float dEtaTracksAtEcal= -99;
1052 
1053  float phiTk1= aConv->tracksPin()[0].phi();
1054  float phiTk2= aConv->tracksPin()[1].phi();
1055  DPhiTracksAtVtx = phiTk1-phiTk2;
1056  DPhiTracksAtVtx = phiNormalization( DPhiTracksAtVtx );
1057 
1058  if (aConv->bcMatchingWithTracks().size() > 0 && aConv->bcMatchingWithTracks()[0].isNonnull() && aConv->bcMatchingWithTracks()[1].isNonnull() ) {
1059  float recoPhi1 = aConv->ecalImpactPosition()[0].phi();
1060  float recoPhi2 = aConv->ecalImpactPosition()[1].phi();
1061  float recoEta1 = aConv->ecalImpactPosition()[0].eta();
1062  float recoEta2 = aConv->ecalImpactPosition()[1].eta();
1063 
1064  recoPhi1 = phiNormalization(recoPhi1);
1065  recoPhi2 = phiNormalization(recoPhi2);
1066 
1067  dPhiTracksAtEcal = recoPhi1 -recoPhi2;
1068  dPhiTracksAtEcal = phiNormalization( dPhiTracksAtEcal );
1069  dEtaTracksAtEcal = recoEta1 -recoEta2;
1070  }
1071 
1072  fill3DHistoVector(h_dPhiTracksAtVtx_,DPhiTracksAtVtx,cut,type,part);
1073  fill3DHistoVector(h_dPhiTracksAtEcal_,fabs(dPhiTracksAtEcal),cut,type,part);
1074  fill3DHistoVector(h_dEtaTracksAtEcal_, dEtaTracksAtEcal,cut,type,part);
1075  fill3DHistoVector(h_eOverPTracks_,aConv->EoverPrefittedTracks(),cut,type,part);
1076  fill3DHistoVector(h_pOverETracks_,1./aConv->EoverPrefittedTracks(),cut,type,part);
1077  fill3DHistoVector(h_dCotTracks_,aConv->pairCotThetaSeparation(),cut,type,part);
1078  }//end loop over conversions
1079  }//end loop over photons passing cuts
1080  }//end loop over transverse energy cuts
1081 
1082  //make invariant mass plots
1083 
1084  if (isIsolated && aPho->et()>=invMassEtCut_){
1085  for(unsigned int iPho2=iPho+1; iPho2 < photonHandle->size(); iPho2++) {
1086  reco::PhotonRef aPho2(reco::PhotonRef(photonHandle, iPho2));
1087 
1088  // for (reco::PhotonCollection::const_iterator iPho2=iPho+1; iPho2!=photonCollection.end(); iPho2++){
1089 
1090  // edm::Ref<reco::PhotonCollection> photonref2(photonHandle, photonCounter); //note: it's correct to use photonCounter and not photonCounter+1
1091  //since it has already been incremented earlier
1092 
1093  bool isTightPhoton2(false), isLoosePhoton2(false);
1094  if ( photonSelection (aPho2) ) isLoosePhoton2=true;
1095 
1096  // Old if ( !isHeavyIon_ ) {
1097  // isTightPhoton2 = (tightPhotonID)[aPho2];
1098  // isLoosePhoton2 = (loosePhotonID)[aPho2];
1099  // }
1100 
1101  bool isIsolated2=false;
1102  if ( isolationStrength_ == 0) isIsolated2 = isLoosePhoton2;
1103  if ( isolationStrength_ == 1) isIsolated2 = isTightPhoton2;
1104 
1105  reco::ConversionRefVector conversions = aPho->conversions();
1106  reco::ConversionRefVector conversions2 = aPho2->conversions();
1107 
1108  if(isIsolated2 && aPho2->et()>=invMassEtCut_){
1109 
1110  math::XYZTLorentzVector p12 = aPho->p4()+aPho2->p4();
1111  float gamgamMass2 = p12.Dot(p12);
1112 
1113 
1114  h_invMassAllPhotons_ -> Fill(sqrt( gamgamMass2 ));
1115  if(aPho->isEB() && aPho2->isEB()){h_invMassPhotonsEBarrel_ -> Fill(sqrt( gamgamMass2 ));}
1116  if(aPho->isEE() || aPho2->isEE()){h_invMassPhotonsEEndcap_ -> Fill(sqrt( gamgamMass2 ));}
1117 
1118  if(conversions.size()!=0 && conversions[0]->nTracks() >= 2){
1119  if(conversions2.size()!=0 && conversions2[0]->nTracks() >= 2) h_invMassTwoWithTracks_ -> Fill(sqrt( gamgamMass2 ));
1120  else h_invMassOneWithTracks_ -> Fill(sqrt( gamgamMass2 ));
1121  }
1122  else if(conversions2.size()!=0 && conversions2[0]->nTracks() >= 2) h_invMassOneWithTracks_ -> Fill(sqrt( gamgamMass2 ));
1123  else h_invMassZeroWithTracks_ -> Fill(sqrt( gamgamMass2 ));
1124  }
1125  }
1126  }
1127  }
1128 
1129  //filling number of photons/conversions per event histograms
1130  for (int cut = 0; cut !=numberOfSteps_; ++cut) {
1131  for(uint type=0;type!=types_.size();++type){
1132  for(uint part=0;part!=parts_.size();++part){
1133  h_nPho_[cut][type][part]-> Fill (float(nPho[cut][type][part]));
1134  h_nConv_[cut][type][part]-> Fill (float(nConv[cut][type][part]));
1135  }
1136  }
1137  }
1138 }//End of Analyze method
std::vector< std::vector< MonitorElement * > > h_sigmaIetaIetaVsEta_
type
Definition: HCALResponse.h:21
MonitorElement * h_invMassOneWithTracks_
std::vector< std::vector< std::vector< MonitorElement * > > > h_dEtaTracksAtEcal_
std::vector< std::vector< std::vector< MonitorElement * > > > h_phoEt_
int i
Definition: DBlmapReader.cc:9
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:252
std::vector< std::vector< MonitorElement * > > p_trackPtSumSolidVsEta_
std::vector< std::vector< MonitorElement * > > h_nTrackIsolSolid_
std::vector< std::vector< MonitorElement * > > p_hOverEVsEta_
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_
edm::EDGetTokenT< edm::SortedCollection< EcalRecHit, edm::StrictWeakOrdering< EcalRecHit > > > barrelRecHit_token_
edm::EDGetTokenT< edm::ValueMap< bool > > PhotonIDLoose_token_
std::vector< std::vector< MonitorElement * > > p_sigmaIetaIetaVsEta_
double deltaRMax
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:457
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_
std::vector< std::string > parts_
MonitorElement * h_convEta_Loose_
MonitorElement * h_nRecoVtx_
std::vector< std::vector< MonitorElement * > > h_nHadIsoBarrel_
std::vector< std::vector< MonitorElement * > > h_phoEta_
std::vector< EcalRecHit >::const_iterator const_iterator
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_
std::vector< std::vector< MonitorElement * > > h_nTrackIsolHollow_
MonitorElement * h_phoEta_preHLT_
edm::EDGetTokenT< edm::ValueMap< bool > > PhotonIDTight_token_
std::vector< std::vector< MonitorElement * > > h_convVtxZ_
std::vector< std::vector< MonitorElement * > > h_ecalSumVsEta_
double deltaR(const T1 &t1, const T2 &t2)
Definition: deltaR.h:48
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_
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_
std::vector< std::vector< MonitorElement * > > h_r9VsEta_
std::vector< std::vector< MonitorElement * > > h_hcalSumEEndcap_
std::vector< std::vector< MonitorElement * > > h_vertexChi2Prob_
MonitorElement * h_phoEt_postHLT_
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_
void Fill(long long x)
std::vector< std::vector< MonitorElement * > > h_ecalSum_
std::vector< std::vector< MonitorElement * > > p_dCotTracksVsEta_
std::vector< std::vector< std::vector< MonitorElement * > > > p_hcalSumVsEt_
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_
std::vector< std::vector< std::vector< MonitorElement * > > > h_phoConvE_
bool photonSelection(const reco::PhotonRef &p)
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_
std::vector< std::vector< std::vector< MonitorElement * > > > h_phoConvEt_
std::vector< std::vector< MonitorElement * > > p_nHitsVsEta_
unsigned int prescaleFactor_
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
std::vector< std::string > types_
T sqrt(T t)
Definition: SSEVec.h:48
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< std::vector< MonitorElement * > > > h_dPhiTracksAtVtx_
std::vector< std::vector< MonitorElement * > > h_phoIsoEndcap_
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 ChiSquaredProbability(double chiSquared, double nrDOF)
std::vector< std::vector< std::vector< MonitorElement * > > > h_phoSigmaIetaIeta_
edm::EDGetTokenT< edm::SortedCollection< EcalRecHit, edm::StrictWeakOrdering< EcalRecHit > > > endcapRecHit_token_
std::vector< std::vector< MonitorElement * > > h_e2x5VsEt_
std::vector< std::vector< MonitorElement * > > h_phoPhi_BadChannels_
std::vector< std::vector< MonitorElement * > > p_nTrackIsolSolidVsEta_
bool isValid() const
Definition: HandleBase.h:75
float phiNormalization(float &a)
MonitorElement * h_phoEta_Tight_
std::vector< std::vector< MonitorElement * > > h_nTrackIsolSolidVsEt_
std::vector< std::vector< std::vector< MonitorElement * > > > p_phoSigmaEoverEvsNVtx_
MonitorElement * h_phoEt_Loose_
const_iterator end() const
double deltaR(double eta1, double eta2, double phi1, double phi2)
Definition: TreeUtility.cc:17
std::vector< std::vector< std::vector< MonitorElement * > > > p_ecalSumVsEt_
std::vector< std::vector< std::vector< MonitorElement * > > > h_r9_
MonitorElement * h_invMassAllPhotons_
std::vector< std::vector< MonitorElement * > > p_nTrackIsolHollowVsEt_
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_
T const * product() const
Definition: Handle.h:81
std::vector< std::vector< MonitorElement * > > p_e1x5VsEt_
tuple tracks
Definition: testEve_cfg.py:39
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_
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_
edm::EventID id() const
Definition: EventBase.h:60
std::vector< std::vector< MonitorElement * > > p_trackPtSumSolidVsEt_
std::vector< std::vector< MonitorElement * > > p_ecalSumVsEta_
std::vector< std::vector< MonitorElement * > > h_tkChi2_
std::vector< std::vector< MonitorElement * > > h_trackPtSumHollowVsEta_
std::vector< std::vector< MonitorElement * > > h_phoConvEtaForEfficiency_
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:99
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_
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:183
std::vector< std::vector< MonitorElement * > > p_tkChi2VsEta_
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 494 of file PhotonAnalyzer.cc.

References DQMStore::IBooker::book1D(), DQMStore::IBooker::book2D(), DQMStore::IBooker::bookProfile(), gather_cfg::cout, GOODCOLL_filter_cfg::cut, class-composition::kind, DQMStore::IBooker::pwd(), DQMStore::IBooker::setCurrentFolder(), indexGen::title, SiStripMonitorClusterAlca_cfi::xmax, SiStripMonitorClusterAlca_cfi::xmin, SiStripMonitorClusterAlca_cfi::ymax, and SiStripMonitorClusterAlca_cfi::ymin.

499 {
500  int histo_index = 0;
501 
502  vector<MonitorElement*> temp1DVector;
503 
504  //determining which folder we're in
505  bool conversionPlot = false;
506  if(iBooker.pwd().find( "Conversions" ) != string::npos) conversionPlot = true;
507  bool TwoDPlot = false;
508  if(histoName.find( "2D" ) != string::npos) TwoDPlot = true;
509 
510  if(conversionPlot){
512  histo_index = histo_index_conversions_;
513  }
514  else{
516  histo_index = histo_index_photons_;
517  }
518 
519  stringstream histo_number_stream;
520  histo_number_stream << "h_";
521  if(histo_index<10) histo_number_stream << "0";
522  histo_number_stream << histo_index << "_";
523 
524  for(int cut = 0; cut != numberOfSteps_; ++cut){ //looping over Et cut values
525  for(uint type=0;type!=types_.size();++type){ //looping over isolation type
526  currentFolder_.str("");
527  currentFolder_ << "Egamma/"+fName_+"/" << types_[type] << "Photons/Et above " << (cut+1)*cutStep_ << " GeV";
528  if(conversionPlot) currentFolder_ << "/Conversions";
529 
530  iBooker.setCurrentFolder(currentFolder_.str());
531 
532  string kind;
533  if(conversionPlot) kind = " Conversions: ";
534  else kind = " Photons: ";
535 
536  if(histoType=="1D") temp1DVector.push_back(iBooker.book1D( histo_number_stream.str()+histoName,types_[type]+kind+title,xbin,xmin,xmax));
537  else if(histoType=="2D"){
538  if((TwoDPlot && type==0) || !TwoDPlot){//only book the 2D plots in the "AllPhotons" folder
539  temp1DVector.push_back(iBooker.book2D( histo_number_stream.str()+histoName,types_[type]+kind+title,xbin,xmin,xmax,ybin,ymin,ymax));
540  }
541  }
542  else if(histoType=="Profile") temp1DVector.push_back(iBooker.bookProfile( histo_number_stream.str()+histoName,types_[type]+kind+title,xbin,xmin,xmax,ybin,ymin,ymax,""));
543  else cout << "bad histoType\n";
544  }
545 
546  temp2DVector.push_back(temp1DVector);
547  temp1DVector.clear();
548  }
549 }
type
Definition: HCALResponse.h:21
int histo_index_conversions_
std::stringstream currentFolder_
std::string fName_
std::vector< std::string > types_
tuple cout
Definition: gather_cfg.py:121
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 551 of file PhotonAnalyzer.cc.

References DQMStore::IBooker::book1D(), DQMStore::IBooker::book2D(), DQMStore::IBooker::bookProfile(), gather_cfg::cout, GOODCOLL_filter_cfg::cut, class-composition::kind, DQMStore::IBooker::pwd(), DQMStore::IBooker::setCurrentFolder(), indexGen::title, SiStripMonitorClusterAlca_cfi::xmax, SiStripMonitorClusterAlca_cfi::xmin, SiStripMonitorClusterAlca_cfi::ymax, and SiStripMonitorClusterAlca_cfi::ymin.

556 {
557  int histo_index = 0;
558 
559  vector<MonitorElement*> temp1DVector;
560  vector<vector<MonitorElement*> > temp2DVector;
561 
562  //determining which folder we're in
563  bool conversionPlot = false;
564  if(iBooker.pwd().find( "Conversions" ) != string::npos) conversionPlot = true;
565 
566  if(conversionPlot){
568  histo_index = histo_index_conversions_;
569  }
570  else{
572  histo_index = histo_index_photons_;
573  }
574 
575  stringstream histo_number_stream;
576  histo_number_stream << "h_";
577  if(histo_index<10) histo_number_stream << "0";
578  histo_number_stream << histo_index << "_";
579 
580  for(int cut = 0; cut != numberOfSteps_; ++cut){ //looping over Et cut values
581  for(uint type=0;type!=types_.size();++type){ //looping over isolation type
582  for(uint part=0;part!=parts_.size();++part){ //looping over different parts of the ecal
583  currentFolder_.str("");
584  currentFolder_ << "Egamma/"+fName_+"/" << types_[type] << "Photons/Et above " << (cut+1)*cutStep_ << " GeV";
585  if(conversionPlot) currentFolder_ << "/Conversions";
586  iBooker.setCurrentFolder(currentFolder_.str());
587 
588  string kind;
589  if(conversionPlot) kind = " Conversions: ";
590  else kind = " Photons: ";
591 
592  if(histoType=="1D") temp1DVector.push_back(iBooker.book1D( histo_number_stream.str()+histoName+parts_[part],types_[type]+kind+parts_[part]+": "+title,xbin,xmin,xmax));
593  else if(histoType=="2D") temp1DVector.push_back(iBooker.book2D( histo_number_stream.str()+histoName+parts_[part],types_[type]+kind+parts_[part]+": "+title,xbin,xmin,xmax,ybin,ymin,ymax));
594  else if(histoType=="Profile") temp1DVector.push_back(iBooker.bookProfile( histo_number_stream.str()+histoName+parts_[part],types_[type]+kind+parts_[part]+": "+title,xbin,xmin,xmax,ybin,ymin,ymax,""));
595  else cout << "bad histoType\n";
596  }
597  temp2DVector.push_back(temp1DVector);
598  temp1DVector.clear();
599  }
600  temp3DVector.push_back(temp2DVector);
601  temp2DVector.clear();
602  }
603 }
type
Definition: HCALResponse.h:21
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:121
MonitorElement * PhotonAnalyzer::bookHisto ( DQMStore::IBooker ,
std::string  histoName,
std::string  title,
int  bin,
double  min,
double  max 
)
private

Definition at line 470 of file PhotonAnalyzer.cc.

References newFWLiteAna::bin, DQMStore::IBooker::book1D(), bookConverter::max, min(), DQMStore::IBooker::pwd(), and indexGen::title.

473 {
474  int histo_index = 0;
475  stringstream histo_number_stream;
476 
477  //determining which folder we're in
478  if(iBooker.pwd().find( "InvMass" ) != string::npos){
480  histo_index = histo_index_invMass_;
481  }
482  if(iBooker.pwd().find( "Efficiencies" ) != string::npos){
484  histo_index = histo_index_efficiency_;
485  }
486 
487  histo_number_stream << "h_";
488  if(histo_index<10) histo_number_stream << "0";
489  histo_number_stream << histo_index;
490 
491  return iBooker.book1D(histo_number_stream.str() + "_" + histoName,title,bin,min,max);
492 }
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 144 of file PhotonAnalyzer.cc.

147 {
149 
150  bookHistogramsEfficiency(iBooker);
151  bookHistogramsInvMass(iBooker);
152  bookHistogramsPhotons(iBooker);
153  bookHistogramsConversions(iBooker);
154 
156 }
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 428 of file PhotonAnalyzer.cc.

References DQMStore::IBooker::setCurrentFolder().

429 {
430  // Set folder
431  iBooker.setCurrentFolder("Egamma/"+fName_+"/AllPhotons/Et Above 0 GeV/Conversions");
432 
433  //ENERGY VARIABLES
434  book3DHistoVector(iBooker, h_phoConvE_ , "1D", "phoConvE","E;E (GeV)",eBin_,eMin_,eMax_);
435  book3DHistoVector(iBooker, h_phoConvEt_ , "1D", "phoConvEt","E_{T};E_{T} (GeV)",etBin_,etMin_,etMax_);
436 
437  //GEOMETRICAL VARIABLES
438  book2DHistoVector(iBooker, h_phoConvEta_ , "1D", "phoConvEta","#eta;#eta",etaBin_,etaMin_,etaMax_);
439  book3DHistoVector(iBooker, h_phoConvPhi_ , "1D", "phoConvPhi","#phi;#phi",phiBin_,phiMin_,phiMax_);
440 
441  //NUMBER OF PHOTONS
442  book3DHistoVector(iBooker, h_nConv_ , "1D", "nConv","Number Of Conversions per Event ;# conversions",numberBin_,numberMin_,numberMax_);
443 
444  //SHOWER SHAPE VARIABLES
445  book3DHistoVector(iBooker, h_phoConvR9_ , "1D", "phoConvR9","R9;R9",r9Bin_,r9Min_,r9Max_);
446 
447  //TRACK RELATED VARIABLES
448  book3DHistoVector(iBooker, h_eOverPTracks_ , "1D", "eOverPTracks","E/P;E/P",eOverPBin_,eOverPMin_,eOverPMax_);
449  book3DHistoVector(iBooker, h_pOverETracks_ , "1D", "pOverETracks","P/E;P/E",eOverPBin_,eOverPMin_,eOverPMax_);
450  book3DHistoVector(iBooker, h_dPhiTracksAtVtx_ , "1D", "dPhiTracksAtVtx", "#Delta#phi of Tracks at Vertex;#Delta#phi",dPhiTracksBin_,dPhiTracksMin_,dPhiTracksMax_);
451  book3DHistoVector(iBooker, h_dPhiTracksAtEcal_, "1D", "dPhiTracksAtEcal", "Abs(#Delta#phi) of Tracks at Ecal;#Delta#phi",dPhiTracksBin_,0.,dPhiTracksMax_);
452  book3DHistoVector(iBooker, h_dEtaTracksAtEcal_, "1D", "dEtaTracksAtEcal", "#Delta#eta of Tracks at Ecal;#Delta#eta",dEtaTracksBin_,dEtaTracksMin_,dEtaTracksMax_);
453  book3DHistoVector(iBooker, h_dCotTracks_ , "1D", "dCotTracks","#Deltacot(#theta) of Tracks;#Deltacot(#theta)",dEtaTracksBin_,dEtaTracksMin_,dEtaTracksMax_);
454  book2DHistoVector(iBooker, p_dCotTracksVsEta_ , "Profile", "dCotTracksVsEta","Avg #Deltacot(#theta) of Tracks vs #eta;#eta;#Deltacot(#theta)",etaBin_,etaMin_,etaMax_,dEtaTracksBin_,dEtaTracksMin_,dEtaTracksMax_);
455  book2DHistoVector(iBooker, p_nHitsVsEta_ , "Profile", "nHitsVsEta","Avg Number of Hits per Track vs #eta;#eta;# hits",etaBin_,etaMin_,etaMax_,etaBin_,0,16);
456  book2DHistoVector(iBooker, h_tkChi2_ , "1D", "tkChi2","#chi^{2} of Track Fitting;#chi^{2}",chi2Bin_,chi2Min_,chi2Max_);
457  book2DHistoVector(iBooker, p_tkChi2VsEta_ , "Profile", "tkChi2VsEta","Avg #chi^{2} of Track Fitting vs #eta;#eta;#chi^{2}",etaBin_,etaMin_,etaMax_,chi2Bin_,chi2Min_,chi2Max_);
458 
459  //VERTEX RELATED VARIABLES
460  book2DHistoVector(iBooker, h_convVtxRvsZ_ , "2D", "convVtxRvsZ","Vertex Position;Z (cm);R (cm)",500,zMin_,zMax_,rBin_,rMin_,rMax_);
461  book2DHistoVector(iBooker, h_convVtxZEndcap_ , "1D", "convVtxZEndcap", "Vertex Position: #eta > 1.5;Z (cm)",zBin_,zMin_,zMax_);
462  book2DHistoVector(iBooker, h_convVtxZ_ , "1D", "convVtxZ", "Vertex Position;Z (cm)",zBin_,zMin_,zMax_);
463  book2DHistoVector(iBooker, h_convVtxR_ , "1D", "convVtxR", "Vertex Position: #eta < 1;R (cm)",rBin_,rMin_,rMax_);
464  book2DHistoVector(iBooker, h_convVtxYvsX_ , "2D", "convVtxYvsX","Vertex Position: #eta < 1;X (cm);Y (cm)",xBin_,xMin_,xMax_,yBin_,yMin_,yMax_);
465  book2DHistoVector(iBooker, h_vertexChi2Prob_ , "1D", "vertexChi2Prob","#chi^{2} Probability of Vertex Fitting;#chi^{2}",100,0.,1.0);
466 }
std::vector< std::vector< std::vector< MonitorElement * > > > h_dEtaTracksAtEcal_
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)
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:274
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 177 of file PhotonAnalyzer.cc.

References DQMStore::IBooker::book1D(), GOODCOLL_filter_cfg::cut, and DQMStore::IBooker::setCurrentFolder().

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

Definition at line 158 of file PhotonAnalyzer.cc.

References DQMStore::IBooker::bookInt(), and DQMStore::IBooker::setCurrentFolder().

159 {
160  iBooker.setCurrentFolder("Egamma/"+fName_+"/");
161  // Int values stored in MEs to keep track of how many histograms are in each folder
162  totalNumberOfHistos_efficiencyFolder = iBooker.bookInt("numberOfHistogramsInEfficiencyFolder");
163  totalNumberOfHistos_invMassFolder = iBooker.bookInt("numberOfHistogramsInInvMassFolder");
164  totalNumberOfHistos_photonsFolder = iBooker.bookInt("numberOfHistogramsInPhotonsFolder");
165  totalNumberOfHistos_conversionsFolder = iBooker.bookInt("numberOfHistogramsInConversionsFolder");
166 }
MonitorElement * totalNumberOfHistos_photonsFolder
MonitorElement * bookInt(Args &&...args)
Definition: DQMStore.h:103
MonitorElement * totalNumberOfHistos_efficiencyFolder
MonitorElement * totalNumberOfHistos_conversionsFolder
std::string fName_
MonitorElement * totalNumberOfHistos_invMassFolder
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:274
void PhotonAnalyzer::bookHistogramsInvMass ( DQMStore::IBooker iBooker)
private

Definition at line 226 of file PhotonAnalyzer.cc.

References DQMStore::IBooker::setCurrentFolder().

227 {
228  // Set folder
229  iBooker.setCurrentFolder("Egamma/"+fName_+"/InvMass");
230 
231  h_invMassAllPhotons_ = bookHisto(iBooker, "invMassAllIsolatedPhotons", "Two photon invariant mass: All isolated photons;M (GeV)", etBin_, etMin_, etMax_);
232  h_invMassPhotonsEBarrel_ = bookHisto(iBooker, "invMassIsoPhotonsEBarrel", "Two photon invariant mass: isolated photons in barrel; M (GeV)", etBin_, etMin_, etMax_);
233  h_invMassPhotonsEEndcap_ = bookHisto(iBooker, "invMassIsoPhotonsEEndcap", "Two photon invariant mass: isolated photons in endcap; M (GeV)", etBin_, etMin_, etMax_);
234 
235  h_invMassZeroWithTracks_ = bookHisto(iBooker, "invMassZeroWithTracks", "Two photon invariant mass: Neither has tracks;M (GeV)", etBin_, etMin_, etMax_);
236  h_invMassOneWithTracks_ = bookHisto(iBooker, "invMassOneWithTracks", "Two photon invariant mass: Only one has tracks;M (GeV)", etBin_, etMin_, etMax_);
237  h_invMassTwoWithTracks_ = bookHisto(iBooker, "invMassTwoWithTracks", "Two photon invariant mass: Both have tracks;M (GeV)", etBin_, etMin_, etMax_);
238 
239  h_nRecoVtx_ = bookHisto(iBooker, "nOfflineVtx", "# of Offline Vertices", 80, -0.5, 79.5);
240 }
MonitorElement * h_invMassOneWithTracks_
MonitorElement * h_nRecoVtx_
MonitorElement * h_invMassZeroWithTracks_
MonitorElement * bookHisto(DQMStore::IBooker &, std::string histoName, std::string title, int bin, double min, double max)
std::string fName_
MonitorElement * h_invMassPhotonsEBarrel_
MonitorElement * h_invMassTwoWithTracks_
MonitorElement * h_invMassAllPhotons_
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:274
MonitorElement * h_invMassPhotonsEEndcap_
void PhotonAnalyzer::bookHistogramsPhotons ( DQMStore::IBooker iBooker)
private

Definition at line 242 of file PhotonAnalyzer.cc.

243 {
244  // Set folder
245  // Folder is set by the book2DHistoVector and book3DHistoVector methods
246 
247  //ENERGY VARIABLES
248  book3DHistoVector(iBooker, h_phoE_, "1D","phoE","Energy;E (GeV)",eBin_,eMin_,eMax_);
249  book3DHistoVector(iBooker, h_phoSigmaEoverE_, "1D","phoSigmaEoverE","#sigma_{E}/E; #sigma_{E}/E", 100,0.,0.08);
250  book3DHistoVector(iBooker, p_phoSigmaEoverEvsNVtx_, "Profile","phoSigmaEoverEvsNVtx","#sigma_{E}/E vs NVtx; N_{vtx}; #sigma_{E}/E",80, -0.5, 79.5, 100,0., 0.08);
251  book3DHistoVector(iBooker, h_phoEt_, "1D","phoEt","E_{T};E_{T} (GeV)", etBin_,etMin_,etMax_);
252 
253  //NUMBER OF PHOTONS
254  book3DHistoVector(iBooker, h_nPho_, "1D","nPho","Number of Photons per Event;# #gamma",numberBin_,numberMin_,numberMax_);
255 
256  //GEOMETRICAL VARIABLES
257  //photon eta/phi
258  book2DHistoVector(iBooker, h_phoEta_, "1D","phoEta","#eta;#eta",etaBin_,etaMin_,etaMax_) ;
259  book3DHistoVector(iBooker, h_phoPhi_, "1D","phoPhi","#phi;#phi",phiBin_,phiMin_,phiMax_) ;
260 
261  //supercluster eta/phi
262  book2DHistoVector(iBooker, h_scEta_, "1D","scEta","SuperCluster #eta;#eta",etaBin_,etaMin_,etaMax_) ;
263  book3DHistoVector(iBooker, h_scPhi_, "1D","scPhi","SuperCluster #phi;#phi",phiBin_,phiMin_,phiMax_) ;
264 
265  //SHOWER SHAPE VARIABLES
266  //r9
267  book3DHistoVector(iBooker, h_r9_, "1D","r9","R9;R9",r9Bin_,r9Min_, r9Max_);
268  if (standAlone_) {
269  book2DHistoVector(iBooker, h_r9VsEt_, "2D","r9VsEt2D","R9 vs E_{T};E_{T} (GeV);R9",reducedEtBin_,etMin_,etMax_,reducedR9Bin_,r9Min_,r9Max_);
270  }
271  book2DHistoVector(iBooker, p_r9VsEt_, "Profile","r9VsEt","Avg R9 vs E_{T};E_{T} (GeV);R9",etBin_,etMin_,etMax_,r9Bin_,r9Min_,r9Max_);
272  if (standAlone_) {
273  book2DHistoVector(iBooker, h_r9VsEta_, "2D","r9VsEta2D","R9 vs #eta;#eta;R9",reducedEtaBin_,etaMin_,etaMax_,reducedR9Bin_,r9Min_,r9Max_);
274  }
275  book2DHistoVector(iBooker, p_r9VsEta_, "Profile","r9VsEta","Avg R9 vs #eta;#eta;R9",etaBin_,etaMin_,etaMax_,r9Bin_,r9Min_,r9Max_);
276 
277  //sigma ieta ieta
278  book3DHistoVector(iBooker, h_phoSigmaIetaIeta_, "1D","phoSigmaIetaIeta","#sigma_{i#etai#eta};#sigma_{i#etai#eta}",sigmaIetaBin_,sigmaIetaMin_,sigmaIetaMax_);
279  if (standAlone_) {
280  book2DHistoVector(iBooker, h_sigmaIetaIetaVsEta_, "2D","sigmaIetaIetaVsEta2D","#sigma_{i#etai#eta} vs #eta;#eta;#sigma_{i#etai#eta}",reducedEtaBin_,etaMin_,etaMax_,sigmaIetaBin_,sigmaIetaMin_,sigmaIetaMax_);
281  }
282  book2DHistoVector(iBooker, p_sigmaIetaIetaVsEta_, "Profile","sigmaIetaIetaVsEta","Avg #sigma_{i#etai#eta} vs #eta;#eta;#sigma_{i#etai#eta}",etaBin_,etaMin_,etaMax_,sigmaIetaBin_,sigmaIetaMin_,sigmaIetaMax_);
283 
284  //e1x5
285  if (standAlone_) {
286  book2DHistoVector(iBooker, h_e1x5VsEt_, "2D","e1x5VsEt2D","E1x5 vs E_{T};E_{T} (GeV);E1X5 (GeV)",reducedEtBin_,etMin_,etMax_,reducedEtBin_,etMin_,etMax_);
287  }
288  book2DHistoVector(iBooker, p_e1x5VsEt_, "Profile","e1x5VsEt","Avg E1x5 vs E_{T};E_{T} (GeV);E1X5 (GeV)",etBin_,etMin_,etMax_,etBin_,etMin_,etMax_);
289  if (standAlone_) {
290  book2DHistoVector(iBooker, h_e1x5VsEta_, "2D","e1x5VsEta2D","E1x5 vs #eta;#eta;E1X5 (GeV)",reducedEtaBin_,etaMin_,etaMax_,reducedEtBin_,etMin_,etMax_);
291  }
292  book2DHistoVector(iBooker, p_e1x5VsEta_, "Profile","e1x5VsEta","Avg E1x5 vs #eta;#eta;E1X5 (GeV)",etaBin_,etaMin_,etaMax_,etBin_,etMin_,etMax_);
293 
294  //e2x5
295  if (standAlone_) {
296  book2DHistoVector(iBooker, h_e2x5VsEt_, "2D","e2x5VsEt2D","E2x5 vs E_{T};E_{T} (GeV);E2X5 (GeV)",reducedEtBin_,etMin_,etMax_,reducedEtBin_,etMin_,etMax_);
297  }
298  book2DHistoVector(iBooker, p_e2x5VsEt_, "Profile","e2x5VsEt","Avg E2x5 vs E_{T};E_{T} (GeV);E2X5 (GeV)",etBin_,etMin_,etMax_,etBin_,etMin_,etMax_);
299  if (standAlone_) {
300  book2DHistoVector(iBooker, h_e2x5VsEta_, "2D","e2x5VsEta2D","E2x5 vs #eta;#eta;E2X5 (GeV)",reducedEtaBin_,etaMin_,etaMax_,reducedEtBin_,etMin_,etMax_);
301  }
302  book2DHistoVector(iBooker, p_e2x5VsEta_, "Profile","e2x5VsEta","Avg E2x5 vs #eta;#eta;E2X5 (GeV)",etaBin_,etaMin_,etaMax_,etBin_,etMin_,etMax_);
303 
304  //r1x5
305  if (standAlone_) {
306  book2DHistoVector(iBooker, h_r1x5VsEt_, "2D","r1x5VsEt2D","R1x5 vs E_{T};E_{T} (GeV);R1X5",reducedEtBin_,etMin_,etMax_,reducedR9Bin_,r9Min_,r9Max_);
307  }
308  book2DHistoVector(iBooker, p_r1x5VsEt_, "Profile","r1x5VsEt","Avg R1x5 vs E_{T};E_{T} (GeV);R1X5",etBin_,etMin_,etMax_,r9Bin_,r9Min_,r9Max_);
309  if (standAlone_) {
310  book2DHistoVector(iBooker, h_r1x5VsEta_, "2D","r1x5VsEta2D","R1x5 vs #eta;#eta;R1X5",reducedEtaBin_,etaMin_,etaMax_,reducedR9Bin_,r9Min_,r9Max_);
311  }
312  book2DHistoVector(iBooker, p_r1x5VsEta_, "Profile","r1x5VsEta","Avg R1x5 vs #eta;#eta;R1X5",etaBin_,etaMin_,etaMax_,r9Bin_,r9Min_,r9Max_);
313 
314  //r2x5
315  if (standAlone_) {
316  book2DHistoVector(iBooker, h_r2x5VsEt_ ,"2D","r2x5VsEt2D","R2x5 vs E_{T};E_{T} (GeV);R2X5",reducedEtBin_,etMin_,etMax_,reducedR9Bin_,r9Min_,r9Max_);
317  }
318  book2DHistoVector(iBooker, p_r2x5VsEt_ ,"Profile","r2x5VsEt","Avg R2x5 vs E_{T};E_{T} (GeV);R2X5",etBin_,etMin_,etMax_,r9Bin_,r9Min_,r9Max_);
319  if (standAlone_) {
320  book2DHistoVector(iBooker, h_r2x5VsEta_ ,"2D","r2x5VsEta2D","R2x5 vs #eta;#eta;R2X5",reducedEtaBin_,etaMin_,etaMax_,reducedR9Bin_,r9Min_,r9Max_);
321  }
322  book2DHistoVector(iBooker, p_r2x5VsEta_ ,"Profile","r2x5VsEta","Avg R2x5 vs #eta;#eta;R2X5",etaBin_,etaMin_,etaMax_,r9Bin_,r9Min_,r9Max_);
323 
324  //maxEXtalOver3x3
325  if (standAlone_) {
326  book2DHistoVector(iBooker, h_maxEXtalOver3x3VsEt_ ,"2D","maxEXtalOver3x3VsEt2D","(Max Xtal E)/E3x3 vs E_{T};E_{T} (GeV);(Max Xtal E)/E3x3",reducedEtBin_,etMin_,etMax_,r9Bin_,r9Min_,r9Max_);
327  }
328  book2DHistoVector(iBooker, p_maxEXtalOver3x3VsEt_ ,"Profile","maxEXtalOver3x3VsEt","Avg (Max Xtal E)/E3x3 vs E_{T};E_{T} (GeV);(Max Xtal E)/E3x3",etBin_,etMin_,etMax_,r9Bin_,r9Min_,r9Max_);
329  if (standAlone_) {
330  book2DHistoVector(iBooker, h_maxEXtalOver3x3VsEta_ ,"2D","maxEXtalOver3x3VsEta2D","(Max Xtal E)/E3x3 vs #eta;#eta;(Max Xtal E)/E3x3",reducedEtaBin_,etaMin_,etaMax_,r9Bin_,r9Min_,r9Max_);
331  }
332  book2DHistoVector(iBooker, p_maxEXtalOver3x3VsEta_ ,"Profile","maxEXtalOver3x3VsEta","Avg (Max Xtal E)/E3x3 vs #eta;#eta;(Max Xtal E)/E3x3",etaBin_,etaMin_,etaMax_,r9Bin_,r9Min_,r9Max_);
333 
334  //TRACK ISOLATION VARIABLES
335  //nTrackIsolSolid
336  book2DHistoVector(iBooker, h_nTrackIsolSolid_ ,"1D","nIsoTracksSolid","Number Of Tracks in the Solid Iso Cone;# tracks",numberBin_,numberMin_,numberMax_);
337  if (standAlone_) {
338  book2DHistoVector(iBooker, h_nTrackIsolSolidVsEt_ ,"2D","nIsoTracksSolidVsEt2D","Number Of Tracks in the Solid Iso Cone vs E_{T};E_{T};# tracks",reducedEtBin_,etMin_, etMax_,numberBin_,numberMin_,numberMax_);
339  }
340  book2DHistoVector(iBooker, p_nTrackIsolSolidVsEt_ ,"Profile","nIsoTracksSolidVsEt","Avg Number Of Tracks in the Solid Iso Cone vs E_{T};E_{T};# tracks",etBin_,etMin_,etMax_,numberBin_,numberMin_,numberMax_);
341  if (standAlone_) {
342  book2DHistoVector(iBooker, h_nTrackIsolSolidVsEta_ ,"2D","nIsoTracksSolidVsEta2D","Number Of Tracks in the Solid Iso Cone vs #eta;#eta;# tracks",reducedEtaBin_,etaMin_, etaMax_,numberBin_,numberMin_,numberMax_);
343  }
344  book2DHistoVector(iBooker, p_nTrackIsolSolidVsEta_ ,"Profile","nIsoTracksSolidVsEta","Avg Number Of Tracks in the Solid Iso Cone vs #eta;#eta;# tracks",etaBin_,etaMin_, etaMax_,numberBin_,numberMin_,numberMax_);
345 
346  //nTrackIsolHollow
347  book2DHistoVector(iBooker, h_nTrackIsolHollow_ ,"1D","nIsoTracksHollow","Number Of Tracks in the Hollow Iso Cone;# tracks",numberBin_,numberMin_,numberMax_);
348  if (standAlone_) {
349  book2DHistoVector(iBooker, h_nTrackIsolHollowVsEt_ ,"2D","nIsoTracksHollowVsEt2D","Number Of Tracks in the Hollow Iso Cone vs E_{T};E_{T};# tracks",reducedEtBin_,etMin_, etMax_,numberBin_,numberMin_,numberMax_);
350  }
351  book2DHistoVector(iBooker, p_nTrackIsolHollowVsEt_ ,"Profile","nIsoTracksHollowVsEt","Avg Number Of Tracks in the Hollow Iso Cone vs E_{T};E_{T};# tracks",etBin_,etMin_,etMax_,numberBin_,numberMin_,numberMax_);
352  if (standAlone_) {
353  book2DHistoVector(iBooker, h_nTrackIsolHollowVsEta_ ,"2D","nIsoTracksHollowVsEta2D","Number Of Tracks in the Hollow Iso Cone vs #eta;#eta;# tracks",reducedEtaBin_,etaMin_, etaMax_,numberBin_,numberMin_,numberMax_);
354  }
355  book2DHistoVector(iBooker, p_nTrackIsolHollowVsEta_ ,"Profile","nIsoTracksHollowVsEta","Avg Number Of Tracks in the Hollow Iso Cone vs #eta;#eta;# tracks",etaBin_,etaMin_, etaMax_,numberBin_,numberMin_,numberMax_);
356 
357  //trackPtSumSolid
358  book2DHistoVector(iBooker, h_trackPtSumSolid_ ,"1D","isoPtSumSolid","Track P_{T} Sum in the Solid Iso Cone;P_{T} (GeV)",sumBin_,sumMin_,sumMax_);
359  if (standAlone_) {
360  book2DHistoVector(iBooker, h_trackPtSumSolidVsEt_ ,"2D","isoPtSumSolidVsEt2D","Track P_{T} Sum in the Solid Iso Cone;E_{T} (GeV);P_{T} (GeV)",reducedEtBin_,etMin_, etMax_,reducedSumBin_,sumMin_,sumMax_);
361  }
362  book2DHistoVector(iBooker, p_trackPtSumSolidVsEt_ ,"Profile","isoPtSumSolidVsEt","Avg Track P_{T} Sum in the Solid Iso Cone vs E_{T};E_{T} (GeV);P_{T} (GeV)",etBin_,etMin_,etMax_,sumBin_,sumMin_,sumMax_);
363  if (standAlone_) {
364  book2DHistoVector(iBooker, h_trackPtSumSolidVsEta_ ,"2D","isoPtSumSolidVsEta2D","Track P_{T} Sum in the Solid Iso Cone;#eta;P_{T} (GeV)",reducedEtaBin_,etaMin_, etaMax_,reducedSumBin_,sumMin_,sumMax_);
365  }
366  book2DHistoVector(iBooker, p_trackPtSumSolidVsEta_ ,"Profile","isoPtSumSolidVsEta","Avg Track P_{T} Sum in the Solid Iso Cone vs #eta;#eta;P_{T} (GeV)",etaBin_,etaMin_, etaMax_,sumBin_,sumMin_,sumMax_);
367 
368  //trackPtSumHollow
369  book2DHistoVector(iBooker, h_trackPtSumHollow_ ,"1D","isoPtSumHollow","Track P_{T} Sum in the Hollow Iso Cone;P_{T} (GeV)",sumBin_,sumMin_,sumMax_);
370  if (standAlone_) {
371  book2DHistoVector(iBooker, h_trackPtSumHollowVsEt_ ,"2D","isoPtSumHollowVsEt2D","Track P_{T} Sum in the Hollow Iso Cone;E_{T} (GeV);P_{T} (GeV)",reducedEtBin_,etMin_, etMax_,reducedSumBin_,sumMin_,sumMax_);
372  }
373  book2DHistoVector(iBooker, p_trackPtSumHollowVsEt_ ,"Profile","isoPtSumHollowVsEt","Avg Track P_{T} Sum in the Hollow Iso Cone vs E_{T};E_{T} (GeV);P_{T} (GeV)",etBin_,etMin_,etMax_,sumBin_,sumMin_,sumMax_);
374  if (standAlone_) {
375  book2DHistoVector(iBooker, h_trackPtSumHollowVsEta_ ,"2D","isoPtSumHollowVsEta2D","Track P_{T} Sum in the Hollow Iso Cone;#eta;P_{T} (GeV)",reducedEtaBin_,etaMin_, etaMax_,reducedSumBin_,sumMin_,sumMax_);
376  }
377  book2DHistoVector(iBooker, p_trackPtSumHollowVsEta_ ,"Profile","isoPtSumHollowVsEta","Avg Track P_{T} Sum in the Hollow Iso Cone vs #eta;#eta;P_{T} (GeV)",etaBin_,etaMin_, etaMax_,sumBin_,sumMin_,sumMax_);
378 
379  //CALORIMETER ISOLATION VARIABLES
380  //ecal sum
381  book2DHistoVector(iBooker, h_ecalSum_, "1D","ecalSum","Ecal Sum in the Iso Cone;E (GeV)",sumBin_,sumMin_,sumMax_);
382  book2DHistoVector(iBooker, h_ecalSumEBarrel_, "1D","ecalSumEBarrel","Ecal Sum in the IsoCone for Barrel;E (GeV)",sumBin_,sumMin_,sumMax_);
383  book2DHistoVector(iBooker, h_ecalSumEEndcap_, "1D","ecalSumEEndcap","Ecal Sum in the IsoCone for Endcap;E (GeV)",sumBin_,sumMin_,sumMax_);
384  if (standAlone_) {
385  book2DHistoVector(iBooker, h_ecalSumVsEt_, "2D","ecalSumVsEt2D","Ecal Sum in the Iso Cone;E_{T} (GeV);E (GeV)",reducedEtBin_,etMin_, etMax_,reducedSumBin_,sumMin_,sumMax_);
386  }
387  book3DHistoVector(iBooker, p_ecalSumVsEt_, "Profile","ecalSumVsEt","Avg Ecal Sum in the Iso Cone vs E_{T};E_{T} (GeV);E (GeV)",etBin_,etMin_, etMax_,sumBin_,sumMin_,sumMax_);
388  if (standAlone_) {
389  book2DHistoVector(iBooker, h_ecalSumVsEta_, "2D","ecalSumVsEta2D","Ecal Sum in the Iso Cone;#eta;E (GeV)",reducedEtaBin_,etaMin_, etaMax_,reducedSumBin_,sumMin_,sumMax_);
390  }
391  book2DHistoVector(iBooker, p_ecalSumVsEta_, "Profile","ecalSumVsEta","Avg Ecal Sum in the Iso Cone vs #eta;#eta;E (GeV)",etaBin_,etaMin_, etaMax_,sumBin_,sumMin_,sumMax_);
392 
393  //hcal sum
394  book2DHistoVector(iBooker, h_hcalSum_, "1D","hcalSum","Hcal Sum in the Iso Cone;E (GeV)",sumBin_,sumMin_,sumMax_);
395  book2DHistoVector(iBooker, h_hcalSumEBarrel_, "1D","hcalSumEBarrel","Hcal Sum in the IsoCone for Barrel;E (GeV)",sumBin_,sumMin_,sumMax_);
396  book2DHistoVector(iBooker, h_hcalSumEEndcap_, "1D","hcalSumEEndcap","Hcal Sum in the IsoCone for Endcap;E (GeV)",sumBin_,sumMin_,sumMax_);
397  if (standAlone_) {
398  book2DHistoVector(iBooker, h_hcalSumVsEt_, "2D","hcalSumVsEt2D","Hcal Sum in the Iso Cone;E_{T} (GeV);E (GeV)",reducedEtBin_,etMin_, etMax_,reducedSumBin_,sumMin_,sumMax_);
399  }
400  book3DHistoVector(iBooker, p_hcalSumVsEt_, "Profile","hcalSumVsEt","Avg Hcal Sum in the Iso Cone vs E_{T};E_{T} (GeV);E (GeV)",etBin_,etMin_, etMax_,sumBin_,sumMin_,sumMax_);
401  if (standAlone_) {
402  book2DHistoVector(iBooker, h_hcalSumVsEta_, "2D","hcalSumVsEta2D","Hcal Sum in the Iso Cone;#eta;E (GeV)",reducedEtaBin_,etaMin_, etaMax_,reducedSumBin_,sumMin_,sumMax_);
403  }
404  book2DHistoVector(iBooker, p_hcalSumVsEta_, "Profile","hcalSumVsEta","Avg Hcal Sum in the Iso Cone vs #eta;#eta;E (GeV)",etaBin_,etaMin_, etaMax_,sumBin_,sumMin_,sumMax_);
405 
406  //h over e
407  book3DHistoVector(iBooker, h_hOverE_, "1D","hOverE","H/E;H/E",hOverEBin_,hOverEMin_,hOverEMax_);
408  book2DHistoVector(iBooker, p_hOverEVsEt_, "Profile","hOverEVsEt","Avg H/E vs Et;E_{T} (GeV);H/E",etBin_,etMin_,etMax_,hOverEBin_,hOverEMin_,hOverEMax_);
409  book2DHistoVector(iBooker, p_hOverEVsEta_, "Profile","hOverEVsEta","Avg H/E vs #eta;#eta;H/E",etaBin_,etaMin_,etaMax_,hOverEBin_,hOverEMin_,hOverEMax_);
410  book3DHistoVector(iBooker, h_h1OverE_, "1D","h1OverE","H/E for Depth 1;H/E",hOverEBin_,hOverEMin_,hOverEMax_);
411  book3DHistoVector(iBooker, h_h2OverE_, "1D","h2OverE","H/E for Depth 2;H/E",hOverEBin_,hOverEMin_,hOverEMax_);
412 
413  // pf isolation
414  book2DHistoVector(iBooker, h_phoIsoBarrel_, "1D","phoIsoBarrel","PF photon iso Barrel;E (GeV)",reducedEtBin_,etMin_,25.);
415  book2DHistoVector(iBooker, h_phoIsoEndcap_, "1D","phoIsoEndcap","PF photon iso Endcap;E (GeV)",reducedEtBin_,etMin_,25.);
416  book2DHistoVector(iBooker, h_chHadIsoBarrel_, "1D","chHadIsoBarrel","PF charged Had iso Barrel;E (GeV)",reducedEtBin_,etMin_,25.);
417  book2DHistoVector(iBooker, h_chHadIsoEndcap_, "1D","chHadIsoEndcap","PF charged Had iso Endcap;E (GeV)",reducedEtBin_,etMin_,25.);
418  book2DHistoVector(iBooker, h_nHadIsoBarrel_, "1D","neutralHadIsoBarrel","PF neutral Had iso Barrel;E (GeV)",reducedEtBin_,etMin_,25.);
419  book2DHistoVector(iBooker, h_nHadIsoEndcap_, "1D","neutralHadIsoEndcap","PF neutral Had iso Endcap;E (GeV)",reducedEtBin_,etMin_,25.);
420 
421  //OTHER VARIABLES
422  //bad channel histograms
423  book2DHistoVector(iBooker, h_phoEt_BadChannels_ , "1D","phoEtBadChannels", "Fraction Containing Bad Channels: E_{T};E_{T} (GeV)",etBin_,etMin_,etMax_);
424  book2DHistoVector(iBooker, h_phoEta_BadChannels_ , "1D","phoEtaBadChannels","Fraction Containing Bad Channels: #eta;#eta",etaBin_,etaMin_,etaMax_);
425  book2DHistoVector(iBooker, h_phoPhi_BadChannels_ , "1D","phoPhiBadChannels","Fraction Containing Bad Channels: #phi;#phi",phiBin_,phiMin_,phiMax_);
426 }
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 168 of file PhotonAnalyzer.cc.

References DQMStore::IBooker::setCurrentFolder().

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

Definition at line 1142 of file PhotonAnalyzer.cc.

References PI, and TWOPI.

1143 {
1144  const float PI = 3.1415927;
1145  const float TWOPI = 2.0*PI;
1146 
1147  if(phi > PI) {phi = phi - TWOPI;}
1148  if(phi < -PI) {phi = phi + TWOPI;}
1149 
1150  return phi;
1151 }
#define PI
#define TWOPI
EgammaCoreTools.
Definition: DQMSourcePi0.cc:40
bool PhotonAnalyzer::photonSelection ( const reco::PhotonRef p)
private

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

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

Definition at line 1181 of file PhotonAnalyzer.cc.

References edm::false, and query::result.

1182 {
1183  bool result=true;
1184  if ( pho->pt() < minPhoEtCut_ ) result=false;
1185  if ( fabs(pho->eta()) > photonMaxEta_ ) result=false;
1186  if ( pho->isEBEEGap() ) result=false;
1187 
1188  double EtCorrHcalIso = pho->hcalTowerSumEtConeDR03() - 0.005*pho->pt();
1189  double EtCorrTrkIso = pho->trkSumPtHollowConeDR03() - 0.002*pho->pt();
1190 
1191  if (pho->r9() <=0.9) {
1192  if (pho->isEB() && (pho->hadTowOverEm()>0.075 || pho->sigmaIetaIeta() > 0.014)) result=false;
1193  if (pho->isEE() && (pho->hadTowOverEm()>0.075 || pho->sigmaIetaIeta() > 0.034)) result=false;
1195  if (EtCorrHcalIso>4.0) result=false;
1196  if (EtCorrTrkIso>4.0) result=false ;
1197  if ( pho->chargedHadronIso() > 4 ) result=false;
1198  } else {
1199  if (pho->isEB() && (pho->hadTowOverEm()>0.082 || pho->sigmaIetaIeta() > 0.014)) result=false;
1200  if (pho->isEE() && (pho->hadTowOverEm()>0.075 || pho->sigmaIetaIeta() > 0.034)) result=false;
1202  if (EtCorrHcalIso>50.0) result=false;
1203  if (EtCorrTrkIso>50.0) result=false;
1204  if ( pho->chargedHadronIso() > 4 ) result=false;
1205  }
1206  return result;
1207 }
tuple result
Definition: query.py:137
volatile std::atomic< bool > shutdown_flag false

Member Data Documentation

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

Definition at line 151 of file PhotonAnalyzer.h.

int PhotonAnalyzer::chi2Bin_
private

Definition at line 239 of file PhotonAnalyzer.h.

double PhotonAnalyzer::chi2Max_
private

Definition at line 241 of file PhotonAnalyzer.h.

double PhotonAnalyzer::chi2Min_
private

Definition at line 240 of file PhotonAnalyzer.h.

std::stringstream PhotonAnalyzer::currentFolder_
private

Definition at line 176 of file PhotonAnalyzer.h.

double PhotonAnalyzer::cutStep_
private

Definition at line 160 of file PhotonAnalyzer.h.

int PhotonAnalyzer::dEtaTracksBin_
private

Definition at line 235 of file PhotonAnalyzer.h.

double PhotonAnalyzer::dEtaTracksMax_
private

Definition at line 237 of file PhotonAnalyzer.h.

double PhotonAnalyzer::dEtaTracksMin_
private

Definition at line 236 of file PhotonAnalyzer.h.

int PhotonAnalyzer::dPhiTracksBin_
private

Definition at line 231 of file PhotonAnalyzer.h.

double PhotonAnalyzer::dPhiTracksMax_
private

Definition at line 233 of file PhotonAnalyzer.h.

double PhotonAnalyzer::dPhiTracksMin_
private

Definition at line 232 of file PhotonAnalyzer.h.

int PhotonAnalyzer::eBin_
private

Definition at line 203 of file PhotonAnalyzer.h.

double PhotonAnalyzer::eMax_
private

Definition at line 205 of file PhotonAnalyzer.h.

double PhotonAnalyzer::eMin_
private

Definition at line 204 of file PhotonAnalyzer.h.

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

Definition at line 152 of file PhotonAnalyzer.h.

int PhotonAnalyzer::eOverPBin_
private

Definition at line 227 of file PhotonAnalyzer.h.

double PhotonAnalyzer::eOverPMax_
private

Definition at line 229 of file PhotonAnalyzer.h.

double PhotonAnalyzer::eOverPMin_
private

Definition at line 228 of file PhotonAnalyzer.h.

int PhotonAnalyzer::etaBin_
private

Definition at line 191 of file PhotonAnalyzer.h.

double PhotonAnalyzer::etaMax_
private

Definition at line 193 of file PhotonAnalyzer.h.

double PhotonAnalyzer::etaMin_
private

Definition at line 192 of file PhotonAnalyzer.h.

int PhotonAnalyzer::etBin_
private

Definition at line 195 of file PhotonAnalyzer.h.

double PhotonAnalyzer::etMax_
private

Definition at line 197 of file PhotonAnalyzer.h.

double PhotonAnalyzer::etMin_
private

Definition at line 196 of file PhotonAnalyzer.h.

bool PhotonAnalyzer::excludeBkgHistos_
private

Definition at line 168 of file PhotonAnalyzer.h.

std::string PhotonAnalyzer::fName_
private

Definition at line 144 of file PhotonAnalyzer.h.

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

Definition at line 324 of file PhotonAnalyzer.h.

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

Definition at line 325 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_convEt_Loose_
private

Definition at line 283 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_convEt_Tight_
private

Definition at line 284 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_convEta_Loose_
private

Definition at line 281 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_convEta_Tight_
private

Definition at line 282 of file PhotonAnalyzer.h.

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

Definition at line 381 of file PhotonAnalyzer.h.

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

Definition at line 377 of file PhotonAnalyzer.h.

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

Definition at line 380 of file PhotonAnalyzer.h.

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

Definition at line 379 of file PhotonAnalyzer.h.

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

Definition at line 378 of file PhotonAnalyzer.h.

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

Definition at line 443 of file PhotonAnalyzer.h.

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

Definition at line 448 of file PhotonAnalyzer.h.

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

Definition at line 446 of file PhotonAnalyzer.h.

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

Definition at line 445 of file PhotonAnalyzer.h.

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

Definition at line 386 of file PhotonAnalyzer.h.

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

Definition at line 387 of file PhotonAnalyzer.h.

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

Definition at line 389 of file PhotonAnalyzer.h.

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

Definition at line 390 of file PhotonAnalyzer.h.

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

Definition at line 315 of file PhotonAnalyzer.h.

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

Definition at line 316 of file PhotonAnalyzer.h.

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

Definition at line 317 of file PhotonAnalyzer.h.

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

Definition at line 308 of file PhotonAnalyzer.h.

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

Definition at line 301 of file PhotonAnalyzer.h.

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

Definition at line 440 of file PhotonAnalyzer.h.

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

Definition at line 427 of file PhotonAnalyzer.h.

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

Definition at line 428 of file PhotonAnalyzer.h.

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

Definition at line 318 of file PhotonAnalyzer.h.

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

Definition at line 319 of file PhotonAnalyzer.h.

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

Definition at line 320 of file PhotonAnalyzer.h.

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

Definition at line 309 of file PhotonAnalyzer.h.

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

Definition at line 302 of file PhotonAnalyzer.h.

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

Definition at line 426 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_invMassAllPhotons_
private

Definition at line 291 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_invMassOneWithTracks_
private

Definition at line 289 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_invMassPhotonsEBarrel_
private

Definition at line 292 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_invMassPhotonsEEndcap_
private

Definition at line 293 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_invMassTwoWithTracks_
private

Definition at line 288 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_invMassZeroWithTracks_
private

Definition at line 290 of file PhotonAnalyzer.h.

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

Definition at line 392 of file PhotonAnalyzer.h.

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

Definition at line 393 of file PhotonAnalyzer.h.

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

Definition at line 438 of file PhotonAnalyzer.h.

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

Definition at line 326 of file PhotonAnalyzer.h.

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

Definition at line 327 of file PhotonAnalyzer.h.

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

Definition at line 432 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_nRecoVtx_
private

Definition at line 269 of file PhotonAnalyzer.h.

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

Definition at line 313 of file PhotonAnalyzer.h.

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

Definition at line 306 of file PhotonAnalyzer.h.

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

Definition at line 299 of file PhotonAnalyzer.h.

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

Definition at line 311 of file PhotonAnalyzer.h.

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

Definition at line 304 of file PhotonAnalyzer.h.

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

Definition at line 297 of file PhotonAnalyzer.h.

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

Definition at line 434 of file PhotonAnalyzer.h.

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

Definition at line 435 of file PhotonAnalyzer.h.

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

Definition at line 375 of file PhotonAnalyzer.h.

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

Definition at line 369 of file PhotonAnalyzer.h.

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

Definition at line 424 of file PhotonAnalyzer.h.

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

Definition at line 423 of file PhotonAnalyzer.h.

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

Definition at line 436 of file PhotonAnalyzer.h.

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

Definition at line 416 of file PhotonAnalyzer.h.

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

Definition at line 419 of file PhotonAnalyzer.h.

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

Definition at line 372 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_phoEt_Loose_
private

Definition at line 273 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_phoEt_postHLT_
private

Definition at line 279 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_phoEt_preHLT_
private

Definition at line 278 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_phoEt_Tight_
private

Definition at line 274 of file PhotonAnalyzer.h.

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

Definition at line 366 of file PhotonAnalyzer.h.

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

Definition at line 371 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_phoEta_Loose_
private

Definition at line 271 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_phoEta_postHLT_
private

Definition at line 277 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_phoEta_preHLT_
private

Definition at line 276 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_phoEta_Tight_
private

Definition at line 272 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_phoEta_Vertex_
private

Definition at line 286 of file PhotonAnalyzer.h.

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

Definition at line 322 of file PhotonAnalyzer.h.

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

Definition at line 323 of file PhotonAnalyzer.h.

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

Definition at line 421 of file PhotonAnalyzer.h.

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

Definition at line 373 of file PhotonAnalyzer.h.

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

Definition at line 417 of file PhotonAnalyzer.h.

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

Definition at line 430 of file PhotonAnalyzer.h.

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

Definition at line 441 of file PhotonAnalyzer.h.

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

Definition at line 395 of file PhotonAnalyzer.h.

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

Definition at line 396 of file PhotonAnalyzer.h.

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

Definition at line 398 of file PhotonAnalyzer.h.

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

Definition at line 399 of file PhotonAnalyzer.h.

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

Definition at line 420 of file PhotonAnalyzer.h.

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

Definition at line 383 of file PhotonAnalyzer.h.

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

Definition at line 384 of file PhotonAnalyzer.h.

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

Definition at line 367 of file PhotonAnalyzer.h.

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

Definition at line 422 of file PhotonAnalyzer.h.

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

Definition at line 401 of file PhotonAnalyzer.h.

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

Definition at line 403 of file PhotonAnalyzer.h.

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

Definition at line 314 of file PhotonAnalyzer.h.

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

Definition at line 307 of file PhotonAnalyzer.h.

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

Definition at line 300 of file PhotonAnalyzer.h.

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

Definition at line 312 of file PhotonAnalyzer.h.

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

Definition at line 305 of file PhotonAnalyzer.h.

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

Definition at line 298 of file PhotonAnalyzer.h.

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

Definition at line 405 of file PhotonAnalyzer.h.

int PhotonAnalyzer::histo_index_conversions_
private

Definition at line 179 of file PhotonAnalyzer.h.

int PhotonAnalyzer::histo_index_efficiency_
private

Definition at line 180 of file PhotonAnalyzer.h.

int PhotonAnalyzer::histo_index_invMass_
private

Definition at line 181 of file PhotonAnalyzer.h.

int PhotonAnalyzer::histo_index_photons_
private

Definition at line 178 of file PhotonAnalyzer.h.

int PhotonAnalyzer::hOverEBin_
private

Definition at line 223 of file PhotonAnalyzer.h.

double PhotonAnalyzer::hOverEMax_
private

Definition at line 225 of file PhotonAnalyzer.h.

double PhotonAnalyzer::hOverEMin_
private

Definition at line 224 of file PhotonAnalyzer.h.

double PhotonAnalyzer::invMassEtCut_
private

Definition at line 158 of file PhotonAnalyzer.h.

bool PhotonAnalyzer::isHeavyIon_
private

Definition at line 172 of file PhotonAnalyzer.h.

int PhotonAnalyzer::isolationStrength_
private

Definition at line 170 of file PhotonAnalyzer.h.

bool PhotonAnalyzer::minimalSetOfHistos_
private

Definition at line 167 of file PhotonAnalyzer.h.

double PhotonAnalyzer::minPhoEtCut_
private

Definition at line 156 of file PhotonAnalyzer.h.

int PhotonAnalyzer::nEvt_
private

Definition at line 183 of file PhotonAnalyzer.h.

int PhotonAnalyzer::numberBin_
private

Definition at line 207 of file PhotonAnalyzer.h.

double PhotonAnalyzer::numberMax_
private

Definition at line 209 of file PhotonAnalyzer.h.

double PhotonAnalyzer::numberMin_
private

Definition at line 208 of file PhotonAnalyzer.h.

int PhotonAnalyzer::numberOfSteps_
private

Definition at line 161 of file PhotonAnalyzer.h.

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

Definition at line 154 of file PhotonAnalyzer.h.

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

Definition at line 361 of file PhotonAnalyzer.h.

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

Definition at line 344 of file PhotonAnalyzer.h.

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

Definition at line 345 of file PhotonAnalyzer.h.

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

Definition at line 347 of file PhotonAnalyzer.h.

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

Definition at line 348 of file PhotonAnalyzer.h.

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

Definition at line 413 of file PhotonAnalyzer.h.

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

Definition at line 333 of file PhotonAnalyzer.h.

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

Definition at line 414 of file PhotonAnalyzer.h.

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

Definition at line 334 of file PhotonAnalyzer.h.

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

Definition at line 364 of file PhotonAnalyzer.h.

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

Definition at line 363 of file PhotonAnalyzer.h.

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

Definition at line 350 of file PhotonAnalyzer.h.

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

Definition at line 351 of file PhotonAnalyzer.h.

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

Definition at line 407 of file PhotonAnalyzer.h.

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

Definition at line 338 of file PhotonAnalyzer.h.

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

Definition at line 331 of file PhotonAnalyzer.h.

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

Definition at line 336 of file PhotonAnalyzer.h.

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

Definition at line 329 of file PhotonAnalyzer.h.

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

Definition at line 418 of file PhotonAnalyzer.h.

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

Definition at line 353 of file PhotonAnalyzer.h.

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

Definition at line 354 of file PhotonAnalyzer.h.

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

Definition at line 356 of file PhotonAnalyzer.h.

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

Definition at line 357 of file PhotonAnalyzer.h.

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

Definition at line 341 of file PhotonAnalyzer.h.

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

Definition at line 342 of file PhotonAnalyzer.h.

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

Definition at line 359 of file PhotonAnalyzer.h.

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

Definition at line 409 of file PhotonAnalyzer.h.

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

Definition at line 339 of file PhotonAnalyzer.h.

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

Definition at line 332 of file PhotonAnalyzer.h.

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

Definition at line 337 of file PhotonAnalyzer.h.

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

Definition at line 330 of file PhotonAnalyzer.h.

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

Definition at line 186 of file PhotonAnalyzer.h.

int PhotonAnalyzer::phiBin_
private

Definition at line 199 of file PhotonAnalyzer.h.

double PhotonAnalyzer::phiMax_
private

Definition at line 201 of file PhotonAnalyzer.h.

double PhotonAnalyzer::phiMin_
private

Definition at line 200 of file PhotonAnalyzer.h.

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

Definition at line 148 of file PhotonAnalyzer.h.

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

Definition at line 149 of file PhotonAnalyzer.h.

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

Definition at line 150 of file PhotonAnalyzer.h.

double PhotonAnalyzer::photonMaxEta_
private

Definition at line 157 of file PhotonAnalyzer.h.

unsigned int PhotonAnalyzer::prescaleFactor_
private

Definition at line 146 of file PhotonAnalyzer.h.

int PhotonAnalyzer::r9Bin_
private

Definition at line 211 of file PhotonAnalyzer.h.

double PhotonAnalyzer::r9Max_
private

Definition at line 213 of file PhotonAnalyzer.h.

double PhotonAnalyzer::r9Min_
private

Definition at line 212 of file PhotonAnalyzer.h.

int PhotonAnalyzer::rBin_
private

Definition at line 247 of file PhotonAnalyzer.h.

int PhotonAnalyzer::reducedEtaBin_
private

Definition at line 260 of file PhotonAnalyzer.h.

int PhotonAnalyzer::reducedEtBin_
private

Definition at line 259 of file PhotonAnalyzer.h.

int PhotonAnalyzer::reducedR9Bin_
private

Definition at line 261 of file PhotonAnalyzer.h.

int PhotonAnalyzer::reducedSumBin_
private

Definition at line 262 of file PhotonAnalyzer.h.

double PhotonAnalyzer::rMax_
private

Definition at line 249 of file PhotonAnalyzer.h.

double PhotonAnalyzer::rMin_
private

Definition at line 248 of file PhotonAnalyzer.h.

int PhotonAnalyzer::sigmaIetaBin_
private

Definition at line 215 of file PhotonAnalyzer.h.

double PhotonAnalyzer::sigmaIetaMax_
private

Definition at line 217 of file PhotonAnalyzer.h.

double PhotonAnalyzer::sigmaIetaMin_
private

Definition at line 216 of file PhotonAnalyzer.h.

bool PhotonAnalyzer::standAlone_
private

Definition at line 165 of file PhotonAnalyzer.h.

int PhotonAnalyzer::sumBin_
private

Definition at line 219 of file PhotonAnalyzer.h.

double PhotonAnalyzer::sumMax_
private

Definition at line 221 of file PhotonAnalyzer.h.

double PhotonAnalyzer::sumMin_
private

Definition at line 220 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::totalNumberOfHistos_conversionsFolder
private

Definition at line 267 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::totalNumberOfHistos_efficiencyFolder
private

Definition at line 264 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::totalNumberOfHistos_invMassFolder
private

Definition at line 265 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::totalNumberOfHistos_photonsFolder
private

Definition at line 266 of file PhotonAnalyzer.h.

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

Definition at line 153 of file PhotonAnalyzer.h.

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

Definition at line 185 of file PhotonAnalyzer.h.

bool PhotonAnalyzer::useBinning_
private

Definition at line 163 of file PhotonAnalyzer.h.

bool PhotonAnalyzer::useTriggerFiltering_
private

Definition at line 164 of file PhotonAnalyzer.h.

int PhotonAnalyzer::xBin_
private

Definition at line 251 of file PhotonAnalyzer.h.

double PhotonAnalyzer::xMax_
private

Definition at line 253 of file PhotonAnalyzer.h.

double PhotonAnalyzer::xMin_
private

Definition at line 252 of file PhotonAnalyzer.h.

int PhotonAnalyzer::yBin_
private

Definition at line 255 of file PhotonAnalyzer.h.

double PhotonAnalyzer::yMax_
private

Definition at line 257 of file PhotonAnalyzer.h.

double PhotonAnalyzer::yMin_
private

Definition at line 256 of file PhotonAnalyzer.h.

int PhotonAnalyzer::zBin_
private

Definition at line 243 of file PhotonAnalyzer.h.

double PhotonAnalyzer::zMax_
private

Definition at line 245 of file PhotonAnalyzer.h.

double PhotonAnalyzer::zMin_
private

Definition at line 244 of file PhotonAnalyzer.h.