CMS 3D CMS Logo

List of all members | Classes | Public Member Functions | Private Member Functions | Private Attributes
HcalDigisValidation Class Reference

#include <Validation/HcalDigis/src/HcalDigisValidation.cc>

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

Classes

struct  HistLim
 

Public Member Functions

void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
void dqmBeginRun (const edm::Run &run, const edm::EventSetup &c) override
 
 HcalDigisValidation (const edm::ParameterSet &)
 
 ~HcalDigisValidation () 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
 
 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
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 

Private Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void book1D (DQMStore::IBooker &ib, std::string name, const HistLim &limX)
 
void book1D (DQMStore::IBooker &ib, std::string name, int n, double min, double max)
 
void book2D (DQMStore::IBooker &ib, std::string name, const HistLim &limX, const HistLim &limY)
 
void booking (DQMStore::IBooker &ib, std::string subdetopt, int bnoise, int bmc)
 
void bookPf (DQMStore::IBooker &ib, std::string name, const HistLim &limX, const HistLim &limY)
 
void bookPf (DQMStore::IBooker &ib, std::string name, const HistLim &limX, const HistLim &limY, const char *option)
 
void fill1D (std::string name, double X, double weight=1)
 
void fill2D (std::string name, double X, double Y, double weight=1)
 
void fillPf (std::string name, double X, double Y)
 
MonitorElementmonitor (std::string name)
 
template<class Digi >
void reco (const edm::Event &iEvent, const edm::EventSetup &iSetup, const edm::EDGetTokenT< edm::SortedCollection< Digi > > &tok)
 
template<class dataFrameType >
void reco (const edm::Event &iEvent, const edm::EventSetup &iSetup, const edm::EDGetTokenT< HcalDataFrameContainer< dataFrameType > > &tok)
 
std::string str (int x)
 

Private Attributes

edm::ESHandle< HcalDbServiceconditions
 
edm::InputTag dataTPsTag_
 
std::string dirName_
 
edm::InputTag emulTPsTag_
 
edm::ESHandle< CaloGeometrygeometry
 
bool HBPhase1_
 
const HcalDDDRecConstantshcons
 
bool hep17_
 
bool HEPhase1_
 
edm::ESHandle< HcalTopologyhtopo
 
const HcalTopologyhtopology
 
edm::InputTag inputTag_
 
int maxDepth_ [5]
 
std::string mc_
 
std::string mode_
 
std::map< std::string, MonitorElement * > * msm_
 
int nChannels_ [5]
 
int nevent1
 
int nevent2
 
int nevent3
 
int nevent4
 
int nevtot
 
int noise_
 
std::string outputFile_
 
bool Plot_TP_ver_
 
edm::InputTag QIE10inputTag_
 
edm::InputTag QIE11inputTag_
 
bool skipDataTPs
 
std::string subdet_
 
bool testNumber_
 
edm::ESGetToken< HcalDbService, HcalDbRecordtok_Cond_
 
edm::EDGetTokenT< HcalTrigPrimDigiCollectiontok_dataTPs_
 
edm::ESGetToken< CaloTPGTranscoder, CaloTPGRecordtok_Decoder_
 
edm::EDGetTokenT< HcalTrigPrimDigiCollectiontok_emulTPs_
 
edm::ESGetToken< CaloGeometry, CaloGeometryRecordtok_Geom_
 
edm::EDGetTokenT< HBHEDigiCollectiontok_hbhe_
 
edm::EDGetTokenT< HFDigiCollectiontok_hf_
 
edm::EDGetTokenT< HODigiCollectiontok_ho_
 
edm::ESGetToken< HcalDDDRecConstants, HcalRecNumberingRecordtok_HRNDC_
 
edm::EDGetTokenT< edm::PCaloHitContainertok_mc_
 
edm::EDGetTokenT< QIE10DigiCollectiontok_qie10_hf_
 
edm::EDGetTokenT< QIE11DigiCollectiontok_qie11_hbhe_
 
edm::ESGetToken< HcalTopology, HcalRecNumberingRecordtok_Topo_
 
edm::ESGetToken< HcalTrigTowerGeometry, CaloGeometryRecordtok_TPGeom_
 
std::string zside_
 

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 >
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache 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 Member Functions inherited from DQMEDAnalyzer
uint64_t meId () const
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 
unsigned int streamId_
 

Detailed Description

Description: [one line class summary]

Implementation: [Notes on implementation]

Definition at line 56 of file HcalDigisValidation.h.

Constructor & Destructor Documentation

◆ HcalDigisValidation()

HcalDigisValidation::HcalDigisValidation ( const edm::ParameterSet iConfig)
explicit

Definition at line 23 of file HcalDigisValidation.cc.

23  {
24  subdet_ = iConfig.getUntrackedParameter<std::string>("subdetector", "all");
25  outputFile_ = iConfig.getUntrackedParameter<std::string>("outputFile", "");
26  // inputLabel_ = iConfig.getParameter<std::string > ("digiLabel");
27  inputTag_ = iConfig.getParameter<edm::InputTag>("digiTag");
28  QIE10inputTag_ = iConfig.getParameter<edm::InputTag>("QIE10digiTag");
29  QIE11inputTag_ = iConfig.getParameter<edm::InputTag>("QIE11digiTag");
30  emulTPsTag_ = iConfig.getParameter<edm::InputTag>("emulTPs");
31  dataTPsTag_ = iConfig.getParameter<edm::InputTag>("dataTPs");
32  mc_ = iConfig.getUntrackedParameter<std::string>("mc", "no");
33  mode_ = iConfig.getUntrackedParameter<std::string>("mode", "multi");
34  dirName_ = iConfig.getUntrackedParameter<std::string>("dirName", "HcalDigisV/HcalDigiTask");
35  testNumber_ = iConfig.getParameter<bool>("TestNumber");
36  hep17_ = iConfig.getParameter<bool>("hep17");
37  HEPhase1_ = iConfig.getParameter<bool>("HEPhase1");
38  HBPhase1_ = iConfig.getParameter<bool>("HBPhase1");
39  Plot_TP_ver_ = iConfig.getParameter<bool>("Plot_TP_ver");
40 
41  // register for data access
42  if (iConfig.exists("simHits")) {
43  tok_mc_ = consumes<edm::PCaloHitContainer>(iConfig.getUntrackedParameter<edm::InputTag>("simHits"));
44  }
45  tok_hbhe_ = consumes<HBHEDigiCollection>(inputTag_);
46  tok_ho_ = consumes<HODigiCollection>(inputTag_);
47  tok_hf_ = consumes<HFDigiCollection>(inputTag_);
48  tok_emulTPs_ = consumes<HcalTrigPrimDigiCollection>(emulTPsTag_);
49  if (dataTPsTag_ == edm::InputTag(""))
50  skipDataTPs = true;
51  else {
52  skipDataTPs = false;
53  tok_dataTPs_ = consumes<HcalTrigPrimDigiCollection>(dataTPsTag_);
54  }
55 
56  tok_qie10_hf_ = consumes<QIE10DigiCollection>(QIE10inputTag_);
57  tok_qie11_hbhe_ = consumes<QIE11DigiCollection>(QIE11inputTag_);
58 
59  tok_HRNDC_ = esConsumes<HcalDDDRecConstants, HcalRecNumberingRecord, edm::Transition::BeginRun>();
60  tok_Geom_ = esConsumes<CaloGeometry, CaloGeometryRecord, edm::Transition::BeginRun>();
61  tok_Decoder_ = esConsumes<CaloTPGTranscoder, CaloTPGRecord>();
62  tok_TPGeom_ = esConsumes<HcalTrigTowerGeometry, CaloGeometryRecord>();
63  tok_Topo_ = esConsumes<HcalTopology, HcalRecNumberingRecord>();
64  tok_Cond_ = esConsumes<HcalDbService, HcalDbRecord>();
65 
66  nevent1 = 0;
67  nevent2 = 0;
68  nevent3 = 0;
69  nevent4 = 0;
70  nevtot = 0;
71 
72  msm_ = new std::map<std::string, MonitorElement*>();
73 
74  if (!outputFile_.empty())
75  edm::LogInfo("OutputInfo") << " Hcal Digi Task histograms will be saved to '" << outputFile_.c_str() << "'";
76  else
77  edm::LogInfo("OutputInfo") << " Hcal Digi Task histograms will NOT be saved";
78 }

References dataTPsTag_, dirName_, emulTPsTag_, edm::ParameterSet::exists(), edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), HBPhase1_, hep17_, HEPhase1_, inputTag_, mc_, mode_, msm_, nevent1, nevent2, nevent3, nevent4, nevtot, outputFile_, Plot_TP_ver_, QIE10inputTag_, QIE11inputTag_, skipDataTPs, AlCaHLTBitMon_QueryRunRegistry::string, subdet_, testNumber_, tok_Cond_, tok_dataTPs_, tok_Decoder_, tok_emulTPs_, tok_Geom_, tok_hbhe_, tok_hf_, tok_ho_, tok_HRNDC_, tok_mc_, tok_qie10_hf_, tok_qie11_hbhe_, tok_Topo_, and tok_TPGeom_.

◆ ~HcalDigisValidation()

HcalDigisValidation::~HcalDigisValidation ( )
override

Definition at line 80 of file HcalDigisValidation.cc.

80 { delete msm_; }

References msm_.

Member Function Documentation

◆ analyze()

void HcalDigisValidation::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivatevirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 416 of file HcalDigisValidation.cc.

