CMS 3D CMS Logo

List of all members | Public Member Functions | Protected Member Functions | Private Attributes
DQMSourcePi0 Class Reference
Inheritance diagram for DQMSourcePi0:
DQMEDAnalyzer edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >

Public Member Functions

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

Protected Member Functions

void analyze (const edm::Event &e, const edm::EventSetup &c) override
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
void convxtalid (int &, int &)
 
int diff_neta_s (int, int)
 
int diff_nphi_s (int, int)
 
- Protected Member Functions inherited from DQMEDAnalyzer
uint64_t meId () const
 

Private Attributes

edm::ESGetToken< CaloGeometry, CaloGeometryRecordcaloGeomToken_
 
edm::ESGetToken< CaloTopology, CaloTopologyRecordcaloTopoToken_
 
int clusEtaSize_
 
int clusPhiSize_
 
double clusSeedThr_
 
double clusSeedThrEndCap_
 
std::vector< EBDetIddetIdEBRecHits
 
std::vector< EEDetIddetIdEERecHits
 
std::vector< EcalRecHitEBRecHits
 
std::vector< EcalRecHitEERecHits
 
int eventCounter_
 
std::string fileName_
 Output file name if required. More...
 
std::string folderName_
 DQM folder name. More...
 
int gammaCandEtaSize_
 
int gammaCandPhiSize_
 
MonitorElementhEventEnergyEBeta_
 Distribution of total event energy EB (eta) More...
 
MonitorElementhEventEnergyEBpi0_
 Distribution of total event energy EB (pi0) More...
 
MonitorElementhEventEnergyEEeta_
 Distribution of total event energy EE (eta) More...
 
MonitorElementhEventEnergyEEpi0_
 Distribution of total event energy EE (pi0) More...
 
MonitorElementhiEtaDistrEBeta_
 Distribution of rechits in iEta (eta) More...
 
MonitorElementhiEtaDistrEBpi0_
 Distribution of rechits in iEta (pi0) More...
 
MonitorElementhiPhiDistrEBeta_
 Distribution of rechits in iPhi (eta) More...
 
MonitorElementhiPhiDistrEBpi0_
 Distribution of rechits in iPhi (pi0) More...
 
MonitorElementhIsoEtaEB_
 Eta Iso EB. More...
 
MonitorElementhIsoEtaEE_
 Eta Iso EE. More...
 
MonitorElementhIsoPi0EB_
 Pi0 Iso EB. More...
 
MonitorElementhIsoPi0EE_
 Pi0 Iso EE. More...
 
MonitorElementhiXDistrEEeta_
 Distribution of rechits in ix EE (eta) More...
 
MonitorElementhiXDistrEEpi0_
 Distribution of rechits in ix EE (pi0) More...
 
MonitorElementhiYDistrEEeta_
 Distribution of rechits in iy EE (eta) More...
 
MonitorElementhiYDistrEEpi0_
 Distribution of rechits in iy EE (pi0) More...
 
MonitorElementhMeanRecHitEnergyEBeta_
 Distribution of Mean energy per rechit EB (eta) More...
 
MonitorElementhMeanRecHitEnergyEBpi0_
 Distribution of Mean energy per rechit EB (pi0) More...
 
MonitorElementhMeanRecHitEnergyEEeta_
 Distribution of Mean energy per rechit EE (eta) More...
 
MonitorElementhMeanRecHitEnergyEEpi0_
 Distribution of Mean energy per rechit EE (pi0) More...
 
MonitorElementhMinvEtaEB_
 Eta invariant mass in EB. More...
 
MonitorElementhMinvEtaEE_
 Eta invariant mass in EE. More...
 
MonitorElementhMinvPi0EB_
 Pi0 invariant mass in EB. More...
 
MonitorElementhMinvPi0EE_
 Pi0 invariant mass in EE. More...
 
MonitorElementhNRecHitsEBeta_
 Distribution of number of RecHits EB (eta) More...
 
MonitorElementhNRecHitsEBpi0_
 Distribution of number of RecHits EB (pi0) More...
 
MonitorElementhNRecHitsEEeta_
 Distribution of number of RecHits EE (eta) More...
 
MonitorElementhNRecHitsEEpi0_
 Distribution of number of RecHits EE (pi0) More...
 
MonitorElementhPt1EtaEB_
 Pt of the 1st most energetic Eta photon in EB. More...
 
MonitorElementhPt1EtaEE_
 Pt of the 1st most energetic Eta photon in EE. More...
 
MonitorElementhPt1Pi0EB_
 Pt of the 1st most energetic Pi0 photon in EB. More...
 
MonitorElementhPt1Pi0EE_
 Pt of the 1st most energetic Pi0 photon in EE. More...
 
MonitorElementhPt2EtaEB_
 Pt of the 2nd most energetic Eta photon in EB. More...
 
MonitorElementhPt2EtaEE_
 Pt of the 2nd most energetic Eta photon in EE. More...
 
MonitorElementhPt2Pi0EB_
 Pt of the 2nd most energetic Pi0 photon in EB. More...
 
MonitorElementhPt2Pi0EE_
 Pt of the 2nd most energetic Pi0 photon in EE. More...
 
MonitorElementhPtEtaEB_
 Eta Pt in EB. More...
 
MonitorElementhPtEtaEE_
 Eta Pt in EE. More...
 
MonitorElementhPtPi0EB_
 Pi0 Pt in EB. More...
 
MonitorElementhPtPi0EE_
 Pi0 Pt in EE. More...
 
MonitorElementhRechitEnergyEBeta_
 Energy Distribution of rechits EB (eta) More...
 
MonitorElementhRechitEnergyEBpi0_
 Energy Distribution of rechits EB (pi0) More...
 
MonitorElementhRechitEnergyEEeta_
 Energy Distribution of rechits EE (eta) More...
 
MonitorElementhRechitEnergyEEpi0_
 Energy Distribution of rechits EE (pi0) More...
 
MonitorElementhS4S91EtaEB_
 S4S9 of the 1st most energetic eta photon. More...
 
MonitorElementhS4S91EtaEE_
 S4S9 of the 1st most energetic eta photon EE. More...
 
MonitorElementhS4S91Pi0EB_
 S4S9 of the 1st most energetic pi0 photon. More...
 
MonitorElementhS4S91Pi0EE_
 S4S9 of the 1st most energetic pi0 photon EE. More...
 
MonitorElementhS4S92EtaEB_
 S4S9 of the 2nd most energetic eta photon. More...
 
MonitorElementhS4S92EtaEE_
 S4S9 of the 2nd most energetic eta photon EE. More...
 
MonitorElementhS4S92Pi0EB_
 S4S9 of the 2nd most energetic pi0 photon. More...
 
MonitorElementhS4S92Pi0EE_
 S4S9 of the 2nd most energetic pi0 photon EE. More...
 
bool isMonEBeta_
 
bool isMonEBpi0_
 which subdet will be monitored More...
 
bool isMonEEeta_
 
bool isMonEEpi0_
 
bool ParameterLogWeighted_
 
double ParameterT0_barl_
 
double ParameterT0_endc_
 
double ParameterT0_endcPresh_
 
double ParameterW0_
 
double ParameterX0_
 
PositionCalc posCalculator_
 
unsigned int prescaleFactor_
 Monitor every prescaleFactor_ events. More...
 
edm::EDGetTokenT< EcalRecHitCollectionproductMonitoredEBeta_
 
edm::EDGetTokenT< EcalRecHitCollectionproductMonitoredEBpi0_
 object to monitor More...
 
edm::EDGetTokenT< EcalRecHitCollectionproductMonitoredEEeta_
 
edm::EDGetTokenT< EcalRecHitCollectionproductMonitoredEEpi0_
 object to monitor More...
 
double ptMinForIsolation_
 
double ptMinForIsolationEndCap_
 
double ptMinForIsolationEta_
 
double ptMinForIsolationEtaEndCap_
 
bool saveToFile_
 Write to file. More...
 
double seleEtaBeltDeta_
 
double seleEtaBeltDetaEndCap_
 
double seleEtaBeltDR_
 
double seleEtaBeltDREndCap_
 
double seleEtaIso_
 
double seleEtaIsoEndCap_
 
double seleMinvMaxEta_
 
double seleMinvMaxEtaEndCap_
 
double seleMinvMaxPi0_
 
double seleMinvMaxPi0EndCap_
 
double seleMinvMinEta_
 
double seleMinvMinEtaEndCap_
 
double seleMinvMinPi0_
 
double seleMinvMinPi0EndCap_
 
double selePi0BeltDeta_
 
double selePi0BeltDetaEndCap_
 
double selePi0BeltDR_
 
double selePi0BeltDREndCap_
 
double selePi0Iso_
 
double selePi0IsoEndCap_
 
double selePtEta_
 
double selePtEtaEndCap_
 
double selePtGamma_
 
double selePtGammaEndCap_
 for pi0->gg endcap More...
 
double selePtGammaEta_
 for eta->gg barrel More...
 
double selePtGammaEtaEndCap_
 for eta->gg endcap More...
 
double selePtPi0_
 
double selePtPi0EndCap_
 
double seleS4S9Gamma_
 
double seleS4S9GammaEndCap_
 
double seleS4S9GammaEta_
 
double seleS4S9GammaEtaEndCap_
 
double seleS9S25GammaEta_
 
double seleS9S25GammaEtaEndCap_
 
double seleXtalMinEnergy_
 
double seleXtalMinEnergyEndCap_
 

Additional Inherited Members

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

Detailed Description

Definition at line 44 of file DQMSourcePi0.cc.

Constructor & Destructor Documentation

◆ DQMSourcePi0()

DQMSourcePi0::DQMSourcePi0 ( const edm::ParameterSet ps)

for Pi0 barrel selection

for Pi0 endcap selection

for Eta barrel selection

for Eta endcap selection

Definition at line 324 of file DQMSourcePi0.cc.

References caloGeomToken_, caloTopoToken_, clusEtaSize_, clusPhiSize_, clusSeedThr_, clusSeedThrEndCap_, deDxTools::esConsumes(), fileName_, folderName_, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), isMonEBeta_, isMonEBpi0_, isMonEEeta_, isMonEEpi0_, ecalPiZeroTask_cfi::posCalcParameters, posCalculator_, prescaleFactor_, productMonitoredEBeta_, productMonitoredEBpi0_, productMonitoredEEeta_, productMonitoredEEpi0_, ptMinForIsolation_, ptMinForIsolationEndCap_, ptMinForIsolationEta_, ptMinForIsolationEtaEndCap_, saveToFile_, seleEtaBeltDeta_, seleEtaBeltDetaEndCap_, seleEtaBeltDR_, seleEtaBeltDREndCap_, seleEtaIso_, seleEtaIsoEndCap_, seleMinvMaxEta_, seleMinvMaxEtaEndCap_, seleMinvMaxPi0_, seleMinvMaxPi0EndCap_, seleMinvMinEta_, seleMinvMinEtaEndCap_, seleMinvMinPi0_, seleMinvMinPi0EndCap_, selePi0BeltDeta_, selePi0BeltDetaEndCap_, selePi0BeltDR_, selePi0BeltDREndCap_, selePi0Iso_, selePi0IsoEndCap_, selePtEta_, selePtEtaEndCap_, selePtGamma_, selePtGammaEndCap_, selePtGammaEta_, selePtGammaEtaEndCap_, selePtPi0_, selePtPi0EndCap_, seleS4S9Gamma_, seleS4S9GammaEndCap_, seleS4S9GammaEta_, seleS4S9GammaEtaEndCap_, seleS9S25GammaEta_, seleS9S25GammaEtaEndCap_, seleXtalMinEnergy_, seleXtalMinEnergyEndCap_, and AlCaHLTBitMon_QueryRunRegistry::string.

324  : eventCounter_(0) {
325  folderName_ = ps.getUntrackedParameter<std::string>("FolderName", "HLT/AlCaEcalPi0");
326  prescaleFactor_ = ps.getUntrackedParameter<int>("prescaleFactor", 1);
328  consumes<EcalRecHitCollection>(ps.getUntrackedParameter<edm::InputTag>("AlCaStreamEBpi0Tag"));
330  consumes<EcalRecHitCollection>(ps.getUntrackedParameter<edm::InputTag>("AlCaStreamEBetaTag"));
332  consumes<EcalRecHitCollection>(ps.getUntrackedParameter<edm::InputTag>("AlCaStreamEEpi0Tag"));
334  consumes<EcalRecHitCollection>(ps.getUntrackedParameter<edm::InputTag>("AlCaStreamEEetaTag"));
337 
338  isMonEBpi0_ = ps.getUntrackedParameter<bool>("isMonEBpi0", false);
339  isMonEBeta_ = ps.getUntrackedParameter<bool>("isMonEBeta", false);
340  isMonEEpi0_ = ps.getUntrackedParameter<bool>("isMonEEpi0", false);
341  isMonEEeta_ = ps.getUntrackedParameter<bool>("isMonEEeta", false);
342 
343  saveToFile_ = ps.getUntrackedParameter<bool>("SaveToFile", false);
344  fileName_ = ps.getUntrackedParameter<std::string>("FileName", "MonitorAlCaEcalPi0.root");
345 
346  clusSeedThr_ = ps.getParameter<double>("clusSeedThr");
347  clusSeedThrEndCap_ = ps.getParameter<double>("clusSeedThrEndCap");
348  clusEtaSize_ = ps.getParameter<int>("clusEtaSize");
349  clusPhiSize_ = ps.getParameter<int>("clusPhiSize");
350  if (clusPhiSize_ % 2 == 0 || clusEtaSize_ % 2 == 0)
351  edm::LogError("AlCaPi0RecHitsProducerError") << "Size of eta/phi for simple clustering should be odd numbers";
352 
353  seleXtalMinEnergy_ = ps.getParameter<double>("seleXtalMinEnergy");
354  seleXtalMinEnergyEndCap_ = ps.getParameter<double>("seleXtalMinEnergyEndCap");
355 
357  selePtGamma_ = ps.getParameter<double>("selePtGamma");
358  selePtPi0_ = ps.getParameter<double>("selePtPi0");
359  seleMinvMaxPi0_ = ps.getParameter<double>("seleMinvMaxPi0");
360  seleMinvMinPi0_ = ps.getParameter<double>("seleMinvMinPi0");
361  seleS4S9Gamma_ = ps.getParameter<double>("seleS4S9Gamma");
362  selePi0Iso_ = ps.getParameter<double>("selePi0Iso");
363  ptMinForIsolation_ = ps.getParameter<double>("ptMinForIsolation");
364  selePi0BeltDR_ = ps.getParameter<double>("selePi0BeltDR");
365  selePi0BeltDeta_ = ps.getParameter<double>("selePi0BeltDeta");
366 
368  selePtGammaEndCap_ = ps.getParameter<double>("selePtGammaEndCap");
369  selePtPi0EndCap_ = ps.getParameter<double>("selePtPi0EndCap");
370  seleS4S9GammaEndCap_ = ps.getParameter<double>("seleS4S9GammaEndCap");
371  seleMinvMaxPi0EndCap_ = ps.getParameter<double>("seleMinvMaxPi0EndCap");
372  seleMinvMinPi0EndCap_ = ps.getParameter<double>("seleMinvMinPi0EndCap");
373  ptMinForIsolationEndCap_ = ps.getParameter<double>("ptMinForIsolationEndCap");
374  selePi0BeltDREndCap_ = ps.getParameter<double>("selePi0BeltDREndCap");
375  selePi0BeltDetaEndCap_ = ps.getParameter<double>("selePi0BeltDetaEndCap");
376  selePi0IsoEndCap_ = ps.getParameter<double>("selePi0IsoEndCap");
377 
379  selePtGammaEta_ = ps.getParameter<double>("selePtGammaEta");
380  selePtEta_ = ps.getParameter<double>("selePtEta");
381  seleS4S9GammaEta_ = ps.getParameter<double>("seleS4S9GammaEta");
382  seleS9S25GammaEta_ = ps.getParameter<double>("seleS9S25GammaEta");
383  seleMinvMaxEta_ = ps.getParameter<double>("seleMinvMaxEta");
384  seleMinvMinEta_ = ps.getParameter<double>("seleMinvMinEta");
385  ptMinForIsolationEta_ = ps.getParameter<double>("ptMinForIsolationEta");
386  seleEtaIso_ = ps.getParameter<double>("seleEtaIso");
387  seleEtaBeltDR_ = ps.getParameter<double>("seleEtaBeltDR");
388  seleEtaBeltDeta_ = ps.getParameter<double>("seleEtaBeltDeta");
389 
391  selePtGammaEtaEndCap_ = ps.getParameter<double>("selePtGammaEtaEndCap");
392  selePtEtaEndCap_ = ps.getParameter<double>("selePtEtaEndCap");
393  seleS4S9GammaEtaEndCap_ = ps.getParameter<double>("seleS4S9GammaEtaEndCap");
394  seleS9S25GammaEtaEndCap_ = ps.getParameter<double>("seleS9S25GammaEtaEndCap");
395  seleMinvMaxEtaEndCap_ = ps.getParameter<double>("seleMinvMaxEtaEndCap");
396  seleMinvMinEtaEndCap_ = ps.getParameter<double>("seleMinvMinEtaEndCap");
397  ptMinForIsolationEtaEndCap_ = ps.getParameter<double>("ptMinForIsolationEtaEndCap");
398  seleEtaIsoEndCap_ = ps.getParameter<double>("seleEtaIsoEndCap");
399  seleEtaBeltDREndCap_ = ps.getParameter<double>("seleEtaBeltDREndCap");
400  seleEtaBeltDetaEndCap_ = ps.getParameter<double>("seleEtaBeltDetaEndCap");
401 
402  // Parameters for the position calculation:
405 }
edm::EDGetTokenT< EcalRecHitCollection > productMonitoredEEeta_
double seleEtaBeltDREndCap_
double seleMinvMinPi0EndCap_
ESGetTokenH3DDVariant esConsumes(std::string const &Record, edm::ConsumesCollector &)
Definition: DeDxTools.cc:283
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
double ptMinForIsolationEtaEndCap_
double seleEtaBeltDR_
PositionCalc posCalculator_
Definition: DQMSourcePi0.cc:59
double seleMinvMinEtaEndCap_
edm::EDGetTokenT< EcalRecHitCollection > productMonitoredEBeta_
double selePtGammaEndCap_
for pi0->gg endcap
double seleMinvMaxPi0EndCap_
std::string folderName_
DQM folder name.
std::string fileName_
Output file name if required.
double clusSeedThr_
double seleMinvMaxEtaEndCap_
double selePi0Iso_
double selePtEtaEndCap_
bool saveToFile_
Write to file.
Log< level::Error, false > LogError
double seleS4S9GammaEtaEndCap_
double selePi0BeltDeta_
double seleS4S9Gamma_
double ptMinForIsolationEta_
T getUntrackedParameter(std::string const &, T const &) const
double seleMinvMinPi0_
double seleMinvMaxEta_
double ptMinForIsolationEndCap_
double seleS4S9GammaEta_
double selePi0BeltDetaEndCap_
edm::EDGetTokenT< EcalRecHitCollection > productMonitoredEBpi0_
object to monitor
bool isMonEBpi0_
which subdet will be monitored
double selePtPi0EndCap_
double seleMinvMinEta_
double selePtGammaEtaEndCap_
for eta->gg endcap
double ptMinForIsolation_
double seleXtalMinEnergy_
double seleEtaBeltDeta_
double seleXtalMinEnergyEndCap_
double seleS9S25GammaEtaEndCap_
double selePi0BeltDR_
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > caloGeomToken_
double selePtGammaEta_
for eta->gg barrel
edm::EDGetTokenT< EcalRecHitCollection > productMonitoredEEpi0_
object to monitor
edm::ESGetToken< CaloTopology, CaloTopologyRecord > caloTopoToken_
double seleEtaBeltDetaEndCap_
double selePtEta_
double seleEtaIso_
double selePi0IsoEndCap_
double seleMinvMaxPi0_
double seleEtaIsoEndCap_
unsigned int prescaleFactor_
Monitor every prescaleFactor_ events.
double selePtPi0_
double seleS4S9GammaEndCap_
double selePi0BeltDREndCap_
double seleS9S25GammaEta_
double selePtGamma_
double clusSeedThrEndCap_

