CMS 3D CMS Logo

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

#include <HcalSimHitsValidation.h>

Inheritance diagram for HcalSimHitsValidation:
DQMOneEDAnalyzer<> edm::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::Accumulator, Args...> edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

void analyze (edm::Event const &ev, edm::EventSetup const &c) override
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
void endJob () override
 
 HcalSimHitsValidation (edm::ParameterSet const &conf)
 
 ~HcalSimHitsValidation () override
 
- Public Member Functions inherited from DQMOneEDAnalyzer<>
void accumulate (edm::Event const &event, edm::EventSetup const &setup) override
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
 DQMOneEDAnalyzer ()
 
void endRun (edm::Run const &, edm::EventSetup const &) final
 
void endRunProduce (edm::Run &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::Accumulator, Args...>
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
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
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsInputProcessBlocks () const final
 
bool wantsProcessBlocks () const final
 
- Public Member Functions inherited from edm::one::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector
< edm::ProductResolverIndex >
const & 
indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector
< edm::ProductResolverIndex >
const & 
putTokenIndexToProductResolverIndex () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription
const &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESProxyIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex >
const & 
esGetTokenRecordIndicesVector (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector
< ProductResolverIndexAndSkipBit >
const & 
itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::array< std::vector< ModuleDescription const * > *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Member Functions

double dPhiWsign (double phi1, double phi2)
 
double dR (double eta1, double phi1, double eta2, double phi2)
 
double phi12 (double phi1, double en1, double phi2, double en2)
 

Private Attributes

bool auxPlots_
 
std::string ebHits_
 
std::string eeHits_
 
std::vector< MonitorElement * > emean_vs_ieta_HB
 
std::vector< MonitorElement * > emean_vs_ieta_HE
 
std::vector< MonitorElement * > emean_vs_ieta_HF
 
MonitorElementemean_vs_ieta_HO
 
std::string g4Label_
 
const CaloGeometrygeometry_
 
std::string hcalHits_
 
const HcalDDDRecConstantshcons_
 
double hf1_
 
double hf2_
 
int maxDepthHB_
 
int maxDepthHE_
 
int maxDepthHF_
 
int maxDepthHO_
 
MonitorElementmeEnConeEtaProfile
 
MonitorElementmeEnConeEtaProfile_E
 
MonitorElementmeEnConeEtaProfile_EH
 
std::vector< MonitorElement * > meSimHitsEnergyHB
 
std::vector< MonitorElement * > meSimHitsEnergyHE
 
std::vector< MonitorElement * > meSimHitsEnergyHF
 
MonitorElementmeSimHitsEnergyHO
 
int nevtot
 
std::vector< MonitorElement * > Nhb
 
std::vector< MonitorElement * > Nhe
 
std::vector< MonitorElement * > Nhf
 
MonitorElementNho
 
std::vector< MonitorElement * > occupancy_vs_ieta_HB
 
std::vector< MonitorElement * > occupancy_vs_ieta_HE
 
std::vector< MonitorElement * > occupancy_vs_ieta_HF
 
MonitorElementoccupancy_vs_ieta_HO
 
std::string outputFile_
 
bool testNumber_
 
edm::EDGetTokenT
< edm::PCaloHitContainer
tok_ecalEB_
 
edm::EDGetTokenT
< edm::PCaloHitContainer
tok_ecalEE_
 
edm::EDGetTokenT
< edm::HepMCProduct
tok_evt_
 
edm::ESGetToken< CaloGeometry,
CaloGeometryRecord
tok_geom_
 
edm::EDGetTokenT
< edm::PCaloHitContainer
tok_hcal_
 
edm::ESGetToken
< HcalDDDRecConstants,
HcalRecNumberingRecord
tok_HRNDC_
 

Additional Inherited Members

- Public Types inherited from DQMOneEDAnalyzer<>
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::one::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >>
 
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::one::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from DQMOneEDAnalyzer<>
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
virtual void dqmEndRun (edm::Run const &, edm::EventSetup const &)
 
- Protected Member Functions inherited from edm::ProducerBase
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< B > consumes (edm::InputTag tag) noexcept
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes () noexcept
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag) noexcept
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
void resetItemsToGetFrom (BranchType iType)
 
- Protected Attributes inherited from DQMOneEDAnalyzer<>
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

Definition at line 42 of file HcalSimHitsValidation.h.

Constructor & Destructor Documentation

HcalSimHitsValidation::HcalSimHitsValidation ( edm::ParameterSet const &  conf)

Definition at line 4 of file HcalSimHitsValidation.cc.

References auxPlots_, ebHits_, eeHits_, g4Label_, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), hcalHits_, hf1_, hf2_, HLT_FULL_cff::InputTag, nevtot, outputFile_, AlCaHLTBitMon_QueryRunRegistry::string, testNumber_, tok_ecalEB_, tok_ecalEE_, tok_evt_, tok_geom_, tok_hcal_, and tok_HRNDC_.