416  {
417  conditions = &iSetup.getData(tok_Cond_);
418 
419  //TP Code
420  const auto& decoder = &iSetup.getData(tok_Decoder_);
421  const auto& tp_geometry = &iSetup.getData(tok_TPGeom_);
422  htopo = &iSetup.getData(tok_Topo_);
423 
424  //Get all handles
426  iEvent.getByToken(tok_emulTPs_, emulTPs);
427 
429  if (!skipDataTPs)
430  iEvent.getByToken(tok_dataTPs_, dataTPs);
431  //iEvent.getByLabel("hcalDigis", dataTPs);
432 
433  //~TP Code
434 
435  if (subdet_ != "all") {
436  noise_ = 0;
437  if (subdet_ == "HB") {
438  reco<HBHEDataFrame>(iEvent, iSetup, tok_hbhe_);
439  reco<QIE11DataFrame>(iEvent, iSetup, tok_qie11_hbhe_);
440  }
441  if (subdet_ == "HE") {
442  reco<HBHEDataFrame>(iEvent, iSetup, tok_hbhe_);
443  reco<QIE11DataFrame>(iEvent, iSetup, tok_qie11_hbhe_);
444  }
445  if (subdet_ == "HO")
446  reco<HODataFrame>(iEvent, iSetup, tok_ho_);
447  if (subdet_ == "HF") {
448  reco<HFDataFrame>(iEvent, iSetup, tok_hf_);
449  reco<QIE10DataFrame>(iEvent, iSetup, tok_qie10_hf_);
450  }
451 
452  if (subdet_ == "noise") {
453  noise_ = 1;
454  subdet_ = "HB";
455  reco<HBHEDataFrame>(iEvent, iSetup, tok_hbhe_);
456  reco<QIE11DataFrame>(iEvent, iSetup, tok_qie11_hbhe_);
457  subdet_ = "HE";
458  reco<HBHEDataFrame>(iEvent, iSetup, tok_hbhe_);
459  reco<QIE11DataFrame>(iEvent, iSetup, tok_qie11_hbhe_);
460  subdet_ = "HO";
461  reco<HODataFrame>(iEvent, iSetup, tok_ho_);
462  subdet_ = "HF";
463  reco<HFDataFrame>(iEvent, iSetup, tok_hf_);
464  reco<QIE10DataFrame>(iEvent, iSetup, tok_qie10_hf_);
465  subdet_ = "noise";
466  }
467  } // all subdetectors
468  else {
469  noise_ = 0;
470 
471  subdet_ = "HB";
472  reco<HBHEDataFrame>(iEvent, iSetup, tok_hbhe_);
473  reco<QIE11DataFrame>(iEvent, iSetup, tok_qie11_hbhe_);
474  subdet_ = "HE";
475  reco<HBHEDataFrame>(iEvent, iSetup, tok_hbhe_);
476  reco<QIE11DataFrame>(iEvent, iSetup, tok_qie11_hbhe_);
477  subdet_ = "HO";
478  reco<HODataFrame>(iEvent, iSetup, tok_ho_);
479  subdet_ = "HF";
480  reco<HFDataFrame>(iEvent, iSetup, tok_hf_);
481  reco<QIE10DataFrame>(iEvent, iSetup, tok_qie10_hf_);
482  subdet_ = "all";
483  }
484 
485  fill1D("nevtot", 0);
486  nevtot++;
487 
488  //TP Code
489  //Counters
490  int c = 0, chb = 0, che = 0, chf = 0, cv0 = 0, cv1 = 0, chfv0 = 0, chfv1 = 0;
491 
492  if (skipDataTPs)
493  return;
494 
495  for (HcalTrigPrimDigiCollection::const_iterator itr = dataTPs->begin(); itr != dataTPs->end(); ++itr) {
496  int ieta = itr->id().ieta();
497  int iphi = itr->id().iphi();
498 
499  HcalSubdetector subdet = (HcalSubdetector)0;
500 
501  if (abs(ieta) <= 16)
503  else if (abs(ieta) < tp_geometry->firstHFTower(itr->id().version()))
505  else if (abs(ieta) <= 42)
507 
508  //Right now, the only case where version matters is in HF
509  //If the subdetector is not HF, set version to -1
510  int tpVersion = (subdet == HcalSubdetector::HcalForward ? itr->id().version() : -1);
511 
512  float en = decoder->hcaletValue(itr->id(), itr->t0());
513 
514  if (en < 0.00001)
515  continue;
516 
517  //Plot the variables
518  //Retain classic behavior (include all tps)
519  //Additional plots that only include HF 3x2 or HF 1x1
520 
521  //Classics
522  fill1D("HcalDigiTask_tp_et", en);
523  fill2D("HcalDigiTask_tp_et_ieta", ieta, en);
524  fill2D("HcalDigiTask_tp_ieta_iphi", ieta, iphi);
525  fillPf("HcalDigiTask_tp_ave_et_ieta", ieta, en);
526  fill1D("HcalDigiTask_tp_ntp_ieta", ieta);
527  fill1D("HcalDigiTask_tp_ntp_iphi", iphi);
528  if (en > 10.)
529  fill1D("HcalDigiTask_tp_ntp_10_ieta", ieta);
530 
531  //3x2 Trig Primitives (tpVersion == 0)
532  if ((subdet != HcalSubdetector::HcalForward || tpVersion == 0) && Plot_TP_ver_) {
533  fill1D("HcalDigiTask_tp_et_v0", en);
534  fill2D("HcalDigiTask_tp_et_ieta_v0", ieta, en);
535  fill2D("HcalDigiTask_tp_ieta_iphi_v0", ieta, iphi);
536  fillPf("HcalDigiTask_tp_ave_et_ieta_v0", ieta, en);
537  fill1D("HcalDigiTask_tp_ntp_ieta_v0", ieta);
538  fill1D("HcalDigiTask_tp_ntp_iphi_v0", iphi);
539  if (en > 10.)
540  fill1D("HcalDigiTask_tp_ntp_10_ieta_v0", ieta);
541  }
542 
543  //1x1 Trig Primitives (tpVersion == 1)
544  if ((subdet != HcalSubdetector::HcalForward || tpVersion == 1) && Plot_TP_ver_) {
545  fill1D("HcalDigiTask_tp_et_v1", en);
546  fill2D("HcalDigiTask_tp_et_ieta_v1", ieta, en);
547  fill2D("HcalDigiTask_tp_ieta_iphi_v1", ieta, iphi);
548  fillPf("HcalDigiTask_tp_ave_et_ieta_v1", ieta, en);
549  fill1D("HcalDigiTask_tp_ntp_ieta_v1", ieta);
550  fill1D("HcalDigiTask_tp_ntp_iphi_v1", iphi);
551  if (en > 10.)
552  fill1D("HcalDigiTask_tp_ntp_10_ieta_v1", ieta);
553  }
554 
555  ++c;
556  if (subdet == HcalSubdetector::HcalBarrel) {
557  fill1D("HcalDigiTask_tp_et_HB", en);
558  ++chb;
559  if (Plot_TP_ver_) {
560  ++cv0;
561  ++cv1;
562  }
563  }
564  if (subdet == HcalSubdetector::HcalEndcap) {
565  fill1D("HcalDigiTask_tp_et_HE", en);
566  ++che;
567  if (Plot_TP_ver_) {
568  ++cv0;
569  ++cv1;
570  }
571  }
572  if (subdet == HcalSubdetector::HcalForward) {
573  fill1D("HcalDigiTask_tp_et_HF", en);
574  ++chf;
575 
576  if (tpVersion == 0 && Plot_TP_ver_) {
577  fill1D("HcalDigiTask_tp_et_HF_v0", en);
578  ++chfv0;
579  ++cv0;
580  }
581 
582  if (tpVersion == 1 && Plot_TP_ver_) {
583  fill1D("HcalDigiTask_tp_et_HF_v1", en);
584  ++chfv1;
585  ++cv1;
586  }
587  }
588 
589  } //end data TP collection
590 
591  fill1D("HcalDigiTask_tp_ntp", c);
592  fill1D("HcalDigiTask_tp_ntp_HB", chb);
593  fill1D("HcalDigiTask_tp_ntp_HE", che);
594  fill1D("HcalDigiTask_tp_ntp_HF", chf);
595  if (Plot_TP_ver_) {
596  fill1D("HcalDigiTask_tp_ntp_v0", cv0);
597  fill1D("HcalDigiTask_tp_ntp_v1", cv1);
598  fill1D("HcalDigiTask_tp_ntp_HF_v0", chfv0);
599  fill1D("HcalDigiTask_tp_ntp_HF_v1", chfv1);
600  }
601 
602  //~TP Code
603 }

References funct::abs(), HltBtagPostValidation_cff::c, conditions, HcalDigisParam_cfi::dataTPs, HcalDigisParam_cfi::emulTPs, fill1D(), fill2D(), fillPf(), edm::EventSetup::getData(), HcalBarrel, HcalEndcap, HcalForward, htopo, LEDCalibrationChannels::ieta, iEvent, LEDCalibrationChannels::iphi, nevtot, noise_, Plot_TP_ver_, skipDataTPs, subdet_, tok_Cond_, tok_dataTPs_, tok_Decoder_, tok_emulTPs_, tok_hbhe_, tok_hf_, tok_ho_, tok_qie10_hf_, tok_qie11_hbhe_, tok_Topo_, and tok_TPGeom_.

◆ book1D() [1/2]

void HcalDigisValidation::book1D ( DQMStore::IBooker ib,
std::string  name,
const HistLim limX 
)
private

Definition at line 1302 of file HcalDigisValidation.cc.

1302  {
1303  if (!msm_->count(name))
1304  (*msm_)[name] = ib.book1D(name.c_str(), name.c_str(), limX.n, limX.min, limX.max);
1305 }

References cuy::ib, HcalDigisValidation::HistLim::max, HcalDigisValidation::HistLim::min, msm_, HcalDigisValidation::HistLim::n, and Skims_PA_cff::name.

◆ book1D() [2/2]

void HcalDigisValidation::book1D ( DQMStore::IBooker ib,
std::string  name,
int  n,
double  min,
double  max 
)
private

Definition at line 1297 of file HcalDigisValidation.cc.

1297  {
1298  if (!msm_->count(name))
1299  (*msm_)[name] = ib.book1D(name.c_str(), name.c_str(), n, min, max);
1300 }

References cuy::ib, SiStripPI::max, min(), msm_, dqmiodumpmetadata::n, and Skims_PA_cff::name.

Referenced by bookHistograms(), and booking().

◆ book2D()

void HcalDigisValidation::book2D ( DQMStore::IBooker ib,
std::string  name,
const HistLim limX,
const HistLim limY 
)
private

Definition at line 1311 of file HcalDigisValidation.cc.

1311  {
1312  if (!msm_->count(name))
1313  (*msm_)[name] = ib.book2D(name.c_str(), name.c_str(), limX.n, limX.min, limX.max, limY.n, limY.min, limY.max);
1314 }

References cuy::ib, HcalDigisValidation::HistLim::max, HcalDigisValidation::HistLim::min, msm_, HcalDigisValidation::HistLim::n, and Skims_PA_cff::name.

Referenced by bookHistograms(), and booking().

◆ bookHistograms()

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

Implements DQMEDAnalyzer.

Definition at line 110 of file HcalDigisValidation.cc.

110  {
111  ib.setCurrentFolder(dirName_);
112 
113  // book
114  book1D(ib, "nevtot", 1, 0, 1);
115  int bnoise = 0;
116  int bmc = 0;
117  if (subdet_ == "noise")
118  bnoise = 1;
119  if (mc_ == "yes")
120  bmc = 1;
121  if (subdet_ == "noise" || subdet_ == "all") {
122  booking(ib, "HB", bnoise, bmc);
123  booking(ib, "HO", bnoise, bmc);
124  booking(ib, "HF", bnoise, bmc);
125  booking(ib, "HE", bnoise, bmc);
126  } else {
127  booking(ib, subdet_, 0, bmc);
128  }
129 
130  if (skipDataTPs)
131  return;
132 
133  HistLim tp_hl_et(260, -10, 250);
134  HistLim tp_hl_ntp(640, -20, 3180);
135  HistLim tp_hl_ntp_sub(404, -20, 2000);
136  HistLim tp_hl_ieta(85, -42.5, 42.5);
137  HistLim tp_hl_iphi(74, -0.5, 73.5);
138 
139  book1D(ib, "HcalDigiTask_tp_et", tp_hl_et);
140  book1D(ib, "HcalDigiTask_tp_et_HB", tp_hl_et);
141  book1D(ib, "HcalDigiTask_tp_et_HE", tp_hl_et);
142  book1D(ib, "HcalDigiTask_tp_et_HF", tp_hl_et);
143  book1D(ib, "HcalDigiTask_tp_ntp", tp_hl_ntp);
144  book1D(ib, "HcalDigiTask_tp_ntp_HB", tp_hl_ntp_sub);
145  book1D(ib, "HcalDigiTask_tp_ntp_HE", tp_hl_ntp_sub);
146  book1D(ib, "HcalDigiTask_tp_ntp_HF", tp_hl_ntp_sub);
147  book1D(ib, "HcalDigiTask_tp_ntp_ieta", tp_hl_ieta);
148  book1D(ib, "HcalDigiTask_tp_ntp_iphi", tp_hl_iphi);
149  book1D(ib, "HcalDigiTask_tp_ntp_10_ieta", tp_hl_ieta);
150  book2D(ib, "HcalDigiTask_tp_et_ieta", tp_hl_ieta, tp_hl_et);
151  book2D(ib, "HcalDigiTask_tp_ieta_iphi", tp_hl_ieta, tp_hl_iphi);
152  bookPf(ib, "HcalDigiTask_tp_ave_et_ieta", tp_hl_ieta, tp_hl_et, " ");
153  if (Plot_TP_ver_) {
154  book1D(ib, "HcalDigiTask_tp_et_v0", tp_hl_et);
155  book1D(ib, "HcalDigiTask_tp_et_v1", tp_hl_et);
156  book1D(ib, "HcalDigiTask_tp_et_HF_v0", tp_hl_et);
157  book1D(ib, "HcalDigiTask_tp_et_HF_v1", tp_hl_et);
158  book1D(ib, "HcalDigiTask_tp_ntp_v0", tp_hl_ntp);
159  book1D(ib, "HcalDigiTask_tp_ntp_v1", tp_hl_ntp);
160  book1D(ib, "HcalDigiTask_tp_ntp_HF_v0", tp_hl_ntp_sub);
161  book1D(ib, "HcalDigiTask_tp_ntp_HF_v1", tp_hl_ntp_sub);
162  book1D(ib, "HcalDigiTask_tp_ntp_ieta_v0", tp_hl_ieta);
163  book1D(ib, "HcalDigiTask_tp_ntp_ieta_v1", tp_hl_ieta);
164  book1D(ib, "HcalDigiTask_tp_ntp_iphi_v0", tp_hl_iphi);
165  book1D(ib, "HcalDigiTask_tp_ntp_iphi_v1", tp_hl_iphi);
166  book1D(ib, "HcalDigiTask_tp_ntp_10_ieta_v0", tp_hl_ieta);
167  book1D(ib, "HcalDigiTask_tp_ntp_10_ieta_v1", tp_hl_ieta);
168  book2D(ib, "HcalDigiTask_tp_et_ieta_v0", tp_hl_ieta, tp_hl_et);
169  book2D(ib, "HcalDigiTask_tp_et_ieta_v1", tp_hl_ieta, tp_hl_et);
170  book2D(ib, "HcalDigiTask_tp_ieta_iphi_v0", tp_hl_ieta, tp_hl_iphi);
171  book2D(ib, "HcalDigiTask_tp_ieta_iphi_v1", tp_hl_ieta, tp_hl_iphi);
172  bookPf(ib, "HcalDigiTask_tp_ave_et_ieta_v0", tp_hl_ieta, tp_hl_et, " ");
173  bookPf(ib, "HcalDigiTask_tp_ave_et_ieta_v1", tp_hl_ieta, tp_hl_et, " ");
174  }
175 }

References book1D(), book2D(), booking(), bookPf(), dirName_, cuy::ib, mc_, Plot_TP_ver_, skipDataTPs, and subdet_.

◆ booking()

void HcalDigisValidation::booking ( DQMStore::IBooker ib,
std::string  subdetopt,
int  bnoise,
int  bmc 
)
private

Definition at line 177 of file HcalDigisValidation.cc.