◆ ~DQMSourcePi0()

DQMSourcePi0::~DQMSourcePi0 ( )
override

Definition at line 407 of file DQMSourcePi0.cc.

407 {}

Member Function Documentation

◆ analyze()

void DQMSourcePi0::analyze ( const edm::Event e,
const edm::EventSetup c 
)
overrideprotectedvirtual

EcalRecHit

check s4s9

calculate e5x5

already clustered

check s4s9

calculate e5x5

already clustered

EcalRecHit

EcalRecHit

Reimplemented from DQMEDAnalyzer.

Definition at line 586 of file DQMSourcePi0.cc.

References funct::abs(), edm::SortedCollection< T, SORT >::begin(), PositionCalc::Calculate_Location(), caloGeomToken_, caloTopoToken_, clusEtaSize_, clusPhiSize_, clusSeedThr_, clusSeedThrEndCap_, convxtalid(), funct::cos(), detIdEBRecHits, detIdEERecHits, diff_neta_s(), diff_nphi_s(), PVValHelper::dx, PVValHelper::dy, EBRecHits, DetId::Ecal, EcalBarrel, EcalEndcap, EcalPreshower, ecalRecHitGreater(), EERecHits, edm::SortedCollection< T, SORT >::empty(), edm::SortedCollection< T, SORT >::end(), hcalRecHitTable_cff::energy, eventCounter_, JetChargeProducer_cfi::exp, dqm::impl::MonitorElement::Fill(), spr::find(), edm::EventSetup::getHandle(), CaloSubdetectorTopology::getWindow(), hEventEnergyEBeta_, hEventEnergyEBpi0_, hEventEnergyEEeta_, hEventEnergyEEpi0_, hiEtaDistrEBeta_, hiEtaDistrEBpi0_, hiPhiDistrEBeta_, hiPhiDistrEBpi0_, hIsoEtaEB_, hIsoEtaEE_, hIsoPi0EB_, hIsoPi0EE_, hiXDistrEEeta_, hiXDistrEEpi0_, hiYDistrEEeta_, hiYDistrEEpi0_, hMeanRecHitEnergyEBeta_, hMeanRecHitEnergyEBpi0_, hMeanRecHitEnergyEEeta_, hMeanRecHitEnergyEEpi0_, hMinvEtaEB_, hMinvEtaEE_, hMinvPi0EB_, hMinvPi0EE_, hNRecHitsEBeta_, hNRecHitsEBpi0_, hNRecHitsEEeta_, hNRecHitsEEpi0_, hPt1EtaEB_, hPt1EtaEE_, hPt1Pi0EB_, hPt1Pi0EE_, hPt2EtaEB_, hPt2EtaEE_, hPt2Pi0EB_, hPt2Pi0EE_, hPtEtaEB_, hPtEtaEE_, hPtPi0EB_, hPtPi0EE_, hRechitEnergyEBeta_, hRechitEnergyEBpi0_, hRechitEnergyEEeta_, hRechitEnergyEEpi0_, hS4S91EtaEB_, hS4S91EtaEE_, hS4S91Pi0EB_, hS4S91Pi0EE_, hS4S92EtaEB_, hS4S92EtaEE_, hS4S92Pi0EB_, hS4S92Pi0EE_, mps_fire::i, l1ctLayer2EG_cff::id, hcalRecHitTable_cff::ieta, EBDetId::ieta(), iEvent, createfilelist::int, hcalRecHitTable_cff::iphi, EBDetId::iphi(), isMonEBeta_, isMonEBpi0_, isMonEEeta_, isMonEEpi0_, edm::HandleBase::isValid(), EEDetId::ix(), EEDetId::iy(), dqmiolumiharvest::j, dqmdumpme::k, groupFilesInBlocks::nn, posCalculator_, prescaleFactor_, edm::Handle< T >::product(), productMonitoredEBeta_, productMonitoredEBpi0_, productMonitoredEEeta_, productMonitoredEEpi0_, ptMinForIsolation_, ptMinForIsolationEndCap_, ptMinForIsolationEta_, ptMinForIsolationEtaEndCap_, DetachedQuadStep_cff::seeds, seleEtaBeltDeta_, seleEtaBeltDetaEndCap_, seleEtaBeltDR_, seleEtaBeltDREndCap_, seleEtaIso_, seleEtaIsoEndCap_, seleMinvMaxEta_, seleMinvMaxEtaEndCap_, seleMinvMaxPi0_, seleMinvMaxPi0EndCap_, seleMinvMinEta_, seleMinvMinEtaEndCap_, seleMinvMinPi0_, seleMinvMinPi0EndCap_, selePi0BeltDeta_, selePi0BeltDetaEndCap_, selePi0BeltDR_, selePi0BeltDREndCap_, selePi0Iso_, selePi0IsoEndCap_, selePtEta_, selePtEtaEndCap_, selePtGamma_, selePtGammaEndCap_, selePtGammaEta_, selePtGammaEtaEndCap_, selePtPi0_, selePtPi0EndCap_, seleS4S9Gamma_, seleS4S9GammaEndCap_, seleS4S9GammaEta_, seleS4S9GammaEtaEndCap_, seleXtalMinEnergy_, seleXtalMinEnergyEndCap_, funct::sin(), edm::SortedCollection< T, SORT >::size(), jetUpdater_cfi::sort, and mathSSE::sqrt().