4  {
5  // DQM ROOT output
6  outputFile_ = conf.getUntrackedParameter<std::string>("outputFile", "myfile.root");
7  testNumber_ = conf.getUntrackedParameter<bool>("TestNumber", false);
8  auxPlots_ = conf.getUntrackedParameter<bool>("auxiliaryPlots", false);
9 
10  // register for data access
11  g4Label_ = conf.getUntrackedParameter<std::string>("ModuleLabel", "g4SimHits");
12  hcalHits_ = conf.getUntrackedParameter<std::string>("HcalHitCollection", "HcalHits");
13  ebHits_ = conf.getUntrackedParameter<std::string>("EBHitCollection", "EcalHitsEB");
14  eeHits_ = conf.getUntrackedParameter<std::string>("EEHitCollection", "EcalHitsEE");
15 
16  // import sampling factors
17  hf1_ = conf.getParameter<double>("hf1");
18  hf2_ = conf.getParameter<double>("hf2");
19 
20  tok_evt_ = consumes<edm::HepMCProduct>(edm::InputTag("generatorSmeared"));
21  tok_hcal_ = consumes<edm::PCaloHitContainer>(edm::InputTag(g4Label_, hcalHits_));
22  tok_ecalEB_ = consumes<edm::PCaloHitContainer>(edm::InputTag(g4Label_, ebHits_));
23  tok_ecalEE_ = consumes<edm::PCaloHitContainer>(edm::InputTag(g4Label_, eeHits_));
24  tok_HRNDC_ = esConsumes<HcalDDDRecConstants, HcalRecNumberingRecord, edm::Transition::BeginRun>();
25  tok_geom_ = esConsumes<CaloGeometry, CaloGeometryRecord>();
26 
27  if (!outputFile_.empty()) {
28  edm::LogVerbatim("OutputInfo") << " Hcal SimHit Task histograms will be saved to '" << outputFile_.c_str() << "'";
29  } else {
30  edm::LogVerbatim("OutputInfo") << " Hcal SimHit Task histograms will NOT be saved";
31  }
32 
33  nevtot = 0;
34 }
Log< level::Info, true > LogVerbatim
edm::EDGetTokenT< edm::PCaloHitContainer > tok_ecalEB_
edm::ESGetToken< HcalDDDRecConstants, HcalRecNumberingRecord > tok_HRNDC_
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > tok_geom_
edm::EDGetTokenT< edm::PCaloHitContainer > tok_ecalEE_
edm::EDGetTokenT< edm::PCaloHitContainer > tok_hcal_
edm::EDGetTokenT< edm::HepMCProduct > tok_evt_
HcalSimHitsValidation::~HcalSimHitsValidation ( )
override

Definition at line 36 of file HcalSimHitsValidation.cc.

36 {}

Member Function Documentation

void HcalSimHitsValidation::analyze ( edm::Event const &  ev,
edm::EventSetup const &  c 
)
overridevirtual

Reimplemented from DQMOneEDAnalyzer<>.

Definition at line 287 of file HcalSimHitsValidation.cc.

References funct::abs(), auxPlots_, HLT_FULL_cff::depth, dR(), ebHits_, eeHits_, emean_vs_ieta_HB, emean_vs_ieta_HE, emean_vs_ieta_HF, emean_vs_ieta_HO, Puppi_cff::etaMax, dqm::impl::MonitorElement::Fill(), geometry_, edm::Event::getByToken(), edm::EventSetup::getData(), CaloSubdetectorGeometry::getGeometry(), CaloGeometry::getSubdetectorGeometry(), hcons_, hf1_, hf2_, edm::HandleBase::isValid(), maxDepthHE_, meEnConeEtaProfile, meEnConeEtaProfile_E, meEnConeEtaProfile_EH, meSimHitsEnergyHB, meSimHitsEnergyHE, meSimHitsEnergyHF, meSimHitsEnergyHO, nevtot, npart, occupancy_vs_ieta_HB, occupancy_vs_ieta_HE, occupancy_vs_ieta_HF, occupancy_vs_ieta_HO, AlCaHLTBitMon_ParallelJobs::p, edm::Handle< T >::product(), DiDispStaMuonMonitor_cfi::pt, alignCSCRings::r, HcalHitRelabeller::relabel(), HcalDetId::subdet(), testNumber_, tok_ecalEB_, tok_ecalEE_, tok_evt_, tok_geom_, and tok_hcal_.

