CMS 3D CMS Logo

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=default
 
- 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
 
std::vector< bool > const & recordProvenanceList () 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)
 
TypeLabelList const & typeLabelList () const
 used by the fwk to register the list of products of this module More...
 
 ~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

const bool auxPlots_
 
const std::string ebHits_
 
const 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
 
const std::string g4Label_
 
const CaloGeometrygeometry_
 
const std::string hcalHits_
 
const HcalDDDRecConstantshcons_
 
const double hf1_
 
const 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
 
const std::string outputFile_
 
const bool testNumber_
 
const edm::EDGetTokenT< edm::PCaloHitContainertok_ecalEB_
 
const edm::EDGetTokenT< edm::PCaloHitContainertok_ecalEE_
 
const edm::EDGetTokenT< edm::HepMCProducttok_evt_
 
const edm::ESGetToken< CaloGeometry, CaloGeometryRecordtok_geom_
 
const edm::EDGetTokenT< edm::PCaloHitContainertok_hcal_
 
const edm::ESGetToken< HcalDDDRecConstants, HcalRecNumberingRecordtok_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
template<typename T >
using BranchAliasSetterT = ProductRegistryHelper::BranchAliasSetterT< T >
 
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
template<Transition Tr = Transition::Event>
auto produces (std::string instanceName) noexcept
 declare what type of product will make and with which optional label More...
 
template<Transition B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<BranchType B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces ()
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces ()
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces ()
 
template<Transition Tr = Transition::Event>
auto produces () noexcept
 
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< Bconsumes (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 ()
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag)
 
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::HcalSimHitsValidation ( edm::ParameterSet const &  conf)

Definition at line 4 of file HcalSimHitsValidation.cc.

References nevtot, and outputFile_.

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

◆ ~HcalSimHitsValidation()

HcalSimHitsValidation::~HcalSimHitsValidation ( )
overridedefault

Member Function Documentation

◆ analyze()

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

Reimplemented from DQMOneEDAnalyzer<>.

Definition at line 284 of file HcalSimHitsValidation.cc.

References funct::abs(), auxPlots_, HltBtagPostValidation_cff::c, LEDCalibrationChannels::depth, dR(), ebHits_, eeHits_, emean_vs_ieta_HB, emean_vs_ieta_HE, emean_vs_ieta_HF, emean_vs_ieta_HO, ALCARECOTkAlBeamHalo_cff::etaMax, makeMEIFBenchmarkPlots::ev, dqm::impl::MonitorElement::Fill(), geometry_, edm::HepMCProduct::GetEvent(), CaloSubdetectorGeometry::getGeometry(), CaloGeometry::getSubdetectorGeometry(), hcons_, hf1_, hf2_, LEDCalibrationChannels::ieta, edm::HandleBase::isValid(), maxDepthHE_, PV_cfg::maxPt, 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_.

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

◆ bookHistograms()

void HcalSimHitsValidation::bookHistograms ( DQMStore::IBooker ib,
edm::Run const &  run,
edm::EventSetup const &  es 
)
overridevirtual

Implements DQMOneEDAnalyzer<>.

Definition at line 35 of file HcalSimHitsValidation.cc.

References auxPlots_, LEDCalibrationChannels::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, cuy::ib, hcalTTPDigis_cfi::iEtaMax, createfilelist::int, 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, and tok_HRNDC_.

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

◆ dPhiWsign()

double HcalSimHitsValidation::dPhiWsign ( double  phi1,
double  phi2 
)
private

Definition at line 504 of file HcalSimHitsValidation.cc.

References testProducerWithPsetDescEmpty_cfi::a2, PI, and createJobs::tmp.

504  {
505  // clockwise phi2 w.r.t phi1 means "+" phi distance
506  // anti-clockwise phi2 w.r.t phi1 means "-" phi distance
507 
508  double PI = 3.1415926535898;
509  double a1 = phi1;
510  double a2 = phi2;
511  double tmp = a2 - a1;
512  if (a1 * a2 < 0.) {
513  if (a1 > 0.5 * PI)
514  tmp += 2. * PI;
515  if (a2 > 0.5 * PI)
516  tmp -= 2. * PI;
517  }
518  return tmp;
519 }
#define PI
Definition: QcdUeDQM.h:37
tmp
align.sh
Definition: createJobs.py:716