586  {
588  return;
589  eventCounter_++;
590 
591  auto const &theCaloTopology = iSetup.getHandle(caloTopoToken_);
592 
593  std::vector<EcalRecHit> seeds;
594  seeds.clear();
595 
596  std::vector<EBDetId> usedXtals;
597  usedXtals.clear();
598 
599  detIdEBRecHits.clear();
600  EBRecHits.clear();
601 
606 
607  if (isMonEBpi0_)
608  iEvent.getByToken(productMonitoredEBpi0_, rhEBpi0);
609  if (isMonEBeta_)
610  iEvent.getByToken(productMonitoredEBeta_, rhEBeta);
611  if (isMonEEpi0_)
612  iEvent.getByToken(productMonitoredEEpi0_, rhEEpi0);
613  if (isMonEEeta_)
614  iEvent.getByToken(productMonitoredEEeta_, rhEEeta);
615 
616  // Initialize the Position Calc
617 
618  //edm::ESHandle<CaloGeometry> geoHandle;
619  //iSetup.get<CaloGeometryRecord>().get(geoHandle);
620  const auto &geoHandle = iSetup.getHandle(caloGeomToken_);
621  const CaloSubdetectorGeometry *geometry_p = geoHandle->getSubdetectorGeometry(DetId::Ecal, EcalBarrel);
622  const CaloSubdetectorGeometry *geometryEE_p = geoHandle->getSubdetectorGeometry(DetId::Ecal, EcalEndcap);
623  const CaloSubdetectorGeometry *geometryES_p = geoHandle->getSubdetectorGeometry(DetId::Ecal, EcalPreshower);
624 
625  const CaloSubdetectorTopology *topology_p = theCaloTopology->getSubdetectorTopology(DetId::Ecal, EcalBarrel);
626  const CaloSubdetectorTopology *topology_ee = theCaloTopology->getSubdetectorTopology(DetId::Ecal, EcalEndcap);
627 
629 
630  // fill EB pi0 histos
631  if (isMonEBpi0_) {
632  if (rhEBpi0.isValid() && (!rhEBpi0->empty())) {
633  const EcalRecHitCollection *hitCollection_p = rhEBpi0.product();
634  float etot = 0;
635  for (itb = rhEBpi0->begin(); itb != rhEBpi0->end(); ++itb) {
636  EBDetId id(itb->id());
637  double energy = itb->energy();
639  continue;
640 
641  EBDetId det = itb->id();
642 
643  detIdEBRecHits.push_back(det);
644  EBRecHits.push_back(*itb);
645 
646  if (energy > clusSeedThr_)
647  seeds.push_back(*itb);
648 
649  hiPhiDistrEBpi0_->Fill(id.iphi());
650  hiEtaDistrEBpi0_->Fill(id.ieta());
651  hRechitEnergyEBpi0_->Fill(itb->energy());
652 
653  etot += itb->energy();
654  } // Eb rechits
655 
656  hNRecHitsEBpi0_->Fill(rhEBpi0->size());
657  hMeanRecHitEnergyEBpi0_->Fill(etot / rhEBpi0->size());
658  hEventEnergyEBpi0_->Fill(etot);
659 
660  // cout << " EB RH Pi0 collection: #, mean rh_e, event E
661  // "<<rhEBpi0->size()<<" "<<etot/rhEBpi0->size()<<" "<<etot<<endl;
662 
663  // Pi0 maker
664 
665  // cout<< " RH coll size: "<<rhEBpi0->size()<<endl;
666  // cout<< " Pi0 seeds: "<<seeds.size()<<endl;
667 
668  int nClus;
669  std::vector<float> eClus;
670  std::vector<float> etClus;
671  std::vector<float> etaClus;
672  std::vector<float> thetaClus;
673  std::vector<float> phiClus;
674  std::vector<EBDetId> max_hit;
675 
676  std::vector<std::vector<EcalRecHit>> RecHitsCluster;
677  std::vector<std::vector<EcalRecHit>> RecHitsCluster5x5;
678  std::vector<float> s4s9Clus;
679  std::vector<float> s9s25Clus;
680 
681  nClus = 0;
682 
683  // Make own simple clusters (3x3, 5x5 or clusPhiSize_ x clusEtaSize_)
684  std::sort(seeds.begin(), seeds.end(), ecalRecHitGreater);
685 
686  for (std::vector<EcalRecHit>::iterator itseed = seeds.begin(); itseed != seeds.end(); itseed++) {
687  EBDetId seed_id = itseed->id();
688  std::vector<EBDetId>::const_iterator usedIds;
689 
690  bool seedAlreadyUsed = false;
691  for (usedIds = usedXtals.begin(); usedIds != usedXtals.end(); usedIds++) {
692  if (*usedIds == seed_id) {
693  seedAlreadyUsed = true;
694  // cout<< " Seed with energy "<<itseed->energy()<<" was used
695  // !"<<endl;
696  break;
697  }
698  }
699  if (seedAlreadyUsed)
700  continue;
701  std::vector<DetId> clus_v = topology_p->getWindow(seed_id, clusEtaSize_, clusPhiSize_);
702  std::vector<std::pair<DetId, float>> clus_used;
703  // Reject the seed if not able to build the cluster around it correctly
704  // if(clus_v.size() < clusEtaSize_*clusPhiSize_){cout<<" Not enough
705  // RecHits "<<endl; continue;}
706  std::vector<EcalRecHit> RecHitsInWindow;
707  std::vector<EcalRecHit> RecHitsInWindow5x5;
708 
709  double simple_energy = 0;
710 
711  for (std::vector<DetId>::iterator det = clus_v.begin(); det != clus_v.end(); det++) {
712  EBDetId EBdet = *det;
713  // cout<<" det "<< EBdet<<" ieta "<<EBdet.ieta()<<" iphi
714  // "<<EBdet.iphi()<<endl;
715  bool HitAlreadyUsed = false;
716  for (usedIds = usedXtals.begin(); usedIds != usedXtals.end(); usedIds++) {
717  if (*usedIds == *det) {
718  HitAlreadyUsed = true;
719  break;
720  }
721  }
722  if (HitAlreadyUsed)
723  continue;
724 
725  std::vector<EBDetId>::iterator itdet = find(detIdEBRecHits.begin(), detIdEBRecHits.end(), EBdet);
726  if (itdet == detIdEBRecHits.end())
727  continue;
728 
729  int nn = int(itdet - detIdEBRecHits.begin());
730  usedXtals.push_back(*det);
731  RecHitsInWindow.push_back(EBRecHits[nn]);
732  clus_used.push_back(std::make_pair(*det, 1));
733  simple_energy = simple_energy + EBRecHits[nn].energy();
734  }
735 
736  if (simple_energy <= 0)
737  continue;
738 
739  math::XYZPoint clus_pos =
740  posCalculator_.Calculate_Location(clus_used, hitCollection_p, geometry_p, geometryES_p);
741  // cout<< " Simple Clustering: Total energy for this simple
742  // cluster : "<<simple_energy<<endl; cout<< " Simple Clustering:
743  // eta phi : "<<clus_pos.eta()<<" "<<clus_pos.phi()<<endl; cout<< "
744  // Simple Clustering: x y z : "<<clus_pos.x()<<" "<<clus_pos.y()<<"
745  // "<<clus_pos.z()<<endl;
746 
747  float theta_s = 2. * atan(exp(-clus_pos.eta()));
748  // float p0x_s = simple_energy * sin(theta_s) *
749  // cos(clus_pos.phi()); float p0y_s = simple_energy * sin(theta_s) *
750  // sin(clus_pos.phi());
751  // float p0z_s = simple_energy * cos(theta_s);
752  // float et_s = sqrt( p0x_s*p0x_s + p0y_s*p0y_s);
753 
754  float et_s = simple_energy * sin(theta_s);
755  // cout << " Simple Clustering: E,Et,px,py,pz: "<<simple_energy<<"
756  // "<<et_s<<" "<<p0x_s<<" "<<p0y_s<<" "<<endl;
757 
758  // Compute S4/S9 variable
759  // We are not sure to have 9 RecHits so need to check eta and phi:
761  float s4s9_tmp[4];
762  for (int i = 0; i < 4; i++)
763  s4s9_tmp[i] = 0;
764 
765  int seed_ieta = seed_id.ieta();
766  int seed_iphi = seed_id.iphi();
767 
768  convxtalid(seed_iphi, seed_ieta);
769 
770  float e3x3 = 0;
771  float e5x5 = 0;
772 
773  for (unsigned int j = 0; j < RecHitsInWindow.size(); j++) {
774  EBDetId det = (EBDetId)RecHitsInWindow[j].id();
775 
776  int ieta = det.ieta();
777  int iphi = det.iphi();
778 
779  convxtalid(iphi, ieta);
780 
781  float en = RecHitsInWindow[j].energy();
782 
783  int dx = diff_neta_s(seed_ieta, ieta);
784  int dy = diff_nphi_s(seed_iphi, iphi);
785 
786  if (dx <= 0 && dy <= 0)
787  s4s9_tmp[0] += en;
788  if (dx >= 0 && dy <= 0)
789  s4s9_tmp[1] += en;
790  if (dx <= 0 && dy >= 0)
791  s4s9_tmp[2] += en;
792  if (dx >= 0 && dy >= 0)
793  s4s9_tmp[3] += en;
794 
795  if (std::abs(dx) <= 1 && std::abs(dy) <= 1)
796  e3x3 += en;
797  if (std::abs(dx) <= 2 && std::abs(dy) <= 2)
798  e5x5 += en;
799  }
800 
801  if (e3x3 <= 0)
802  continue;
803 
804  float s4s9_max = *std::max_element(s4s9_tmp, s4s9_tmp + 4) / e3x3;
805 
807  std::vector<DetId> clus_v5x5 = topology_p->getWindow(seed_id, 5, 5);
808  for (std::vector<DetId>::const_iterator idItr = clus_v5x5.begin(); idItr != clus_v5x5.end(); idItr++) {
809  EBDetId det = *idItr;
810 
811  std::vector<EBDetId>::iterator itdet0 = find(usedXtals.begin(), usedXtals.end(), det);
812 
814  if (itdet0 != usedXtals.end())
815  continue;
816 
817  // inside collections
818  std::vector<EBDetId>::iterator itdet = find(detIdEBRecHits.begin(), detIdEBRecHits.end(), det);
819  if (itdet == detIdEBRecHits.end())
820  continue;
821 
822  int nn = int(itdet - detIdEBRecHits.begin());
823 
824  RecHitsInWindow5x5.push_back(EBRecHits[nn]);
825  e5x5 += EBRecHits[nn].energy();
826  }
827 
828  if (e5x5 <= 0)
829  continue;
830 
831  eClus.push_back(simple_energy);
832  etClus.push_back(et_s);
833  etaClus.push_back(clus_pos.eta());
834  thetaClus.push_back(theta_s);
835  phiClus.push_back(clus_pos.phi());
836  s4s9Clus.push_back(s4s9_max);
837  s9s25Clus.push_back(e3x3 / e5x5);
838  RecHitsCluster.push_back(RecHitsInWindow);
839  RecHitsCluster5x5.push_back(RecHitsInWindow5x5);
840 
841  // std::cout<<" EB pi0 cluster (n,nxt,e,et eta,phi,s4s9)
842  //"<<nClus<<" "<<int(RecHitsInWindow.size())<<" "<<eClus[nClus]<<" "<<"
843  //"<<etClus[nClus]<<" "<<etaClus[nClus]<<" "<<phiClus[nClus]<<"
844  //"<<s4s9Clus[nClus]<<std::endl;
845 
846  nClus++;
847  }
848 
849  // cout<< " Pi0 clusters: "<<nClus<<endl;
850 
851  // Selection, based on Simple clustering
852  // pi0 candidates
853 
854  // if (nClus <= 1) return;
855  for (Int_t i = 0; i < nClus; i++) {
856  for (Int_t j = i + 1; j < nClus; j++) {
857  // cout<<" i "<<i<<" etClus[i] "<<etClus[i]<<" j "<<j<<"
858  // etClus[j] "<<etClus[j]<<endl;
859  if (etClus[i] > selePtGamma_ && etClus[j] > selePtGamma_ && s4s9Clus[i] > seleS4S9Gamma_ &&
860  s4s9Clus[j] > seleS4S9Gamma_) {
861  float p0x = etClus[i] * cos(phiClus[i]);
862  float p1x = etClus[j] * cos(phiClus[j]);
863  float p0y = etClus[i] * sin(phiClus[i]);
864  float p1y = etClus[j] * sin(phiClus[j]);
865  float p0z = eClus[i] * cos(thetaClus[i]);
866  float p1z = eClus[j] * cos(thetaClus[j]);
867 
868  float pt_pair = sqrt((p0x + p1x) * (p0x + p1x) + (p0y + p1y) * (p0y + p1y));
869 
870  if (pt_pair < selePtPi0_)
871  continue;
872 
873  float m_inv = sqrt((eClus[i] + eClus[j]) * (eClus[i] + eClus[j]) - (p0x + p1x) * (p0x + p1x) -
874  (p0y + p1y) * (p0y + p1y) - (p0z + p1z) * (p0z + p1z));
875  if ((m_inv < seleMinvMaxPi0_) && (m_inv > seleMinvMinPi0_)) {
876  // New Loop on cluster to measure isolation:
877  std::vector<int> IsoClus;
878  IsoClus.clear();
879  float Iso = 0;
880  TVector3 pairVect = TVector3((p0x + p1x), (p0y + p1y), (p0z + p1z));
881  for (Int_t k = 0; k < nClus; k++) {
882  if (etClus[k] < ptMinForIsolation_)
883  continue;
884 
885  if (k == i || k == j)
886  continue;
887  TVector3 ClusVect =
888  TVector3(etClus[k] * cos(phiClus[k]), etClus[k] * sin(phiClus[k]), eClus[k] * cos(thetaClus[k]));
889 
890  float dretacl = fabs(etaClus[k] - pairVect.Eta());
891  float drcl = ClusVect.DeltaR(pairVect);
892  // cout<< " Iso: k, E, drclpi0, detaclpi0, dphiclpi0
893  // "<<k<<" "<<eClus[k]<<" "<<drclpi0<<"
894  // "<<dretaclpi0<<endl;
895  if ((drcl < selePi0BeltDR_) && (dretacl < selePi0BeltDeta_)) {
896  // cout<< " ... good iso cluster #: "<<k<<"
897  // etClus[k] "<<etClus[k] <<endl;
898  Iso = Iso + etClus[k];
899  IsoClus.push_back(k);
900  }
901  }
902 
903  // cout<<" Iso/pt_pi0 "<<Iso/pt_pi0<<endl;
904  if (Iso / pt_pair < selePi0Iso_) {
905  // for(unsigned int
906  // Rec=0;Rec<RecHitsCluster[i].size();Rec++)pi0EBRecHitCollection->push_back(RecHitsCluster[i][Rec]);
907  // for(unsigned int
908  // Rec2=0;Rec2<RecHitsCluster[j].size();Rec2++)pi0EBRecHitCollection->push_back(RecHitsCluster[j][Rec2]);
909 
910  hMinvPi0EB_->Fill(m_inv);
911  hPt1Pi0EB_->Fill(etClus[i]);
912  hPt2Pi0EB_->Fill(etClus[j]);
913  hPtPi0EB_->Fill(pt_pair);
914  hIsoPi0EB_->Fill(Iso / pt_pair);
915  hS4S91Pi0EB_->Fill(s4s9Clus[i]);
916  hS4S92Pi0EB_->Fill(s4s9Clus[j]);
917 
918  // cout <<" EB Simple Clustering: pi0 Candidate
919  // pt, eta, phi, Iso, m_inv, i, j : "<<pt_pair<<"
920  //"<<pairVect.Eta()<<" "<<pairVect.Phi()<<" "<<Iso<<"
921  //"<<m_inv<<" "<<i<<" "<<j<<" "<<endl;
922  }
923  }
924  }
925  } // End of the "j" loop over Simple Clusters
926  } // End of the "i" loop over Simple Clusters
927 
928  } // rhEBpi0.valid() ends
929 
930  } // isMonEBpi0 ends
931 
932  //------------------ End of pi0 in EB --------------------------//
933 
934  // fill EB eta histos
935  if (isMonEBeta_) {
936  if (rhEBeta.isValid() && (!rhEBeta->empty())) {
937  const EcalRecHitCollection *hitCollection_p = rhEBeta.product();
938  float etot = 0;
939  for (itb = rhEBeta->begin(); itb != rhEBeta->end(); ++itb) {
940  EBDetId id(itb->id());
941  double energy = itb->energy();
943  continue;
944 
945  EBDetId det = itb->id();
946 
947  detIdEBRecHits.push_back(det);
948  EBRecHits.push_back(*itb);
949 
950  if (energy > clusSeedThr_)
951  seeds.push_back(*itb);
952 
953  hiPhiDistrEBeta_->Fill(id.iphi());
954  hiEtaDistrEBeta_->Fill(id.ieta());
955  hRechitEnergyEBeta_->Fill(itb->energy());
956 
957  etot += itb->energy();
958  } // Eb rechits
959 
960  hNRecHitsEBeta_->Fill(rhEBeta->size());
961  hMeanRecHitEnergyEBeta_->Fill(etot / rhEBeta->size());
962  hEventEnergyEBeta_->Fill(etot);
963 
964  // cout << " EB RH Eta collection: #, mean rh_e, event E
965  // "<<rhEBeta->size()<<" "<<etot/rhEBeta->size()<<" "<<etot<<endl;
966 
967  // Eta maker
968 
969  // cout<< " RH coll size: "<<rhEBeta->size()<<endl;
970  // cout<< " Eta seeds: "<<seeds.size()<<endl;
971 
972  int nClus;
973  std::vector<float> eClus;
974  std::vector<float> etClus;
975  std::vector<float> etaClus;
976  std::vector<float> thetaClus;
977  std::vector<float> phiClus;
978  std::vector<EBDetId> max_hit;
979 
980  std::vector<std::vector<EcalRecHit>> RecHitsCluster;
981  std::vector<std::vector<EcalRecHit>> RecHitsCluster5x5;
982  std::vector<float> s4s9Clus;
983  std::vector<float> s9s25Clus;
984 
985  nClus = 0;
986 
987  // Make own simple clusters (3x3, 5x5 or clusPhiSize_ x clusEtaSize_)
988  std::sort(seeds.begin(), seeds.end(), ecalRecHitGreater);
989 
990  for (std::vector<EcalRecHit>::iterator itseed = seeds.begin(); itseed != seeds.end(); itseed++) {
991  EBDetId seed_id = itseed->id();
992  std::vector<EBDetId>::const_iterator usedIds;
993 
994  bool seedAlreadyUsed = false;
995  for (usedIds = usedXtals.begin(); usedIds != usedXtals.end(); usedIds++) {
996  if (*usedIds == seed_id) {
997  seedAlreadyUsed = true;
998  // cout<< " Seed with energy "<<itseed->energy()<<" was used
999  // !"<<endl;
1000  break;
1001  }
1002  }
1003  if (seedAlreadyUsed)
1004  continue;
1005  std::vector<DetId> clus_v = topology_p->getWindow(seed_id, clusEtaSize_, clusPhiSize_);
1006  std::vector<std::pair<DetId, float>> clus_used;
1007  // Reject the seed if not able to build the cluster around it correctly
1008  // if(clus_v.size() < clusEtaSize_*clusPhiSize_){cout<<" Not enough
1009  // RecHits "<<endl; continue;}
1010  std::vector<EcalRecHit> RecHitsInWindow;
1011  std::vector<EcalRecHit> RecHitsInWindow5x5;
1012 
1013  double simple_energy = 0;
1014 
1015  for (std::vector<DetId>::iterator det = clus_v.begin(); det != clus_v.end(); det++) {
1016  EBDetId EBdet = *det;
1017  // cout<<" det "<< EBdet<<" ieta "<<EBdet.ieta()<<" iphi
1018  // "<<EBdet.iphi()<<endl;
1019  bool HitAlreadyUsed = false;
1020  for (usedIds = usedXtals.begin(); usedIds != usedXtals.end(); usedIds++) {
1021  if (*usedIds == *det) {
1022  HitAlreadyUsed = true;
1023  break;
1024  }
1025  }
1026  if (HitAlreadyUsed)
1027  continue;
1028 
1029  std::vector<EBDetId>::iterator itdet = find(detIdEBRecHits.begin(), detIdEBRecHits.end(), EBdet);
1030  if (itdet == detIdEBRecHits.end())
1031  continue;
1032 
1033  int nn = int(itdet - detIdEBRecHits.begin());
1034  usedXtals.push_back(*det);
1035  RecHitsInWindow.push_back(EBRecHits[nn]);
1036  clus_used.push_back(std::make_pair(*det, 1));
1037  simple_energy = simple_energy + EBRecHits[nn].energy();
1038  }
1039 
1040  if (simple_energy <= 0)
1041  continue;
1042 
1043  math::XYZPoint clus_pos =
1044  posCalculator_.Calculate_Location(clus_used, hitCollection_p, geometry_p, geometryES_p);
1045  // cout<< " Simple Clustering: Total energy for this simple
1046  // cluster : "<<simple_energy<<endl; cout<< " Simple Clustering:
1047  // eta phi : "<<clus_pos.eta()<<" "<<clus_pos.phi()<<endl; cout<< "
1048  // Simple Clustering: x y z : "<<clus_pos.x()<<" "<<clus_pos.y()<<"
1049  // "<<clus_pos.z()<<endl;
1050 
1051  float theta_s = 2. * atan(exp(-clus_pos.eta()));
1052  // float p0x_s = simple_energy * sin(theta_s) *
1053  // cos(clus_pos.phi()); float p0y_s = simple_energy * sin(theta_s) *
1054  // sin(clus_pos.phi());
1055  // float p0z_s = simple_energy * cos(theta_s);
1056  // float et_s = sqrt( p0x_s*p0x_s + p0y_s*p0y_s);
1057 
1058  float et_s = simple_energy * sin(theta_s);
1059  // cout << " Simple Clustering: E,Et,px,py,pz: "<<simple_energy<<"
1060  // "<<et_s<<" "<<p0x_s<<" "<<p0y_s<<" "<<endl;
1061 
1062  // Compute S4/S9 variable
1063  // We are not sure to have 9 RecHits so need to check eta and phi:
1065  float s4s9_tmp[4];
1066  for (int i = 0; i < 4; i++)
1067  s4s9_tmp[i] = 0;
1068 
1069  int seed_ieta = seed_id.ieta();
1070  int seed_iphi = seed_id.iphi();
1071 
1072  convxtalid(seed_iphi, seed_ieta);
1073 
1074  float e3x3 = 0;
1075  float e5x5 = 0;
1076 
1077  for (unsigned int j = 0; j < RecHitsInWindow.size(); j++) {
1078  EBDetId det = (EBDetId)RecHitsInWindow[j].id();
1079 
1080  int ieta = det.ieta();
1081  int iphi = det.iphi();
1082 
1083  convxtalid(iphi, ieta);
1084 
1085  float en = RecHitsInWindow[j].energy();
1086 
1087  int dx = diff_neta_s(seed_ieta, ieta);
1088  int dy = diff_nphi_s(seed_iphi, iphi);
1089 
1090  if (dx <= 0 && dy <= 0)
1091  s4s9_tmp[0] += en;
1092  if (dx >= 0 && dy <= 0)
1093  s4s9_tmp[1] += en;
1094  if (dx <= 0 && dy >= 0)
1095  s4s9_tmp[2] += en;
1096  if (dx >= 0 && dy >= 0)
1097  s4s9_tmp[3] += en;
1098 
1099  if (std::abs(dx) <= 1 && std::abs(dy) <= 1)
1100  e3x3 += en;
1101  if (std::abs(dx) <= 2 && std::abs(dy) <= 2)
1102  e5x5 += en;
1103  }
1104 
1105  if (e3x3 <= 0)
1106  continue;
1107 
1108  float s4s9_max = *std::max_element(s4s9_tmp, s4s9_tmp + 4) / e3x3;
1109 
1111  std::vector<DetId> clus_v5x5 = topology_p->getWindow(seed_id, 5, 5);
1112  for (std::vector<DetId>::const_iterator idItr = clus_v5x5.begin(); idItr != clus_v5x5.end(); idItr++) {
1113  EBDetId det = *idItr;
1114 
1115  std::vector<EBDetId>::iterator itdet0 = find(usedXtals.begin(), usedXtals.end(), det);
1116 
1118  if (itdet0 != usedXtals.end())
1119  continue;
1120 
1121  // inside collections
1122  std::vector<EBDetId>::iterator itdet = find(detIdEBRecHits.begin(), detIdEBRecHits.end(), det);
1123  if (itdet == detIdEBRecHits.end())
1124  continue;
1125 
1126  int nn = int(itdet - detIdEBRecHits.begin());
1127 
1128  RecHitsInWindow5x5.push_back(EBRecHits[nn]);
1129  e5x5 += EBRecHits[nn].energy();
1130  }
1131 
1132  if (e5x5 <= 0)
1133  continue;
1134 
1135  eClus.push_back(simple_energy);
1136  etClus.push_back(et_s);
1137  etaClus.push_back(clus_pos.eta());
1138  thetaClus.push_back(theta_s);
1139  phiClus.push_back(clus_pos.phi());
1140  s4s9Clus.push_back(s4s9_max);
1141  s9s25Clus.push_back(e3x3 / e5x5);
1142  RecHitsCluster.push_back(RecHitsInWindow);
1143  RecHitsCluster5x5.push_back(RecHitsInWindow5x5);
1144 
1145  // std::cout<<" EB Eta cluster (n,nxt,e,et eta,phi,s4s9)
1146  //"<<nClus<<" "<<int(RecHitsInWindow.size())<<" "<<eClus[nClus]<<" "<<"
1147  //"<<etClus[nClus]<<" "<<etaClus[nClus]<<" "<<phiClus[nClus]<<"
1148  //"<<s4s9Clus[nClus]<<std::endl;
1149 
1150  nClus++;
1151  }
1152 
1153  // cout<< " Eta clusters: "<<nClus<<endl;
1154 
1155  // Selection, based on Simple clustering
1156  // eta candidates
1157 
1158  // if (nClus <= 1) return;
1159  for (Int_t i = 0; i < nClus; i++) {
1160  for (Int_t j = i + 1; j < nClus; j++) {
1161  // cout<<" i "<<i<<" etClus[i] "<<etClus[i]<<" j "<<j<<"
1162  // etClus[j] "<<etClus[j]<<endl;
1163  if (etClus[i] > selePtGammaEta_ && etClus[j] > selePtGammaEta_ && s4s9Clus[i] > seleS4S9GammaEta_ &&
1164  s4s9Clus[j] > seleS4S9GammaEta_) {
1165  float p0x = etClus[i] * cos(phiClus[i]);
1166  float p1x = etClus[j] * cos(phiClus[j]);
1167  float p0y = etClus[i] * sin(phiClus[i]);
1168  float p1y = etClus[j] * sin(phiClus[j]);
1169  float p0z = eClus[i] * cos(thetaClus[i]);
1170  float p1z = eClus[j] * cos(thetaClus[j]);
1171 
1172  float pt_pair = sqrt((p0x + p1x) * (p0x + p1x) + (p0y + p1y) * (p0y + p1y));
1173 
1174  if (pt_pair < selePtEta_)
1175  continue;
1176 
1177  float m_inv = sqrt((eClus[i] + eClus[j]) * (eClus[i] + eClus[j]) - (p0x + p1x) * (p0x + p1x) -
1178  (p0y + p1y) * (p0y + p1y) - (p0z + p1z) * (p0z + p1z));
1179  if ((m_inv < seleMinvMaxEta_) && (m_inv > seleMinvMinEta_)) {
1180  // New Loop on cluster to measure isolation:
1181  std::vector<int> IsoClus;
1182  IsoClus.clear();
1183  float Iso = 0;
1184  TVector3 pairVect = TVector3((p0x + p1x), (p0y + p1y), (p0z + p1z));
1185  for (Int_t k = 0; k < nClus; k++) {
1186  if (etClus[k] < ptMinForIsolationEta_)
1187  continue;
1188 
1189  if (k == i || k == j)
1190  continue;
1191  TVector3 ClusVect =
1192  TVector3(etClus[k] * cos(phiClus[k]), etClus[k] * sin(phiClus[k]), eClus[k] * cos(thetaClus[k]));
1193 
1194  float dretacl = fabs(etaClus[k] - pairVect.Eta());
1195  float drcl = ClusVect.DeltaR(pairVect);
1196  // cout<< " Iso: k, E, drclpi0, detaclpi0, dphiclpi0
1197  // "<<k<<" "<<eClus[k]<<" "<<drclpi0<<"
1198  // "<<dretaclpi0<<endl;
1199  if ((drcl < seleEtaBeltDR_) && (dretacl < seleEtaBeltDeta_)) {
1200  // cout<< " ... good iso cluster #: "<<k<<"
1201  // etClus[k] "<<etClus[k] <<endl;
1202  Iso = Iso + etClus[k];
1203  IsoClus.push_back(k);
1204  }
1205  }
1206 
1207  // cout<<" Iso/pt_pi0 "<<Iso/pt_pi0<<endl;
1208  if (Iso / pt_pair < seleEtaIso_) {
1209  // for(unsigned int
1210  // Rec=0;Rec<RecHitsCluster[i].size();Rec++)pi0EBRecHitCollection->push_back(RecHitsCluster[i][Rec]);
1211  // for(unsigned int
1212  // Rec2=0;Rec2<RecHitsCluster[j].size();Rec2++)pi0EBRecHitCollection->push_back(RecHitsCluster[j][Rec2]);
1213 
1214  hMinvEtaEB_->Fill(m_inv);
1215  hPt1EtaEB_->Fill(etClus[i]);
1216  hPt2EtaEB_->Fill(etClus[j]);
1217  hPtEtaEB_->Fill(pt_pair);
1218  hIsoEtaEB_->Fill(Iso / pt_pair);
1219  hS4S91EtaEB_->Fill(s4s9Clus[i]);
1220  hS4S92EtaEB_->Fill(s4s9Clus[j]);
1221 
1222  // cout <<" EB Simple Clustering: Eta Candidate
1223  // pt, eta, phi, Iso, m_inv, i, j : "<<pt_pair<<"
1224  //"<<pairVect.Eta()<<" "<<pairVect.Phi()<<" "<<Iso<<"
1225  //"<<m_inv<<" "<<i<<" "<<j<<" "<<endl;
1226  }
1227  }
1228  }
1229  } // End of the "j" loop over Simple Clusters
1230  } // End of the "i" loop over Simple Clusters
1231 
1232  } // rhEBeta.valid() ends
1233 
1234  } // isMonEBeta ends
1235 
1236  //------------------ End of Eta in EB --------------------------//
1237 
1238  //----------------- End of the EB --------------------------//
1239 
1240  //----------------- Start of the EE --------------------//
1241 
1242  // fill pi0 EE histos
1243  if (isMonEEpi0_) {
1244  if (rhEEpi0.isValid() && (!rhEEpi0->empty())) {
1245  const EcalRecHitCollection *hitCollection_ee = rhEEpi0.product();
1246  float etot = 0;
1247 
1248  detIdEERecHits.clear();
1249  EERecHits.clear();
1250 
1251  std::vector<EcalRecHit> seedsEndCap;
1252  seedsEndCap.clear();
1253 
1254  std::vector<EEDetId> usedXtalsEndCap;
1255  usedXtalsEndCap.clear();
1256 
1259  for (ite = rhEEpi0->begin(); ite != rhEEpi0->end(); ite++) {
1260  double energy = ite->energy();
1262  continue;
1263 
1264  EEDetId det = ite->id();
1265  EEDetId id(ite->id());
1266 
1267  detIdEERecHits.push_back(det);
1268  EERecHits.push_back(*ite);
1269 
1270  hiXDistrEEpi0_->Fill(id.ix());
1271  hiYDistrEEpi0_->Fill(id.iy());
1272  hRechitEnergyEEpi0_->Fill(ite->energy());
1273 
1274  if (energy > clusSeedThrEndCap_)
1275  seedsEndCap.push_back(*ite);
1276 
1277  etot += ite->energy();
1278  } // EE rechits
1279 
1280  hNRecHitsEEpi0_->Fill(rhEEpi0->size());
1281  hMeanRecHitEnergyEEpi0_->Fill(etot / rhEEpi0->size());
1282  hEventEnergyEEpi0_->Fill(etot);
1283 
1284  // cout << " EE RH Pi0 collection: #, mean rh_e, event E
1285  // "<<rhEEpi0->size()<<" "<<etot/rhEEpi0->size()<<" "<<etot<<endl;
1286 
1287  int nClusEndCap;
1288  std::vector<float> eClusEndCap;
1289  std::vector<float> etClusEndCap;
1290  std::vector<float> etaClusEndCap;
1291  std::vector<float> thetaClusEndCap;
1292  std::vector<float> phiClusEndCap;
1293  std::vector<std::vector<EcalRecHit>> RecHitsClusterEndCap;
1294  std::vector<std::vector<EcalRecHit>> RecHitsCluster5x5EndCap;
1295  std::vector<float> s4s9ClusEndCap;
1296  std::vector<float> s9s25ClusEndCap;
1297 
1298  nClusEndCap = 0;
1299 
1300  // Make own simple clusters (3x3, 5x5 or clusPhiSize_ x clusEtaSize_)
1301  std::sort(seedsEndCap.begin(), seedsEndCap.end(), ecalRecHitGreater);
1302 
1303  for (std::vector<EcalRecHit>::iterator itseed = seedsEndCap.begin(); itseed != seedsEndCap.end(); itseed++) {
1304  EEDetId seed_id = itseed->id();
1305  std::vector<EEDetId>::const_iterator usedIds;
1306 
1307  bool seedAlreadyUsed = false;
1308  for (usedIds = usedXtalsEndCap.begin(); usedIds != usedXtalsEndCap.end(); usedIds++) {
1309  if (*usedIds == seed_id) {
1310  seedAlreadyUsed = true;
1311  break;
1312  }
1313  }
1314 
1315  if (seedAlreadyUsed)
1316  continue;
1317  std::vector<DetId> clus_v = topology_ee->getWindow(seed_id, clusEtaSize_, clusPhiSize_);
1318  std::vector<std::pair<DetId, float>> clus_used;
1319 
1320  std::vector<EcalRecHit> RecHitsInWindow;
1321  std::vector<EcalRecHit> RecHitsInWindow5x5;
1322 
1323  float simple_energy = 0;
1324 
1325  for (std::vector<DetId>::iterator det = clus_v.begin(); det != clus_v.end(); det++) {
1326  EEDetId EEdet = *det;
1327 
1328  bool HitAlreadyUsed = false;
1329  for (usedIds = usedXtalsEndCap.begin(); usedIds != usedXtalsEndCap.end(); usedIds++) {
1330  if (*usedIds == *det) {
1331  HitAlreadyUsed = true;
1332  break;
1333  }
1334  }
1335 
1336  if (HitAlreadyUsed)
1337  continue;
1338 
1339  std::vector<EEDetId>::iterator itdet = find(detIdEERecHits.begin(), detIdEERecHits.end(), EEdet);
1340  if (itdet == detIdEERecHits.end())
1341  continue;
1342 
1343  int nn = int(itdet - detIdEERecHits.begin());
1344  usedXtalsEndCap.push_back(*det);
1345  RecHitsInWindow.push_back(EERecHits[nn]);
1346  clus_used.push_back(std::make_pair(*det, 1));
1347  simple_energy = simple_energy + EERecHits[nn].energy();
1348  }
1349 
1350  if (simple_energy <= 0)
1351  continue;
1352 
1353  math::XYZPoint clus_pos =
1354  posCalculator_.Calculate_Location(clus_used, hitCollection_ee, geometryEE_p, geometryES_p);
1355 
1356  float theta_s = 2. * atan(exp(-clus_pos.eta()));
1357  float et_s = simple_energy * sin(theta_s);
1358  // float p0x_s = simple_energy * sin(theta_s) *
1359  // cos(clus_pos.phi()); float p0y_s = simple_energy * sin(theta_s) *
1360  // sin(clus_pos.phi()); float et_s = sqrt( p0x_s*p0x_s + p0y_s*p0y_s);
1361 
1362  // Compute S4/S9 variable
1363  // We are not sure to have 9 RecHits so need to check eta and phi:
1364  float s4s9_tmp[4];
1365  for (int i = 0; i < 4; i++)
1366  s4s9_tmp[i] = 0;
1367 
1368  int ixSeed = seed_id.ix();
1369  int iySeed = seed_id.iy();
1370  float e3x3 = 0;
1371  float e5x5 = 0;
1372 
1373  for (unsigned int j = 0; j < RecHitsInWindow.size(); j++) {
1374  EEDetId det_this = (EEDetId)RecHitsInWindow[j].id();
1375  int dx = ixSeed - det_this.ix();
1376  int dy = iySeed - det_this.iy();
1377 
1378  float en = RecHitsInWindow[j].energy();
1379 
1380  if (dx <= 0 && dy <= 0)
1381  s4s9_tmp[0] += en;
1382  if (dx >= 0 && dy <= 0)
1383  s4s9_tmp[1] += en;
1384  if (dx <= 0 && dy >= 0)
1385  s4s9_tmp[2] += en;
1386  if (dx >= 0 && dy >= 0)
1387  s4s9_tmp[3] += en;
1388 
1389  if (std::abs(dx) <= 1 && std::abs(dy) <= 1)
1390  e3x3 += en;
1391  if (std::abs(dx) <= 2 && std::abs(dy) <= 2)
1392  e5x5 += en;
1393  }
1394 
1395  if (e3x3 <= 0)
1396  continue;
1397 
1398  eClusEndCap.push_back(simple_energy);
1399  etClusEndCap.push_back(et_s);
1400  etaClusEndCap.push_back(clus_pos.eta());
1401  thetaClusEndCap.push_back(theta_s);
1402  phiClusEndCap.push_back(clus_pos.phi());
1403  s4s9ClusEndCap.push_back(*std::max_element(s4s9_tmp, s4s9_tmp + 4) / e3x3);
1404  s9s25ClusEndCap.push_back(e3x3 / e5x5);
1405  RecHitsClusterEndCap.push_back(RecHitsInWindow);
1406  RecHitsCluster5x5EndCap.push_back(RecHitsInWindow5x5);
1407 
1408  // std::cout<<" EE pi0 cluster (n,nxt,e,et eta,phi,s4s9)
1409  //"<<nClusEndCap<<" "<<int(RecHitsInWindow.size())<<"
1410  //"<<eClusEndCap[nClusEndCap]<<" "<<" "<<etClusEndCap[nClusEndCap]<<"
1411  //"<<etaClusEndCap[nClusEndCap]<<" "<<phiClusEndCap[nClusEndCap]<<"
1412  //"<<s4s9ClusEndCap[nClusEndCap]<<std::endl;
1413 
1414  nClusEndCap++;
1415  }
1416 
1417  // Selection, based on Simple clustering
1418  // pi0 candidates
1419 
1420  for (Int_t i = 0; i < nClusEndCap; i++) {
1421  for (Int_t j = i + 1; j < nClusEndCap; j++) {
1422  if (etClusEndCap[i] > selePtGammaEndCap_ && etClusEndCap[j] > selePtGammaEndCap_ &&
1423  s4s9ClusEndCap[i] > seleS4S9GammaEndCap_ && s4s9ClusEndCap[j] > seleS4S9GammaEndCap_) {
1424  float p0x = etClusEndCap[i] * cos(phiClusEndCap[i]);
1425  float p1x = etClusEndCap[j] * cos(phiClusEndCap[j]);
1426  float p0y = etClusEndCap[i] * sin(phiClusEndCap[i]);
1427  float p1y = etClusEndCap[j] * sin(phiClusEndCap[j]);
1428  float p0z = eClusEndCap[i] * cos(thetaClusEndCap[i]);
1429  float p1z = eClusEndCap[j] * cos(thetaClusEndCap[j]);
1430 
1431  float pt_pair = sqrt((p0x + p1x) * (p0x + p1x) + (p0y + p1y) * (p0y + p1y));
1432  if (pt_pair < selePtPi0EndCap_)
1433  continue;
1434  float m_inv = sqrt((eClusEndCap[i] + eClusEndCap[j]) * (eClusEndCap[i] + eClusEndCap[j]) -
1435  (p0x + p1x) * (p0x + p1x) - (p0y + p1y) * (p0y + p1y) - (p0z + p1z) * (p0z + p1z));
1436 
1437  if ((m_inv < seleMinvMaxPi0EndCap_) && (m_inv > seleMinvMinPi0EndCap_)) {
1438  // New Loop on cluster to measure isolation:
1439  std::vector<int> IsoClus;
1440  IsoClus.clear();
1441  float Iso = 0;
1442  TVector3 pairVect = TVector3((p0x + p1x), (p0y + p1y), (p0z + p1z));
1443  for (Int_t k = 0; k < nClusEndCap; k++) {
1444  if (etClusEndCap[k] < ptMinForIsolationEndCap_)
1445  continue;
1446 
1447  if (k == i || k == j)
1448  continue;
1449 
1450  TVector3 clusVect = TVector3(etClusEndCap[k] * cos(phiClusEndCap[k]),
1451  etClusEndCap[k] * sin(phiClusEndCap[k]),
1452  eClusEndCap[k] * cos(thetaClusEndCap[k]));
1453  float dretacl = fabs(etaClusEndCap[k] - pairVect.Eta());
1454  float drcl = clusVect.DeltaR(pairVect);
1455 
1456  if (drcl < selePi0BeltDREndCap_ && dretacl < selePi0BeltDetaEndCap_) {
1457  Iso = Iso + etClusEndCap[k];
1458  IsoClus.push_back(k);
1459  }
1460  }
1461 
1462  if (Iso / pt_pair < selePi0IsoEndCap_) {
1463  // cout <<" EE Simple Clustering: pi0 Candidate pt, eta, phi,
1464  // Iso, m_inv, i, j : "<<pt_pair<<" "<<pairVect.Eta()<<"
1465  // "<<pairVect.Phi()<<" "<<Iso<<" "<<m_inv<<" "<<i<<" "<<j<<"
1466  // "<<endl;
1467 
1468  hMinvPi0EE_->Fill(m_inv);
1469  hPt1Pi0EE_->Fill(etClusEndCap[i]);
1470  hPt2Pi0EE_->Fill(etClusEndCap[j]);
1471  hPtPi0EE_->Fill(pt_pair);
1472  hIsoPi0EE_->Fill(Iso / pt_pair);
1473  hS4S91Pi0EE_->Fill(s4s9ClusEndCap[i]);
1474  hS4S92Pi0EE_->Fill(s4s9ClusEndCap[j]);
1475  }
1476  }
1477  }
1478  } // End of the "j" loop over Simple Clusters
1479  } // End of the "i" loop over Simple Clusters
1480 
1481  } // rhEEpi0
1482  } // isMonEEpi0
1483 
1484  //================End of Pi0 endcap=======================//
1485 
1486  //================ Eta in EE===============================//
1487 
1488  // fill pi0 EE histos
1489  if (isMonEEeta_) {
1490  if (rhEEeta.isValid() && (!rhEEeta->empty())) {
1491  const EcalRecHitCollection *hitCollection_ee = rhEEeta.product();
1492  float etot = 0;
1493 
1494  detIdEERecHits.clear();
1495  EERecHits.clear();
1496 
1497  std::vector<EcalRecHit> seedsEndCap;
1498  seedsEndCap.clear();
1499 
1500  std::vector<EEDetId> usedXtalsEndCap;
1501  usedXtalsEndCap.clear();
1502 
1505  for (ite = rhEEeta->begin(); ite != rhEEeta->end(); ite++) {
1506  double energy = ite->energy();
1508  continue;
1509 
1510  EEDetId det = ite->id();
1511  EEDetId id(ite->id());
1512 
1513  detIdEERecHits.push_back(det);
1514  EERecHits.push_back(*ite);
1515 
1516  hiXDistrEEeta_->Fill(id.ix());
1517  hiYDistrEEeta_->Fill(id.iy());
1518  hRechitEnergyEEeta_->Fill(ite->energy());
1519 
1520  if (energy > clusSeedThrEndCap_)
1521  seedsEndCap.push_back(*ite);
1522 
1523  etot += ite->energy();
1524  } // EE rechits
1525 
1526  hNRecHitsEEeta_->Fill(rhEEeta->size());
1527  hMeanRecHitEnergyEEeta_->Fill(etot / rhEEeta->size());
1528  hEventEnergyEEeta_->Fill(etot);
1529 
1530  // cout << " EE RH Eta collection: #, mean rh_e, event E
1531  // "<<rhEEeta->size()<<" "<<etot/rhEEeta->size()<<" "<<etot<<endl;
1532 
1533  int nClusEndCap;
1534  std::vector<float> eClusEndCap;
1535  std::vector<float> etClusEndCap;
1536  std::vector<float> etaClusEndCap;
1537  std::vector<float> thetaClusEndCap;
1538  std::vector<float> phiClusEndCap;
1539  std::vector<std::vector<EcalRecHit>> RecHitsClusterEndCap;
1540  std::vector<std::vector<EcalRecHit>> RecHitsCluster5x5EndCap;
1541  std::vector<float> s4s9ClusEndCap;
1542  std::vector<float> s9s25ClusEndCap;
1543 
1544  nClusEndCap = 0;
1545 
1546  // Make own simple clusters (3x3, 5x5 or clusPhiSize_ x clusEtaSize_)
1547  std::sort(seedsEndCap.begin(), seedsEndCap.end(), ecalRecHitGreater);
1548 
1549  for (std::vector<EcalRecHit>::iterator itseed = seedsEndCap.begin(); itseed != seedsEndCap.end(); itseed++) {
1550  EEDetId seed_id = itseed->id();
1551  std::vector<EEDetId>::const_iterator usedIds;
1552 
1553  bool seedAlreadyUsed = false;
1554  for (usedIds = usedXtalsEndCap.begin(); usedIds != usedXtalsEndCap.end(); usedIds++) {
1555  if (*usedIds == seed_id) {
1556  seedAlreadyUsed = true;
1557  break;
1558  }
1559  }
1560 
1561  if (seedAlreadyUsed)
1562  continue;
1563  std::vector<DetId> clus_v = topology_ee->getWindow(seed_id, clusEtaSize_, clusPhiSize_);
1564  std::vector<std::pair<DetId, float>> clus_used;
1565 
1566  std::vector<EcalRecHit> RecHitsInWindow;
1567  std::vector<EcalRecHit> RecHitsInWindow5x5;
1568 
1569  float simple_energy = 0;
1570 
1571  for (std::vector<DetId>::iterator det = clus_v.begin(); det != clus_v.end(); det++) {
1572  EEDetId EEdet = *det;
1573 
1574  bool HitAlreadyUsed = false;
1575  for (usedIds = usedXtalsEndCap.begin(); usedIds != usedXtalsEndCap.end(); usedIds++) {
1576  if (*usedIds == *det) {
1577  HitAlreadyUsed = true;
1578  break;
1579  }
1580  }
1581 
1582  if (HitAlreadyUsed)
1583  continue;
1584 
1585  std::vector<EEDetId>::iterator itdet = find(detIdEERecHits.begin(), detIdEERecHits.end(), EEdet);
1586  if (itdet == detIdEERecHits.end())
1587  continue;
1588 
1589  int nn = int(itdet - detIdEERecHits.begin());
1590  usedXtalsEndCap.push_back(*det);
1591  RecHitsInWindow.push_back(EERecHits[nn]);
1592  clus_used.push_back(std::make_pair(*det, 1));
1593  simple_energy = simple_energy + EERecHits[nn].energy();
1594  }
1595 
1596  if (simple_energy <= 0)
1597  continue;
1598 
1599  math::XYZPoint clus_pos =
1600  posCalculator_.Calculate_Location(clus_used, hitCollection_ee, geometryEE_p, geometryES_p);
1601 
1602  float theta_s = 2. * atan(exp(-clus_pos.eta()));
1603  float et_s = simple_energy * sin(theta_s);
1604  // float p0x_s = simple_energy * sin(theta_s) *
1605  // cos(clus_pos.phi()); float p0y_s = simple_energy * sin(theta_s) *
1606  // sin(clus_pos.phi()); float et_s = sqrt( p0x_s*p0x_s + p0y_s*p0y_s);
1607 
1608  // Compute S4/S9 variable
1609  // We are not sure to have 9 RecHits so need to check eta and phi:
1610  float s4s9_tmp[4];
1611  for (int i = 0; i < 4; i++)
1612  s4s9_tmp[i] = 0;
1613 
1614  int ixSeed = seed_id.ix();
1615  int iySeed = seed_id.iy();
1616  float e3x3 = 0;
1617  float e5x5 = 0;
1618 
1619  for (unsigned int j = 0; j < RecHitsInWindow.size(); j++) {
1620  EEDetId det_this = (EEDetId)RecHitsInWindow[j].id();
1621  int dx = ixSeed - det_this.ix();
1622  int dy = iySeed - det_this.iy();
1623 
1624  float en = RecHitsInWindow[j].energy();
1625 
1626  if (dx <= 0 && dy <= 0)
1627  s4s9_tmp[0] += en;
1628  if (dx >= 0 && dy <= 0)
1629  s4s9_tmp[1] += en;
1630  if (dx <= 0 && dy >= 0)
1631  s4s9_tmp[2] += en;
1632  if (dx >= 0 && dy >= 0)
1633  s4s9_tmp[3] += en;
1634 
1635  if (std::abs(dx) <= 1 && std::abs(dy) <= 1)
1636  e3x3 += en;
1637  if (std::abs(dx) <= 2 && std::abs(dy) <= 2)
1638  e5x5 += en;
1639  }
1640 
1641  if (e3x3 <= 0)
1642  continue;
1643 
1644  eClusEndCap.push_back(simple_energy);
1645  etClusEndCap.push_back(et_s);
1646  etaClusEndCap.push_back(clus_pos.eta());
1647  thetaClusEndCap.push_back(theta_s);
1648  phiClusEndCap.push_back(clus_pos.phi());
1649  s4s9ClusEndCap.push_back(*std::max_element(s4s9_tmp, s4s9_tmp + 4) / e3x3);
1650  s9s25ClusEndCap.push_back(e3x3 / e5x5);
1651  RecHitsClusterEndCap.push_back(RecHitsInWindow);
1652  RecHitsCluster5x5EndCap.push_back(RecHitsInWindow5x5);
1653 
1654  // std::cout<<" EE Eta cluster (n,nxt,e,et eta,phi,s4s9)
1655  //"<<nClusEndCap<<" "<<int(RecHitsInWindow.size())<<"
1656  //"<<eClusEndCap[nClusEndCap]<<" "<<" "<<etClusEndCap[nClusEndCap]<<"
1657  //"<<etaClusEndCap[nClusEndCap]<<" "<<phiClusEndCap[nClusEndCap]<<"
1658  //"<<s4s9ClusEndCap[nClusEndCap]<<std::endl;
1659 
1660  nClusEndCap++;
1661  }
1662 
1663  // Selection, based on Simple clustering
1664  // pi0 candidates
1665 
1666  for (Int_t i = 0; i < nClusEndCap; i++) {
1667  for (Int_t j = i + 1; j < nClusEndCap; j++) {
1668  if (etClusEndCap[i] > selePtGammaEtaEndCap_ && etClusEndCap[j] > selePtGammaEtaEndCap_ &&
1669  s4s9ClusEndCap[i] > seleS4S9GammaEtaEndCap_ && s4s9ClusEndCap[j] > seleS4S9GammaEtaEndCap_) {
1670  float p0x = etClusEndCap[i] * cos(phiClusEndCap[i]);
1671  float p1x = etClusEndCap[j] * cos(phiClusEndCap[j]);
1672  float p0y = etClusEndCap[i] * sin(phiClusEndCap[i]);
1673  float p1y = etClusEndCap[j] * sin(phiClusEndCap[j]);
1674  float p0z = eClusEndCap[i] * cos(thetaClusEndCap[i]);
1675  float p1z = eClusEndCap[j] * cos(thetaClusEndCap[j]);
1676 
1677  float pt_pair = sqrt((p0x + p1x) * (p0x + p1x) + (p0y + p1y) * (p0y + p1y));
1678  if (pt_pair < selePtEtaEndCap_)
1679  continue;
1680  float m_inv = sqrt((eClusEndCap[i] + eClusEndCap[j]) * (eClusEndCap[i] + eClusEndCap[j]) -
1681  (p0x + p1x) * (p0x + p1x) - (p0y + p1y) * (p0y + p1y) - (p0z + p1z) * (p0z + p1z));
1682 
1683  if ((m_inv < seleMinvMaxEtaEndCap_) && (m_inv > seleMinvMinEtaEndCap_)) {
1684  // New Loop on cluster to measure isolation:
1685  std::vector<int> IsoClus;
1686  IsoClus.clear();
1687  float Iso = 0;
1688  TVector3 pairVect = TVector3((p0x + p1x), (p0y + p1y), (p0z + p1z));
1689  for (Int_t k = 0; k < nClusEndCap; k++) {
1690  if (etClusEndCap[k] < ptMinForIsolationEtaEndCap_)
1691  continue;
1692 
1693  if (k == i || k == j)
1694  continue;
1695 
1696  TVector3 clusVect = TVector3(etClusEndCap[k] * cos(phiClusEndCap[k]),
1697  etClusEndCap[k] * sin(phiClusEndCap[k]),
1698  eClusEndCap[k] * cos(thetaClusEndCap[k]));
1699  float dretacl = fabs(etaClusEndCap[k] - pairVect.Eta());
1700  float drcl = clusVect.DeltaR(pairVect);
1701 
1702  if (drcl < seleEtaBeltDREndCap_ && dretacl < seleEtaBeltDetaEndCap_) {
1703  Iso = Iso + etClusEndCap[k];
1704  IsoClus.push_back(k);
1705  }
1706  }
1707 
1708  if (Iso / pt_pair < seleEtaIsoEndCap_) {
1709  // cout <<" EE Simple Clustering: Eta Candidate pt, eta,
1710  // phi, Iso, m_inv, i, j : "<<pt_pair<<" "<<pairVect.Eta()<<"
1711  //"<<pairVect.Phi()<<" "<<Iso<<" "<<m_inv<<" "<<i<<" "<<j<<"
1712  //"<<endl;
1713 
1714  hMinvEtaEE_->Fill(m_inv);
1715  hPt1EtaEE_->Fill(etClusEndCap[i]);
1716  hPt2EtaEE_->Fill(etClusEndCap[j]);
1717  hPtEtaEE_->Fill(pt_pair);
1718  hIsoEtaEE_->Fill(Iso / pt_pair);
1719  hS4S91EtaEE_->Fill(s4s9ClusEndCap[i]);
1720  hS4S92EtaEE_->Fill(s4s9ClusEndCap[j]);
1721  }
1722  }
1723  }
1724  } // End of the "j" loop over Simple Clusters
1725  } // End of the "i" loop over Simple Clusters
1726 
1727  } // rhEEeta
1728  } // isMonEEeta
1729 
1730  //================End of Pi0 endcap=======================//
1731 
1733 }
edm::EDGetTokenT< EcalRecHitCollection > productMonitoredEEeta_
double seleEtaBeltDREndCap_
MonitorElement * hiYDistrEEeta_
Distribution of rechits in iy EE (eta)
Definition: DQMSourcePi0.cc:83
MonitorElement * hMinvPi0EE_
Pi0 invariant mass in EE.
double seleMinvMinPi0EndCap_
MonitorElement * hiXDistrEEeta_
Distribution of rechits in ix EE (eta)
Definition: DQMSourcePi0.cc:71
MonitorElement * hiPhiDistrEBpi0_
Distribution of rechits in iPhi (pi0)
Definition: DQMSourcePi0.cc:62
MonitorElement * hPt1Pi0EB_
Pt of the 1st most energetic Pi0 photon in EB.
MonitorElement * hPt2Pi0EE_
Pt of the 2nd most energetic Pi0 photon in EE.
MonitorElement * hiYDistrEEpi0_
Distribution of rechits in iy EE (pi0)
Definition: DQMSourcePi0.cc:77
double ptMinForIsolationEtaEndCap_
MonitorElement * hPtPi0EE_
Pi0 Pt in EE.
MonitorElement * hMinvEtaEB_
Eta invariant mass in EB.
bool ecalRecHitGreater(EcalRecHit x, EcalRecHit y)
Definition: DQMSourcePi0.cc:42
double seleEtaBeltDR_
std::vector< EEDetId > detIdEERecHits
size_type size() const
PositionCalc posCalculator_
Definition: DQMSourcePi0.cc:59
double seleMinvMinEtaEndCap_
int iphi() const
get the crystal iphi
Definition: EBDetId.h:51
MonitorElement * hS4S92EtaEB_
S4S9 of the 2nd most energetic eta photon.
std::vector< EBDetId > detIdEBRecHits
edm::EDGetTokenT< EcalRecHitCollection > productMonitoredEBeta_
double selePtGammaEndCap_
for pi0->gg endcap
MonitorElement * hMeanRecHitEnergyEBeta_
Distribution of Mean energy per rechit EB (eta)
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
T const * product() const
Definition: Handle.h:70
double seleMinvMaxPi0EndCap_
int ix() const
Definition: EEDetId.h:77
std::vector< EcalRecHit >::const_iterator const_iterator
MonitorElement * hMeanRecHitEnergyEEpi0_
Distribution of Mean energy per rechit EE (pi0)
MonitorElement * hNRecHitsEBpi0_
Distribution of number of RecHits EB (pi0)
MonitorElement * hPt2EtaEE_
Pt of the 2nd most energetic Eta photon in EE.
MonitorElement * hRechitEnergyEBpi0_
Energy Distribution of rechits EB (pi0)
Definition: DQMSourcePi0.cc:86
double clusSeedThr_
MonitorElement * hRechitEnergyEEpi0_
Energy Distribution of rechits EE (pi0)
Definition: DQMSourcePi0.cc:89
double seleMinvMaxEtaEndCap_
std::vector< EcalRecHit > EERecHits
MonitorElement * hPtEtaEB_
Eta Pt in EB.
double selePi0Iso_
MonitorElement * hIsoEtaEB_
Eta Iso EB.
double selePtEtaEndCap_
double seleS4S9GammaEtaEndCap_
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
MonitorElement * hIsoPi0EB_
Pi0 Iso EB.
MonitorElement * hS4S91Pi0EE_
S4S9 of the 1st most energetic pi0 photon EE.
MonitorElement * hS4S91EtaEB_
S4S9 of the 1st most energetic eta photon.
double selePi0BeltDeta_
double seleS4S9Gamma_
double ptMinForIsolationEta_
int ieta() const
get the crystal ieta
Definition: EBDetId.h:49
void Fill(long long x)
double seleMinvMinPi0_
MonitorElement * hMinvPi0EB_
Pi0 invariant mass in EB.
double seleMinvMaxEta_
MonitorElement * hS4S92Pi0EE_
S4S9 of the 2nd most energetic pi0 photon EE.
void convxtalid(int &, int &)
double ptMinForIsolationEndCap_
int iEvent
Definition: GenABIO.cc:224
double seleS4S9GammaEta_
MonitorElement * hiEtaDistrEBpi0_
Distribution of rechits in iEta (pi0)
Definition: DQMSourcePi0.cc:74
double selePi0BeltDetaEndCap_
MonitorElement * hS4S91Pi0EB_
S4S9 of the 1st most energetic pi0 photon.
MonitorElement * hiXDistrEEpi0_
Distribution of rechits in ix EE (pi0)
Definition: DQMSourcePi0.cc:65
MonitorElement * hiEtaDistrEBeta_
Distribution of rechits in iEta (eta)
Definition: DQMSourcePi0.cc:80
edm::EDGetTokenT< EcalRecHitCollection > productMonitoredEBpi0_
object to monitor
bool isMonEBpi0_
which subdet will be monitored
double selePtPi0EndCap_
T sqrt(T t)
Definition: SSEVec.h:19
double seleMinvMinEta_
double selePtGammaEtaEndCap_
for eta->gg endcap
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
int diff_nphi_s(int, int)
double ptMinForIsolation_
int diff_neta_s(int, int)
double seleXtalMinEnergy_
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
math::XYZPoint Calculate_Location(const HitsAndFractions &iDetIds, const edm::SortedCollection< HitType > *iRecHits, const CaloSubdetectorGeometry *iSubGeom, const CaloSubdetectorGeometry *iESGeom=nullptr)
Definition: PositionCalc.h:65
const_iterator begin() const
virtual std::vector< DetId > getWindow(const DetId &id, const int &northSouthSize, const int &eastWestSize) const
double seleEtaBeltDeta_
MonitorElement * hPtEtaEE_
Eta Pt in EE.
double seleXtalMinEnergyEndCap_
double selePi0BeltDR_
MonitorElement * hEventEnergyEEpi0_
Distribution of total event energy EE (pi0)
const_iterator end() const
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > caloGeomToken_
MonitorElement * hNRecHitsEEeta_
Distribution of number of RecHits EE (eta)
double selePtGammaEta_
for eta->gg barrel
edm::EDGetTokenT< EcalRecHitCollection > productMonitoredEEpi0_
object to monitor
edm::ESGetToken< CaloTopology, CaloTopologyRecord > caloTopoToken_
double seleEtaBeltDetaEndCap_
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
MonitorElement * hiPhiDistrEBeta_
Distribution of rechits in iPhi (eta)
Definition: DQMSourcePi0.cc:68
double selePtEta_
MonitorElement * hRechitEnergyEBeta_
Energy Distribution of rechits EB (eta)
Definition: DQMSourcePi0.cc:92
MonitorElement * hPt1EtaEE_
Pt of the 1st most energetic Eta photon in EE.
MonitorElement * hEventEnergyEBpi0_
Distribution of total event energy EB (pi0)
Definition: DQMSourcePi0.cc:98
double seleEtaIso_
MonitorElement * hPt1EtaEB_
Pt of the 1st most energetic Eta photon in EB.
MonitorElement * hEventEnergyEBeta_
Distribution of total event energy EB (eta)
bool isValid() const
Definition: HandleBase.h:70
MonitorElement * hIsoEtaEE_
Eta Iso EE.
MonitorElement * hS4S92Pi0EB_
S4S9 of the 2nd most energetic pi0 photon.
double selePi0IsoEndCap_
MonitorElement * hPt2EtaEB_
Pt of the 2nd most energetic Eta photon in EB.
double seleMinvMaxPi0_
std::vector< EcalRecHit > EBRecHits
MonitorElement * hMinvEtaEE_
Eta invariant mass in EE.
MonitorElement * hPtPi0EB_
Pi0 Pt in EB.
double seleEtaIsoEndCap_
MonitorElement * hS4S92EtaEE_
S4S9 of the 2nd most energetic eta photon EE.
unsigned int prescaleFactor_
Monitor every prescaleFactor_ events.
MonitorElement * hMeanRecHitEnergyEEeta_
Distribution of Mean energy per rechit EE (eta)
MonitorElement * hIsoPi0EE_
Pi0 Iso EE.
double selePtPi0_
double seleS4S9GammaEndCap_
MonitorElement * hNRecHitsEBeta_
Distribution of number of RecHits EB (eta)
MonitorElement * hPt1Pi0EE_
Pt of the 1st most energetic Pi0 photon in EE.
MonitorElement * hS4S91EtaEE_
S4S9 of the 1st most energetic eta photon EE.
MonitorElement * hRechitEnergyEEeta_
Energy Distribution of rechits EE (eta)
Definition: DQMSourcePi0.cc:95
MonitorElement * hMeanRecHitEnergyEBpi0_
Distribution of Mean energy per rechit EB (pi0)
MonitorElement * hEventEnergyEEeta_
Distribution of total event energy EE (eta)
MonitorElement * hNRecHitsEEpi0_
Distribution of number of RecHits EE (pi0)
double selePi0BeltDREndCap_
MonitorElement * hPt2Pi0EB_
Pt of the 2nd most energetic Pi0 photon in EB.
double selePtGamma_
int iy() const
Definition: EEDetId.h:83
double clusSeedThrEndCap_