287  {
288  //===========================================================================
289  // Getting SimHits
290  //===========================================================================
291 
292  double phi_MC = -999.; // phi of initial particle from HepMC
293  double eta_MC = -999.; // eta of initial particle from HepMC
294 
296  ev.getByToken(tok_evt_, evtMC); // generator in late 310_preX
297  if (!evtMC.isValid()) {
298  edm::LogVerbatim("OutputInfo") << "no HepMCProduct found";
299  }
300 
301  // MC particle with highest pt is taken as a direction reference
302  double maxPt = -99999.;
303  int npart = 0;
304 
305  const HepMC::GenEvent *myGenEvent = evtMC->GetEvent();
306  for (HepMC::GenEvent::particle_const_iterator p = myGenEvent->particles_begin(); p != myGenEvent->particles_end();
307  ++p) {
308  double phip = (*p)->momentum().phi();
309  double etap = (*p)->momentum().eta();
310  double pt = (*p)->momentum().perp();
311  if (pt > maxPt) {
312  npart++;
313  maxPt = pt;
314  phi_MC = phip;
315  eta_MC = etap;
316  }
317  }
318 
319  double partR = 0.3;
320 
321  // Hcal SimHits
322 
323  // Approximate calibration constants
324  const float calib_HB = 120.;
325  const float calib_HE = 190.;
326  const float calib_HF1 = hf1_; // 1.0/0.383;
327  const float calib_HF2 = hf2_; // 1.0/0.368;
328 
330  ev.getByToken(tok_hcal_, hcalHits);
331  const auto SimHitResult = hcalHits.product();
332 
333  float eta_diff;
334  float etaMax = 9999;
335  int ietaMax = 0;
336 
337  double HcalCone = 0;
338 
340 
341  for (std::vector<PCaloHit>::const_iterator SimHits = SimHitResult->begin(); SimHits != SimHitResult->end();
342  ++SimHits) {
343  HcalDetId cell;
344  if (testNumber_)
345  cell = HcalHitRelabeller::relabel(SimHits->id(), hcons_);
346  else
347  cell = HcalDetId(SimHits->id());
348 
349  auto cellGeometry = geometry_->getSubdetectorGeometry(cell)->getGeometry(cell);
350  double etaS = cellGeometry->getPosition().eta();
351  double phiS = cellGeometry->getPosition().phi();
352  double en = SimHits->energy();
353 
354  int sub = cell.subdet();
355  int depth = cell.depth();
356  double ieta = cell.ieta();
357 
358  // Energy in Cone
359  double r = dR(eta_MC, phi_MC, etaS, phiS);
360 
361  if (r < partR) {
362  eta_diff = std::abs(eta_MC - etaS);
363  if (eta_diff < etaMax) {
364  etaMax = eta_diff;
365  ietaMax = cell.ieta();
366  }
367  // Approximation of calibration
368  if (sub == 1)
369  HcalCone += en * calib_HB;
370  else if (sub == 2)
371  HcalCone += en * calib_HE;
372  else if (sub == 4 && (depth == 1 || depth == 3))
373  HcalCone += en * calib_HF1;
374  else if (sub == 4 && (depth == 2 || depth == 4))
375  HcalCone += en * calib_HF2;
376  }
377 
378  if (auxPlots_) {
379  // HB
380  if (sub == 1) {
381  meSimHitsEnergyHB[0]->Fill(en);
382  meSimHitsEnergyHB[depth]->Fill(en);
383 
384  emean_vs_ieta_HB[0]->Fill(double(ieta), en);
385  emean_vs_ieta_HB[depth]->Fill(double(ieta), en);
386 
387  occupancy_vs_ieta_HB[0]->Fill(double(ieta));
388  occupancy_vs_ieta_HB[depth]->Fill(double(ieta));
389  }
390  // HE
391  if (sub == 2 && maxDepthHE_ > 0) {
392  meSimHitsEnergyHE[0]->Fill(en);
393  meSimHitsEnergyHE[depth]->Fill(en);
394 
395  emean_vs_ieta_HE[0]->Fill(double(ieta), en);
396  emean_vs_ieta_HE[depth]->Fill(double(ieta), en);
397 
398  occupancy_vs_ieta_HE[0]->Fill(double(ieta));
399  occupancy_vs_ieta_HE[depth]->Fill(double(ieta));
400  }
401  // HO
402  if (sub == 3) {
403  meSimHitsEnergyHO->Fill(en);
404 
405  emean_vs_ieta_HO->Fill(double(ieta), en);
406 
407  occupancy_vs_ieta_HO->Fill(double(ieta));
408  }
409  // HF
410  if (sub == 4) {
411  meSimHitsEnergyHF[0]->Fill(en);
412  meSimHitsEnergyHF[depth]->Fill(en);
413 
414  emean_vs_ieta_HF[0]->Fill(double(ieta), en);
415  emean_vs_ieta_HF[depth]->Fill(double(ieta), en);
416 
417  occupancy_vs_ieta_HF[0]->Fill(double(ieta));
418  occupancy_vs_ieta_HF[depth]->Fill(double(ieta));
419  }
420 
421  } // auxPlots_
422 
423  } // Loop over SimHits
424 
425  // Ecal EB SimHits
426  double EcalCone = 0;
427 
428  if (!ebHits_.empty()) {
430  ev.getByToken(tok_ecalEB_, ecalEBHits);
431  const auto SimHitResultEB = ecalEBHits.product();
432 
433  for (std::vector<PCaloHit>::const_iterator SimHits = SimHitResultEB->begin(); SimHits != SimHitResultEB->end();
434  ++SimHits) {
435  EBDetId EBid = EBDetId(SimHits->id());
436 
437  auto cellGeometry = geometry_->getSubdetectorGeometry(EBid)->getGeometry(EBid);
438  double etaS = cellGeometry->getPosition().eta();
439  double phiS = cellGeometry->getPosition().phi();
440  double en = SimHits->energy();
441 
442  double r = dR(eta_MC, phi_MC, etaS, phiS);
443 
444  if (r < partR)
445  EcalCone += en;
446  }
447  } // ebHits_
448 
449  // Ecal EE SimHits
450  if (!eeHits_.empty()) {
452  ev.getByToken(tok_ecalEE_, ecalEEHits);
453  const auto SimHitResultEE = ecalEEHits.product();
454 
455  for (std::vector<PCaloHit>::const_iterator SimHits = SimHitResultEE->begin(); SimHits != SimHitResultEE->end();
456  ++SimHits) {
457  EEDetId EEid = EEDetId(SimHits->id());
458 
459  auto cellGeometry = geometry_->getSubdetectorGeometry(EEid)->getGeometry(EEid);
460  double etaS = cellGeometry->getPosition().eta();
461  double phiS = cellGeometry->getPosition().phi();
462  double en = SimHits->energy();
463 
464  double r = dR(eta_MC, phi_MC, etaS, phiS);
465 
466  if (r < partR)
467  EcalCone += en;
468  }
469  } // eeHits_
470 
471  if (ietaMax != 0) { // If ietaMax == 0, there were no good HCAL SimHits
472  meEnConeEtaProfile->Fill(double(ietaMax), HcalCone);
473  meEnConeEtaProfile_E->Fill(double(ietaMax), EcalCone);
474  meEnConeEtaProfile_EH->Fill(double(ietaMax), HcalCone + EcalCone);
475  }
476 
477  nevtot++;
478 }
MonitorElement * meEnConeEtaProfile
Log< level::Info, true > LogVerbatim
const CaloSubdetectorGeometry * getSubdetectorGeometry(const DetId &id) const
access the subdetector geometry for the given subdetector directly
Definition: CaloGeometry.cc:34
const edm::EventSetup & c
double dR(double eta1, double phi1, double eta2, double phi2)
std::vector< MonitorElement * > emean_vs_ieta_HF
std::vector< MonitorElement * > occupancy_vs_ieta_HF
const CaloGeometry * geometry_
std::vector< MonitorElement * > meSimHitsEnergyHE
MonitorElement * meSimHitsEnergyHO
double npart
Definition: HydjetWrapper.h:46
bool ev
edm::EDGetTokenT< edm::PCaloHitContainer > tok_ecalEB_
void Fill(long long x)
MonitorElement * meEnConeEtaProfile_E
bool getData(T &iHolder) const
Definition: EventSetup.h:128
constexpr HcalSubdetector subdet() const
get the subdetector
Definition: HcalDetId.h:138
std::vector< MonitorElement * > emean_vs_ieta_HB
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > tok_geom_
std::vector< MonitorElement * > meSimHitsEnergyHB
edm::EDGetTokenT< edm::PCaloHitContainer > tok_ecalEE_
MonitorElement * emean_vs_ieta_HO
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
std::vector< MonitorElement * > emean_vs_ieta_HE
edm::EDGetTokenT< edm::PCaloHitContainer > tok_hcal_
bool isValid() const
Definition: HandleBase.h:70
std::vector< MonitorElement * > occupancy_vs_ieta_HE
const HcalDDDRecConstants * hcons_
T const * product() const
Definition: Handle.h:70
virtual std::shared_ptr< const CaloCellGeometry > getGeometry(const DetId &id) const
Get the cell geometry of a given detector id. Should return false if not found.
MonitorElement * meEnConeEtaProfile_EH
MonitorElement * occupancy_vs_ieta_HO
std::vector< MonitorElement * > occupancy_vs_ieta_HB
DetId relabel(const uint32_t testId) const
edm::EDGetTokenT< edm::HepMCProduct > tok_evt_
tuple etaMax
Definition: Puppi_cff.py:46
std::vector< MonitorElement * > meSimHitsEnergyHF
void HcalSimHitsValidation::bookHistograms ( DQMStore::IBooker ib,
edm::Run const &  run,
edm::EventSetup const &  es 
)
overridevirtual