177  {
178  // Adjust/Optimize binning (JR Dittmann, 16-JUL-2015)
179 
180  HistLim Ndigis(2600, 0., 2600.);
181  HistLim sime(200, 0., 1.0);
182 
183  HistLim digiAmp(360, -100., 7100.);
184  HistLim digiAmpWide(2410, -3000., 720000.); //300 fC binning
185  HistLim ratio(2000, -100., 3900.);
186  HistLim sumAmp(100, -500., 1500.);
187 
188  HistLim nbin(11, -0.5, 10.5);
189 
190  HistLim pedestal(80, -1.0, 15.);
191  HistLim pedestalfC(400, -10., 30.);
192 
193  HistLim frac(80, -0.20, 1.40);
194 
195  HistLim pedLim(80, 0., 8.);
196  HistLim pedWidthLim(100, 0., 2.);
197 
198  HistLim gainLim(120, 0., 0.6);
199  HistLim gainWidthLim(160, 0., 0.32);
200 
201  HistLim ietaLim(85, -42.5, 42.5);
202  HistLim iphiLim(74, -0.5, 73.5);
203 
204  HistLim depthLim(15, -0.5, 14.5);
205 
206  //...TDC
207  HistLim tdcLim(250, 0., 250.);
208  HistLim adcLim(256, 0., 256.);
209 
210  if (bsubdet == "HB") {
211  Ndigis = HistLim(((int)(nChannels_[1] / 100) + 1) * 100, 0., (float)((int)(nChannels_[1] / 100) + 1) * 100);
212  } else if (bsubdet == "HE") {
213  sime = HistLim(200, 0., 1.0);
214  Ndigis = HistLim(((int)(nChannels_[2] / 100) + 1) * 100, 0., (float)((int)(nChannels_[2] / 100) + 1) * 100);
215  } else if (bsubdet == "HF") {
216  sime = HistLim(100, 0., 100.);
217  pedLim = HistLim(100, 0., 20.);
218  pedWidthLim = HistLim(100, 0., 5.);
219  frac = HistLim(400, -4.00, 4.00);
220  Ndigis = HistLim(((int)(nChannels_[4] / 100) + 1) * 100, 0., (float)((int)(nChannels_[4] / 100) + 1) * 100);
221  } else if (bsubdet == "HO") {
222  sime = HistLim(200, 0., 1.0);
223  gainLim = HistLim(160, 0., 1.6);
224  Ndigis = HistLim(((int)(nChannels_[3] / 100) + 1) * 100, 0., (float)((int)(nChannels_[3] / 100) + 1) * 100);
225  }
226 
227  int isubdet = 0;
228  if (bsubdet == "HB")
229  isubdet = 1;
230  else if (bsubdet == "HE")
231  isubdet = 2;
232  else if (bsubdet == "HO")
233  isubdet = 3;
234  else if (bsubdet == "HF")
235  isubdet = 4;
236  else
237  edm::LogWarning("HcalDigisValidation") << "HcalDigisValidation Warning: not HB/HE/HF/HO " << bsubdet << std::endl;
238 
239  Char_t histo[100];
240  const char* sub = bsubdet.c_str();
241  if (bnoise == 0) {
242  // number of digis in each subdetector
243  sprintf(histo, "HcalDigiTask_Ndigis_%s", sub);
244  book1D(ib, histo, Ndigis);
245 
246  // maps of occupancies
247  for (int depth = 1; depth <= maxDepth_[isubdet]; depth++) {
248  sprintf(histo, "HcalDigiTask_ieta_iphi_occupancy_map_depth%d_%s", depth, sub);
249  book2D(ib, histo, ietaLim, iphiLim);
250  }
251 
252  //Depths
253  sprintf(histo, "HcalDigiTask_depths_%s", sub);
254  book1D(ib, histo, depthLim);
255 
256  // occupancies vs ieta
257  for (int depth = 1; depth <= maxDepth_[isubdet]; depth++) {
258  sprintf(histo, "HcalDigiTask_occupancy_vs_ieta_depth%d_%s", depth, sub);
259  book1D(ib, histo, ietaLim);
260  }
261 
262  // just 1D of all cells' amplitudes
263  sprintf(histo, "HcalDigiTask_sum_all_amplitudes_%s", sub);
264  if ((HBPhase1_ && bsubdet == "HB") || (HEPhase1_ && bsubdet == "HE"))
265  book1D(ib, histo, digiAmpWide);
266  else
267  book1D(ib, histo, digiAmp);
268 
269  sprintf(histo, "HcalDigiTask_number_of_amplitudes_above_10fC_%s", sub);
270  book1D(ib, histo, Ndigis);
271 
272  for (int depth = 1; depth <= maxDepth_[isubdet]; depth++) {
273  sprintf(histo, "HcalDigiTask_ADC0_adc_depth%d_%s", depth, sub);
274  book1D(ib, histo, pedestal);
275  }
276 
277  for (int depth = 1; depth <= maxDepth_[isubdet]; depth++) {
278  sprintf(histo, "HcalDigiTask_ADC0_fC_depth%d_%s", depth, sub);
279  book1D(ib, histo, pedestalfC);
280  }
281 
282  sprintf(histo, "HcalDigiTask_signal_amplitude_%s", sub);
283  if ((HBPhase1_ && bsubdet == "HB") || (HEPhase1_ && bsubdet == "HE"))
284  book1D(ib, histo, digiAmpWide);
285  else
286  book1D(ib, histo, digiAmp);
287 
288  if (hep17_ && bsubdet == "HE") {
289  sprintf(histo, "HcalDigiTask_signal_amplitude_HEP17");
290  book1D(ib, histo, digiAmpWide);
291  }
292  //
293  for (int depth = 1; depth <= maxDepth_[isubdet]; depth++) {
294  sprintf(histo, "HcalDigiTask_signal_amplitude_depth%d_%s", depth, sub);
295  if ((HBPhase1_ && bsubdet == "HB") || (HEPhase1_ && bsubdet == "HE"))
296  book1D(ib, histo, digiAmpWide);
297  else
298  book1D(ib, histo, digiAmp);
299  if (hep17_ && bsubdet == "HE") {
300  sprintf(histo, "HcalDigiTask_signal_amplitude_depth%d_HEP17", depth);
301  book1D(ib, histo, digiAmpWide);
302  }
303  }
304 
305  sprintf(histo, "HcalDigiTask_signal_amplitude_vs_bin_all_depths_%s", sub);
306  if ((HBPhase1_ && bsubdet == "HB") || (HEPhase1_ && bsubdet == "HE"))
307  book2D(ib, histo, nbin, digiAmpWide);
308  else
309  book2D(ib, histo, nbin, digiAmp);
310  if (hep17_ && bsubdet == "HE") {
311  sprintf(histo, "HcalDigiTask_signal_amplitude_vs_bin_all_depths_HEP17");
312  book2D(ib, histo, nbin, digiAmpWide);
313  }
314 
315  for (int depth = 1; depth <= maxDepth_[isubdet]; depth++) {
316  sprintf(histo, "HcalDigiTask_all_amplitudes_vs_bin_1D_depth%d_%s", depth, sub);
317  book1D(ib, histo, nbin);
318  if (hep17_ && bsubdet == "HE") {
319  sprintf(histo, "HcalDigiTask_all_amplitudes_vs_bin_1D_depth%d_HEP17", depth);
320  book1D(ib, histo, nbin);
321  }
322  }
323 
324  sprintf(histo, "HcalDigiTask_SOI_frac_%s", sub);
325  book1D(ib, histo, frac);
326  sprintf(histo, "HcalDigiTask_postSOI_frac_%s", sub);
327  book1D(ib, histo, frac);
328 
329  if (bmc == 1) {
330  sprintf(histo, "HcalDigiTask_amplitude_vs_simhits_%s", sub);
331  book2D(ib, histo, sime, digiAmp);
332  for (int depth = 1; depth <= maxDepth_[isubdet]; depth++) {
333  sprintf(histo, "HcalDigiTask_amplitude_vs_simhits_depth%d_%s", depth, sub);
334  book2D(ib, histo, sime, digiAmp);
335  }
336 
337  sprintf(histo, "HcalDigiTask_amplitude_vs_simhits_profile_%s", sub);
338  bookPf(ib, histo, sime, digiAmp);
339  for (int depth = 1; depth <= maxDepth_[isubdet]; depth++) {
340  sprintf(histo, "HcalDigiTask_amplitude_vs_simhits_profile_depth%d_%s", depth, sub);
341  bookPf(ib, histo, sime, digiAmp);
342  }
343 
344  sprintf(histo, "HcalDigiTask_ratio_amplitude_vs_simhits_%s", sub);
345  book1D(ib, histo, ratio);
346  for (int depth = 1; depth <= maxDepth_[isubdet]; depth++) {
347  sprintf(histo, "HcalDigiTask_ratio_amplitude_vs_simhits_depth%d_%s", depth, sub);
348  book1D(ib, histo, ratio);
349  }
350 
351  //...TDC
352  if (bsubdet == "HB" || bsubdet == "HE") {
353  sprintf(histo, "HcalDigiTask_TDCtime_%s", sub);
354  book1D(ib, histo, tdcLim);
355 
356  sprintf(histo, "HcalDigiTask_TDCtime_vs_ADC_%s", sub);
357  book2D(ib, histo, adcLim, tdcLim);
358  }
359 
360  } //mc only
361 
362  } else { // noise only
363 
364  // EVENT "1" distributions of all cells properties
365 
366  //KH
367  for (int depth = 1; depth <= maxDepth_[isubdet]; depth++) {
368  sprintf(histo, "HcalDigiTask_gain_capId0_Depth%d_%s", depth, sub);
369  book1D(ib, histo, gainLim);
370  sprintf(histo, "HcalDigiTask_gain_capId1_Depth%d_%s", depth, sub);
371  book1D(ib, histo, gainLim);
372  sprintf(histo, "HcalDigiTask_gain_capId2_Depth%d_%s", depth, sub);
373  book1D(ib, histo, gainLim);
374  sprintf(histo, "HcalDigiTask_gain_capId3_Depth%d_%s", depth, sub);
375  book1D(ib, histo, gainLim);
376 
377  sprintf(histo, "HcalDigiTask_gainWidth_capId0_Depth%d_%s", depth, sub);
378  book1D(ib, histo, gainWidthLim);
379  sprintf(histo, "HcalDigiTask_gainWidth_capId1_Depth%d_%s", depth, sub);
380  book1D(ib, histo, gainWidthLim);
381  sprintf(histo, "HcalDigiTask_gainWidth_capId2_Depth%d_%s", depth, sub);
382  book1D(ib, histo, gainWidthLim);
383  sprintf(histo, "HcalDigiTask_gainWidth_capId3_Depth%d_%s", depth, sub);
384  book1D(ib, histo, gainWidthLim);
385 
386  sprintf(histo, "HcalDigiTask_pedestal_capId0_Depth%d_%s", depth, sub);
387  book1D(ib, histo, pedLim);
388  sprintf(histo, "HcalDigiTask_pedestal_capId1_Depth%d_%s", depth, sub);
389  book1D(ib, histo, pedLim);
390  sprintf(histo, "HcalDigiTask_pedestal_capId2_Depth%d_%s", depth, sub);
391  book1D(ib, histo, pedLim);
392  sprintf(histo, "HcalDigiTask_pedestal_capId3_Depth%d_%s", depth, sub);
393  book1D(ib, histo, pedLim);
394 
395  sprintf(histo, "HcalDigiTask_pedestal_width_capId0_Depth%d_%s", depth, sub);
396  book1D(ib, histo, pedWidthLim);
397  sprintf(histo, "HcalDigiTask_pedestal_width_capId1_Depth%d_%s", depth, sub);
398  book1D(ib, histo, pedWidthLim);
399  sprintf(histo, "HcalDigiTask_pedestal_width_capId2_Depth%d_%s", depth, sub);
400  book1D(ib, histo, pedWidthLim);
401  sprintf(histo, "HcalDigiTask_pedestal_width_capId3_Depth%d_%s", depth, sub);
402  book1D(ib, histo, pedWidthLim);
403  }
404 
405  //KH
406  for (int depth = 1; depth <= maxDepth_[isubdet]; depth++) {
407  sprintf(histo, "HcalDigiTask_gainMap_Depth%d_%s", depth, sub);
408  book2D(ib, histo, ietaLim, iphiLim);
409  sprintf(histo, "HcalDigiTask_pwidthMap_Depth%d_%s", depth, sub);
410  book2D(ib, histo, ietaLim, iphiLim);
411  }
412 
413  } //end of noise-only
414 } //book

References book1D(), book2D(), bookPf(), LEDCalibrationChannels::depth, DivergingColor::frac, HBPhase1_, hep17_, HEPhase1_, timingPdfMaker::histo, cuy::ib, maxDepth_, ZMuMuCategoriesSequences_cff::nbin, nChannels_, EcalCondDBWriter_cfi::pedestal, and particleFlowDisplacedVertex_cfi::ratio.

Referenced by bookHistograms().