◆ bookHistograms()

void DQMSourcePi0::bookHistograms ( DQMStore::IBooker ibooker,
edm::Run const &  irun,
edm::EventSetup const &  isetup 
)
overrideprotectedvirtual

Implements DQMEDAnalyzer.

Definition at line 410 of file DQMSourcePi0.cc.

References dqm::implementation::IBooker::book1D(), folderName_, hEventEnergyEBeta_, hEventEnergyEBpi0_, hEventEnergyEEeta_, hEventEnergyEEpi0_, hiEtaDistrEBeta_, hiEtaDistrEBpi0_, hiPhiDistrEBeta_, hiPhiDistrEBpi0_, hIsoEtaEB_, hIsoEtaEE_, hIsoPi0EB_, hIsoPi0EE_, hiXDistrEEeta_, hiXDistrEEpi0_, hiYDistrEEeta_, hiYDistrEEpi0_, hMeanRecHitEnergyEBeta_, hMeanRecHitEnergyEBpi0_, hMeanRecHitEnergyEEeta_, hMeanRecHitEnergyEEpi0_, hMinvEtaEB_, hMinvEtaEE_, hMinvPi0EB_, hMinvPi0EE_, hNRecHitsEBeta_, hNRecHitsEBpi0_, hNRecHitsEEeta_, hNRecHitsEEpi0_, hPt1EtaEB_, hPt1EtaEE_, hPt1Pi0EB_, hPt1Pi0EE_, hPt2EtaEB_, hPt2EtaEE_, hPt2Pi0EB_, hPt2Pi0EE_, hPtEtaEB_, hPtEtaEE_, hPtPi0EB_, hPtPi0EE_, hRechitEnergyEBeta_, hRechitEnergyEBpi0_, hRechitEnergyEEeta_, hRechitEnergyEEpi0_, hS4S91EtaEB_, hS4S91EtaEE_, hS4S91Pi0EB_, hS4S91Pi0EE_, hS4S92EtaEB_, hS4S92EtaEE_, hS4S92Pi0EB_, hS4S92Pi0EE_, dqm::impl::MonitorElement::setAxisTitle(), and dqm::implementation::NavigatorBase::setCurrentFolder().