Implements DQMOneEDAnalyzer<>.

Definition at line 38 of file HcalSimHitsValidation.cc.

References auxPlots_, dqm::implementation::IBooker::book1D(), dqm::implementation::IBooker::bookProfile(), HLT_FULL_cff::depth, emean_vs_ieta_HB, emean_vs_ieta_HE, emean_vs_ieta_HF, emean_vs_ieta_HO, edm::EventSetup::getData(), HcalDDDRecConstants::getEtaRange(), HcalDDDRecConstants::getMaxDepth(), HcalDDDRecConstants::getNPhi(), hcons_, timingPdfMaker::histo, SiStripPI::max, maxDepthHB_, maxDepthHE_, maxDepthHF_, maxDepthHO_, meEnConeEtaProfile, meEnConeEtaProfile_E, meEnConeEtaProfile_EH, meSimHitsEnergyHB, meSimHitsEnergyHE, meSimHitsEnergyHF, meSimHitsEnergyHO, Nhb, Nhe, Nhf, Nho, occupancy_vs_ieta_HB, occupancy_vs_ieta_HE, occupancy_vs_ieta_HF, occupancy_vs_ieta_HO, dqm::implementation::NavigatorBase::setCurrentFolder(), and tok_HRNDC_.

38  {
39  hcons_ = &es.getData(tok_HRNDC_);
44 
45  // Get Phi segmentation from geometry, use the max phi number so that all iphi
46  // values are included.
47 
48  int NphiMax = hcons_->getNPhi(0);
49 
50  NphiMax = (hcons_->getNPhi(1) > NphiMax ? hcons_->getNPhi(1) : NphiMax);
51  NphiMax = (hcons_->getNPhi(2) > NphiMax ? hcons_->getNPhi(2) : NphiMax);
52  NphiMax = (hcons_->getNPhi(3) > NphiMax ? hcons_->getNPhi(3) : NphiMax);
53 
54  // Center the iphi bins on the integers
55  // float iphi_min = 0.5;
56  // float iphi_max = NphiMax + 0.5;
57  // int iphi_bins = (int) (iphi_max - iphi_min);
58 
59  int iEtaHBMax = hcons_->getEtaRange(0).second;
60  int iEtaHEMax = std::max(hcons_->getEtaRange(1).second, 1);
61  int iEtaHFMax = hcons_->getEtaRange(2).second;
62  int iEtaHOMax = hcons_->getEtaRange(3).second;
63 
64  // Retain classic behavior, all plots have same ieta range.
65  // Comment out code to allow each subdetector to have its on range
66 
67  int iEtaMax = (iEtaHBMax > iEtaHEMax ? iEtaHBMax : iEtaHEMax);
68  iEtaMax = (iEtaMax > iEtaHFMax ? iEtaMax : iEtaHFMax);
69  iEtaMax = (iEtaMax > iEtaHOMax ? iEtaMax : iEtaHOMax);
70 
71  iEtaHBMax = iEtaMax;
72  iEtaHEMax = iEtaMax;
73  iEtaHFMax = iEtaMax;
74  iEtaHOMax = iEtaMax;
75 
76  // Give an empty bin around the subdet ieta range to make it clear that all
77  // ieta rings have been included
78  float ieta_min_HB = -iEtaHBMax - 1.5;
79  float ieta_max_HB = iEtaHBMax + 1.5;
80  int ieta_bins_HB = (int)(ieta_max_HB - ieta_min_HB);
81 
82  float ieta_min_HE = -iEtaHEMax - 1.5;
83  float ieta_max_HE = iEtaHEMax + 1.5;
84  int ieta_bins_HE = (int)(ieta_max_HE - ieta_min_HE);
85 
86  float ieta_min_HF = -iEtaHFMax - 1.5;
87  float ieta_max_HF = iEtaHFMax + 1.5;
88  int ieta_bins_HF = (int)(ieta_max_HF - ieta_min_HF);
89 
90  float ieta_min_HO = -iEtaHOMax - 1.5;
91  float ieta_max_HO = iEtaHOMax + 1.5;
92  int ieta_bins_HO = (int)(ieta_max_HO - ieta_min_HO);
93 
94  Char_t histo[200];
95 
96  ib.setCurrentFolder("HcalHitsV/HcalSimHitTask");
97 
98  if (auxPlots_) {
99  // General counters
100  for (int depth = 0; depth <= maxDepthHB_; depth++) {
101  if (depth == 0) {
102  sprintf(histo, "N_HB");
103  } else {
104  sprintf(histo, "N_HB%d", depth);
105  }
106 
107  Nhb.push_back(ib.book1D(histo, histo, 2600, 0., 2600.));
108  }
109  for (int depth = 0; depth <= maxDepthHE_; depth++) {
110  if (depth == 0) {
111  sprintf(histo, "N_HE");
112  } else {
113  sprintf(histo, "N_HE%d", depth);
114  }
115 
116  Nhe.push_back(ib.book1D(histo, histo, 2600, 0., 2600.));
117  }
118 
119  sprintf(histo, "N_HO");
120  Nho = ib.book1D(histo, histo, 2200, 0., 2200.);
121 
122  for (int depth = 0; depth <= maxDepthHF_; depth++) {
123  if (depth == 0) {
124  sprintf(histo, "N_HF");
125  } else {
126  sprintf(histo, "N_HF%d", depth);
127  }
128 
129  Nhf.push_back(ib.book1D(histo, histo, 1800, 0., 1800.));
130  }
131 
132  // Mean energy vs iEta TProfiles
133  for (int depth = 0; depth <= maxDepthHB_; depth++) {
134  if (depth == 0) {
135  sprintf(histo, "emean_vs_ieta_HB");
136  } else {
137  sprintf(histo, "emean_vs_ieta_HB%d", depth);
138  }
139 
140  emean_vs_ieta_HB.push_back(
141  ib.bookProfile(histo, histo, ieta_bins_HB, ieta_min_HB, ieta_max_HB, -10., 2000., " "));
142  }
143  for (int depth = 0; depth <= maxDepthHE_; depth++) {
144  if (depth == 0) {
145  sprintf(histo, "emean_vs_ieta_HE");
146  } else {
147  sprintf(histo, "emean_vs_ieta_HE%d", depth);
148  }
149 
150  emean_vs_ieta_HE.push_back(
151  ib.bookProfile(histo, histo, ieta_bins_HE, ieta_min_HE, ieta_max_HE, -10., 2000., " "));
152  }
153 
154  sprintf(histo, "emean_vs_ieta_HO");
155  emean_vs_ieta_HO = ib.bookProfile(histo, histo, ieta_bins_HO, ieta_min_HO, ieta_max_HO, -10., 2000., " ");
156 
157  for (int depth = 0; depth <= maxDepthHF_; depth++) {
158  if (depth == 0) {
159  sprintf(histo, "emean_vs_ieta_HF");
160  } else {
161  sprintf(histo, "emean_vs_ieta_HF%d", depth);
162  }
163 
164  emean_vs_ieta_HF.push_back(
165  ib.bookProfile(histo, histo, ieta_bins_HF, ieta_min_HF, ieta_max_HF, -10., 2000., " "));
166  }
167 
168  // Occupancy vs. iEta TH1Fs
169  for (int depth = 0; depth <= maxDepthHB_; depth++) {
170  if (depth == 0) {
171  sprintf(histo, "occupancy_vs_ieta_HB");
172  } else {
173  sprintf(histo, "occupancy_vs_ieta_HB%d", depth);
174  }
175 
176  occupancy_vs_ieta_HB.push_back(ib.book1D(histo, histo, ieta_bins_HB, ieta_min_HB, ieta_max_HB));
177  }
178  for (int depth = 0; depth <= maxDepthHE_; depth++) {
179  if (depth == 0) {
180  sprintf(histo, "occupancy_vs_ieta_HE");
181  } else {
182  sprintf(histo, "occupancy_vs_ieta_HE%d", depth);
183  }
184 
185  occupancy_vs_ieta_HE.push_back(ib.book1D(histo, histo, ieta_bins_HE, ieta_min_HE, ieta_max_HE));
186  }
187 
188  sprintf(histo, "occupancy_vs_ieta_HO");
189  occupancy_vs_ieta_HO = ib.book1D(histo, histo, ieta_bins_HO, ieta_min_HO, ieta_max_HO);
190 
191  for (int depth = 0; depth <= maxDepthHF_; depth++) {
192  if (depth == 0) {
193  sprintf(histo, "occupancy_vs_ieta_HF");
194  } else {
195  sprintf(histo, "occupancy_vs_ieta_HF%d", depth);
196  }
197 
198  occupancy_vs_ieta_HF.push_back(ib.book1D(histo, histo, ieta_bins_HF, ieta_min_HF, ieta_max_HF));
199  }
200 
201  // Energy spectra
202  for (int depth = 0; depth <= maxDepthHB_; depth++) {
203  if (depth == 0) {
204  sprintf(histo, "HcalSimHitTask_energy_of_simhits_HB");
205  } else {
206  sprintf(histo, "HcalSimHitTask_energy_of_simhits_HB%d", depth);
207  }
208 
209  meSimHitsEnergyHB.push_back(ib.book1D(histo, histo, 510, -0.1, 5.));
210  }
211  for (int depth = 0; depth <= maxDepthHE_; depth++) {
212  if (depth == 0) {
213  sprintf(histo, "HcalSimHitTask_energy_of_simhits_HE");
214  } else {
215  sprintf(histo, "HcalSimHitTask_energy_of_simhits_HE%d", depth);
216  }
217 
218  meSimHitsEnergyHE.push_back(ib.book1D(histo, histo, 510, -0.1, 5.));
219  }
220 
221  sprintf(histo, "HcalSimHitTask_energy_of_simhits_HO");
222  meSimHitsEnergyHO = ib.book1D(histo, histo, 510, -0.1, 5.);
223 
224  for (int depth = 0; depth <= maxDepthHF_; depth++) {
225  if (depth == 0) {
226  sprintf(histo, "HcalSimHitTask_energy_of_simhits_HF");
227  } else {
228  sprintf(histo, "HcalSimHitTask_energy_of_simhits_HF%d", depth);
229  }
230 
231  meSimHitsEnergyHF.push_back(ib.book1D(histo, histo, 1010, -5., 500.));
232  }
233 
234  } // auxPlots_
235 
236  // Energy in Cone
237  sprintf(histo, "HcalSimHitTask_En_simhits_cone_profile_vs_ieta_all_depths");
238  meEnConeEtaProfile = ib.bookProfile(histo, histo, ieta_bins_HF, ieta_min_HF, ieta_max_HF, -10., 200., " ");
239 
240  sprintf(histo, "HcalSimHitTask_En_simhits_cone_profile_vs_ieta_all_depths_E");
241  meEnConeEtaProfile_E = ib.bookProfile(histo, histo, ieta_bins_HF, ieta_min_HF, ieta_max_HF, -10., 200., " ");
242 
243  sprintf(histo, "HcalSimHitTask_En_simhits_cone_profile_vs_ieta_all_depths_EH");
244  meEnConeEtaProfile_EH = ib.bookProfile(histo, histo, ieta_bins_HF, ieta_min_HF, ieta_max_HF, -10., 200., " ");
245 }
MonitorElement * meEnConeEtaProfile
std::vector< MonitorElement * > emean_vs_ieta_HF
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
std::vector< MonitorElement * > occupancy_vs_ieta_HF
std::vector< MonitorElement * > Nhf
std::vector< MonitorElement * > meSimHitsEnergyHE
MonitorElement * meSimHitsEnergyHO
edm::ESGetToken< HcalDDDRecConstants, HcalRecNumberingRecord > tok_HRNDC_
MonitorElement * meEnConeEtaProfile_E
std::vector< MonitorElement * > emean_vs_ieta_HB
std::vector< MonitorElement * > meSimHitsEnergyHB
MonitorElement * bookProfile(TString const &name, TString const &title, int nchX, double lowX, double highX, int, double lowY, double highY, char const *option="s", FUNC onbooking=NOOP())
Definition: DQMStore.h:322
MonitorElement * emean_vs_ieta_HO
std::vector< MonitorElement * > emean_vs_ieta_HE
std::vector< MonitorElement * > occupancy_vs_ieta_HE
const HcalDDDRecConstants * hcons_
int getMaxDepth(const int &type) const
MonitorElement * meEnConeEtaProfile_EH
MonitorElement * occupancy_vs_ieta_HO
std::vector< MonitorElement * > occupancy_vs_ieta_HB
std::pair< int, int > getEtaRange(const int &i) const
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
std::vector< MonitorElement * > Nhb
std::vector< MonitorElement * > Nhe
int getNPhi(const int &type) const
std::vector< MonitorElement * > meSimHitsEnergyHF
double HcalSimHitsValidation::dPhiWsign ( double  phi1,
double  phi2 
)
private