◆ dR()

double HcalSimHitsValidation::dR ( double  eta1,
double  phi1,
double  eta2,
double  phi2 
)
private

Definition at line 471 of file HcalSimHitsValidation.cc.

References HLT_2023v12_cff::eta1, HLT_2023v12_cff::eta2, mathSSE::sqrt(), and createJobs::tmp.

Referenced by analyze().

471  {
472  double PI = 3.1415926535898;
473  double deltaphi = phi1 - phi2;
474  if (phi2 > phi1) {
475  deltaphi = phi2 - phi1;
476  }
477  if (deltaphi > PI) {
478  deltaphi = 2. * PI - deltaphi;
479  }
480  double deltaeta = eta2 - eta1;
481  double tmp = sqrt(deltaeta * deltaeta + deltaphi * deltaphi);
482  return tmp;
483 }
T sqrt(T t)
Definition: SSEVec.h:19
tmp
align.sh
Definition: createJobs.py:716

◆ endJob()

void HcalSimHitsValidation::endJob ( void  )
overridevirtual

Reimplemented from edm::one::EDProducerBase.

Definition at line 244 of file HcalSimHitsValidation.cc.

References funct::abs(), auxPlots_, LEDCalibrationChannels::depth, dqm::impl::MonitorElement::getBinContent(), mps_fire::i, LEDCalibrationChannels::ieta, 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().

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

◆ phi12()

double HcalSimHitsValidation::phi12 ( double  phi1,
double  en1,
double  phi2,
double  en2 
)
private

Definition at line 485 of file HcalSimHitsValidation.cc.

References testProducerWithPsetDescEmpty_cfi::a2, PI, and createJobs::tmp.

485  {
486  // weighted mean value of phi1 and phi2
487 
488  double tmp;
489  double PI = 3.1415926535898;
490  double a1 = phi1;
491  double a2 = phi2;
492 
493  if (a1 > 0.5 * PI && a2 < 0.)
494  a2 += 2 * PI;
495  if (a2 > 0.5 * PI && a1 < 0.)
496  a1 += 2 * PI;
497  tmp = (a1 * en1 + a2 * en2) / (en1 + en2);
498  if (tmp > PI)
499  tmp -= 2. * PI;
500 
501  return tmp;
502 }
#define PI
Definition: QcdUeDQM.h:37
tmp
align.sh
Definition: createJobs.py:716

Member Data Documentation

◆ auxPlots_

const bool HcalSimHitsValidation::auxPlots_
private

Definition at line 65 of file HcalSimHitsValidation.h.

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

◆ ebHits_

const std::string HcalSimHitsValidation::ebHits_
private

Definition at line 57 of file HcalSimHitsValidation.h.

Referenced by analyze().

◆ eeHits_

const std::string HcalSimHitsValidation::eeHits_
private

Definition at line 57 of file HcalSimHitsValidation.h.

Referenced by analyze().

◆ emean_vs_ieta_HB

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

Definition at line 90 of file HcalSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ emean_vs_ieta_HE

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

Definition at line 91 of file HcalSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ emean_vs_ieta_HF

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

Definition at line 93 of file HcalSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ emean_vs_ieta_HO

MonitorElement* HcalSimHitsValidation::emean_vs_ieta_HO
private

Definition at line 92 of file HcalSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ g4Label_

const std::string HcalSimHitsValidation::g4Label_
private

Definition at line 57 of file HcalSimHitsValidation.h.

◆ geometry_

const CaloGeometry* HcalSimHitsValidation::geometry_
private

Definition at line 75 of file HcalSimHitsValidation.h.

Referenced by analyze().

◆ hcalHits_

const std::string HcalSimHitsValidation::hcalHits_
private

Definition at line 57 of file HcalSimHitsValidation.h.

◆ hcons_

const HcalDDDRecConstants* HcalSimHitsValidation::hcons_
private

Definition at line 74 of file HcalSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ hf1_

const double HcalSimHitsValidation::hf1_
private

Definition at line 60 of file HcalSimHitsValidation.h.