410  {
411  // create and cd into new folder
412  ibooker.setCurrentFolder(folderName_);
413 
414  // book some histograms 1D
415 
416  hiPhiDistrEBpi0_ = ibooker.book1D("iphiDistributionEBpi0", "RechitEB pi0 iphi", 361, 1, 361);
417  hiPhiDistrEBpi0_->setAxisTitle("i#phi ", 1);
418  hiPhiDistrEBpi0_->setAxisTitle("# rechits", 2);
419 
420  hiXDistrEEpi0_ = ibooker.book1D("iXDistributionEEpi0", "RechitEE pi0 ix", 100, 0, 100);
421  hiXDistrEEpi0_->setAxisTitle("ix ", 1);
422  hiXDistrEEpi0_->setAxisTitle("# rechits", 2);
423 
424  hiPhiDistrEBeta_ = ibooker.book1D("iphiDistributionEBeta", "RechitEB eta iphi", 361, 1, 361);
425  hiPhiDistrEBeta_->setAxisTitle("i#phi ", 1);
426  hiPhiDistrEBeta_->setAxisTitle("# rechits", 2);
427 
428  hiXDistrEEeta_ = ibooker.book1D("iXDistributionEEeta", "RechitEE eta ix", 100, 0, 100);
429  hiXDistrEEeta_->setAxisTitle("ix ", 1);
430  hiXDistrEEeta_->setAxisTitle("# rechits", 2);
431 
432  hiEtaDistrEBpi0_ = ibooker.book1D("iEtaDistributionEBpi0", "RechitEB pi0 ieta", 171, -85, 86);
433  hiEtaDistrEBpi0_->setAxisTitle("i#eta", 1);
434  hiEtaDistrEBpi0_->setAxisTitle("#rechits", 2);
435 
436  hiYDistrEEpi0_ = ibooker.book1D("iYDistributionEEpi0", "RechitEE pi0 iY", 100, 0, 100);
437  hiYDistrEEpi0_->setAxisTitle("iy", 1);
438  hiYDistrEEpi0_->setAxisTitle("#rechits", 2);
439 
440  hiEtaDistrEBeta_ = ibooker.book1D("iEtaDistributionEBeta", "RechitEB eta ieta", 171, -85, 86);
441  hiEtaDistrEBeta_->setAxisTitle("i#eta", 1);
442  hiEtaDistrEBeta_->setAxisTitle("#rechits", 2);
443 
444  hiYDistrEEeta_ = ibooker.book1D("iYDistributionEEeta", "RechitEE eta iY", 100, 0, 100);
445  hiYDistrEEeta_->setAxisTitle("iy", 1);
446  hiYDistrEEeta_->setAxisTitle("#rechits", 2);
447 
448  hRechitEnergyEBpi0_ = ibooker.book1D("rhEnergyEBpi0", "Pi0 rechits energy EB", 160, 0., 2.0);
449  hRechitEnergyEBpi0_->setAxisTitle("energy (GeV) ", 1);
450  hRechitEnergyEBpi0_->setAxisTitle("#rechits", 2);
451 
452  hRechitEnergyEEpi0_ = ibooker.book1D("rhEnergyEEpi0", "Pi0 rechits energy EE", 160, 0., 3.0);
453  hRechitEnergyEEpi0_->setAxisTitle("energy (GeV) ", 1);
454  hRechitEnergyEEpi0_->setAxisTitle("#rechits", 2);
455 
456  hRechitEnergyEBeta_ = ibooker.book1D("rhEnergyEBeta", "Eta rechits energy EB", 160, 0., 2.0);
457  hRechitEnergyEBeta_->setAxisTitle("energy (GeV) ", 1);
458  hRechitEnergyEBeta_->setAxisTitle("#rechits", 2);
459 
460  hRechitEnergyEEeta_ = ibooker.book1D("rhEnergyEEeta", "Eta rechits energy EE", 160, 0., 3.0);
461  hRechitEnergyEEeta_->setAxisTitle("energy (GeV) ", 1);
462  hRechitEnergyEEeta_->setAxisTitle("#rechits", 2);
463 
464  hEventEnergyEBpi0_ = ibooker.book1D("eventEnergyEBpi0", "Pi0 event energy EB", 100, 0., 20.0);
465  hEventEnergyEBpi0_->setAxisTitle("energy (GeV) ", 1);
466 
467  hEventEnergyEEpi0_ = ibooker.book1D("eventEnergyEEpi0", "Pi0 event energy EE", 100, 0., 50.0);
468  hEventEnergyEEpi0_->setAxisTitle("energy (GeV) ", 1);
469 
470  hEventEnergyEBeta_ = ibooker.book1D("eventEnergyEBeta", "Eta event energy EB", 100, 0., 20.0);
471  hEventEnergyEBeta_->setAxisTitle("energy (GeV) ", 1);
472 
473  hEventEnergyEEeta_ = ibooker.book1D("eventEnergyEEeta", "Eta event energy EE", 100, 0., 50.0);
474  hEventEnergyEEeta_->setAxisTitle("energy (GeV) ", 1);
475 
476  hNRecHitsEBpi0_ = ibooker.book1D("nRechitsEBpi0", "#rechits in pi0 collection EB", 100, 0., 250.);
477  hNRecHitsEBpi0_->setAxisTitle("rechits ", 1);
478 
479  hNRecHitsEEpi0_ = ibooker.book1D("nRechitsEEpi0", "#rechits in pi0 collection EE", 100, 0., 250.);
480  hNRecHitsEEpi0_->setAxisTitle("rechits ", 1);
481 
482  hNRecHitsEBeta_ = ibooker.book1D("nRechitsEBeta", "#rechits in eta collection EB", 100, 0., 250.);
483  hNRecHitsEBeta_->setAxisTitle("rechits ", 1);
484 
485  hNRecHitsEEeta_ = ibooker.book1D("nRechitsEEeta", "#rechits in eta collection EE", 100, 0., 250.);
486  hNRecHitsEEeta_->setAxisTitle("rechits ", 1);
487 
488  hMeanRecHitEnergyEBpi0_ = ibooker.book1D("meanEnergyEBpi0", "Mean rechit energy in pi0 collection EB", 50, 0., 2.);
489  hMeanRecHitEnergyEBpi0_->setAxisTitle("Mean Energy [GeV] ", 1);
490 
491  hMeanRecHitEnergyEEpi0_ = ibooker.book1D("meanEnergyEEpi0", "Mean rechit energy in pi0 collection EE", 100, 0., 5.);
492  hMeanRecHitEnergyEEpi0_->setAxisTitle("Mean Energy [GeV] ", 1);
493 
494  hMeanRecHitEnergyEBeta_ = ibooker.book1D("meanEnergyEBeta", "Mean rechit energy in eta collection EB", 50, 0., 2.);
495  hMeanRecHitEnergyEBeta_->setAxisTitle("Mean Energy [GeV] ", 1);
496 
497  hMeanRecHitEnergyEEeta_ = ibooker.book1D("meanEnergyEEeta", "Mean rechit energy in eta collection EE", 100, 0., 5.);
498  hMeanRecHitEnergyEEeta_->setAxisTitle("Mean Energy [GeV] ", 1);
499 
500  hMinvPi0EB_ = ibooker.book1D("Pi0InvmassEB", "Pi0 Invariant Mass in EB", 100, 0., 0.5);
501  hMinvPi0EB_->setAxisTitle("Inv Mass [GeV] ", 1);
502 
503  hMinvPi0EE_ = ibooker.book1D("Pi0InvmassEE", "Pi0 Invariant Mass in EE", 100, 0., 0.5);
504  hMinvPi0EE_->setAxisTitle("Inv Mass [GeV] ", 1);
505 
506  hMinvEtaEB_ = ibooker.book1D("EtaInvmassEB", "Eta Invariant Mass in EB", 100, 0., 0.85);
507  hMinvEtaEB_->setAxisTitle("Inv Mass [GeV] ", 1);
508 
509  hMinvEtaEE_ = ibooker.book1D("EtaInvmassEE", "Eta Invariant Mass in EE", 100, 0., 0.85);
510  hMinvEtaEE_->setAxisTitle("Inv Mass [GeV] ", 1);
511 
512  hPt1Pi0EB_ = ibooker.book1D("Pt1Pi0EB", "Pt 1st most energetic Pi0 photon in EB", 100, 0., 20.);
513  hPt1Pi0EB_->setAxisTitle("1st photon Pt [GeV] ", 1);
514 
515  hPt1Pi0EE_ = ibooker.book1D("Pt1Pi0EE", "Pt 1st most energetic Pi0 photon in EE", 100, 0., 20.);
516  hPt1Pi0EE_->setAxisTitle("1st photon Pt [GeV] ", 1);
517 
518  hPt1EtaEB_ = ibooker.book1D("Pt1EtaEB", "Pt 1st most energetic Eta photon in EB", 100, 0., 20.);
519  hPt1EtaEB_->setAxisTitle("1st photon Pt [GeV] ", 1);
520 
521  hPt1EtaEE_ = ibooker.book1D("Pt1EtaEE", "Pt 1st most energetic Eta photon in EE", 100, 0., 20.);
522  hPt1EtaEE_->setAxisTitle("1st photon Pt [GeV] ", 1);
523 
524  hPt2Pi0EB_ = ibooker.book1D("Pt2Pi0EB", "Pt 2nd most energetic Pi0 photon in EB", 100, 0., 20.);
525  hPt2Pi0EB_->setAxisTitle("2nd photon Pt [GeV] ", 1);
526 
527  hPt2Pi0EE_ = ibooker.book1D("Pt2Pi0EE", "Pt 2nd most energetic Pi0 photon in EE", 100, 0., 20.);
528  hPt2Pi0EE_->setAxisTitle("2nd photon Pt [GeV] ", 1);
529 
530  hPt2EtaEB_ = ibooker.book1D("Pt2EtaEB", "Pt 2nd most energetic Eta photon in EB", 100, 0., 20.);
531  hPt2EtaEB_->setAxisTitle("2nd photon Pt [GeV] ", 1);
532 
533  hPt2EtaEE_ = ibooker.book1D("Pt2EtaEE", "Pt 2nd most energetic Eta photon in EE", 100, 0., 20.);
534  hPt2EtaEE_->setAxisTitle("2nd photon Pt [GeV] ", 1);
535 
536  hPtPi0EB_ = ibooker.book1D("PtPi0EB", "Pi0 Pt in EB", 100, 0., 20.);
537  hPtPi0EB_->setAxisTitle("Pi0 Pt [GeV] ", 1);
538 
539  hPtPi0EE_ = ibooker.book1D("PtPi0EE", "Pi0 Pt in EE", 100, 0., 20.);
540  hPtPi0EE_->setAxisTitle("Pi0 Pt [GeV] ", 1);
541 
542  hPtEtaEB_ = ibooker.book1D("PtEtaEB", "Eta Pt in EB", 100, 0., 20.);
543  hPtEtaEB_->setAxisTitle("Eta Pt [GeV] ", 1);
544 
545  hPtEtaEE_ = ibooker.book1D("PtEtaEE", "Eta Pt in EE", 100, 0., 20.);
546  hPtEtaEE_->setAxisTitle("Eta Pt [GeV] ", 1);
547 
548  hIsoPi0EB_ = ibooker.book1D("IsoPi0EB", "Pi0 Iso in EB", 50, 0., 1.);
549  hIsoPi0EB_->setAxisTitle("Pi0 Iso", 1);
550 
551  hIsoPi0EE_ = ibooker.book1D("IsoPi0EE", "Pi0 Iso in EE", 50, 0., 1.);
552  hIsoPi0EE_->setAxisTitle("Pi0 Iso", 1);
553 
554  hIsoEtaEB_ = ibooker.book1D("IsoEtaEB", "Eta Iso in EB", 50, 0., 1.);
555  hIsoEtaEB_->setAxisTitle("Eta Iso", 1);
556 
557  hIsoEtaEE_ = ibooker.book1D("IsoEtaEE", "Eta Iso in EE", 50, 0., 1.);
558  hIsoEtaEE_->setAxisTitle("Eta Iso", 1);
559 
560  hS4S91Pi0EB_ = ibooker.book1D("S4S91Pi0EB", "S4S9 1st most energetic Pi0 photon in EB", 50, 0., 1.);
561  hS4S91Pi0EB_->setAxisTitle("S4S9 of the 1st Pi0 Photon ", 1);
562 
563  hS4S91Pi0EE_ = ibooker.book1D("S4S91Pi0EE", "S4S9 1st most energetic Pi0 photon in EE", 50, 0., 1.);
564  hS4S91Pi0EE_->setAxisTitle("S4S9 of the 1st Pi0 Photon ", 1);
565 
566  hS4S91EtaEB_ = ibooker.book1D("S4S91EtaEB", "S4S9 1st most energetic Eta photon in EB", 50, 0., 1.);
567  hS4S91EtaEB_->setAxisTitle("S4S9 of the 1st Eta Photon ", 1);
568 
569  hS4S91EtaEE_ = ibooker.book1D("S4S91EtaEE", "S4S9 1st most energetic Eta photon in EE", 50, 0., 1.);
570  hS4S91EtaEE_->setAxisTitle("S4S9 of the 1st Eta Photon ", 1);
571 
572  hS4S92Pi0EB_ = ibooker.book1D("S4S92Pi0EB", "S4S9 2nd most energetic Pi0 photon in EB", 50, 0., 1.);
573  hS4S92Pi0EB_->setAxisTitle("S4S9 of the 2nd Pi0 Photon", 1);
574 
575  hS4S92Pi0EE_ = ibooker.book1D("S4S92Pi0EE", "S4S9 2nd most energetic Pi0 photon in EE", 50, 0., 1.);
576  hS4S92Pi0EE_->setAxisTitle("S4S9 of the 2nd Pi0 Photon", 1);
577 
578  hS4S92EtaEB_ = ibooker.book1D("S4S92EtaEB", "S4S9 2nd most energetic Pi0 photon in EB", 50, 0., 1.);
579  hS4S92EtaEB_->setAxisTitle("S4S9 of the 2nd Eta Photon", 1);
580 
581  hS4S92EtaEE_ = ibooker.book1D("S4S92EtaEE", "S4S9 2nd most energetic Pi0 photon in EE", 50, 0., 1.);
582  hS4S92EtaEE_->setAxisTitle("S4S9 of the 2nd Eta Photon", 1);
583 }
MonitorElement * hiYDistrEEeta_
Distribution of rechits in iy EE (eta)
Definition: DQMSourcePi0.cc:83
MonitorElement * hMinvPi0EE_
Pi0 invariant mass in EE.
MonitorElement * hiXDistrEEeta_
Distribution of rechits in ix EE (eta)
Definition: DQMSourcePi0.cc:71
MonitorElement * hiPhiDistrEBpi0_
Distribution of rechits in iPhi (pi0)
Definition: DQMSourcePi0.cc:62
MonitorElement * hPt1Pi0EB_
Pt of the 1st most energetic Pi0 photon in EB.
MonitorElement * hPt2Pi0EE_
Pt of the 2nd most energetic Pi0 photon in EE.
MonitorElement * hiYDistrEEpi0_
Distribution of rechits in iy EE (pi0)
Definition: DQMSourcePi0.cc:77
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:36
MonitorElement * hPtPi0EE_
Pi0 Pt in EE.
MonitorElement * hMinvEtaEB_
Eta invariant mass in EB.
MonitorElement * hS4S92EtaEB_
S4S9 of the 2nd most energetic eta photon.
MonitorElement * hMeanRecHitEnergyEBeta_
Distribution of Mean energy per rechit EB (eta)
std::string folderName_
DQM folder name.
MonitorElement * hMeanRecHitEnergyEEpi0_
Distribution of Mean energy per rechit EE (pi0)
MonitorElement * hNRecHitsEBpi0_
Distribution of number of RecHits EB (pi0)
MonitorElement * hPt2EtaEE_
Pt of the 2nd most energetic Eta photon in EE.
MonitorElement * hRechitEnergyEBpi0_
Energy Distribution of rechits EB (pi0)
Definition: DQMSourcePi0.cc:86
MonitorElement * hRechitEnergyEEpi0_
Energy Distribution of rechits EE (pi0)
Definition: DQMSourcePi0.cc:89
MonitorElement * hPtEtaEB_
Eta Pt in EB.
MonitorElement * hIsoEtaEB_
Eta Iso EB.
MonitorElement * hIsoPi0EB_
Pi0 Iso EB.
MonitorElement * hS4S91Pi0EE_
S4S9 of the 1st most energetic pi0 photon EE.
MonitorElement * hS4S91EtaEB_
S4S9 of the 1st most energetic eta photon.
MonitorElement * hMinvPi0EB_
Pi0 invariant mass in EB.
MonitorElement * hS4S92Pi0EE_
S4S9 of the 2nd most energetic pi0 photon EE.
MonitorElement * hiEtaDistrEBpi0_
Distribution of rechits in iEta (pi0)
Definition: DQMSourcePi0.cc:74
MonitorElement * hS4S91Pi0EB_
S4S9 of the 1st most energetic pi0 photon.
MonitorElement * hiXDistrEEpi0_
Distribution of rechits in ix EE (pi0)
Definition: DQMSourcePi0.cc:65
MonitorElement * hiEtaDistrEBeta_
Distribution of rechits in iEta (eta)
Definition: DQMSourcePi0.cc:80
MonitorElement * hPtEtaEE_
Eta Pt in EE.
MonitorElement * hEventEnergyEEpi0_
Distribution of total event energy EE (pi0)
MonitorElement * hNRecHitsEEeta_
Distribution of number of RecHits EE (eta)
MonitorElement * hiPhiDistrEBeta_
Distribution of rechits in iPhi (eta)
Definition: DQMSourcePi0.cc:68
MonitorElement * hRechitEnergyEBeta_
Energy Distribution of rechits EB (eta)
Definition: DQMSourcePi0.cc:92
MonitorElement * hPt1EtaEE_
Pt of the 1st most energetic Eta photon in EE.
MonitorElement * hEventEnergyEBpi0_
Distribution of total event energy EB (pi0)
Definition: DQMSourcePi0.cc:98
MonitorElement * hPt1EtaEB_
Pt of the 1st most energetic Eta photon in EB.
MonitorElement * hEventEnergyEBeta_
Distribution of total event energy EB (eta)
MonitorElement * hIsoEtaEE_
Eta Iso EE.
MonitorElement * hS4S92Pi0EB_
S4S9 of the 2nd most energetic pi0 photon.
MonitorElement * hPt2EtaEB_
Pt of the 2nd most energetic Eta photon in EB.
MonitorElement * hMinvEtaEE_
Eta invariant mass in EE.
MonitorElement * hPtPi0EB_
Pi0 Pt in EB.
MonitorElement * hS4S92EtaEE_
S4S9 of the 2nd most energetic eta photon EE.
MonitorElement * hMeanRecHitEnergyEEeta_
Distribution of Mean energy per rechit EE (eta)
MonitorElement * hIsoPi0EE_
Pi0 Iso EE.
MonitorElement * hNRecHitsEBeta_
Distribution of number of RecHits EB (eta)
MonitorElement * hPt1Pi0EE_
Pt of the 1st most energetic Pi0 photon in EE.
MonitorElement * hS4S91EtaEE_
S4S9 of the 1st most energetic eta photon EE.
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
MonitorElement * hRechitEnergyEEeta_
Energy Distribution of rechits EE (eta)
Definition: DQMSourcePi0.cc:95
MonitorElement * hMeanRecHitEnergyEBpi0_
Distribution of Mean energy per rechit EB (pi0)
MonitorElement * hEventEnergyEEeta_
Distribution of total event energy EE (eta)
MonitorElement * hNRecHitsEEpi0_
Distribution of number of RecHits EE (pi0)
MonitorElement * hPt2Pi0EB_
Pt of the 2nd most energetic Pi0 photon in EB.
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)