◆ bookPf() [1/2]

void HcalDigisValidation::bookPf ( DQMStore::IBooker ib,
std::string  name,
const HistLim limX,
const HistLim limY 
)
private

Definition at line 1320 of file HcalDigisValidation.cc.

1320  {
1321  if (!msm_->count(name))
1322  (*msm_)[name] = ib.bookProfile(name.c_str(), name.c_str(), limX.n, limX.min, limX.max, limY.n, limY.min, limY.max);
1323 }

References cuy::ib, HcalDigisValidation::HistLim::max, HcalDigisValidation::HistLim::min, msm_, HcalDigisValidation::HistLim::n, and Skims_PA_cff::name.

Referenced by bookHistograms(), and booking().

◆ bookPf() [2/2]

void HcalDigisValidation::bookPf ( DQMStore::IBooker ib,
std::string  name,
const HistLim limX,
const HistLim limY,
const char *  option 
)
private

Definition at line 1325 of file HcalDigisValidation.cc.

1326  {
1327  if (!msm_->count(name))
1328  (*msm_)[name] =
1329  ib.bookProfile(name.c_str(), name.c_str(), limX.n, limX.min, limX.max, limY.n, limY.min, limY.max, option);
1330 }

References cuy::ib, HcalDigisValidation::HistLim::max, HcalDigisValidation::HistLim::min, msm_, HcalDigisValidation::HistLim::n, Skims_PA_cff::name, and fileinputsource_cfi::option.

◆ dqmBeginRun()

void HcalDigisValidation::dqmBeginRun ( const edm::Run run,
const edm::EventSetup c 
)
overridevirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 82 of file HcalDigisValidation.cc.

82  {
83  const auto& pHRNDC = es.getData(tok_HRNDC_);
84  hcons = &pHRNDC;
85 
87 
88  maxDepth_[1] = hcons->getMaxDepth(0); // HB
89  maxDepth_[2] = hcons->getMaxDepth(1); // HE
90  maxDepth_[3] = hcons->getMaxDepth(3); // HO
91  maxDepth_[4] = hcons->getMaxDepth(2); // HF
92  maxDepth_[0] = (maxDepth_[1] > maxDepth_[2] ? maxDepth_[1] : maxDepth_[2]);
93  maxDepth_[0] = (maxDepth_[0] > maxDepth_[3] ? maxDepth_[0] : maxDepth_[3]);
94  maxDepth_[0] = (maxDepth_[0] > maxDepth_[4] ? maxDepth_[0] : maxDepth_[4]); // any of HB/HE/HO/HF
95 
96  const CaloGeometry* geo = &es.getData(tok_Geom_);
97  const HcalGeometry* gHB = static_cast<const HcalGeometry*>(geo->getSubdetectorGeometry(DetId::Hcal, HcalBarrel));
98  const HcalGeometry* gHE = static_cast<const HcalGeometry*>(geo->getSubdetectorGeometry(DetId::Hcal, HcalEndcap));
99  const HcalGeometry* gHO = static_cast<const HcalGeometry*>(geo->getSubdetectorGeometry(DetId::Hcal, HcalOuter));
100  const HcalGeometry* gHF = static_cast<const HcalGeometry*>(geo->getSubdetectorGeometry(DetId::Hcal, HcalForward));
101 
102  nChannels_[1] = gHB->getHxSize(1);
103  nChannels_[2] = gHE->getHxSize(2);
104  nChannels_[3] = gHO->getHxSize(3);
105  nChannels_[4] = gHF->getHxSize(4);
106 
107  nChannels_[0] = nChannels_[1] + nChannels_[2] + nChannels_[3] + nChannels_[4];
108 }

References edm::EventSetup::getData(), HcalGeometry::getHxSize(), HcalDDDRecConstants::getMaxDepth(), CaloGeometry::getSubdetectorGeometry(), DetId::Hcal, HcalBarrel, HcalEndcap, HcalForward, HcalOuter, hcons, htopology, maxDepth_, nChannels_, tok_Geom_, and tok_HRNDC_.

◆ fill1D()

void HcalDigisValidation::fill1D ( std::string  name,
double  X,
double  weight = 1 
)
private

Definition at line 1307 of file HcalDigisValidation.cc.

1307  {
1308  msm_->find(name)->second->Fill(X, weight);
1309 }

References msm_, Skims_PA_cff::name, and X.

Referenced by analyze(), and reco().

◆ fill2D()

void HcalDigisValidation::fill2D ( std::string  name,
double  X,
double  Y,
double  weight = 1 
)
private

Definition at line 1316 of file HcalDigisValidation.cc.

1316  {
1317  msm_->find(name)->second->Fill(X, Y, weight);
1318 }

References msm_, Skims_PA_cff::name, X, and BeamSpotPI::Y.

Referenced by analyze(), and reco().

◆ fillPf()

void HcalDigisValidation::fillPf ( std::string  name,
double  X,
double  Y 
)
private

Definition at line 1332 of file HcalDigisValidation.cc.

1332 { msm_->find(name)->second->Fill(X, Y); }

References msm_, Skims_PA_cff::name, X, and BeamSpotPI::Y.

Referenced by analyze(), and reco().

◆ monitor()

HcalDigisValidation::MonitorElement * HcalDigisValidation::monitor ( std::string  name)
private

Definition at line 1334 of file HcalDigisValidation.cc.

1334  {
1335  if (!msm_->count(name))
1336  return nullptr;
1337  else
1338  return msm_->find(name)->second;
1339 }

References msm_, and Skims_PA_cff::name.

◆ reco() [1/2]

template<class Digi >
void HcalDigisValidation::reco ( const edm::Event iEvent,
const edm::EventSetup iSetup,
const edm::EDGetTokenT< edm::SortedCollection< Digi > > &  tok 
)
private

Definition at line 606 of file HcalDigisValidation.cc.

608  {
609  // HistLim =============================================================
610 
611  std::string strtmp;
612 
613  // ======================================================================
616 
617  // ADC2fC
618  CaloSamples tool;
619  iEvent.getByToken(tok, digiCollection);
620  if (!digiCollection.isValid())
621  return;
622  int isubdet = 0;
623  if (subdet_ == "HB")
624  isubdet = 1;
625  if (subdet_ == "HE")
626  isubdet = 2;
627  if (subdet_ == "HO")
628  isubdet = 3;
629  if (subdet_ == "HF")
630  isubdet = 4;
631 
632  if (isubdet == 1)
633  nevent1++;
634  if (isubdet == 2)
635  nevent2++;
636  if (isubdet == 3)
637  nevent3++;
638  if (isubdet == 4)
639  nevent4++;
640 
641  int indigis = 0;
642  // amplitude for signal cell at diff. depths
643  std::vector<double> v_ampl_c(maxDepth_[isubdet] + 1, 0);
644 
645  // is set to 1 if "seed" SimHit is found
646  int seedSimHit = 0;
647 
648  int ieta_Sim = 9999;
649  int iphi_Sim = 9999;
650  double emax_Sim = -9999.;
651 
652  // SimHits MC only
653  if (mc_ == "yes") {
655  iEvent.getByToken(tok_mc_, hcalHits);
656  const edm::PCaloHitContainer* simhitResult = hcalHits.product();
657 
658  if (isubdet != 0 && noise_ == 0) { // signal only SimHits
659 
660  for (std::vector<PCaloHit>::const_iterator simhits = simhitResult->begin(); simhits != simhitResult->end();
661  ++simhits) {
662  unsigned int id_ = simhits->id();
663  int sub, ieta, iphi;
664  HcalDetId hid;
665  if (testNumber_)
666  hid = HcalHitRelabeller::relabel(id_, hcons);
667  else
668  hid = HcalDetId(id_);
669  sub = hid.subdet();
670  ieta = hid.ieta();
671  iphi = hid.iphi();
672 
673  double en = simhits->energy();
674 
675  if (en > emax_Sim && sub == isubdet) {
676  emax_Sim = en;
677  ieta_Sim = ieta;
678  iphi_Sim = iphi;
679  // to limit "seed" SimHit energy in case of "multi" event
680  if (mode_ == "multi" && ((sub == 4 && en < 100. && en > 1.) || ((sub != 4) && en < 1. && en > 0.02))) {
681  seedSimHit = 1;
682  break;
683  }
684  }
685 
686  } // end of SimHits cycle
687 
688  // found highest-energy SimHit for single-particle
689  if (mode_ != "multi" && emax_Sim > 0.)
690  seedSimHit = 1;
691  } // end of SimHits
692  } // end of mc_ == "yes"
693 
694  // CYCLE OVER CELLS ========================================================
695  int Ndig = 0;
696 
697  for (digiItr = digiCollection->begin(); digiItr != digiCollection->end(); digiItr++) {
698  HcalDetId cell(digiItr->id());
699  int depth = cell.depth();
700  int iphi = cell.iphi();
701  int ieta = cell.ieta();
702  int sub = cell.subdet();
703 
704  if (depth > maxDepth_[isubdet] && sub == isubdet) {
705  edm::LogWarning("HcalDetId") << "HcalDetID presents conflicting information. Depth: " << depth
706  << ", iphi: " << iphi << ", ieta: " << ieta
707  << ". Max depth from geometry is: " << maxDepth_[isubdet]
708  << ". TestNumber = " << testNumber_;
709  continue;
710  }
711 
712  // amplitude for signal cell at diff. depths
713  std::vector<double> v_ampl(maxDepth_[isubdet] + 1, 0);
714 
715  // Gains, pedestals (once !) and only for "noise" case
716  if (((nevent1 == 1 && isubdet == 1) || (nevent2 == 1 && isubdet == 2) || (nevent3 == 1 && isubdet == 3) ||
717  (nevent4 == 1 && isubdet == 4)) &&
718  noise_ == 1 && sub == isubdet) {
719  HcalGenericDetId hcalGenDetId(digiItr->id());
720  const HcalPedestal* pedestal = conditions->getPedestal(hcalGenDetId);
721  const HcalGain* gain = conditions->getGain(hcalGenDetId);
722  const HcalGainWidth* gainWidth = conditions->getGainWidth(hcalGenDetId);
723  const HcalPedestalWidth* pedWidth = conditions->getPedestalWidth(hcalGenDetId);
724 
725  for (int i = 0; i < 4; i++) {
726  fill1D("HcalDigiTask_gain_capId" + str(i) + "_Depth" + str(depth) + "_" + subdet_, gain->getValue(i));
727  fill1D("HcalDigiTask_gainWidth_capId" + str(i) + "_Depth" + str(depth) + "_" + subdet_, gainWidth->getValue(i));
728  fill1D("HcalDigiTask_pedestal_capId" + str(i) + "_Depth" + str(depth) + "_" + subdet_, pedestal->getValue(i));
729  fill1D("HcalDigiTask_pedestal_width_capId" + str(i) + "_Depth" + str(depth) + "_" + subdet_,
730  pedWidth->getWidth(i));
731  }
732 
733  fill2D("HcalDigiTask_gainMap_Depth" + str(depth) + "_" + subdet_, double(ieta), double(iphi), gain->getValue(0));
734  fill2D("HcalDigiTask_pwidthMap_Depth" + str(depth) + "_" + subdet_,
735  double(ieta),
736  double(iphi),
737  pedWidth->getWidth(0));
738 
739  } // end of event #1
740 
741  if (sub == isubdet)
742  Ndig++; // subdet number of digi
743 
744  // No-noise case, only single subdet selected ===========================
745 
746  if (sub == isubdet && noise_ == 0) {
748 
749  const HcalQIECoder* channelCoder = conditions->getHcalCoder(cell);
750  const HcalQIEShape* shape = conditions->getHcalShape(channelCoder);
751  HcalCoderDb coder(*channelCoder, *shape);
752  coder.adc2fC(*digiItr, tool);
753 
754  // for dynamic digi time sample analysis
755  int soi = tool.presamples();
756  int lastbin = tool.size() - 1;
757 
758  double noiseADC = (*digiItr)[0].adc();
759  double noisefC = tool[0];
760  // noise evaluations from "pre-samples"
761  fill1D("HcalDigiTask_ADC0_adc_depth" + str(depth) + "_" + subdet_, noiseADC);
762  fill1D("HcalDigiTask_ADC0_fC_depth" + str(depth) + "_" + subdet_, noisefC);
763 
764  // OCCUPANCY maps fill
765  fill2D("HcalDigiTask_ieta_iphi_occupancy_map_depth" + str(depth) + "_" + subdet_, double(ieta), double(iphi));
766 
767  fill1D("HcalDigiTask_depths_" + subdet_, double(depth));
768 
769  // Cycle on time slices
770  // - for each Digi
771  // - for one Digi with max SimHits E in subdet
772 
773  int closen = 0; // =1 if 1) seedSimHit = 1 and 2) the cell is the same
774  if (ieta == ieta_Sim && iphi == iphi_Sim)
775  closen = seedSimHit;
776 
777  for (int ii = 0; ii < tool.size(); ii++) {
778  int capid = (*digiItr)[ii].capid();
779  // single ts amplitude
780  double val = (tool[ii] - calibrations.pedestal(capid));
781 
782  if (val > 100.) {
783  fill1D("HcalDigiTask_ADC0_adc_depth" + str(depth) + "_" + subdet_, noiseADC);
784  strtmp = "HcalDigiTask_all_amplitudes_vs_bin_1D_depth" + str(depth) + "_" + subdet_;
785  fill1D(strtmp, double(ii), val);
786  }
787 
788  if (closen == 1) {
789  strtmp = "HcalDigiTask_signal_amplitude_vs_bin_all_depths_" + subdet_;
790  fill2D(strtmp, double(ii), val);
791  }
792 
793  // all detectors
794  if (ii >= soi && ii <= lastbin) {
795  v_ampl[0] += val;
796  v_ampl[depth] += val;
797 
798  if (closen == 1) {
799  v_ampl_c[0] += val;
800  v_ampl_c[depth] += val;
801  }
802  }
803  }
804  // end of time bucket sample
805 
806  // maps of sum of amplitudes (sum lin.digis(4,5,6,7) - ped) all depths
807  // just 1D of all cells' amplitudes
808  strtmp = "HcalDigiTask_sum_all_amplitudes_" + subdet_;
809  fill1D(strtmp, v_ampl[0]);
810 
811  std::vector<int> v_ampl_sub(v_ampl.begin() + 1, v_ampl.end()); // remove element 0, which is the sum of any depth
812  double ampl_max = *std::max_element(v_ampl_sub.begin(), v_ampl_sub.end());
813  if (ampl_max > 10.)
814  indigis++;
815  //KH if (ampl1 > 10. || ampl2 > 10. || ampl3 > 10. || ampl4 > 10.) indigis++;
816 
817  // fraction 5,6 bins if ampl. is big.
818  if (v_ampl[depth] > 30.) {
819  double fbinSOI = tool[soi] - calibrations.pedestal((*digiItr)[soi].capid());
820  double fbinPS = 0;
821 
822  for (int j = soi + 1; j <= lastbin; j++)
823  fbinPS += tool[j] - calibrations.pedestal((*digiItr)[j].capid());
824 
825  fbinSOI /= v_ampl[depth];
826  fbinPS /= v_ampl[depth];
827  strtmp = "HcalDigiTask_SOI_frac_" + subdet_;
828  fill1D(strtmp, fbinSOI);
829  strtmp = "HcalDigiTask_postSOI_frac_" + subdet_;
830  fill1D(strtmp, fbinPS);
831  }
832 
833  strtmp = "HcalDigiTask_signal_amplitude_" + subdet_;
834  fill1D(strtmp, v_ampl[0]);
835  strtmp = "HcalDigiTask_signal_amplitude_depth" + str(depth) + "_" + subdet_;
836  fill1D(strtmp, v_ampl[depth]);
837  }
838  } // End of CYCLE OVER CELLS =============================================
839 
840  if (isubdet != 0 && noise_ == 0) { // signal only, once per event
841  strtmp = "HcalDigiTask_number_of_amplitudes_above_10fC_" + subdet_;
842  fill1D(strtmp, indigis);
843 
844  // SimHits once again !!!
845  double eps = 1.e-3;
846  std::vector<double> v_ehits(maxDepth_[isubdet] + 1, 0);
847 
848  if (mc_ == "yes") {
850  iEvent.getByToken(tok_mc_, hcalHits);
851  const edm::PCaloHitContainer* simhitResult = hcalHits.product();
852  for (std::vector<PCaloHit>::const_iterator simhits = simhitResult->begin(); simhits != simhitResult->end();
853  ++simhits) {
854  unsigned int id_ = simhits->id();
855  int sub, depth, ieta, iphi;
856  HcalDetId hid;
857  if (testNumber_)
858  hid = HcalHitRelabeller::relabel(id_, hcons);
859  else
860  hid = HcalDetId(id_);
861  sub = hid.subdet();
862  depth = hid.depth();
863  ieta = hid.ieta();
864  iphi = hid.iphi();
865 
866  if (depth > maxDepth_[isubdet] && sub == isubdet) {
867  edm::LogWarning("HcalDetId") << "HcalDetID(SimHit) presents conflicting information. Depth: " << depth
868  << ", iphi: " << iphi << ", ieta: " << ieta
869  << ". Max depth from geometry is: " << maxDepth_[isubdet]
870  << ". TestNumber = " << testNumber_;
871  continue;
872  }
873 
874  // take cell already found to be max energy in a particular subdet
875  if (sub == isubdet && ieta == ieta_Sim && iphi == iphi_Sim) {
876  double en = simhits->energy();
877 
878  v_ehits[0] += en;
879  v_ehits[depth] += en;
880  }
881  } // simhit loop
882 
883  strtmp = "HcalDigiTask_amplitude_vs_simhits_" + subdet_;
884  if (v_ehits[0] > eps)
885  fill2D(strtmp, v_ehits[0], v_ampl_c[0]);
886  for (int depth = 1; depth <= maxDepth_[isubdet]; depth++) {
887  strtmp = "HcalDigiTask_amplitude_vs_simhits_depth" + str(depth) + "_" + subdet_;
888  if (v_ehits[depth] > eps)
889  fill2D(strtmp, v_ehits[depth], v_ampl_c[depth]);
890  }
891 
892  strtmp = "HcalDigiTask_amplitude_vs_simhits_profile_" + subdet_;
893  if (v_ehits[0] > eps)
894  fillPf(strtmp, v_ehits[0], v_ampl_c[0]);
895  for (int depth = 1; depth <= maxDepth_[isubdet]; depth++) {
896  strtmp = "HcalDigiTask_amplitude_vs_simhits_profile_depth" + str(depth) + "_" + subdet_;
897  if (v_ehits[depth] > eps)
898  fillPf(strtmp, v_ehits[depth], v_ampl_c[depth]);
899  }
900 
901  strtmp = "HcalDigiTask_ratio_amplitude_vs_simhits_" + subdet_;
902  if (v_ehits[0] > eps)
903  fill1D(strtmp, v_ampl_c[0] / v_ehits[0]);
904  for (int depth = 1; depth <= maxDepth_[isubdet]; depth++) {
905  strtmp = "HcalDigiTask_amplitude_vs_simhits_profile_depth" + str(depth) + "_" + subdet_;
906  if (v_ehits[depth] > eps)
907  fillPf(strtmp, v_ehits[depth], v_ampl_c[depth]);
908  strtmp = "HcalDigiTask_ratio_amplitude_vs_simhits_depth" + str(depth) + "_" + subdet_;
909  if (v_ehits[depth] > eps)
910  fill1D(strtmp, v_ampl_c[depth] / v_ehits[depth]);
911  }
912 
913  } // end of if(mc_ == "yes")
914 
915  strtmp = "HcalDigiTask_Ndigis_" + subdet_;
916  fill1D(strtmp, double(Ndig));
917 
918  } // end of if( subdet != 0 && noise_ == 0) { // signal only
919 }