Referenced by analyze().

◆ hf2_

const double HcalSimHitsValidation::hf2_
private

Definition at line 61 of file HcalSimHitsValidation.h.

Referenced by analyze().

◆ maxDepthHB_

int HcalSimHitsValidation::maxDepthHB_
private

Definition at line 76 of file HcalSimHitsValidation.h.

Referenced by bookHistograms(), and endJob().

◆ maxDepthHE_

int HcalSimHitsValidation::maxDepthHE_
private

Definition at line 76 of file HcalSimHitsValidation.h.

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

◆ maxDepthHF_

int HcalSimHitsValidation::maxDepthHF_
private

Definition at line 77 of file HcalSimHitsValidation.h.

Referenced by bookHistograms(), and endJob().

◆ maxDepthHO_

int HcalSimHitsValidation::maxDepthHO_
private

Definition at line 77 of file HcalSimHitsValidation.h.

Referenced by bookHistograms().

◆ meEnConeEtaProfile

MonitorElement* HcalSimHitsValidation::meEnConeEtaProfile
private

Definition at line 101 of file HcalSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meEnConeEtaProfile_E

MonitorElement* HcalSimHitsValidation::meEnConeEtaProfile_E
private

Definition at line 102 of file HcalSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meEnConeEtaProfile_EH

MonitorElement* HcalSimHitsValidation::meEnConeEtaProfile_EH
private

Definition at line 103 of file HcalSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meSimHitsEnergyHB

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

Definition at line 106 of file HcalSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meSimHitsEnergyHE

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

Definition at line 107 of file HcalSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meSimHitsEnergyHF

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

Definition at line 109 of file HcalSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meSimHitsEnergyHO

MonitorElement* HcalSimHitsValidation::meSimHitsEnergyHO
private

Definition at line 108 of file HcalSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ nevtot

int HcalSimHitsValidation::nevtot
private

Definition at line 112 of file HcalSimHitsValidation.h.

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

◆ Nhb

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

Definition at line 80 of file HcalSimHitsValidation.h.

Referenced by bookHistograms().

◆ Nhe

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

Definition at line 81 of file HcalSimHitsValidation.h.

Referenced by bookHistograms().

◆ Nhf

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

Definition at line 83 of file HcalSimHitsValidation.h.

Referenced by bookHistograms().

◆ Nho

MonitorElement* HcalSimHitsValidation::Nho
private

Definition at line 82 of file HcalSimHitsValidation.h.

Referenced by bookHistograms().

◆ occupancy_vs_ieta_HB

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

Definition at line 95 of file HcalSimHitsValidation.h.

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

◆ occupancy_vs_ieta_HE

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

Definition at line 96 of file HcalSimHitsValidation.h.

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

◆ occupancy_vs_ieta_HF

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

Definition at line 98 of file HcalSimHitsValidation.h.

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

◆ occupancy_vs_ieta_HO

MonitorElement* HcalSimHitsValidation::occupancy_vs_ieta_HO
private

Definition at line 97 of file HcalSimHitsValidation.h.

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

◆ outputFile_

const std::string HcalSimHitsValidation::outputFile_
private

Definition at line 63 of file HcalSimHitsValidation.h.

Referenced by HcalSimHitsValidation().

◆ testNumber_

const bool HcalSimHitsValidation::testNumber_
private

Definition at line 64 of file HcalSimHitsValidation.h.

Referenced by analyze().

◆ tok_ecalEB_

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

Definition at line 69 of file HcalSimHitsValidation.h.

Referenced by analyze().

◆ tok_ecalEE_

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

Definition at line 70 of file HcalSimHitsValidation.h.

Referenced by analyze().

◆ tok_evt_

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

Definition at line 67 of file HcalSimHitsValidation.h.

Referenced by analyze().

◆ tok_geom_

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

Definition at line 72 of file HcalSimHitsValidation.h.

Referenced by analyze().

◆ tok_hcal_

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

Definition at line 68 of file HcalSimHitsValidation.h.

Referenced by analyze().

◆ tok_HRNDC_

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

Definition at line 71 of file HcalSimHitsValidation.h.

Referenced by bookHistograms().