◆ convxtalid()

void DQMSourcePi0::convxtalid ( int &  ,
int &   
)
protected

Definition at line 1735 of file DQMSourcePi0.cc.

References neta, and nphi.

Referenced by analyze().

1735  {
1736  // Barrel only
1737  // Output nphi 0...359; neta 0...84; nside=+1 (for eta>0), or 0 (for eta<0).
1738  // neta will be [-85,-1] , or [0,84], the minus sign indicates the z<0 side.
1739 
1740  if (neta > 0)
1741  neta -= 1;
1742  if (nphi > 359)
1743  nphi = nphi - 360;
1744 
1745 } // end of convxtalid
const int nphi
const int neta

◆ diff_neta_s()

int DQMSourcePi0::diff_neta_s ( int  ,
int   
)
protected

Definition at line 1747 of file DQMSourcePi0.cc.

Referenced by analyze().

1747  {
1748  Int_t mdiff;
1749  mdiff = (neta1 - neta2);
1750  return mdiff;
1751 }

◆ diff_nphi_s()

int DQMSourcePi0::diff_nphi_s ( int  ,
int   
)
protected

Definition at line 1755 of file DQMSourcePi0.cc.

References funct::abs().

Referenced by analyze().

1755  {
1756  Int_t mdiff;
1757  if (std::abs(nphi1 - nphi2) < (360 - std::abs(nphi1 - nphi2))) {
1758  mdiff = nphi1 - nphi2;
1759  } else {
1760  mdiff = 360 - std::abs(nphi1 - nphi2);
1761  if (nphi1 > nphi2)
1762  mdiff = -mdiff;
1763  }
1764  return mdiff;
1765 }
Abs< T >::type abs(const T &t)
Definition: Abs.h:22