Definition at line 513 of file HcalSimHitsValidation.cc.

References isotrackTrainRegressor::a1, isotrackTrainRegressor::a2, PI, and createJobs::tmp.

513  {
514  // clockwise phi2 w.r.t phi1 means "+" phi distance
515  // anti-clockwise phi2 w.r.t phi1 means "-" phi distance
516 
517  double PI = 3.1415926535898;
518  double a1 = phi1;
519  double a2 = phi2;
520  double tmp = a2 - a1;
521  if (a1 * a2 < 0.) {
522  if (a1 > 0.5 * PI)
523  tmp += 2. * PI;
524  if (a2 > 0.5 * PI)
525  tmp -= 2. * PI;
526  }
527  return tmp;
528 }
#define PI
Definition: QcdUeDQM.h:37
tmp
align.sh
Definition: createJobs.py:716
double HcalSimHitsValidation::dR ( double  eta1,
double  phi1,
double  eta2,
double  phi2 
)
private

Definition at line 480 of file HcalSimHitsValidation.cc.

References HLT_FULL_cff::eta1, PI, mathSSE::sqrt(), and createJobs::tmp.

Referenced by analyze().

480  {
481  double PI = 3.1415926535898;
482  double deltaphi = phi1 - phi2;
483  if (phi2 > phi1) {
484  deltaphi = phi2 - phi1;
485  }
486  if (deltaphi > PI) {
487  deltaphi = 2. * PI - deltaphi;
488  }
489  double deltaeta = eta2 - eta1;
490  double tmp = sqrt(deltaeta * deltaeta + deltaphi * deltaphi);
491  return tmp;
492 }
T sqrt(T t)
Definition: SSEVec.h:19
#define PI
Definition: QcdUeDQM.h:37
tmp
align.sh
Definition: createJobs.py:716
void HcalSimHitsValidation::endJob ( void  )
overridevirtual