References HcalCoderDb::adc2fC(), AlignmentProducer_cff::calibrations, conditions, LEDCalibrationChannels::depth, HcalDetId::depth(), apvshotsanalyzer_cfi::digiCollection, fill1D(), fill2D(), fillPf(), PedestalClient_cfi::gain, HcalDbService::getGain(), HcalDbService::getGainWidth(), HcalDbService::getHcalCalibrations(), HcalDbService::getHcalCoder(), HcalDbService::getHcalShape(), HcalDbService::getPedestal(), HcalDbService::getPedestalWidth(), HcalGainWidth::getValue(), HcalPedestalWidth::getWidth(), hcons, mps_fire::i, LEDCalibrationChannels::ieta, HcalDetId::ieta(), iEvent, cuy::ii, LEDCalibrationChannels::iphi, HcalDetId::iphi(), dqmiolumiharvest::j, maxDepth_, mc_, mode_, nevent1, nevent2, nevent3, nevent4, noise_, EcalCondDBWriter_cfi::pedestal, CaloSamples::presamples(), edm::Handle< T >::product(), HcalHitRelabeller::relabel(), HLTBitAnalyser_cfi::simhits, CaloSamples::size(), str(), AlCaHLTBitMon_QueryRunRegistry::string, HcalDetId::subdet(), subdet_, testNumber_, tok_mc_, and heppy_batch::val.

◆ reco() [2/2]

template<class dataFrameType >
void HcalDigisValidation::reco ( const edm::Event iEvent,
const edm::EventSetup iSetup,
const edm::EDGetTokenT< HcalDataFrameContainer< dataFrameType > > &  tok 
)
private

Definition at line 921 of file HcalDigisValidation.cc.