Member Data Documentation

◆ caloGeomToken_

edm::ESGetToken<CaloGeometry, CaloGeometryRecord> DQMSourcePi0::caloGeomToken_
private

Definition at line 226 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ caloTopoToken_

edm::ESGetToken<CaloTopology, CaloTopologyRecord> DQMSourcePi0::caloTopoToken_
private

Definition at line 225 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ clusEtaSize_

int DQMSourcePi0::clusEtaSize_
private

Definition at line 235 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ clusPhiSize_

int DQMSourcePi0::clusPhiSize_
private

Definition at line 236 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ clusSeedThr_

double DQMSourcePi0::clusSeedThr_
private

Definition at line 234 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ clusSeedThrEndCap_

double DQMSourcePi0::clusSeedThrEndCap_
private

Definition at line 238 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ detIdEBRecHits

std::vector<EBDetId> DQMSourcePi0::detIdEBRecHits
private

Definition at line 293 of file DQMSourcePi0.cc.

Referenced by analyze().

◆ detIdEERecHits

std::vector<EEDetId> DQMSourcePi0::detIdEERecHits
private

Definition at line 296 of file DQMSourcePi0.cc.

Referenced by analyze().

◆ EBRecHits

std::vector<EcalRecHit> DQMSourcePi0::EBRecHits
private

Definition at line 294 of file DQMSourcePi0.cc.

Referenced by analyze().

◆ EERecHits

std::vector<EcalRecHit> DQMSourcePi0::EERecHits
private

Definition at line 297 of file DQMSourcePi0.cc.

Referenced by analyze().

◆ eventCounter_

int DQMSourcePi0::eventCounter_
private

Definition at line 58 of file DQMSourcePi0.cc.

Referenced by analyze().

◆ fileName_

std::string DQMSourcePi0::fileName_
private

Output file name if required.

Definition at line 315 of file DQMSourcePi0.cc.

Referenced by DQMSourcePi0().

◆ folderName_

std::string DQMSourcePi0::folderName_
private

DQM folder name.

Definition at line 303 of file DQMSourcePi0.cc.

Referenced by bookHistograms(), and DQMSourcePi0().

◆ gammaCandEtaSize_

int DQMSourcePi0::gammaCandEtaSize_
private

Definition at line 228 of file DQMSourcePi0.cc.

◆ gammaCandPhiSize_

int DQMSourcePi0::gammaCandPhiSize_
private

Definition at line 229 of file DQMSourcePi0.cc.

◆ hEventEnergyEBeta_

MonitorElement* DQMSourcePi0::hEventEnergyEBeta_
private

Distribution of total event energy EB (eta)

Definition at line 104 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hEventEnergyEBpi0_

MonitorElement* DQMSourcePi0::hEventEnergyEBpi0_
private