Reimplemented from edm::one::EDProducerBase.

Definition at line 247 of file HcalSimHitsValidation.cc.

References funct::abs(), auxPlots_, HLT_FULL_cff::depth, dqm::impl::MonitorElement::getBinContent(), mps_fire::i, maxDepthHB_, maxDepthHE_, maxDepthHF_, nevtot, occupancy_vs_ieta_HB, occupancy_vs_ieta_HE, occupancy_vs_ieta_HF, occupancy_vs_ieta_HO, and dqm::impl::MonitorElement::setBinContent().

247  {
248  if (auxPlots_) {
249  for (int i = 1; i <= occupancy_vs_ieta_HB[0]->getNbinsX(); i++) {
250  int ieta = i - 43; // -41 -1, 1 41
251 
252  float phi_factor;
253 
254  if (std::abs(ieta) <= 20)
255  phi_factor = 72.;
256  else if (std::abs(ieta) < 40)
257  phi_factor = 36.;
258  else
259  phi_factor = 18.;
260 
261  float cnorm;
262 
263  // Occupancy vs. iEta TH1Fs
264  for (int depth = 0; depth <= maxDepthHB_; depth++) {
265  cnorm = occupancy_vs_ieta_HB[depth]->getBinContent(i) / (phi_factor * nevtot);
266  occupancy_vs_ieta_HB[depth]->setBinContent(i, cnorm);
267  }
268  for (int depth = 0; depth <= maxDepthHE_; depth++) {
269  cnorm = occupancy_vs_ieta_HE[depth]->getBinContent(i) / (phi_factor * nevtot);
270  occupancy_vs_ieta_HE[depth]->setBinContent(i, cnorm);
271  }
272 
273  cnorm = occupancy_vs_ieta_HO->getBinContent(i) / (phi_factor * nevtot);
275 
276  for (int depth = 0; depth <= maxDepthHF_; depth++) {
277  cnorm = occupancy_vs_ieta_HF[depth]->getBinContent(i) / (phi_factor * nevtot);
278  occupancy_vs_ieta_HF[depth]->setBinContent(i, cnorm);
279  }
280  }
281  }
282 
283  // let's see if this breaks anything
284  // if ( outputFile_.size() != 0 && dbe_ ) dbe_->save(outputFile_);
285 }
std::vector< MonitorElement * > occupancy_vs_ieta_HF
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
virtual double getBinContent(int binx) const
get content of bin (1-D)
std::vector< MonitorElement * > occupancy_vs_ieta_HE
virtual void setBinContent(int binx, double content)
set content of bin (1-D)
MonitorElement * occupancy_vs_ieta_HO
std::vector< MonitorElement * > occupancy_vs_ieta_HB
double HcalSimHitsValidation::phi12 ( double  phi1,
double  en1,
double  phi2,
double  en2 
)
private