923  {
924  // HistLim =============================================================
925 
926  std::string strtmp;
927 
928  // ======================================================================
930  //typename HcalDataFrameContainer<dataFrameType>::const_iterator digiItr;
931 
932  // ADC2fC
933  CaloSamples tool;
934  iEvent.getByToken(tok, digiHandle);
935  if (!digiHandle.isValid())
936  return;
938  int isubdet = 0;
939  if (subdet_ == "HB")
940  isubdet = 1;
941  if (subdet_ == "HE")
942  isubdet = 2;
943  if (subdet_ == "HO")
944  isubdet = 3;
945  if (subdet_ == "HF")
946  isubdet = 4;
947 
948  if (isubdet == 1)
949  nevent1++;
950  if (isubdet == 2)
951  nevent2++;
952  if (isubdet == 3)
953  nevent3++;
954  if (isubdet == 4)
955  nevent4++;
956 
957  int indigis = 0;
958  // amplitude for signal cell at diff. depths
959  std::vector<double> v_ampl_c(maxDepth_[isubdet] + 1, 0);
960 
961  // is set to 1 if "seed" SimHit is found
962  int seedSimHit = 0;
963 
964  int ieta_Sim = 9999;
965  int iphi_Sim = 9999;
966  double emax_Sim = -9999.;
967 
968  // SimHits MC only
969  if (mc_ == "yes") {
971  iEvent.getByToken(tok_mc_, hcalHits);
972  const edm::PCaloHitContainer* simhitResult = hcalHits.product();
973 
974  if (isubdet != 0 && noise_ == 0) { // signal only SimHits
975 
976  for (std::vector<PCaloHit>::const_iterator simhits = simhitResult->begin(); simhits != simhitResult->end();
977  ++simhits) {
978  unsigned int id_ = simhits->id();
979  int sub, ieta, iphi;
980  HcalDetId hid;
981  if (testNumber_)
982  hid = HcalHitRelabeller::relabel(id_, hcons);
983  else
984  hid = HcalDetId(id_);
985  sub = hid.subdet();
986  ieta = hid.ieta();
987  iphi = hid.iphi();
988 
989  double en = simhits->energy();
990 
991  if (en > emax_Sim && sub == isubdet) {
992  emax_Sim = en;
993  ieta_Sim = ieta;
994  iphi_Sim = iphi;
995  // to limit "seed" SimHit energy in case of "multi" event
996  if (mode_ == "multi" && ((sub == 4 && en < 100. && en > 1.) || ((sub != 4) && en < 1. && en > 0.02))) {
997  seedSimHit = 1;
998  break;
999  }
1000  }
1001 
1002  } // end of SimHits cycle
1003 
1004  // found highest-energy SimHit for single-particle
1005  if (mode_ != "multi" && emax_Sim > 0.)
1006  seedSimHit = 1;
1007  } // end of SimHits
1008  } // end of mc_ == "yes"
1009 
1010  // CYCLE OVER CELLS ========================================================
1011  int Ndig = 0;
1012 
1014  digiItr != digiCollection->end();
1015  digiItr++) {
1016  dataFrameType dataFrame = *digiItr;
1017 
1018  HcalDetId cell(digiItr->id());
1019  int depth = cell.depth();
1020  int iphi = cell.iphi();
1021  int ieta = cell.ieta();
1022  int sub = cell.subdet();
1023 
1024  //Is this in HEP17
1025  bool isHEP17 = (iphi >= 63) && (iphi <= 66) && (ieta > 0) && (sub == 2);
1026 
1027  if (depth > maxDepth_[isubdet] && sub == isubdet) {
1028  edm::LogWarning("HcalDetId") << "HcalDetID presents conflicting information. Depth: " << depth
1029  << ", iphi: " << iphi << ", ieta: " << ieta
1030  << ". Max depth from geometry is: " << maxDepth_[isubdet]
1031  << ". TestNumber = " << testNumber_;
1032  continue;
1033  }
1034 
1035  // amplitude for signal cell at diff. depths
1036  std::vector<double> v_ampl(maxDepth_[isubdet] + 1, 0);
1037 
1038  // Gains, pedestals (once !) and only for "noise" case
1039  if (((nevent1 == 1 && isubdet == 1) || (nevent2 == 1 && isubdet == 2) || (nevent3 == 1 && isubdet == 3) ||
1040  (nevent4 == 1 && isubdet == 4)) &&
1041  noise_ == 1 && sub == isubdet) {
1042  HcalGenericDetId hcalGenDetId(digiItr->id());
1043  const HcalPedestal* pedestal = conditions->getPedestal(hcalGenDetId);
1044  const HcalGain* gain = conditions->getGain(hcalGenDetId);
1045  const HcalGainWidth* gainWidth = conditions->getGainWidth(hcalGenDetId);
1046  const HcalPedestalWidth* pedWidth = conditions->getPedestalWidth(hcalGenDetId);
1047 
1048  for (int i = 0; i < 4; i++) {
1049  fill1D("HcalDigiTask_gain_capId" + str(i) + "_Depth" + str(depth) + "_" + subdet_, gain->getValue(i));
1050  fill1D("HcalDigiTask_gainWidth_capId" + str(i) + "_Depth" + str(depth) + "_" + subdet_, gainWidth->getValue(i));
1051  fill1D("HcalDigiTask_pedestal_capId" + str(i) + "_Depth" + str(depth) + "_" + subdet_, pedestal->getValue(i));
1052  fill1D("HcalDigiTask_pedestal_width_capId" + str(i) + "_Depth" + str(depth) + "_" + subdet_,
1053  pedWidth->getWidth(i));
1054  }
1055 
1056  fill2D("HcalDigiTask_gainMap_Depth" + str(depth) + "_" + subdet_, double(ieta), double(iphi), gain->getValue(0));
1057  fill2D("HcalDigiTask_pwidthMap_Depth" + str(depth) + "_" + subdet_,
1058  double(ieta),
1059  double(iphi),
1060  pedWidth->getWidth(0));
1061 
1062  } // end of event #1
1063  //std::cout << "==== End of event noise block in cell cycle" << std::endl;
1064 
1065  if (sub == isubdet)
1066  Ndig++; // subdet number of digi
1067 
1068  // No-noise case, only single subdet selected ===========================
1069 
1070  if (sub == isubdet && noise_ == 0) {
1072 
1073  const HcalQIECoder* channelCoder = conditions->getHcalCoder(cell);
1074  const HcalQIEShape* shape = conditions->getHcalShape(channelCoder);
1075  HcalCoderDb coder(*channelCoder, *shape);
1076  coder.adc2fC(dataFrame, tool);
1077 
1078  // for dynamic digi time sample analysis
1079  int soi = tool.presamples();
1080  int lastbin = tool.size() - 1;
1081 
1082  double noiseADC = (dataFrame)[0].adc();
1083  double noisefC = tool[0];
1084  // noise evaluations from "pre-samples"
1085  fill1D("HcalDigiTask_ADC0_adc_depth" + str(depth) + "_" + subdet_, noiseADC);
1086  fill1D("HcalDigiTask_ADC0_fC_depth" + str(depth) + "_" + subdet_, noisefC);
1087 
1088  // OCCUPANCY maps fill
1089  fill2D("HcalDigiTask_ieta_iphi_occupancy_map_depth" + str(depth) + "_" + subdet_, double(ieta), double(iphi));
1090 
1091  fill1D("HcalDigiTask_depths_" + subdet_, double(depth));
1092 
1093  // Cycle on time slices
1094  // - for each Digi
1095  // - for one Digi with max SimHits E in subdet
1096 
1097  int closen = 0; // =1 if 1) seedSimHit = 1 and 2) the cell is the same
1098  if (ieta == ieta_Sim && iphi == iphi_Sim)
1099  closen = seedSimHit;
1100 
1101  for (int ii = 0; ii < tool.size(); ii++) {
1102  int capid = (dataFrame)[ii].capid();
1103  // single ts amplitude
1104  double val = (tool[ii] - calibrations.pedestal(capid));
1105 
1106  if (val > 100.) {
1107  fill1D("HcalDigiTask_ADC0_adc_depth" + str(depth) + "_" + subdet_, noiseADC);
1108  if (hep17_) {
1109  if (!isHEP17) {
1110  strtmp = "HcalDigiTask_all_amplitudes_vs_bin_1D_depth" + str(depth) + "_" + subdet_;
1111  fill1D(strtmp, double(ii), val);
1112  } else {
1113  strtmp = "HcalDigiTask_all_amplitudes_vs_bin_1D_depth" + str(depth) + "_HEP17";
1114  fill1D(strtmp, double(ii), val);
1115  }
1116  } else {
1117  strtmp = "HcalDigiTask_all_amplitudes_vs_bin_1D_depth" + str(depth) + "_" + subdet_;
1118  fill1D(strtmp, double(ii), val);
1119  }
1120  }
1121 
1122  if (closen == 1) {
1123  if (hep17_) {
1124  if (!isHEP17) {
1125  strtmp = "HcalDigiTask_signal_amplitude_vs_bin_all_depths_" + subdet_;
1126  fill2D(strtmp, double(ii), val);
1127  } else {
1128  strtmp = "HcalDigiTask_signal_amplitude_vs_bin_all_depths_HEP17";
1129  fill2D(strtmp, double(ii), val);
1130  }
1131  } else {
1132  strtmp = "HcalDigiTask_signal_amplitude_vs_bin_all_depths_" + subdet_;
1133  fill2D(strtmp, double(ii), val);
1134  }
1135  }
1136 
1137  // all detectors
1138  if (ii >= soi && ii <= lastbin) {
1139  v_ampl[0] += val;
1140  v_ampl[depth] += val;
1141 
1142  if (closen == 1) {
1143  v_ampl_c[0] += val;
1144  v_ampl_c[depth] += val;
1145  }
1146  }
1147 
1148  //...TDC
1149 
1150  if ((HBPhase1_ && sub == 1) || (HEPhase1_ && sub == 2)) {
1151  double digiADC = (dataFrame)[ii].adc();
1152  const QIE11DataFrame dataFrameHBHE = static_cast<const QIE11DataFrame>(*digiItr);
1153  double digiTDC = (dataFrameHBHE)[ii].tdc();
1154  if (digiTDC < 50) {
1155  double time = ii * 25. + (digiTDC * 0.5);
1156  strtmp = "HcalDigiTask_TDCtime_" + subdet_;
1157  fill1D(strtmp, time);
1158 
1159  strtmp = "HcalDigiTask_TDCtime_vs_ADC_" + subdet_;
1160  fill2D(strtmp, digiADC, time);
1161  }
1162  }
1163  }
1164  // end of time bucket sample
1165 
1166  // just 1D of all cells' amplitudes
1167  strtmp = "HcalDigiTask_sum_all_amplitudes_" + subdet_;
1168  fill1D(strtmp, v_ampl[0]);
1169 
1170  std::vector<int> v_ampl_sub(v_ampl.begin() + 1, v_ampl.end()); // remove element 0, which is the sum of any depth
1171  double ampl_max = *std::max_element(v_ampl_sub.begin(), v_ampl_sub.end());
1172  if (ampl_max > 10.)
1173  indigis++;
1174  //KH if (ampl1 > 10. || ampl2 > 10. || ampl3 > 10. || ampl4 > 10.) indigis++;
1175 
1176  // fraction 5,6 bins if ampl. is big.
1177  //histogram names have not been changed, but it should be understood that bin_5 is soi, and bin_6_7 is latter TS'
1178  if ((v_ampl[depth] > 30. && (subdet_ != "HE" || subdet_ != "HB")) ||
1179  (v_ampl[depth] > 300.)) { //300 fC cut for QIE-11 HB & HE
1180  double fbinSOI = tool[soi] - calibrations.pedestal((dataFrame)[soi].capid());
1181  double fbinPS = 0;
1182 
1183  for (int j = soi + 1; j <= lastbin; j++)
1184  fbinPS += tool[j] - calibrations.pedestal((dataFrame)[j].capid());
1185 
1186  fbinSOI /= v_ampl[depth];
1187  fbinPS /= v_ampl[depth];
1188  strtmp = "HcalDigiTask_SOI_frac_" + subdet_;
1189  fill1D(strtmp, fbinSOI);
1190  strtmp = "HcalDigiTask_postSOI_frac_" + subdet_;
1191  fill1D(strtmp, fbinPS);
1192  }
1193 
1194  if (hep17_) {
1195  if (!isHEP17) {
1196  strtmp = "HcalDigiTask_signal_amplitude_" + subdet_;
1197  fill1D(strtmp, v_ampl[0]);
1198  strtmp = "HcalDigiTask_signal_amplitude_depth" + str(depth) + "_" + subdet_;
1199  fill1D(strtmp, v_ampl[depth]);
1200  } else {
1201  strtmp = "HcalDigiTask_signal_amplitude_HEP17";
1202  fill1D(strtmp, v_ampl[0]);
1203  strtmp = "HcalDigiTask_signal_amplitude_depth" + str(depth) + "_HEP17";
1204  fill1D(strtmp, v_ampl[depth]);
1205  }
1206  } else {
1207  strtmp = "HcalDigiTask_signal_amplitude_" + subdet_;
1208  fill1D(strtmp, v_ampl[0]);
1209  strtmp = "HcalDigiTask_signal_amplitude_depth" + str(depth) + "_" + subdet_;
1210  fill1D(strtmp, v_ampl[depth]);
1211  }
1212  }
1213  } // End of CYCLE OVER CELLS =============================================
1214 
1215  if (isubdet != 0 && noise_ == 0) { // signal only, once per event
1216  strtmp = "HcalDigiTask_number_of_amplitudes_above_10fC_" + subdet_;
1217  fill1D(strtmp, indigis);
1218 
1219  // SimHits once again !!!
1220  double eps = 1.e-3;
1221  std::vector<double> v_ehits(maxDepth_[isubdet] + 1, 0);
1222 
1223  if (mc_ == "yes") {
1225  iEvent.getByToken(tok_mc_, hcalHits);
1226  const edm::PCaloHitContainer* simhitResult = hcalHits.product();
1227  for (std::vector<PCaloHit>::const_iterator simhits = simhitResult->begin(); simhits != simhitResult->end();
1228  ++simhits) {
1229  unsigned int id_ = simhits->id();
1230  int sub, depth, ieta, iphi;
1231  HcalDetId hid;
1232  if (testNumber_)
1233  hid = HcalHitRelabeller::relabel(id_, hcons);
1234  else
1235  hid = HcalDetId(id_);
1236  sub = hid.subdet();
1237  depth = hid.depth();
1238  ieta = hid.ieta();
1239  iphi = hid.iphi();
1240 
1241  if (depth > maxDepth_[isubdet] && sub == isubdet) {
1242  edm::LogWarning("HcalDetId") << "HcalDetID(SimHit) presents conflicting information. Depth: " << depth
1243  << ", iphi: " << iphi << ", ieta: " << ieta
1244  << ". Max depth from geometry is: " << maxDepth_[isubdet]
1245  << ". TestNumber = " << testNumber_;
1246  continue;
1247  }
1248 
1249  // take cell already found to be max energy in a particular subdet
1250  if (sub == isubdet && ieta == ieta_Sim && iphi == iphi_Sim) {
1251  double en = simhits->energy();
1252 
1253  v_ehits[0] += en;
1254  v_ehits[depth] += en;
1255  }
1256  } // simhit loop
1257 
1258  strtmp = "HcalDigiTask_amplitude_vs_simhits_" + subdet_;
1259  if (v_ehits[0] > eps)
1260  fill2D(strtmp, v_ehits[0], v_ampl_c[0]);
1261  for (int depth = 1; depth <= maxDepth_[isubdet]; depth++) {
1262  strtmp = "HcalDigiTask_amplitude_vs_simhits_depth" + str(depth) + "_" + subdet_;
1263  if (v_ehits[depth] > eps)
1264  fill2D(strtmp, v_ehits[depth], v_ampl_c[depth]);
1265  }
1266 
1267  strtmp = "HcalDigiTask_amplitude_vs_simhits_profile_" + subdet_;
1268  if (v_ehits[0] > eps)
1269  fillPf(strtmp, v_ehits[0], v_ampl_c[0]);
1270  for (int depth = 1; depth <= maxDepth_[isubdet]; depth++) {
1271  strtmp = "HcalDigiTask_amplitude_vs_simhits_profile_depth" + str(depth) + "_" + subdet_;
1272  if (v_ehits[depth] > eps)
1273  fillPf(strtmp, v_ehits[depth], v_ampl_c[depth]);
1274  }
1275 
1276  strtmp = "HcalDigiTask_ratio_amplitude_vs_simhits_" + subdet_;
1277  if (v_ehits[0] > eps)
1278  fill1D(strtmp, v_ampl_c[0] / v_ehits[0]);
1279  for (int depth = 1; depth <= maxDepth_[isubdet]; depth++) {
1280  strtmp = "HcalDigiTask_amplitude_vs_simhits_profile_depth" + str(depth) + "_" + subdet_;
1281  if (v_ehits[depth] > eps)
1282  fillPf(strtmp, v_ehits[depth], v_ampl_c[depth]);
1283  strtmp = "HcalDigiTask_ratio_amplitude_vs_simhits_depth" + str(depth) + "_" + subdet_;
1284  if (v_ehits[depth] > eps)
1285  fill1D(strtmp, v_ampl_c[depth] / v_ehits[depth]);
1286  }
1287 
1288  } // end of if(mc_ == "yes")
1289 
1290  strtmp = "HcalDigiTask_Ndigis_" + subdet_;
1291  fill1D(strtmp, double(Ndig));
1292 
1293  } // end of if( subdet != 0 && noise_ == 0) { // signal only
1294 
1295 } //HcalDataFrameContainer