Distribution of total event energy EB (pi0)

Definition at line 98 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hEventEnergyEEeta_

MonitorElement* DQMSourcePi0::hEventEnergyEEeta_
private

Distribution of total event energy EE (eta)

Definition at line 107 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hEventEnergyEEpi0_

MonitorElement* DQMSourcePi0::hEventEnergyEEpi0_
private

Distribution of total event energy EE (pi0)

Definition at line 101 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hiEtaDistrEBeta_

MonitorElement* DQMSourcePi0::hiEtaDistrEBeta_
private

Distribution of rechits in iEta (eta)

Definition at line 80 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hiEtaDistrEBpi0_

MonitorElement* DQMSourcePi0::hiEtaDistrEBpi0_
private

Distribution of rechits in iEta (pi0)

Definition at line 74 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hiPhiDistrEBeta_

MonitorElement* DQMSourcePi0::hiPhiDistrEBeta_
private

Distribution of rechits in iPhi (eta)

Definition at line 68 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hiPhiDistrEBpi0_

MonitorElement* DQMSourcePi0::hiPhiDistrEBpi0_
private

Distribution of rechits in iPhi (pi0)

Definition at line 62 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hIsoEtaEB_

MonitorElement* DQMSourcePi0::hIsoEtaEB_
private

Eta Iso EB.

Definition at line 188 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hIsoEtaEE_

MonitorElement* DQMSourcePi0::hIsoEtaEE_
private

Eta Iso EE.

Definition at line 191 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hIsoPi0EB_

MonitorElement* DQMSourcePi0::hIsoPi0EB_
private

Pi0 Iso EB.

Definition at line 182 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hIsoPi0EE_

MonitorElement* DQMSourcePi0::hIsoPi0EE_
private

Pi0 Iso EE.

Definition at line 185 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hiXDistrEEeta_

MonitorElement* DQMSourcePi0::hiXDistrEEeta_
private

Distribution of rechits in ix EE (eta)

Definition at line 71 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hiXDistrEEpi0_

MonitorElement* DQMSourcePi0::hiXDistrEEpi0_
private

Distribution of rechits in ix EE (pi0)

Definition at line 65 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hiYDistrEEeta_

MonitorElement* DQMSourcePi0::hiYDistrEEeta_
private

Distribution of rechits in iy EE (eta)

Definition at line 83 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hiYDistrEEpi0_

MonitorElement* DQMSourcePi0::hiYDistrEEpi0_
private

Distribution of rechits in iy EE (pi0)

Definition at line 77 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hMeanRecHitEnergyEBeta_

MonitorElement* DQMSourcePi0::hMeanRecHitEnergyEBeta_
private

Distribution of Mean energy per rechit EB (eta)

Definition at line 128 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hMeanRecHitEnergyEBpi0_

MonitorElement* DQMSourcePi0::hMeanRecHitEnergyEBpi0_
private

Distribution of Mean energy per rechit EB (pi0)

Definition at line 122 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hMeanRecHitEnergyEEeta_

MonitorElement* DQMSourcePi0::hMeanRecHitEnergyEEeta_
private

Distribution of Mean energy per rechit EE (eta)

Definition at line 131 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hMeanRecHitEnergyEEpi0_

MonitorElement* DQMSourcePi0::hMeanRecHitEnergyEEpi0_
private

Distribution of Mean energy per rechit EE (pi0)

Definition at line 125 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hMinvEtaEB_

MonitorElement* DQMSourcePi0::hMinvEtaEB_
private

Eta invariant mass in EB.

Definition at line 140 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hMinvEtaEE_

MonitorElement* DQMSourcePi0::hMinvEtaEE_
private

Eta invariant mass in EE.

Definition at line 143 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hMinvPi0EB_

MonitorElement* DQMSourcePi0::hMinvPi0EB_
private

Pi0 invariant mass in EB.

Definition at line 134 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hMinvPi0EE_

MonitorElement* DQMSourcePi0::hMinvPi0EE_
private

Pi0 invariant mass in EE.

Definition at line 137 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hNRecHitsEBeta_

MonitorElement* DQMSourcePi0::hNRecHitsEBeta_
private

Distribution of number of RecHits EB (eta)

Definition at line 116 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hNRecHitsEBpi0_

MonitorElement* DQMSourcePi0::hNRecHitsEBpi0_
private

Distribution of number of RecHits EB (pi0)

Definition at line 110 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hNRecHitsEEeta_

MonitorElement* DQMSourcePi0::hNRecHitsEEeta_
private

Distribution of number of RecHits EE (eta)

Definition at line 119 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hNRecHitsEEpi0_

MonitorElement* DQMSourcePi0::hNRecHitsEEpi0_
private

Distribution of number of RecHits EE (pi0)

Definition at line 113 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hPt1EtaEB_

MonitorElement* DQMSourcePi0::hPt1EtaEB_
private

Pt of the 1st most energetic Eta photon in EB.

Definition at line 152 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hPt1EtaEE_

MonitorElement* DQMSourcePi0::hPt1EtaEE_
private

Pt of the 1st most energetic Eta photon in EE.

Definition at line 155 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hPt1Pi0EB_

MonitorElement* DQMSourcePi0::hPt1Pi0EB_
private

Pt of the 1st most energetic Pi0 photon in EB.

Definition at line 146 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hPt1Pi0EE_

MonitorElement* DQMSourcePi0::hPt1Pi0EE_
private

Pt of the 1st most energetic Pi0 photon in EE.

Definition at line 149 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hPt2EtaEB_

MonitorElement* DQMSourcePi0::hPt2EtaEB_
private

Pt of the 2nd most energetic Eta photon in EB.

Definition at line 164 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hPt2EtaEE_

MonitorElement* DQMSourcePi0::hPt2EtaEE_
private

Pt of the 2nd most energetic Eta photon in EE.

Definition at line 167 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hPt2Pi0EB_

MonitorElement* DQMSourcePi0::hPt2Pi0EB_
private

Pt of the 2nd most energetic Pi0 photon in EB.

Definition at line 158 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hPt2Pi0EE_

MonitorElement* DQMSourcePi0::hPt2Pi0EE_
private

Pt of the 2nd most energetic Pi0 photon in EE.

Definition at line 161 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hPtEtaEB_

MonitorElement* DQMSourcePi0::hPtEtaEB_
private

Eta Pt in EB.

Definition at line 176 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hPtEtaEE_

MonitorElement* DQMSourcePi0::hPtEtaEE_
private

Eta Pt in EE.

Definition at line 179 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hPtPi0EB_

MonitorElement* DQMSourcePi0::hPtPi0EB_
private

Pi0 Pt in EB.

Definition at line 170 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hPtPi0EE_

MonitorElement* DQMSourcePi0::hPtPi0EE_
private

Pi0 Pt in EE.

Definition at line 173 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hRechitEnergyEBeta_

MonitorElement* DQMSourcePi0::hRechitEnergyEBeta_
private

Energy Distribution of rechits EB (eta)

Definition at line 92 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hRechitEnergyEBpi0_

MonitorElement* DQMSourcePi0::hRechitEnergyEBpi0_
private

Energy Distribution of rechits EB (pi0)

Definition at line 86 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hRechitEnergyEEeta_

MonitorElement* DQMSourcePi0::hRechitEnergyEEeta_
private

Energy Distribution of rechits EE (eta)

Definition at line 95 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hRechitEnergyEEpi0_

MonitorElement* DQMSourcePi0::hRechitEnergyEEpi0_
private

Energy Distribution of rechits EE (pi0)

Definition at line 89 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hS4S91EtaEB_

MonitorElement* DQMSourcePi0::hS4S91EtaEB_
private

S4S9 of the 1st most energetic eta photon.

Definition at line 200 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hS4S91EtaEE_

MonitorElement* DQMSourcePi0::hS4S91EtaEE_
private

S4S9 of the 1st most energetic eta photon EE.

Definition at line 203 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hS4S91Pi0EB_

MonitorElement* DQMSourcePi0::hS4S91Pi0EB_
private

S4S9 of the 1st most energetic pi0 photon.

Definition at line 194 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hS4S91Pi0EE_

MonitorElement* DQMSourcePi0::hS4S91Pi0EE_
private

S4S9 of the 1st most energetic pi0 photon EE.

Definition at line 197 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hS4S92EtaEB_

MonitorElement* DQMSourcePi0::hS4S92EtaEB_
private

S4S9 of the 2nd most energetic eta photon.

Definition at line 212 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hS4S92EtaEE_

MonitorElement* DQMSourcePi0::hS4S92EtaEE_
private

S4S9 of the 2nd most energetic eta photon EE.

Definition at line 215 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hS4S92Pi0EB_

MonitorElement* DQMSourcePi0::hS4S92Pi0EB_
private

S4S9 of the 2nd most energetic pi0 photon.

Definition at line 206 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ hS4S92Pi0EE_

MonitorElement* DQMSourcePi0::hS4S92Pi0EE_
private

S4S9 of the 2nd most energetic pi0 photon EE.

Definition at line 209 of file DQMSourcePi0.cc.

Referenced by analyze(), and bookHistograms().

◆ isMonEBeta_

bool DQMSourcePi0::isMonEBeta_
private

Definition at line 310 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ isMonEBpi0_

bool DQMSourcePi0::isMonEBpi0_
private

which subdet will be monitored

Definition at line 309 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ isMonEEeta_

bool DQMSourcePi0::isMonEEeta_
private

Definition at line 312 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ isMonEEpi0_

bool DQMSourcePi0::isMonEEpi0_
private

Definition at line 311 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ ParameterLogWeighted_

bool DQMSourcePi0::ParameterLogWeighted_
private

Definition at line 286 of file DQMSourcePi0.cc.

◆ ParameterT0_barl_

double DQMSourcePi0::ParameterT0_barl_
private

Definition at line 288 of file DQMSourcePi0.cc.

◆ ParameterT0_endc_

double DQMSourcePi0::ParameterT0_endc_
private

Definition at line 289 of file DQMSourcePi0.cc.

◆ ParameterT0_endcPresh_

double DQMSourcePi0::ParameterT0_endcPresh_
private

Definition at line 290 of file DQMSourcePi0.cc.

◆ ParameterW0_

double DQMSourcePi0::ParameterW0_
private

Definition at line 291 of file DQMSourcePi0.cc.

◆ ParameterX0_

double DQMSourcePi0::ParameterX0_
private

Definition at line 287 of file DQMSourcePi0.cc.

◆ posCalculator_

PositionCalc DQMSourcePi0::posCalculator_
private

Definition at line 59 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ prescaleFactor_

unsigned int DQMSourcePi0::prescaleFactor_
private

Monitor every prescaleFactor_ events.

Definition at line 300 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ productMonitoredEBeta_

edm::EDGetTokenT<EcalRecHitCollection> DQMSourcePi0::productMonitoredEBeta_
private

Definition at line 219 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ productMonitoredEBpi0_

edm::EDGetTokenT<EcalRecHitCollection> DQMSourcePi0::productMonitoredEBpi0_
private

object to monitor

Definition at line 218 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ productMonitoredEEeta_

edm::EDGetTokenT<EcalRecHitCollection> DQMSourcePi0::productMonitoredEEeta_
private

Definition at line 223 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ productMonitoredEEpi0_

edm::EDGetTokenT<EcalRecHitCollection> DQMSourcePi0::productMonitoredEEpi0_
private

object to monitor

Definition at line 222 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ ptMinForIsolation_

double DQMSourcePi0::ptMinForIsolation_
private

Definition at line 249 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ ptMinForIsolationEndCap_

double DQMSourcePi0::ptMinForIsolationEndCap_
private

Definition at line 260 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ ptMinForIsolationEta_

double DQMSourcePi0::ptMinForIsolationEta_
private

Definition at line 269 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ ptMinForIsolationEtaEndCap_

double DQMSourcePi0::ptMinForIsolationEtaEndCap_
private

Definition at line 281 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ saveToFile_

bool DQMSourcePi0::saveToFile_
private

Write to file.

Definition at line 306 of file DQMSourcePi0.cc.

Referenced by DQMSourcePi0().

◆ seleEtaBeltDeta_

double DQMSourcePi0::seleEtaBeltDeta_
private

Definition at line 272 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ seleEtaBeltDetaEndCap_

double DQMSourcePi0::seleEtaBeltDetaEndCap_
private

Definition at line 284 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ seleEtaBeltDR_

double DQMSourcePi0::seleEtaBeltDR_
private

Definition at line 271 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ seleEtaBeltDREndCap_

double DQMSourcePi0::seleEtaBeltDREndCap_
private

Definition at line 283 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ seleEtaIso_

double DQMSourcePi0::seleEtaIso_
private

Definition at line 270 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ seleEtaIsoEndCap_

double DQMSourcePi0::seleEtaIsoEndCap_
private

Definition at line 282 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ seleMinvMaxEta_

double DQMSourcePi0::seleMinvMaxEta_
private

Definition at line 267 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ seleMinvMaxEtaEndCap_

double DQMSourcePi0::seleMinvMaxEtaEndCap_
private

Definition at line 279 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ seleMinvMaxPi0_

double DQMSourcePi0::seleMinvMaxPi0_
private

Definition at line 243 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ seleMinvMaxPi0EndCap_

double DQMSourcePi0::seleMinvMaxPi0EndCap_
private

Definition at line 254 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ seleMinvMinEta_

double DQMSourcePi0::seleMinvMinEta_
private

Definition at line 268 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ seleMinvMinEtaEndCap_

double DQMSourcePi0::seleMinvMinEtaEndCap_
private

Definition at line 280 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ seleMinvMinPi0_

double DQMSourcePi0::seleMinvMinPi0_
private

Definition at line 244 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ seleMinvMinPi0EndCap_

double DQMSourcePi0::seleMinvMinPi0EndCap_
private

Definition at line 255 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ selePi0BeltDeta_

double DQMSourcePi0::selePi0BeltDeta_
private

Definition at line 247 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ selePi0BeltDetaEndCap_

double DQMSourcePi0::selePi0BeltDetaEndCap_
private

Definition at line 259 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ selePi0BeltDR_

double DQMSourcePi0::selePi0BeltDR_
private

Definition at line 246 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ selePi0BeltDREndCap_

double DQMSourcePi0::selePi0BeltDREndCap_
private

Definition at line 258 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ selePi0Iso_

double DQMSourcePi0::selePi0Iso_
private

Definition at line 248 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ selePi0IsoEndCap_

double DQMSourcePi0::selePi0IsoEndCap_
private

Definition at line 257 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ selePtEta_

double DQMSourcePi0::selePtEta_
private

Definition at line 264 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ selePtEtaEndCap_

double DQMSourcePi0::selePtEtaEndCap_
private

Definition at line 278 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ selePtGamma_

double DQMSourcePi0::selePtGamma_
private

Definition at line 241 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ selePtGammaEndCap_

double DQMSourcePi0::selePtGammaEndCap_
private

for pi0->gg endcap

Definition at line 252 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ selePtGammaEta_

double DQMSourcePi0::selePtGammaEta_
private

for eta->gg barrel

Definition at line 263 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ selePtGammaEtaEndCap_

double DQMSourcePi0::selePtGammaEtaEndCap_
private

for eta->gg endcap

Definition at line 275 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ selePtPi0_

double DQMSourcePi0::selePtPi0_
private

Definition at line 242 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ selePtPi0EndCap_

double DQMSourcePi0::selePtPi0EndCap_
private

Definition at line 253 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ seleS4S9Gamma_

double DQMSourcePi0::seleS4S9Gamma_
private

Definition at line 245 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ seleS4S9GammaEndCap_

double DQMSourcePi0::seleS4S9GammaEndCap_
private

Definition at line 256 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ seleS4S9GammaEta_

double DQMSourcePi0::seleS4S9GammaEta_
private

Definition at line 265 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ seleS4S9GammaEtaEndCap_

double DQMSourcePi0::seleS4S9GammaEtaEndCap_
private

Definition at line 276 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ seleS9S25GammaEta_

double DQMSourcePi0::seleS9S25GammaEta_
private

Definition at line 266 of file DQMSourcePi0.cc.

Referenced by DQMSourcePi0().

◆ seleS9S25GammaEtaEndCap_

double DQMSourcePi0::seleS9S25GammaEtaEndCap_
private

Definition at line 277 of file DQMSourcePi0.cc.

Referenced by DQMSourcePi0().

◆ seleXtalMinEnergy_

double DQMSourcePi0::seleXtalMinEnergy_
private

Definition at line 231 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().

◆ seleXtalMinEnergyEndCap_

double DQMSourcePi0::seleXtalMinEnergyEndCap_
private

Definition at line 232 of file DQMSourcePi0.cc.

Referenced by analyze(), and DQMSourcePi0().