Definition at line 494 of file HcalSimHitsValidation.cc.

References isotrackTrainRegressor::a1, isotrackTrainRegressor::a2, PI, and createJobs::tmp.

494  {
495  // weighted mean value of phi1 and phi2
496 
497  double tmp;
498  double PI = 3.1415926535898;
499  double a1 = phi1;
500  double a2 = phi2;
501 
502  if (a1 > 0.5 * PI && a2 < 0.)
503  a2 += 2 * PI;
504  if (a2 > 0.5 * PI && a1 < 0.)
505  a1 += 2 * PI;
506  tmp = (a1 * en1 + a2 * en2) / (en1 + en2);
507  if (tmp > PI)
508  tmp -= 2. * PI;
509 
510  return tmp;
511 }
#define PI
Definition: QcdUeDQM.h:37
tmp
align.sh
Definition: createJobs.py:716

Member Data Documentation

bool HcalSimHitsValidation::auxPlots_
private

Definition at line 73 of file HcalSimHitsValidation.h.

Referenced by analyze(), bookHistograms(), endJob(), and HcalSimHitsValidation().

std::string HcalSimHitsValidation::ebHits_
private

Definition at line 58 of file HcalSimHitsValidation.h.

Referenced by analyze(), and HcalSimHitsValidation().

std::string HcalSimHitsValidation::eeHits_
private

Definition at line 58 of file HcalSimHitsValidation.h.

Referenced by analyze(), and HcalSimHitsValidation().

std::vector<MonitorElement *> HcalSimHitsValidation::emean_vs_ieta_HB
private

Definition at line 86 of file HcalSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

std::vector<MonitorElement *> HcalSimHitsValidation::emean_vs_ieta_HE
private

Definition at line 87 of file HcalSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

std::vector<MonitorElement *> HcalSimHitsValidation::emean_vs_ieta_HF
private

Definition at line 89 of file HcalSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* HcalSimHitsValidation::emean_vs_ieta_HO
private

Definition at line 88 of file HcalSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

std::string HcalSimHitsValidation::g4Label_
private

Definition at line 58 of file HcalSimHitsValidation.h.

Referenced by HcalSimHitsValidation().

const CaloGeometry* HcalSimHitsValidation::geometry_
private

Definition at line 68 of file HcalSimHitsValidation.h.

Referenced by analyze().

std::string HcalSimHitsValidation::hcalHits_
private

Definition at line 58 of file HcalSimHitsValidation.h.

Referenced by HcalSimHitsValidation().