References ecalLiteDTU::adc(), HcalCoderDb::adc2fC(), AlignmentProducer_cff::calibrations, conditions, LEDCalibrationChannels::depth, HcalDetId::depth(), apvshotsanalyzer_cfi::digiCollection, fill1D(), fill2D(), fillPf(), PedestalClient_cfi::gain, HcalDbService::getGain(), HcalDbService::getGainWidth(), HcalDbService::getHcalCalibrations(), HcalDbService::getHcalCoder(), HcalDbService::getHcalShape(), HcalDbService::getPedestal(), HcalDbService::getPedestalWidth(), HcalGainWidth::getValue(), HcalPedestalWidth::getWidth(), HBPhase1_, hcons, hep17_, HEPhase1_, mps_fire::i, LEDCalibrationChannels::ieta, HcalDetId::ieta(), iEvent, cuy::ii, LEDCalibrationChannels::iphi, HcalDetId::iphi(), edm::HandleBase::isValid(), dqmiolumiharvest::j, maxDepth_, mc_, mode_, nevent1, nevent2, nevent3, nevent4, noise_, EcalCondDBWriter_cfi::pedestal, CaloSamples::presamples(), edm::Handle< T >::product(), HcalHitRelabeller::relabel(), HLTBitAnalyser_cfi::simhits, CaloSamples::size(), str(), AlCaHLTBitMon_QueryRunRegistry::string, HcalDetId::subdet(), subdet_, testNumber_, ntuplemaker::time, tok_mc_, and heppy_batch::val.

◆ str()

std::string HcalDigisValidation::str ( int  x)
private

Definition at line 1341 of file HcalDigisValidation.cc.

1341  {
1342  std::stringstream out;
1343  out << x;
1344  return out.str();
1345 }

References MillePedeFileConverter_cfg::out, and x.

Referenced by reco().

Member Data Documentation

◆ conditions

edm::ESHandle<HcalDbService> HcalDigisValidation::conditions
private

Definition at line 145 of file HcalDigisValidation.h.

Referenced by analyze(), and reco().

◆ dataTPsTag_

edm::InputTag HcalDigisValidation::dataTPsTag_
private

Definition at line 117 of file HcalDigisValidation.h.

Referenced by HcalDigisValidation().

◆ dirName_

std::string HcalDigisValidation::dirName_
private

Definition at line 111 of file HcalDigisValidation.h.

Referenced by bookHistograms(), and HcalDigisValidation().

◆ emulTPsTag_

edm::InputTag HcalDigisValidation::emulTPsTag_
private

Definition at line 116 of file HcalDigisValidation.h.

Referenced by HcalDigisValidation().

◆ geometry

edm::ESHandle<CaloGeometry> HcalDigisValidation::geometry
private

Definition at line 144 of file HcalDigisValidation.h.

◆ HBPhase1_

bool HcalDigisValidation::HBPhase1_
private

Definition at line 124 of file HcalDigisValidation.h.

Referenced by booking(), HcalDigisValidation(), and reco().

◆ hcons

const HcalDDDRecConstants* HcalDigisValidation::hcons
private

Definition at line 157 of file HcalDigisValidation.h.

Referenced by dqmBeginRun(), and reco().

◆ hep17_

bool HcalDigisValidation::hep17_
private

Definition at line 122 of file HcalDigisValidation.h.

Referenced by booking(), HcalDigisValidation(), and reco().

◆ HEPhase1_

bool HcalDigisValidation::HEPhase1_
private

Definition at line 123 of file HcalDigisValidation.h.

Referenced by booking(), HcalDigisValidation(), and reco().

◆ htopo

edm::ESHandle<HcalTopology> HcalDigisValidation::htopo
private

Definition at line 148 of file HcalDigisValidation.h.

Referenced by analyze().

◆ htopology

const HcalTopology* HcalDigisValidation::htopology
private

Definition at line 158 of file HcalDigisValidation.h.

Referenced by dqmBeginRun().

◆ inputTag_

edm::InputTag HcalDigisValidation::inputTag_
private

Definition at line 113 of file HcalDigisValidation.h.

Referenced by HcalDigisValidation().

◆ maxDepth_

int HcalDigisValidation::maxDepth_[5]
private

Definition at line 160 of file HcalDigisValidation.h.

Referenced by booking(), dqmBeginRun(), and reco().

◆ mc_

std::string HcalDigisValidation::mc_
private

Definition at line 119 of file HcalDigisValidation.h.

Referenced by bookHistograms(), HcalDigisValidation(), and reco().

◆ mode_

std::string HcalDigisValidation::mode_
private

Definition at line 118 of file HcalDigisValidation.h.

Referenced by HcalDigisValidation(), and reco().

◆ msm_

std::map<std::string, MonitorElement *>* HcalDigisValidation::msm_
private

◆ nChannels_

int HcalDigisValidation::nChannels_[5]
private

Definition at line 161 of file HcalDigisValidation.h.

Referenced by booking(), and dqmBeginRun().

◆ nevent1

int HcalDigisValidation::nevent1
private

Definition at line 151 of file HcalDigisValidation.h.

Referenced by HcalDigisValidation(), and reco().

◆ nevent2

int HcalDigisValidation::nevent2
private

Definition at line 152 of file HcalDigisValidation.h.

Referenced by HcalDigisValidation(), and reco().

◆ nevent3

int HcalDigisValidation::nevent3
private

Definition at line 153 of file HcalDigisValidation.h.

Referenced by HcalDigisValidation(), and reco().

◆ nevent4

int HcalDigisValidation::nevent4
private

Definition at line 154 of file HcalDigisValidation.h.

Referenced by HcalDigisValidation(), and reco().

◆ nevtot

int HcalDigisValidation::nevtot
private

Definition at line 155 of file HcalDigisValidation.h.

Referenced by analyze(), and HcalDigisValidation().

◆ noise_

int HcalDigisValidation::noise_
private

Definition at line 120 of file HcalDigisValidation.h.

Referenced by analyze(), and reco().

◆ outputFile_

std::string HcalDigisValidation::outputFile_
private

Definition at line 108 of file HcalDigisValidation.h.

Referenced by HcalDigisValidation().

◆ Plot_TP_ver_

bool HcalDigisValidation::Plot_TP_ver_
private

Definition at line 125 of file HcalDigisValidation.h.

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

◆ QIE10inputTag_

edm::InputTag HcalDigisValidation::QIE10inputTag_
private

Definition at line 114 of file HcalDigisValidation.h.

Referenced by HcalDigisValidation().

◆ QIE11inputTag_

edm::InputTag HcalDigisValidation::QIE11inputTag_
private

Definition at line 115 of file HcalDigisValidation.h.

Referenced by HcalDigisValidation().

◆ skipDataTPs

bool HcalDigisValidation::skipDataTPs
private

Definition at line 163 of file HcalDigisValidation.h.

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

◆ subdet_

std::string HcalDigisValidation::subdet_
private

Definition at line 109 of file HcalDigisValidation.h.

Referenced by analyze(), bookHistograms(), HcalDigisValidation(), and reco().

◆ testNumber_

bool HcalDigisValidation::testNumber_
private

Definition at line 121 of file HcalDigisValidation.h.

Referenced by HcalDigisValidation(), and reco().

◆ tok_Cond_

edm::ESGetToken<HcalDbService, HcalDbRecord> HcalDigisValidation::tok_Cond_
private

Definition at line 142 of file HcalDigisValidation.h.

Referenced by analyze(), and HcalDigisValidation().

◆ tok_dataTPs_

edm::EDGetTokenT<HcalTrigPrimDigiCollection> HcalDigisValidation::tok_dataTPs_
private

Definition at line 132 of file HcalDigisValidation.h.

Referenced by analyze(), and HcalDigisValidation().

◆ tok_Decoder_

edm::ESGetToken<CaloTPGTranscoder, CaloTPGRecord> HcalDigisValidation::tok_Decoder_
private

Definition at line 139 of file HcalDigisValidation.h.

Referenced by analyze(), and HcalDigisValidation().

◆ tok_emulTPs_

edm::EDGetTokenT<HcalTrigPrimDigiCollection> HcalDigisValidation::tok_emulTPs_
private

Definition at line 131 of file HcalDigisValidation.h.

Referenced by analyze(), and HcalDigisValidation().

◆ tok_Geom_

edm::ESGetToken<CaloGeometry, CaloGeometryRecord> HcalDigisValidation::tok_Geom_
private

Definition at line 138 of file HcalDigisValidation.h.

Referenced by dqmBeginRun(), and HcalDigisValidation().

◆ tok_hbhe_

edm::EDGetTokenT<HBHEDigiCollection> HcalDigisValidation::tok_hbhe_
private

Definition at line 128 of file HcalDigisValidation.h.

Referenced by analyze(), and HcalDigisValidation().

◆ tok_hf_

edm::EDGetTokenT<HFDigiCollection> HcalDigisValidation::tok_hf_
private

Definition at line 130 of file HcalDigisValidation.h.

Referenced by analyze(), and HcalDigisValidation().

◆ tok_ho_

edm::EDGetTokenT<HODigiCollection> HcalDigisValidation::tok_ho_
private

Definition at line 129 of file HcalDigisValidation.h.

Referenced by analyze(), and HcalDigisValidation().

◆ tok_HRNDC_

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

Definition at line 137 of file HcalDigisValidation.h.

Referenced by dqmBeginRun(), and HcalDigisValidation().

◆ tok_mc_

edm::EDGetTokenT<edm::PCaloHitContainer> HcalDigisValidation::tok_mc_
private

Definition at line 127 of file HcalDigisValidation.h.

Referenced by HcalDigisValidation(), and reco().

◆ tok_qie10_hf_

edm::EDGetTokenT<QIE10DigiCollection> HcalDigisValidation::tok_qie10_hf_
private

Definition at line 134 of file HcalDigisValidation.h.

Referenced by analyze(), and HcalDigisValidation().

◆ tok_qie11_hbhe_

edm::EDGetTokenT<QIE11DigiCollection> HcalDigisValidation::tok_qie11_hbhe_
private

Definition at line 135 of file HcalDigisValidation.h.

Referenced by analyze(), and HcalDigisValidation().

◆ tok_Topo_

edm::ESGetToken<HcalTopology, HcalRecNumberingRecord> HcalDigisValidation::tok_Topo_
private

Definition at line 141 of file HcalDigisValidation.h.

Referenced by analyze(), and HcalDigisValidation().

◆ tok_TPGeom_

edm::ESGetToken<HcalTrigTowerGeometry, CaloGeometryRecord> HcalDigisValidation::tok_TPGeom_
private

Definition at line 140 of file HcalDigisValidation.h.

Referenced by analyze(), and HcalDigisValidation().

◆ zside_

std::string HcalDigisValidation::zside_
private

Definition at line 110 of file HcalDigisValidation.h.

mps_fire.i
i
Definition: mps_fire.py:428
edm::SortedCollection::const_iterator
std::vector< T >::const_iterator const_iterator
Definition: SortedCollection.h:80
dqmiodumpmetadata.n
n
Definition: dqmiodumpmetadata.py:28
HcalDbService::getGainWidth
const HcalGainWidth * getGainWidth(const HcalGenericDetId &fId) const
Definition: HcalDbService.cc:312
HcalDataFrameContainer
Definition: HcalDigiCollections.h:35
edm::Handle::product
T const * product() const
Definition: Handle.h:70
HcalGainWidth::getValue
float getValue(int fCapId) const
get value for capId = 0..3
Definition: HcalGainWidth.h:20
edm::DataFrameContainer::const_iterator
boost::transform_iterator< IterHelp, boost::counting_iterator< int > > const_iterator
Definition: DataFrameContainer.h:61
HcalGenericDetId
Definition: HcalGenericDetId.h:15
HcalDigisValidation::htopology
const HcalTopology * htopology
Definition: HcalDigisValidation.h:158
HcalDigisValidation::hcons
const HcalDDDRecConstants * hcons
Definition: HcalDigisValidation.h:157
HcalDigisParam_cfi.emulTPs
emulTPs
Definition: HcalDigisParam_cfi.py:14
HcalDetId::iphi
constexpr int iphi() const
get the cell iphi
Definition: HcalDetId.h:157
X
#define X(str)
Definition: MuonsGrabber.cc:38
CaloSamples::size
int size() const
get the size
Definition: CaloSamples.h:24
min
T min(T a, T b)
Definition: MathUtil.h:58
HcalDigisValidation::tok_emulTPs_
edm::EDGetTokenT< HcalTrigPrimDigiCollection > tok_emulTPs_
Definition: HcalDigisValidation.h:131
HcalTopology
Definition: HcalTopology.h:26
DetId::Hcal
Definition: DetId.h:28
HcalDigisValidation::nevtot
int nevtot
Definition: HcalDigisValidation.h:155
HcalDigisValidation::hep17_
bool hep17_
Definition: HcalDigisValidation.h:122
HcalDbService::getPedestal
const HcalPedestal * getPedestal(const HcalGenericDetId &fId) const
Definition: HcalDbService.cc:277
HcalDigisValidation::msm_
std::map< std::string, MonitorElement * > * msm_
Definition: HcalDigisValidation.h:75
CaloGeometry::getSubdetectorGeometry
const CaloSubdetectorGeometry * getSubdetectorGeometry(const DetId &id) const
access the subdetector geometry for the given subdetector directly
Definition: CaloGeometry.cc:34
timingPdfMaker.histo
histo
Definition: timingPdfMaker.py:279
HcalDbService::getGain
const HcalGain * getGain(const HcalGenericDetId &fId) const
Definition: HcalDbService.cc:305
AlignmentProducer_cff.calibrations
calibrations
Definition: AlignmentProducer_cff.py:59
HcalDetId::depth
constexpr int depth() const
get the tower depth
Definition: HcalDetId.h:164
HcalDigisValidation::nevent3
int nevent3
Definition: HcalDigisValidation.h:153
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
DDAxes::x
HcalDigisValidation::book2D
void book2D(DQMStore::IBooker &ib, std::string name, const HistLim &limX, const HistLim &limY)
Definition: HcalDigisValidation.cc:1311
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
HcalBarrel
Definition: HcalAssistant.h:33
HcalDigisValidation::HEPhase1_
bool HEPhase1_
Definition: HcalDigisValidation.h:123
HcalDigisValidation::book1D
void book1D(DQMStore::IBooker &ib, std::string name, int n, double min, double max)
Definition: HcalDigisValidation.cc:1297
edm::Handle
Definition: AssociativeIterator.h:50
HcalDigisValidation::dirName_
std::string dirName_
Definition: HcalDigisValidation.h:111
fileinputsource_cfi.option
option
Definition: fileinputsource_cfi.py:87
edm::LogWarning
Log< level::Warning, false > LogWarning
Definition: MessageLogger.h:122
HcalDigisValidation::fill2D
void fill2D(std::string name, double X, double Y, double weight=1)
Definition: HcalDigisValidation.cc:1316
HcalDbService::getHcalShape
const HcalQIEShape * getHcalShape(const HcalGenericDetId &fId) const
Definition: HcalDbService.cc:326
HcalDbService::getHcalCalibrations
const HcalCalibrations & getHcalCalibrations(const HcalGenericDetId &fId) const
Definition: HcalDbService.cc:65
LEDCalibrationChannels.iphi
iphi
Definition: LEDCalibrationChannels.py:64
ecalLiteDTU::adc
constexpr int adc(sample_type sample)
get the ADC sample (12 bits)
Definition: EcalLiteDTUSample.h:12
HcalDbService::getHcalCoder
const HcalQIECoder * getHcalCoder(const HcalGenericDetId &fId) const
Definition: HcalDbService.cc:319
HcalDigisValidation::nevent4
int nevent4
Definition: HcalDigisValidation.h:154
CaloGeometry
Definition: CaloGeometry.h:21
HcalDigisValidation::booking
void booking(DQMStore::IBooker &ib, std::string subdetopt, int bnoise, int bmc)
Definition: HcalDigisValidation.cc:177
HcalDbService::getPedestalWidth
const HcalPedestalWidth * getPedestalWidth(const HcalGenericDetId &fId) const
Definition: HcalDbService.cc:284
DivergingColor.frac
float frac
Definition: DivergingColor.py:175
HcalDigisValidation::noise_
int noise_
Definition: HcalDigisValidation.h:120
HcalDigisValidation::subdet_
std::string subdet_
Definition: HcalDigisValidation.h:109
HcalOuter
Definition: HcalAssistant.h:35
HcalDigisValidation::tok_TPGeom_
edm::ESGetToken< HcalTrigTowerGeometry, CaloGeometryRecord > tok_TPGeom_
Definition: HcalDigisValidation.h:140
HcalDigisValidation::mode_
std::string mode_
Definition: HcalDigisValidation.h:118
HcalDigisValidation::tok_Geom_
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > tok_Geom_
Definition: HcalDigisValidation.h:138
HcalPedestal
Definition: HcalPedestal.h:15
HcalCalibrations
Definition: HcalCalibrations.h:9
LEDCalibrationChannels.depth
depth
Definition: LEDCalibrationChannels.py:65
HcalDigisValidation::tok_qie11_hbhe_
edm::EDGetTokenT< QIE11DigiCollection > tok_qie11_hbhe_
Definition: HcalDigisValidation.h:135
HcalDigisValidation::QIE10inputTag_
edm::InputTag QIE10inputTag_
Definition: HcalDigisValidation.h:114
HcalDigisValidation::inputTag_
edm::InputTag inputTag_
Definition: HcalDigisValidation.h:113
particleFlowDisplacedVertex_cfi.ratio
ratio
Definition: particleFlowDisplacedVertex_cfi.py:93
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
HcalDigisValidation::emulTPsTag_
edm::InputTag emulTPsTag_
Definition: HcalDigisValidation.h:116
HcalGain
Definition: HcalGain.h:16
HcalDigisValidation::tok_mc_
edm::EDGetTokenT< edm::PCaloHitContainer > tok_mc_
Definition: HcalDigisValidation.h:127
edm::ParameterSet::exists
bool exists(std::string const &parameterName) const
checks if a parameter exists
Definition: ParameterSet.cc:681
HcalDigisValidation::tok_qie10_hf_
edm::EDGetTokenT< QIE10DigiCollection > tok_qie10_hf_
Definition: HcalDigisValidation.h:134
LEDCalibrationChannels.ieta
ieta
Definition: LEDCalibrationChannels.py:63
HcalDigisValidation::tok_hf_
edm::EDGetTokenT< HFDigiCollection > tok_hf_
Definition: HcalDigisValidation.h:130
HcalDetId::ieta
constexpr int ieta() const
get the cell ieta
Definition: HcalDetId.h:155
HLTBitAnalyser_cfi.simhits
simhits
SIM objects.
Definition: HLTBitAnalyser_cfi.py:21
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
HcalDigisValidation::dataTPsTag_
edm::InputTag dataTPsTag_
Definition: HcalDigisValidation.h:117
HcalDigisValidation::tok_Cond_
edm::ESGetToken< HcalDbService, HcalDbRecord > tok_Cond_
Definition: HcalDigisValidation.h:142
HcalDetId::subdet
constexpr HcalSubdetector subdet() const
get the subdetector
Definition: HcalDetId.h:138
HcalDetId
Definition: HcalDetId.h:12
iEvent
int iEvent
Definition: GenABIO.cc:224
cuy.ib
ib
Definition: cuy.py:662
HcalDigisValidation::tok_HRNDC_
edm::ESGetToken< HcalDDDRecConstants, HcalRecNumberingRecord > tok_HRNDC_
Definition: HcalDigisValidation.h:137
apvshotsanalyzer_cfi.digiCollection
digiCollection
Definition: apvshotsanalyzer_cfi.py:4
EcalCondDBWriter_cfi.pedestal
pedestal
Definition: EcalCondDBWriter_cfi.py:49
CaloSamples
Definition: CaloSamples.h:14
HcalDigisValidation::Plot_TP_ver_
bool Plot_TP_ver_
Definition: HcalDigisValidation.h:125
HltBtagPostValidation_cff.c
c
Definition: HltBtagPostValidation_cff.py:31
itr
std::vector< std::pair< float, float > >::iterator itr
Definition: HGCDigitizer.cc:29
HcalDigisValidation::tok_Topo_
edm::ESGetToken< HcalTopology, HcalRecNumberingRecord > tok_Topo_
Definition: HcalDigisValidation.h:141
HcalQIECoder
Definition: HcalQIECoder.h:20
HcalDigisValidation::nChannels_
int nChannels_[5]
Definition: HcalDigisValidation.h:161
HcalDigisValidation::tok_dataTPs_
edm::EDGetTokenT< HcalTrigPrimDigiCollection > tok_dataTPs_
Definition: HcalDigisValidation.h:132
HcalDigisValidation::tok_Decoder_
edm::ESGetToken< CaloTPGTranscoder, CaloTPGRecord > tok_Decoder_
Definition: HcalDigisValidation.h:139
edm::EventSetup::getData
bool getData(T &iHolder) const
Definition: EventSetup.h:120
HcalDigisValidation::nevent2
int nevent2
Definition: HcalDigisValidation.h:152
HcalDigisValidation::QIE11inputTag_
edm::InputTag QIE11inputTag_
Definition: HcalDigisValidation.h:115
PedestalClient_cfi.gain
gain
Definition: PedestalClient_cfi.py:37
HcalSubdetector
HcalSubdetector
Definition: HcalAssistant.h:31
HcalForward
Definition: HcalAssistant.h:36
HcalHitRelabeller::relabel
DetId relabel(const uint32_t testId) const
Definition: HcalHitRelabeller.cc:49
HcalDigisValidation::maxDepth_
int maxDepth_[5]
Definition: HcalDigisValidation.h:160
heppy_batch.val
val
Definition: heppy_batch.py:351
HcalDigisValidation::HBPhase1_
bool HBPhase1_
Definition: HcalDigisValidation.h:124
HcalDigisValidation::testNumber_
bool testNumber_
Definition: HcalDigisValidation.h:121
HcalEndcap
Definition: HcalAssistant.h:34
CaloSamples::presamples
int presamples() const
access presample information
Definition: CaloSamples.h:36
HcalDigisValidation::outputFile_
std::string outputFile_
Definition: HcalDigisValidation.h:108
QIE11DataFrame
Definition: QIE11DataFrame.h:11
ZMuMuCategoriesSequences_cff.nbin
nbin
Definition: ZMuMuCategoriesSequences_cff.py:25
HcalGeometry::getHxSize
unsigned int getHxSize(const int type) const
Definition: HcalGeometry.cc:321
edm::PCaloHitContainer
std::vector< PCaloHit > PCaloHitContainer
Definition: PCaloHitContainer.h:8
HcalPedestalWidth::getWidth
float getWidth(int fCapId) const
get width (sqrt(sigma_i_i)) for capId = 0..3
Definition: HcalPedestalWidth.cc:31
HcalDigisValidation::mc_
std::string mc_
Definition: HcalDigisValidation.h:119
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
BeamSpotPI::Y
Definition: BeamSpotPayloadInspectorHelper.h:31
HcalQIEShape
Definition: HcalQIEShape.h:17
HcalCoderDb
Definition: HcalCoderDb.h:15
HcalDDDRecConstants::getMaxDepth
int getMaxDepth(const int &type) const
Definition: HcalDDDRecConstants.h:88
MillePedeFileConverter_cfg.out
out
Definition: MillePedeFileConverter_cfg.py:31
HcalDigisValidation::nevent1
int nevent1
Definition: HcalDigisValidation.h:151
HcalDigisValidation::fill1D
void fill1D(std::string name, double X, double weight=1)
Definition: HcalDigisValidation.cc:1307
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
HcalPedestalWidth
Definition: HcalPedestalWidth.h:15
HcalDigisValidation::tok_ho_
edm::EDGetTokenT< HODigiCollection > tok_ho_
Definition: HcalDigisValidation.h:129
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
HcalDigisValidation::conditions
edm::ESHandle< HcalDbService > conditions
Definition: HcalDigisValidation.h:145
HcalDigisValidation::htopo
edm::ESHandle< HcalTopology > htopo
Definition: HcalDigisValidation.h:148
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
ntuplemaker.time
time
Definition: ntuplemaker.py:310
HcalDigisValidation::fillPf
void fillPf(std::string name, double X, double Y)
Definition: HcalDigisValidation.cc:1332
edm::Log
Definition: MessageLogger.h:70
HcalDigisValidation::str
std::string str(int x)
Definition: HcalDigisValidation.cc:1341
HcalGeometry
Definition: HcalGeometry.h:17
cuy.ii
ii
Definition: cuy.py:590
HcalDigisValidation::bookPf
void bookPf(DQMStore::IBooker &ib, std::string name, const HistLim &limX, const HistLim &limY)
Definition: HcalDigisValidation.cc:1320
edm::InputTag
Definition: InputTag.h:15
HcalDigisValidation::skipDataTPs
bool skipDataTPs
Definition: HcalDigisValidation.h:163
weight
Definition: weight.py:1
HcalGainWidth
Definition: HcalGainWidth.h:15
HcalDigisValidation::tok_hbhe_
edm::EDGetTokenT< HBHEDigiCollection > tok_hbhe_
Definition: HcalDigisValidation.h:128
HcalDigisParam_cfi.dataTPs
dataTPs
Definition: HcalDigisParam_cfi.py:15