const HcalDDDRecConstants* HcalSimHitsValidation::hcons_
private

Definition at line 67 of file HcalSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

double HcalSimHitsValidation::hf1_
private

Definition at line 111 of file HcalSimHitsValidation.h.

Referenced by analyze(), and HcalSimHitsValidation().

double HcalSimHitsValidation::hf2_
private

Definition at line 112 of file HcalSimHitsValidation.h.

Referenced by analyze(), and HcalSimHitsValidation().

int HcalSimHitsValidation::maxDepthHB_
private

Definition at line 69 of file HcalSimHitsValidation.h.

Referenced by bookHistograms(), and endJob().

int HcalSimHitsValidation::maxDepthHE_
private

Definition at line 69 of file HcalSimHitsValidation.h.

Referenced by analyze(), bookHistograms(), and endJob().

int HcalSimHitsValidation::maxDepthHF_
private

Definition at line 70 of file HcalSimHitsValidation.h.

Referenced by bookHistograms(), and endJob().

int HcalSimHitsValidation::maxDepthHO_
private

Definition at line 70 of file HcalSimHitsValidation.h.

Referenced by bookHistograms().

MonitorElement* HcalSimHitsValidation::meEnConeEtaProfile
private

Definition at line 97 of file HcalSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* HcalSimHitsValidation::meEnConeEtaProfile_E
private

Definition at line 98 of file HcalSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* HcalSimHitsValidation::meEnConeEtaProfile_EH
private

Definition at line 99 of file HcalSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

std::vector<MonitorElement *> HcalSimHitsValidation::meSimHitsEnergyHB
private

Definition at line 102 of file HcalSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

std::vector<MonitorElement *> HcalSimHitsValidation::meSimHitsEnergyHE
private

Definition at line 103 of file HcalSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

std::vector<MonitorElement *> HcalSimHitsValidation::meSimHitsEnergyHF
private

Definition at line 105 of file HcalSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* HcalSimHitsValidation::meSimHitsEnergyHO
private

Definition at line 104 of file HcalSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

int HcalSimHitsValidation::nevtot
private

Definition at line 108 of file HcalSimHitsValidation.h.

Referenced by analyze(), endJob(), and HcalSimHitsValidation().

std::vector<MonitorElement *> HcalSimHitsValidation::Nhb
private

Definition at line 76 of file HcalSimHitsValidation.h.

Referenced by bookHistograms().

std::vector<MonitorElement *> HcalSimHitsValidation::Nhe
private

Definition at line 77 of file HcalSimHitsValidation.h.

Referenced by bookHistograms().

std::vector<MonitorElement *> HcalSimHitsValidation::Nhf
private

Definition at line 79 of file HcalSimHitsValidation.h.

Referenced by bookHistograms().

MonitorElement* HcalSimHitsValidation::Nho
private

Definition at line 78 of file HcalSimHitsValidation.h.

Referenced by bookHistograms().

std::vector<MonitorElement *> HcalSimHitsValidation::occupancy_vs_ieta_HB
private

Definition at line 91 of file HcalSimHitsValidation.h.

Referenced by analyze(), bookHistograms(), and endJob().

std::vector<MonitorElement *> HcalSimHitsValidation::occupancy_vs_ieta_HE
private

Definition at line 92 of file HcalSimHitsValidation.h.

Referenced by analyze(), bookHistograms(), and endJob().

std::vector<MonitorElement *> HcalSimHitsValidation::occupancy_vs_ieta_HF
private

Definition at line 94 of file HcalSimHitsValidation.h.

Referenced by analyze(), bookHistograms(), and endJob().

MonitorElement* HcalSimHitsValidation::occupancy_vs_ieta_HO
private

Definition at line 93 of file HcalSimHitsValidation.h.

Referenced by analyze(), bookHistograms(), and endJob().

std::string HcalSimHitsValidation::outputFile_
private

Definition at line 57 of file HcalSimHitsValidation.h.

Referenced by HcalSimHitsValidation().

bool HcalSimHitsValidation::testNumber_
private

Definition at line 72 of file HcalSimHitsValidation.h.

Referenced by analyze(), and HcalSimHitsValidation().

edm::EDGetTokenT<edm::PCaloHitContainer> HcalSimHitsValidation::tok_ecalEB_
private

Definition at line 62 of file HcalSimHitsValidation.h.

Referenced by analyze(), and HcalSimHitsValidation().

edm::EDGetTokenT<edm::PCaloHitContainer> HcalSimHitsValidation::tok_ecalEE_
private

Definition at line 63 of file HcalSimHitsValidation.h.

Referenced by analyze(), and HcalSimHitsValidation().

edm::EDGetTokenT<edm::HepMCProduct> HcalSimHitsValidation::tok_evt_
private

Definition at line 60 of file HcalSimHitsValidation.h.

Referenced by analyze(), and HcalSimHitsValidation().

edm::ESGetToken<CaloGeometry, CaloGeometryRecord> HcalSimHitsValidation::tok_geom_
private

Definition at line 65 of file HcalSimHitsValidation.h.

Referenced by analyze(), and HcalSimHitsValidation().

edm::EDGetTokenT<edm::PCaloHitContainer> HcalSimHitsValidation::tok_hcal_
private

Definition at line 61 of file HcalSimHitsValidation.h.

Referenced by analyze(), and HcalSimHitsValidation().

edm::ESGetToken<HcalDDDRecConstants, HcalRecNumberingRecord> HcalSimHitsValidation::tok_HRNDC_
private

Definition at line 64 of file HcalSimHitsValidation.h.

Referenced by bookHistograms(), and HcalSimHitsValidation().