From 79de2abbc5e43351b6e5764adec8b691b006c56d Mon Sep 17 00:00:00 2001 From: Sunanda Date: Mon, 3 May 2021 21:50:36 +0200 Subject: [PATCH 1/5] Update some of the remaining validation classes in Validation/HGCalValidation --- .../plugins/HGCalBHValidation.cc | 170 ++++--------- .../plugins/HGCalHitValidation.cc | 228 ++++++------------ .../python/hgcalHitValidation_cff.py | 21 ++ .../python/hgcalHitValidation_cfi.py | 22 -- .../test/python/protoHGCalSimWatcher_cfg.py | 29 ++- .../test/python/protoSimValid_cfg.py | 39 +-- .../test/python/protoValid_cfg.py | 64 +++-- .../test/python/standalone_fromRECO.py | 16 +- 8 files changed, 231 insertions(+), 358 deletions(-) create mode 100644 Validation/HGCalValidation/python/hgcalHitValidation_cff.py delete mode 100644 Validation/HGCalValidation/python/hgcalHitValidation_cfi.py diff --git a/Validation/HGCalValidation/plugins/HGCalBHValidation.cc b/Validation/HGCalValidation/plugins/HGCalBHValidation.cc index f8d84f9e6246d..cb8978a80b5ef 100644 --- a/Validation/HGCalValidation/plugins/HGCalBHValidation.cc +++ b/Validation/HGCalValidation/plugins/HGCalBHValidation.cc @@ -7,9 +7,6 @@ // user include files #include "CommonTools/UtilAlgos/interface/TFileService.h" -#include "CondFormats/GeometryObjects/interface/HcalParameters.h" -#include "DataFormats/HcalDetId/interface/HcalDetId.h" -#include "DataFormats/HcalDigi/interface/HcalDigiCollections.h" #include "DataFormats/HGCDigi/interface/HGCDigiCollections.h" #include "FWCore/Framework/interface/Frameworkfwd.h" @@ -21,10 +18,8 @@ #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "FWCore/ServiceRegistry/interface/Service.h" -#include "Geometry/Records/interface/HcalParametersRcd.h" #include "SimDataFormats/CaloHit/interface/PCaloHit.h" #include "SimDataFormats/CaloHit/interface/PCaloHitContainer.h" -#include "DataFormats/HcalDetId/interface/HcalTestNumbering.h" #include "DataFormats/ForwardDetId/interface/HGCScintillatorDetId.h" // Root objects @@ -51,15 +46,13 @@ class HGCalBHValidation : public edm::one::EDAnalyzer fs_; - const std::string g4Label_, hcalHits_; - const edm::InputTag hcalDigis_; - const int iSample_, geomType_; + const std::string g4Label_, hits_; + const edm::InputTag digis_; + const int iSample_; const double threshold_; - const bool ifHCAL_; - const edm::ESGetToken parToken_; - edm::EDGetTokenT tok_hits_; - edm::EDGetToken tok_hbhe_; - int etaMax_; + const edm::EDGetTokenT tok_hits_; + const edm::EDGetToken tok_digi_; + const int etaMax_; TH1D *hsimE1_, *hsimE2_, *hsimTm_; TH1D *hsimLn_, *hdigEn_, *hdigLn_; @@ -68,46 +61,32 @@ class HGCalBHValidation : public edm::one::EDAnalyzer("ModuleLabel", "g4SimHits")), - hcalHits_((ps.getUntrackedParameter("HitCollection", "HcalHits"))), - hcalDigis_(ps.getUntrackedParameter("DigiCollection")), - iSample_(ps.getUntrackedParameter("Sample", 5)), - geomType_(ps.getUntrackedParameter("GeometryType", 0)), - threshold_(ps.getUntrackedParameter("Threshold", 12.0)), - ifHCAL_(ps.getUntrackedParameter("ifHCAL", false)), - parToken_(esConsumes(edm::ESInputTag{})), + : g4Label_(ps.getParameter("ModuleLabel")), + hits_((ps.getParameter("HitCollection"))), + digis_(ps.getParameter("DigiCollection")), + iSample_(ps.getParameter("Sample")), + threshold_(ps.getParameter("Threshold")), + tok_hits_(consumes(edm::InputTag(g4Label_, hits_))), + tok_digi_(consumes(digis_)), etaMax_(100) { usesResource(TFileService::kSharedResource); - tok_hits_ = consumes(edm::InputTag(g4Label_, hcalHits_)); - if (ifHCAL_) - tok_hbhe_ = consumes(hcalDigis_); - else - tok_hbhe_ = consumes(hcalDigis_); - edm::LogVerbatim("HGCalValidation") << "HGCalBHValidation::Input for SimHit:" << edm::InputTag(g4Label_, hcalHits_) - << " Digits:" << hcalDigis_ << " Sample: " << iSample_ << " Threshold " + edm::LogVerbatim("HGCalValidation") << "HGCalBHValidation::Input for SimHit:" << edm::InputTag(g4Label_, hits_) + << " Digits:" << digis_ << " Sample: " << iSample_ << " Threshold " << threshold_; } void HGCalBHValidation::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { edm::ParameterSetDescription desc; - desc.addUntracked("ModuleLabel", "g4SimHits"); - desc.addUntracked("HitCollection", "HGCHitsHEback"); - desc.addUntracked("DigiCollection", edm::InputTag("simHGCalUnsuppressedDigis", "HEback")); - desc.addUntracked("Sample", 5); - desc.addUntracked("GeometryType", 1); - desc.addUntracked("Threshold", 15.0); - desc.addUntracked("ifHCAL", false); + desc.add("ModuleLabel", "g4SimHits"); + desc.add("HitCollection", "HGCHitsHEback"); + desc.add("DigiCollection", edm::InputTag("simHGCalUnsuppressedDigis", "HEback")); + desc.add("Sample", 5); + desc.add("Threshold", 15.0); descriptions.add("hgcalBHAnalysis", desc); } void HGCalBHValidation::beginRun(edm::Run const&, edm::EventSetup const& es) { - if (geomType_ == 0) { - std::string label; - const HcalParameters* hpar = &es.getData(parToken_); - const std::vector etaM = hpar->etaMax; - etaMax_ = etaM[1]; - } edm::LogVerbatim("HGCalValidation") << "HGCalBHValidation::Maximum Number of" << " eta sectors:" << etaMax_ << "\nHitsValidationHcal::Booking the Histograms"; @@ -131,38 +110,28 @@ void HGCalBHValidation::analyze(const edm::Event& e, const edm::EventSetup&) { edm::LogVerbatim("HGCalValidation") << "HGCalBHValidation:Run = " << e.id().run() << " Event = " << e.id().event(); //SimHits - edm::Handle hitsHcal; - e.getByToken(tok_hits_, hitsHcal); + edm::Handle hitsHE; + e.getByToken(tok_hits_, hitsHE); edm::LogVerbatim("HGCalValidation") << "HGCalBHValidation.: PCaloHitContainer" - << " obtained with flag " << hitsHcal.isValid(); - if (hitsHcal.isValid()) { - edm::LogVerbatim("HGCalValidation") << "HGCalBHValidation: PCaloHit buffer " << hitsHcal->size(); + << " obtained with flag " << hitsHE.isValid(); + if (hitsHE.isValid()) { + edm::LogVerbatim("HGCalValidation") << "HGCalBHValidation: PCaloHit buffer " << hitsHE->size(); unsigned i(0); std::map map_try; - for (edm::PCaloHitContainer::const_iterator it = hitsHcal->begin(); it != hitsHcal->end(); ++it) { + for (edm::PCaloHitContainer::const_iterator it = hitsHE->begin(); it != hitsHE->end(); ++it) { double energy = it->energy(); double time = it->time(); unsigned int id = it->id(); - int subdet(0), z(0), depth(0), eta(0), phi(0), lay(0); - bool hbhe(false), bh(false); - if (geomType_ == 0) { - HcalTestNumbering::unpackHcalIndex(id, subdet, z, depth, eta, phi, lay); - if (z == 0) - eta = -eta; - hbhe = ((subdet == static_cast(HcalEndcap)) || (subdet == static_cast(HcalBarrel))); - bh = (subdet == static_cast(HcalEndcap)); - } else { - hbhe = bh = (DetId(id).det() == DetId::HGCalHSc); - if (bh) { - eta = HGCScintillatorDetId(id).ieta(); - phi = HGCScintillatorDetId(id).iphi(); - lay = HGCScintillatorDetId(id).layer(); - } + int eta(0), phi(0), lay(0); + bool bh = (DetId(id).det() == DetId::HGCalHSc); + if (bh) { + eta = HGCScintillatorDetId(id).ieta(); + phi = HGCScintillatorDetId(id).iphi(); + lay = HGCScintillatorDetId(id).layer(); } double eta1 = (eta >= 0) ? (eta + 0.1) : (eta - 0.1); - if (hbhe) - hsi2Oc_->Fill(eta1, (phi - 0.1), energy); if (bh) { + hsi2Oc_->Fill(eta1, (phi - 0.1), energy); hsimE1_->Fill(energy); hsimTm_->Fill(time, energy); hsimOc_->Fill(eta1, (phi - 0.1), energy); @@ -174,9 +143,7 @@ void HGCalBHValidation::analyze(const edm::Event& e, const edm::EventSetup&) { ensum += energy; map_try[id] = ensum; ++i; - edm::LogVerbatim("HGCalValidation") - << "HGCalBHHit[" << i << "] ID " << std::hex << " " << id << std::dec << " SubDet " << subdet << " depth " - << depth << " Eta " << eta << " Phi " << phi << " layer " << lay << " E " << energy << " time " << time; + edm::LogVerbatim("HGCalValidation") << "HGCalBHHit[" << i << "] ID " << std::hex << " " << id << std::dec << " " << HGCScintillatorDetId(id) << " E " << energy << " time " << time; } } for (std::map::iterator itr = map_try.begin(); itr != map_try.end(); ++itr) { @@ -186,57 +153,22 @@ void HGCalBHValidation::analyze(const edm::Event& e, const edm::EventSetup&) { //Digits unsigned int kount(0); - if ((geomType_ == 0) && ifHCAL_) { - edm::Handle hbhecoll; - e.getByToken(tok_hbhe_, hbhecoll); - edm::LogVerbatim("HGCalValidation") << "HGCalBHValidation.: " - << "HBHEQIE11DigiCollection obtained " - << "with flag " << hbhecoll.isValid(); - if (hbhecoll.isValid()) { - edm::LogVerbatim("HGCalValidation") << "HGCalBHValidation: HBHEDigit " - << "buffer " << hbhecoll->size(); - for (QIE11DigiCollection::const_iterator it = hbhecoll->begin(); it != hbhecoll->end(); ++it) { - QIE11DataFrame df(*it); - HcalDetId cell(df.id()); - bool hbhe = - ((cell.subdetId() == static_cast(HcalEndcap)) || (cell.subdetId() == static_cast(HcalBarrel))); - if (hbhe) { - bool bh = (cell.subdetId() == static_cast(HcalEndcap)); - int depth = cell.depth(); - double energy = df[iSample_].adc(); - analyzeDigi(cell, energy, bh, depth, kount); - } - } - } - } else { - edm::Handle hbhecoll; - e.getByToken(tok_hbhe_, hbhecoll); - edm::LogVerbatim("HGCalValidation") << "HGCalBHValidation.: " - << "HGCalDigiCollection obtained with" - << " flag " << hbhecoll.isValid(); - if (hbhecoll.isValid()) { - edm::LogVerbatim("HGCalValidation") << "HGCalBHValidation: HGCalDigi " - << "buffer " << hbhecoll->size(); - for (HGCalDigiCollection::const_iterator it = hbhecoll->begin(); it != hbhecoll->end(); ++it) { - HGCalDataFrame df(*it); - double energy = df[iSample_].data(); - if (geomType_ == 0) { - HcalDetId cell(df.id()); - bool hbhe = - ((cell.subdetId() == static_cast(HcalEndcap)) || (cell.subdetId() == static_cast(HcalBarrel))); - if (hbhe) { - bool bh = (cell.subdetId() == static_cast(HcalEndcap)); - int depth = cell.depth(); - analyzeDigi(cell, energy, bh, depth, kount); - } - } else { - bool bh = (DetId(df.id()).det() == DetId::HGCalHSc); - if (bh) { - HGCScintillatorDetId cell(df.id()); - int depth = cell.layer(); - analyzeDigi(cell, energy, bh, depth, kount); - } - } + edm::Handle hecoll; + e.getByToken(tok_digi_, hecoll); + edm::LogVerbatim("HGCalValidation") << "HGCalBHValidation.: " + << "HGCalDigiCollection obtained with" + << " flag " << hecoll.isValid(); + if (hecoll.isValid()) { + edm::LogVerbatim("HGCalValidation") << "HGCalBHValidation: HGCalDigi " + << "buffer " << hecoll->size(); + for (HGCalDigiCollection::const_iterator it = hecoll->begin(); it != hecoll->end(); ++it) { + HGCalDataFrame df(*it); + double energy = df[iSample_].data(); + bool bh = (DetId(df.id()).det() == DetId::HGCalHSc); + if (bh) { + HGCScintillatorDetId cell(df.id()); + int depth = cell.layer(); + analyzeDigi(cell, energy, bh, depth, kount); } } } @@ -257,7 +189,7 @@ void HGCalBHValidation::analyzeDigi( hdi3Oc_->Fill(eta1, depth); ++kount; edm::LogVerbatim("HGCalValidation") - << "HGCalBHDigit[" << kount << "] ID " << cell << " E " << energy << ":" << (energy > threshold_); + << "HGCalBHDigit[" << kount << "] ID " << cell << " E " << energy << ":" << (energy > threshold_); } } } diff --git a/Validation/HGCalValidation/plugins/HGCalHitValidation.cc b/Validation/HGCalValidation/plugins/HGCalHitValidation.cc index 8cee8099afcfd..3054699f1a1ca 100644 --- a/Validation/HGCalValidation/plugins/HGCalHitValidation.cc +++ b/Validation/HGCalValidation/plugins/HGCalHitValidation.cc @@ -17,16 +17,8 @@ #include "Geometry/HGCalCommonData/interface/HGCalGeometryMode.h" #include "Geometry/HGCalGeometry/interface/HGCalGeometry.h" #include "Geometry/HGCalCommonData/interface/HGCalDDDConstants.h" -#include "Geometry/HcalCommonData/interface/HcalDDDSimConstants.h" -#include "Geometry/HcalCommonData/interface/HcalDDDRecConstants.h" -#include "Geometry/HcalCommonData/interface/HcalCellType.h" -#include "Geometry/Records/interface/CaloGeometryRecord.h" -#include "Geometry/Records/interface/HcalSimNumberingRecord.h" -#include "Geometry/Records/interface/HcalRecNumberingRecord.h" #include "DataFormats/Common/interface/Handle.h" -#include "DataFormats/HcalRecHit/interface/HcalRecHitCollections.h" -#include "DataFormats/HcalRecHit/interface/HBHERecHit.h" #include "DataFormats/HGCRecHit/interface/HGCRecHit.h" #include "DataFormats/HGCRecHit/interface/HGCRecHitCollections.h" #include "DataFormats/ForwardDetId/interface/HGCalDetId.h" @@ -47,7 +39,6 @@ #include "SimG4CMS/Calo/interface/HGCNumberingScheme.h" #include "SimDataFormats/CaloHit/interface/PCaloHit.h" #include "SimDataFormats/CaloHit/interface/PCaloHitContainer.h" -#include "DataFormats/HcalDetId/interface/HcalTestNumbering.h" #include "SimDataFormats/CaloTest/interface/HGCalTestNumbering.h" #include @@ -74,20 +65,13 @@ class HGCalHitValidation : public DQMEDAnalyzer { int idet, MonitorElement* hist, std::map&); - template - void analyzeHGCalRecHit(T1 const& theHits, std::map const& hitRefs); private: //HGC Geometry std::vector hgcCons_; std::vector hgcGeometry_; - const HcalDDDSimConstants* hcCons_; - const HcalDDDRecConstants* hcConr_; - const CaloSubdetectorGeometry* hcGeometry_; std::vector geometrySource_; std::vector ietaExcludeBH_; - bool ifHCAL_; - bool ifHCALsim_; edm::InputTag eeSimHitSource, fhSimHitSource, bhSimHitSource; edm::EDGetTokenT> eeSimHitToken_; @@ -95,8 +79,7 @@ class HGCalHitValidation : public DQMEDAnalyzer { edm::EDGetTokenT> bhSimHitToken_; edm::EDGetTokenT eeRecHitToken_; edm::EDGetTokenT fhRecHitToken_; - edm::EDGetTokenT bhRecHitTokeng_; - edm::EDGetTokenT bhRecHitTokenh_; + edm::EDGetTokenT bhRecHitToken_; //histogram related stuff MonitorElement *heedzVsZ, *heedyVsY, *heedxVsX; @@ -114,23 +97,17 @@ class HGCalHitValidation : public DQMEDAnalyzer { }; HGCalHitValidation::HGCalHitValidation(const edm::ParameterSet& cfg) { - geometrySource_ = cfg.getUntrackedParameter>("geometrySource"); + geometrySource_ = cfg.getParameter>("geometrySource"); eeSimHitToken_ = consumes>(cfg.getParameter("eeSimHitSource")); fhSimHitToken_ = consumes>(cfg.getParameter("fhSimHitSource")); bhSimHitToken_ = consumes>(cfg.getParameter("bhSimHitSource")); eeRecHitToken_ = consumes(cfg.getParameter("eeRecHitSource")); fhRecHitToken_ = consumes(cfg.getParameter("fhRecHitSource")); + bhRecHitToken_ = consumes(cfg.getParameter("bhRecHitSource")); ietaExcludeBH_ = cfg.getParameter>("ietaExcludeBH"); - ifHCAL_ = cfg.getParameter("ifHCAL"); - ifHCALsim_ = cfg.getParameter("ifHCALsim"); - if (ifHCAL_) - bhRecHitTokenh_ = consumes(cfg.getParameter("bhRecHitSource")); - else - bhRecHitTokeng_ = consumes(cfg.getParameter("bhRecHitSource")); #ifdef EDM_ML_DEBUG - edm::LogInfo("HGCalValid") << "Exclude the following " << ietaExcludeBH_.size() << " ieta values from BH plots (BH " - << ifHCAL_ << ") "; + edm::LogInfo("HGCalValid") << "Exclude the following " << ietaExcludeBH_.size() << " ieta values from BH plots"; for (unsigned int k = 0; k < ietaExcludeBH_.size(); ++k) edm::LogInfo("HGCalValid") << " [" << k << "] " << ietaExcludeBH_[k]; #endif @@ -139,11 +116,20 @@ HGCalHitValidation::HGCalHitValidation(const edm::ParameterSet& cfg) { HGCalHitValidation::~HGCalHitValidation() {} void HGCalHitValidation::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { - //The following says we do not know what parameters are allowed so do no validation - // Please change this to state exactly what you do use, even if it is no parameters edm::ParameterSetDescription desc; - desc.setUnknown(); - descriptions.addDefault(desc); + std::vector source = {"HGCalEESensitive", + "HGCalHESiliconSensitive", + "HGCalHEScintillatorSensitive"}; + desc.add>("geometrySource", source); + desc.add("eeSimHitSource", edm::InputTag("g4SimHits","HGCHitsEE")); + desc.add("fhSimHitSource", edm::InputTag("g4SimHits","HGCHitsHEfront")); + desc.add("bhSimHitSource", edm::InputTag("g4SimHits","HGCHitsHEback")); + desc.add("eeRecHitSource", edm::InputTag("HGCalRecHit","HGCEERecHits")); + desc.add("fhRecHitSource", edm::InputTag("HGCalRecHit","HGCHEFRecHits")); + desc.add("bhRecHitSource", edm::InputTag("HGCalRecHit","HGCHEBRecHits")); + std::vector dummy; + desc.add>("ietaExcludeBH", dummy); + descriptions.add("hgcalHitValidation", desc); } void HGCalHitValidation::bookHistograms(DQMStore::IBooker& iB, edm::Run const&, edm::EventSetup const&) { @@ -178,7 +164,7 @@ void HGCalHitValidation::bookHistograms(DQMStore::IBooker& iB, edm::Run const&, hefEnRec = iB.book1D("hefEnRec", "", 1000, 0, 10); hefEnSim = iB.book1D("hefEnSim", "", 1000, 0, 0.01); hefEnSimRec = iB.book2D("hefEnSimRec", "", 200, 0, 0.001, 200, 0, 0.5); - + hebEnRec = iB.book1D("hebEnRec", "", 1000, 0, 15); hebEnSim = iB.book1D("hebEnSim", "", 1000, 0, 0.01); hebEnSimRec = iB.book2D("hebEnSimRec", "", 200, 0, 0.02, 200, 0, 4); @@ -187,46 +173,19 @@ void HGCalHitValidation::bookHistograms(DQMStore::IBooker& iB, edm::Run const&, void HGCalHitValidation::dqmBeginRun(edm::Run const& iRun, edm::EventSetup const& iSetup) { //initiating hgc Geometry for (size_t i = 0; i < geometrySource_.size(); i++) { - if (geometrySource_[i].find("Hcal") != std::string::npos) { - edm::ESHandle pHSNDC; - iSetup.get().get(pHSNDC); - if (pHSNDC.isValid()) { - hcCons_ = pHSNDC.product(); - hgcCons_.push_back(nullptr); - } else { - edm::LogWarning("HGCalValid") << "Cannot initiate HcalDDDSimConstants: " << geometrySource_[i] << std::endl; - } - edm::ESHandle pHRNDC; - iSetup.get().get(pHRNDC); - if (pHRNDC.isValid()) { - hcConr_ = pHRNDC.product(); - } else { - edm::LogWarning("HGCalValid") << "Cannot initiate HcalDDDRecConstants: " << geometrySource_[i] << std::endl; - } - edm::ESHandle caloG; - iSetup.get().get(caloG); - if (caloG.isValid()) { - const CaloGeometry* geo = caloG.product(); - hcGeometry_ = geo->getSubdetectorGeometry(DetId::Hcal, HcalBarrel); - hgcGeometry_.push_back(nullptr); - } else { - edm::LogWarning("HGCalValid") << "Cannot initiate HcalGeometry for " << geometrySource_[i] << std::endl; - } + edm::ESHandle hgcCons; + iSetup.get().get(geometrySource_[i], hgcCons); + if (hgcCons.isValid()) { + hgcCons_.push_back(hgcCons.product()); } else { - edm::ESHandle hgcCons; - iSetup.get().get(geometrySource_[i], hgcCons); - if (hgcCons.isValid()) { - hgcCons_.push_back(hgcCons.product()); - } else { - edm::LogWarning("HGCalValid") << "Cannot initiate HGCalDDDConstants for " << geometrySource_[i] << std::endl; - } - edm::ESHandle hgcGeom; - iSetup.get().get(geometrySource_[i], hgcGeom); - if (hgcGeom.isValid()) { - hgcGeometry_.push_back(hgcGeom.product()); - } else { - edm::LogWarning("HGCalValid") << "Cannot initiate HGCalGeometry for " << geometrySource_[i] << std::endl; - } + edm::LogWarning("HGCalValid") << "Cannot initiate HGCalDDDConstants for " << geometrySource_[i] << std::endl; + } + edm::ESHandle hgcGeom; + iSetup.get().get(geometrySource_[i], hgcGeom); + if (hgcGeom.isValid()) { + hgcGeometry_.push_back(hgcGeom.product()); + } else { + edm::LogWarning("HGCalValid") << "Cannot initiate HGCalGeometry for " << geometrySource_[i] << std::endl; } } } @@ -237,7 +196,7 @@ void HGCalHitValidation::analyze(const edm::Event& iEvent, const edm::EventSetup //Accesing ee simhits edm::Handle> eeSimHits; iEvent.getByToken(eeSimHitToken_, eeSimHits); - + if (eeSimHits.isValid()) { analyzeHGCalSimHit(eeSimHits, 0, heeEnSim, eeHitRefs); #ifdef EDM_ML_DEBUG @@ -251,7 +210,7 @@ void HGCalHitValidation::analyze(const edm::Event& iEvent, const edm::EventSetup } else { edm::LogVerbatim("HGCalValid") << "No EE SimHit Found "; } - + //Accesing fh simhits edm::Handle> fhSimHits; iEvent.getByToken(fhSimHitToken_, fhSimHits); @@ -268,43 +227,12 @@ void HGCalHitValidation::analyze(const edm::Event& iEvent, const edm::EventSetup } else { edm::LogVerbatim("HGCalValid") << "No FH SimHit Found "; } - + //Accessing bh simhits edm::Handle> bhSimHits; iEvent.getByToken(bhSimHitToken_, bhSimHits); if (bhSimHits.isValid()) { - if (ifHCALsim_) { - for (std::vector::const_iterator simHit = bhSimHits->begin(); simHit != bhSimHits->end(); ++simHit) { - int subdet, z, depth, eta, phi, lay; - HcalTestNumbering::unpackHcalIndex(simHit->id(), subdet, z, depth, eta, phi, lay); - - if (subdet == static_cast(HcalEndcap)) { - HcalCellType::HcalCell cell = hcCons_->cell(subdet, z, lay, eta, phi); - double zp = cell.rz / 10; - - HcalDDDRecConstants::HcalID idx = hcConr_->getHCID(subdet, eta, phi, lay, depth); - int sign = (z == 0) ? (-1) : (1); - zp *= sign; - HcalDetId id = HcalDetId(HcalEndcap, sign * idx.eta, idx.phi, idx.depth); - - float energy = simHit->energy(); - float energySum(energy); - if (bhHitRefs.count(id.rawId()) != 0) - energySum += std::get<0>(bhHitRefs[id.rawId()]); - hebEnSim->Fill(energy); - if (std::find(ietaExcludeBH_.begin(), ietaExcludeBH_.end(), idx.eta) == ietaExcludeBH_.end()) { - bhHitRefs[id.rawId()] = std::make_tuple(energySum, cell.eta, cell.phi, zp); -#ifdef EDM_ML_DEBUG - edm::LogInfo("HGCalValid") << "Accept " << id << std::endl; - } else { - edm::LogInfo("HGCalValid") << "Reject " << id << std::endl; -#endif - } - } - } - } else { - analyzeHGCalSimHit(bhSimHits, 2, hebEnSim, bhHitRefs); - } + analyzeHGCalSimHit(bhSimHits, 2, hebEnSim, bhHitRefs); #ifdef EDM_ML_DEBUG for (std::map::iterator itr = bhHitRefs.begin(); itr != bhHitRefs.end(); ++itr) { int idx = std::distance(bhHitRefs.begin(), itr); @@ -346,7 +274,7 @@ void HGCalHitValidation::analyze(const edm::Event& iEvent, const edm::EventSetup } else { edm::LogVerbatim("HGCalValid") << "No EE RecHit Found "; } - + //accessing FH Rechit information edm::Handle fhRecHit; iEvent.getByToken(fhRecHitToken_, fhRecHit); @@ -358,7 +286,7 @@ void HGCalHitValidation::analyze(const edm::Event& iEvent, const edm::EventSetup std::map::const_iterator itr = fhHitRefs.find(it->id().rawId()); if (itr != fhHitRefs.end()) { GlobalPoint xyz = hgcGeometry_[1]->getPosition(it->id()); - + hefRecVsSimX->Fill(std::get<1>(itr->second), xyz.x()); hefRecVsSimY->Fill(std::get<2>(itr->second), xyz.y()); hefRecVsSimZ->Fill(std::get<3>(itr->second), xyz.z()); @@ -377,26 +305,41 @@ void HGCalHitValidation::analyze(const edm::Event& iEvent, const edm::EventSetup } else { edm::LogVerbatim("HGCalValid") << "No FH RecHit Found "; } - + //accessing BH Rechit information - if (ifHCAL_) { - edm::Handle bhRecHit; - iEvent.getByToken(bhRecHitTokenh_, bhRecHit); - if (bhRecHit.isValid()) { - const HBHERecHitCollection* theHits = (bhRecHit.product()); - analyzeHGCalRecHit(theHits, bhHitRefs); - } else { - edm::LogVerbatim("HGCalValid") << "No BH RecHit Found "; + edm::Handle bhRecHit; + iEvent.getByToken(bhRecHitToken_, bhRecHit); + if (bhRecHit.isValid()) { + const HGChebRecHitCollection* theHits = (bhRecHit.product()); + for (auto it = theHits->begin(); it != theHits->end(); ++it) { + double energy = it->energy(); + hebEnRec->Fill(energy); + std::map::const_iterator itr = bhHitRefs.find(it->id().rawId()); + GlobalPoint xyz = hgcGeometry_[2]->getPosition(it->id()); + if (itr != bhHitRefs.end()) { + float ang3 = xyz.phi().value(); // returns the phi in radians + double fac = sinh(std::get<1>(itr->second)); + double pT = std::get<3>(itr->second) / fac; + double xp = pT * cos(std::get<2>(itr->second)); + double yp = pT * sin(std::get<2>(itr->second)); + hebRecVsSimX->Fill(xp, xyz.x()); + hebRecVsSimY->Fill(yp, xyz.y()); + hebRecVsSimZ->Fill(std::get<3>(itr->second), xyz.z()); + hebdEtaVsEta->Fill(std::get<1>(itr->second), (xyz.eta() - std::get<1>(itr->second))); + hebdPhiVsPhi->Fill(std::get<2>(itr->second), (ang3 - std::get<2>(itr->second))); + hebdzVsZ->Fill(std::get<3>(itr->second), (xyz.z() - std::get<3>(itr->second))); + hebEnSimRec->Fill(std::get<0>(itr->second), energy); + +#ifdef EDM_ML_DEBUG + edm::LogInfo("HGCalValid") << "BHHit: " << std::hex << id.rawId() << std::dec << " Sim (" + << std::get<0>(itr->second) << ", " << std::get<1>(itr->second) << ", " + << std::get<2>(itr->second) << ", " << std::get<3>(itr->second) << ") Rec (" + << energy << ", " << xyz.x() << ", " << xyz.y() << ", " << xyz.z() << ")\n"; +#endif + } } } else { - edm::Handle bhRecHit; - iEvent.getByToken(bhRecHitTokeng_, bhRecHit); - if (bhRecHit.isValid()) { - const HGChebRecHitCollection* theHits = (bhRecHit.product()); - analyzeHGCalRecHit(theHits, bhHitRefs); - } else { - edm::LogVerbatim("HGCalValid") << "No BH RecHit Found "; - } + edm::LogVerbatim("HGCalValid") << "No BH RecHit Found "; } } @@ -436,41 +379,6 @@ void HGCalHitValidation::analyzeHGCalSimHit(edm::Handle> c } } -template -void HGCalHitValidation::analyzeHGCalRecHit(T1 const& theHits, std::map const& hitRefs) { - for (auto it = theHits->begin(); it != theHits->end(); ++it) { - DetId id = it->id(); - if (id.det() == DetId::Hcal and id.subdetId() == (int)(HcalEndcap)) { - double energy = it->energy(); - hebEnRec->Fill(energy); - GlobalPoint xyz = hcGeometry_->getGeometry(id)->getPosition(); - - std::map::const_iterator itr = hitRefs.find(id.rawId()); - if (itr != hitRefs.end()) { - float ang3 = xyz.phi().value(); // returns the phi in radians - double fac = sinh(std::get<1>(itr->second)); - double pT = std::get<3>(itr->second) / fac; - double xp = pT * cos(std::get<2>(itr->second)); - double yp = pT * sin(std::get<2>(itr->second)); - hebRecVsSimX->Fill(xp, xyz.x()); - hebRecVsSimY->Fill(yp, xyz.y()); - hebRecVsSimZ->Fill(std::get<3>(itr->second), xyz.z()); - hebdEtaVsEta->Fill(std::get<1>(itr->second), (xyz.eta() - std::get<1>(itr->second))); - hebdPhiVsPhi->Fill(std::get<2>(itr->second), (ang3 - std::get<2>(itr->second))); - hebdzVsZ->Fill(std::get<3>(itr->second), (xyz.z() - std::get<3>(itr->second))); - hebEnSimRec->Fill(std::get<0>(itr->second), energy); - -#ifdef EDM_ML_DEBUG - edm::LogInfo("HGCalValid") << "BHHit: " << std::hex << id.rawId() << std::dec << " Sim (" - << std::get<0>(itr->second) << ", " << std::get<1>(itr->second) << ", " - << std::get<2>(itr->second) << ", " << std::get<3>(itr->second) << ") Rec (" - << energy << ", " << xyz.x() << ", " << xyz.y() << ", " << xyz.z() << ")\n"; -#endif - } - } - } -} - //define this as a plug-in #include "FWCore/Framework/interface/MakerMacros.h" DEFINE_FWK_MODULE(HGCalHitValidation); diff --git a/Validation/HGCalValidation/python/hgcalHitValidation_cff.py b/Validation/HGCalValidation/python/hgcalHitValidation_cff.py new file mode 100644 index 0000000000000..a7184b58da9fe --- /dev/null +++ b/Validation/HGCalValidation/python/hgcalHitValidation_cff.py @@ -0,0 +1,21 @@ +import FWCore.ParameterSet.Config as cms + +from DQMServices.Core.DQMEDAnalyzer import DQMEDAnalyzer + +hgcalHitValidation = DQMEDAnalyzer('HGCalHitValidation', + geometrySource = cms.vstring("HGCalEESensitive", + "HGCalHESiliconSensitive", + "HGCalHEScintillatorSensitive"), + eeSimHitSource = cms.InputTag("g4SimHits","HGCHitsEE"), + fhSimHitSource = cms.InputTag("g4SimHits","HGCHitsHEfront"), + bhSimHitSource = cms.InputTag("g4SimHits","HGCHitsHEback"), + eeRecHitSource = cms.InputTag("HGCalRecHit","HGCEERecHits"), + fhRecHitSource = cms.InputTag("HGCalRecHit","HGCHEFRecHits"), + bhRecHitSource = cms.InputTag("HGCalRecHit","HGCHEBRecHits"), + ietaExcludeBH = cms.vint32([]), +) + +from Validation.HGCalValidation.hgcalHitCalibration_cfi import hgcalHitCalibration +from Validation.HGCalValidation.caloparticlevalidation_cfi import caloparticlevalidation + +hgcalHitValidationSequence = cms.Sequence(hgcalHitValidation+hgcalHitCalibration+caloparticlevalidation) diff --git a/Validation/HGCalValidation/python/hgcalHitValidation_cfi.py b/Validation/HGCalValidation/python/hgcalHitValidation_cfi.py deleted file mode 100644 index b3f8fb313cded..0000000000000 --- a/Validation/HGCalValidation/python/hgcalHitValidation_cfi.py +++ /dev/null @@ -1,22 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from DQMServices.Core.DQMEDAnalyzer import DQMEDAnalyzer -hgcalHitValidation = DQMEDAnalyzer('HGCalHitValidation', - geometrySource = cms.untracked.vstring("HGCalEESensitive", - "HGCalHESiliconSensitive", - "HGCalHEScintillatorSensitive"), - eeSimHitSource = cms.InputTag("g4SimHits","HGCHitsEE"), - fhSimHitSource = cms.InputTag("g4SimHits","HGCHitsHEfront"), - bhSimHitSource = cms.InputTag("g4SimHits","HGCHitsHEback"), - eeRecHitSource = cms.InputTag("HGCalRecHit","HGCEERecHits"), - fhRecHitSource = cms.InputTag("HGCalRecHit","HGCHEFRecHits"), - bhRecHitSource = cms.InputTag("HGCalRecHit","HGCHEBRecHits"), - ietaExcludeBH = cms.vint32([]), - ifHCAL = cms.bool(False), - ifHCALsim = cms.bool(False), - ) - -from Validation.HGCalValidation.hgcalHitCalibration_cfi import hgcalHitCalibration -from Validation.HGCalValidation.caloparticlevalidation_cfi import caloparticlevalidation - -hgcalHitValidationSequence = cms.Sequence(hgcalHitValidation+hgcalHitCalibration+caloparticlevalidation) diff --git a/Validation/HGCalValidation/test/python/protoHGCalSimWatcher_cfg.py b/Validation/HGCalValidation/test/python/protoHGCalSimWatcher_cfg.py index afff0638dcca9..6a00250412ea9 100644 --- a/Validation/HGCalValidation/test/python/protoHGCalSimWatcher_cfg.py +++ b/Validation/HGCalValidation/test/python/protoHGCalSimWatcher_cfg.py @@ -1,29 +1,29 @@ ############################################################################### # Way to use this: -# cmsRun protoVHGCalSimWatcher_cfg.py geometry=D71 +# cmsRun protoHGCalSimWatcher_cfg.py geometry=D77 # -# Options for geometry D49, D68, D70, D71 +# Options for geometry D49, D68, D77, D83, D84 # ############################################################################### import FWCore.ParameterSet.Config as cms import os, sys, imp, re import FWCore.ParameterSet.VarParsing as VarParsing -############################################################ +#################################################################### ### SETUP OPTIONS options = VarParsing.VarParsing('standard') options.register('geometry', "D71", VarParsing.VarParsing.multiplicity.singleton, VarParsing.VarParsing.varType.string, - "geometry of operations: D49, D68, D70, D71") + "geometry of operations: D49, D68, D84, D77, D83") ### get and parse the command line arguments options.parseArguments() print(options) -############################################################ +#################################################################### # Use the options if (options.geometry == "D49"): @@ -36,16 +36,21 @@ process = cms.Process('PROD',Phase2C12) process.load('Configuration.Geometry.GeometryExtended2026D68_cff') process.load('Configuration.Geometry.GeometryExtended2026D68Reco_cff') -elif (options.geometry == "D70"): +elif (options.geometry == "D83"): + from Configuration.Eras.Era_Phase2C11M9_cff import Phase2C11M9 + process = cms.Process('PROD',Phase2C11M9) + process.load('Configuration.Geometry.GeometryExtended2026D83_cff') + process.load('Configuration.Geometry.GeometryExtended2026D83Reco_cff') +elif (options.geometry == "D84"): from Configuration.Eras.Era_Phase2C11_cff import Phase2C11 process = cms.Process('PROD',Phase2C11) - process.load('Configuration.Geometry.GeometryExtended2026D70_cff') - process.load('Configuration.Geometry.GeometryExtended2026D70Reco_cff') + process.load('Configuration.Geometry.GeometryExtended2026D84_cff') + process.load('Configuration.Geometry.GeometryExtended2026D84Reco_cff') else: - from Configuration.Eras.Era_Phase2C11_cff import Phase2C11 - process = cms.Process('PROD',Phase2C11) - process.load('Configuration.Geometry.GeometryExtended2026D71_cff') - process.load('Configuration.Geometry.GeometryExtended2026D71Reco_cff') + from Configuration.Eras.Era_Phase2C11M9_cff import Phase2C11M9 + process = cms.Process('PROD',Phase2C11M9) + process.load('Configuration.Geometry.GeometryExtended2026D77_cff') + process.load('Configuration.Geometry.GeometryExtended2026D77Reco_cff') # import of standard configurations process.load('Configuration.StandardSequences.Services_cff') diff --git a/Validation/HGCalValidation/test/python/protoSimValid_cfg.py b/Validation/HGCalValidation/test/python/protoSimValid_cfg.py index d38f81c7bd083..af4eb29b09f9c 100644 --- a/Validation/HGCalValidation/test/python/protoSimValid_cfg.py +++ b/Validation/HGCalValidation/test/python/protoSimValid_cfg.py @@ -1,8 +1,8 @@ ############################################################################### # Way to use this: -# cmsRun protoSimValid_cfg.py geometry=D71 type=hgcalBHValidation +# cmsRun protoSimValid_cfg.py geometry=D77 type=hgcalBHValidation # -# Options for geometry D49, D68, D70, D71 +# Options for geometry D49, D68, D77, D83, D84 # type hgcalBHValidation, hgcalSiliconValidation # ############################################################################### @@ -14,10 +14,10 @@ ### SETUP OPTIONS options = VarParsing.VarParsing('standard') options.register('geometry', - "D71", + "D77", VarParsing.VarParsing.multiplicity.singleton, VarParsing.VarParsing.varType.string, - "geometry of operations: D49, D68, D70, D71") + "geometry of operations: D49, D68, D77, D83, D84") options.register ('type', "hgcalBHValidation", VarParsing.VarParsing.multiplicity.singleton, @@ -50,24 +50,33 @@ fileName = 'hgcSilValidD68.root' else: fileName = 'hgcBHValidD68.root' -elif (options.geometry == "D70"): +elif (options.geometry == "D83"): + from Configuration.Eras.Era_Phase2C11M9_cff import Phase2C11M9 + process = cms.Process('PROD',Phase2C11M9) + process.load('Configuration.Geometry.GeometryExtended2026D83_cff') + process.load('Configuration.Geometry.GeometryExtended2026D83Reco_cff') + if (options.type == "hgcalSiliconValidation"): + fileName = 'hgcSilValidD83.root' + else: + fileName = 'hgcBHValidD83.root' +elif (options.geometry == "D84"): from Configuration.Eras.Era_Phase2C11_cff import Phase2C11 process = cms.Process('PROD',Phase2C11) - process.load('Configuration.Geometry.GeometryExtended2026D70_cff') - process.load('Configuration.Geometry.GeometryExtended2026D70Reco_cff') + process.load('Configuration.Geometry.GeometryExtended2026D84_cff') + process.load('Configuration.Geometry.GeometryExtended2026D84Reco_cff') if (options.type == "hgcalSiliconValidation"): - fileName = 'hgcSilValidD70.root' + fileName = 'hgcSilValidD84.root' else: - fileName = 'hgcBHValidD70.root' + fileName = 'hgcBHValidD84.root' else: - from Configuration.Eras.Era_Phase2C11_cff import Phase2C11 - process = cms.Process('PROD',Phase2C11) - process.load('Configuration.Geometry.GeometryExtended2026D71_cff') - process.load('Configuration.Geometry.GeometryExtended2026D71Reco_cff') + from Configuration.Eras.Era_Phase2C11M9_cff import Phase2C11M9 + process = cms.Process('PROD',Phase2C11M9) + process.load('Configuration.Geometry.GeometryExtended2026D77_cff') + process.load('Configuration.Geometry.GeometryExtended2026D77Reco_cff') if (options.type == "hgcalSiliconValidation"): - fileName = 'hgcSilValidD71.root' + fileName = 'hgcSilValidD77.root' else: - fileName = 'hgcBHValidD71.root' + fileName = 'hgcBHValidD77.root' # import of standard configurations process.load('Configuration.StandardSequences.Services_cff') diff --git a/Validation/HGCalValidation/test/python/protoValid_cfg.py b/Validation/HGCalValidation/test/python/protoValid_cfg.py index 9efe6d5e0f00a..75fa6ebdeccaf 100644 --- a/Validation/HGCalValidation/test/python/protoValid_cfg.py +++ b/Validation/HGCalValidation/test/python/protoValid_cfg.py @@ -1,8 +1,8 @@ ############################################################################### # Way to use this: -# cmsRun protoValid_cfg.py geometry=D71 type=hgcalSimHitStudy defaultInput=1 +# cmsRun protoValid_cfg.py geometry=D77 type=hgcalSimHitStudy defaultInput=1 # -# Options for geometry D49, D68, D70, D71 +# Options for geometry D49, D68, D77, D83, D84 # type hgcalGeomCheck, hgcalSimHitStudy, hgcalDigiStudy, # hgcalRecHitStudy, hgcalSiliconValidation # defaultInput 1, 0 @@ -16,10 +16,10 @@ ### SETUP OPTIONS options = VarParsing.VarParsing('standard') options.register('geometry', - "D71", + "D83", VarParsing.VarParsing.multiplicity.singleton, VarParsing.VarParsing.varType.string, - "geometry of operations: D49, D68, D70, D71") + "geometry of operations: D49, D68, D77, D83, D84") options.register('type', "hgcalGeomCheck", VarParsing.VarParsing.multiplicity.singleton, @@ -75,42 +75,60 @@ fileName = 'hgcSilValidD68.root' else: fileName = 'hgcGeomCheckD68.root' -elif (options.geometry == "D70"): +elif (options.geometry == "D83"): + from Configuration.Eras.Era_Phase2C11M9_cff import Phase2C11M9 + process = cms.Process('PROD',Phase2C11M9) + process.load('Configuration.Geometry.GeometryExtended2026D83_cff') + process.load('Configuration.Geometry.GeometryExtended2026D83Reco_cff') + if (options.type == "hgcalSimHitStudy"): + fileName = 'hgcSimHitD83.root' + elif (options.type == "hgcalDigiStudy"): + fileName = 'hgcDigiD83.root' + elif (options.type == "hgcalRecHitStudy"): + fileName = 'hgcRecHitD83.root' + elif (options.type == "hgcalSiliconValidation"): + if (options.defaultInput == 0): + fileName = 'hgcDigValidD83.root' + else: + fileName = 'hgcSilValidD83.root' + else: + fileName = 'hgcGeomCheckD83.root' +elif (options.geometry == "D84"): from Configuration.Eras.Era_Phase2C11_cff import Phase2C11 process = cms.Process('PROD',Phase2C11) - process.load('Configuration.Geometry.GeometryExtended2026D70_cff') - process.load('Configuration.Geometry.GeometryExtended2026D70Reco_cff') + process.load('Configuration.Geometry.GeometryExtended2026D84_cff') + process.load('Configuration.Geometry.GeometryExtended2026D84Reco_cff') if (options.type == "hgcalSimHitStudy"): - fileName = 'hgcSimHitD70.root' + fileName = 'hgcSimHitD84.root' elif (options.type == "hgcalDigiStudy"): - fileName = 'hgcDigiD70.root' + fileName = 'hgcDigiD84.root' elif (options.type == "hgcalRecHitStudy"): - fileName = 'hgcRecHitD70.root' + fileName = 'hgcRecHitD84.root' elif (options.type == "hgcalSiliconValidation"): if (options.defaultInput == 0): - fileName = 'hgcDigValidD70.root' + fileName = 'hgcDigValidD84.root' else: - fileName = 'hgcSilValidD70.root' + fileName = 'hgcSilValidD84.root' else: - fileName = 'hgcGeomCheckD70.root' + fileName = 'hgcGeomCheckD84.root' else: - from Configuration.Eras.Era_Phase2C11_cff import Phase2C11 - process = cms.Process('PROD',Phase2C11) - process.load('Configuration.Geometry.GeometryExtended2026D71_cff') - process.load('Configuration.Geometry.GeometryExtended2026D71Reco_cff') + from Configuration.Eras.Era_Phase2C11M9_cff import Phase2C11M9 + process = cms.Process('PROD',Phase2C11M9) + process.load('Configuration.Geometry.GeometryExtended2026D77_cff') + process.load('Configuration.Geometry.GeometryExtended2026D77Reco_cff') if (options.type == "hgcalSimHitStudy"): - fileName = 'hgcSimHitD71.root' + fileName = 'hgcSimHitD77.root' elif (options.type == "hgcalDigiStudy"): - fileName = 'hgcDigiD71.root' + fileName = 'hgcDigiD77.root' elif (options.type == "hgcalRecHitStudy"): - fileName = 'hgcRecHitD71.root' + fileName = 'hgcRecHitD77.root' elif (options.type == "hgcalSiliconValidation"): if (options.defaultInput == 0): - fileName = 'hgcDigValidD71.root' + fileName = 'hgcDigValidD77.root' else: - fileName = 'hgcSilValidD71.root' + fileName = 'hgcSilValidD77.root' else: - fileName = 'hgcGeomCheckD71.root' + fileName = 'hgcGeomCheckD77.root' process.load("SimGeneral.HepPDTESSource.pythiapdt_cfi") process.load("Configuration.StandardSequences.MagneticField_cff") diff --git a/Validation/HGCalValidation/test/python/standalone_fromRECO.py b/Validation/HGCalValidation/test/python/standalone_fromRECO.py index ef5c90850dbc5..cf1f6ce3c7177 100644 --- a/Validation/HGCalValidation/test/python/standalone_fromRECO.py +++ b/Validation/HGCalValidation/test/python/standalone_fromRECO.py @@ -1,14 +1,13 @@ import FWCore.ParameterSet.Config as cms - -from Configuration.Eras.Era_Phase2_cff import Phase2 -process = cms.Process('HGCAL',Phase2) +from Configuration.Eras.Era_Phase2C11M9_cff import Phase2C11M9 +process = cms.Process('HGCAL',Phase2C11M9) # import of standard configurations process.load('Configuration.StandardSequences.Services_cff') process.load('FWCore.MessageService.MessageLogger_cfi') process.load('Configuration.EventContent.EventContent_cff') -process.load('Configuration.Geometry.GeometryExtended2023D17Reco_cff') +process.load('Configuration.Geometry.GeometryExtended2026D83Reco_cff') process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff') process.maxEvents = cms.untracked.PSet( @@ -22,7 +21,7 @@ ) process.options = cms.untracked.PSet( - + SkipEvent = cms.untracked.vstring('ProductNotFound') ) # Production Info @@ -45,10 +44,13 @@ # Additional output definition from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase2_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase2_realistic_T21', '') process.load("Validation.HGCalValidation.hgcalHitValidation_cfi") -process.dqmoffline_step = cms.EndPath(process.hgcalHitValidationSequece) +process.load("Validation.HGCalValidation.hgcalHitCalibration_cfi") +process.load("Validation.HGCalValidation.caloparticlevalidation_cfi") + +process.dqmoffline_step = cms.EndPath(process.hgcalHitValidation+process.hgcalHitCalibration+process.caloparticlevalidation) process.DQMoutput_step = cms.EndPath(process.DQMoutput) # Schedule definition From 84d94bf3a7405024986c0bef810b638351528395 Mon Sep 17 00:00:00 2001 From: Sunanda Date: Mon, 3 May 2021 22:06:01 +0200 Subject: [PATCH 2/5] Code check --- .../plugins/HGCalBHValidation.cc | 23 ++++++------- .../plugins/HGCalHitValidation.cc | 32 +++++++++---------- 2 files changed, 27 insertions(+), 28 deletions(-) diff --git a/Validation/HGCalValidation/plugins/HGCalBHValidation.cc b/Validation/HGCalValidation/plugins/HGCalBHValidation.cc index cb8978a80b5ef..ed212051e4108 100644 --- a/Validation/HGCalValidation/plugins/HGCalBHValidation.cc +++ b/Validation/HGCalValidation/plugins/HGCalBHValidation.cc @@ -125,9 +125,9 @@ void HGCalBHValidation::analyze(const edm::Event& e, const edm::EventSetup&) { int eta(0), phi(0), lay(0); bool bh = (DetId(id).det() == DetId::HGCalHSc); if (bh) { - eta = HGCScintillatorDetId(id).ieta(); - phi = HGCScintillatorDetId(id).iphi(); - lay = HGCScintillatorDetId(id).layer(); + eta = HGCScintillatorDetId(id).ieta(); + phi = HGCScintillatorDetId(id).iphi(); + lay = HGCScintillatorDetId(id).layer(); } double eta1 = (eta >= 0) ? (eta + 0.1) : (eta - 0.1); if (bh) { @@ -143,7 +143,8 @@ void HGCalBHValidation::analyze(const edm::Event& e, const edm::EventSetup&) { ensum += energy; map_try[id] = ensum; ++i; - edm::LogVerbatim("HGCalValidation") << "HGCalBHHit[" << i << "] ID " << std::hex << " " << id << std::dec << " " << HGCScintillatorDetId(id) << " E " << energy << " time " << time; + edm::LogVerbatim("HGCalValidation") << "HGCalBHHit[" << i << "] ID " << std::hex << " " << id << std::dec << " " + << HGCScintillatorDetId(id) << " E " << energy << " time " << time; } } for (std::map::iterator itr = map_try.begin(); itr != map_try.end(); ++itr) { @@ -156,19 +157,19 @@ void HGCalBHValidation::analyze(const edm::Event& e, const edm::EventSetup&) { edm::Handle hecoll; e.getByToken(tok_digi_, hecoll); edm::LogVerbatim("HGCalValidation") << "HGCalBHValidation.: " - << "HGCalDigiCollection obtained with" - << " flag " << hecoll.isValid(); + << "HGCalDigiCollection obtained with" + << " flag " << hecoll.isValid(); if (hecoll.isValid()) { edm::LogVerbatim("HGCalValidation") << "HGCalBHValidation: HGCalDigi " - << "buffer " << hecoll->size(); + << "buffer " << hecoll->size(); for (HGCalDigiCollection::const_iterator it = hecoll->begin(); it != hecoll->end(); ++it) { HGCalDataFrame df(*it); double energy = df[iSample_].data(); bool bh = (DetId(df.id()).det() == DetId::HGCalHSc); if (bh) { - HGCScintillatorDetId cell(df.id()); - int depth = cell.layer(); - analyzeDigi(cell, energy, bh, depth, kount); + HGCScintillatorDetId cell(df.id()); + int depth = cell.layer(); + analyzeDigi(cell, energy, bh, depth, kount); } } } @@ -189,7 +190,7 @@ void HGCalBHValidation::analyzeDigi( hdi3Oc_->Fill(eta1, depth); ++kount; edm::LogVerbatim("HGCalValidation") - << "HGCalBHDigit[" << kount << "] ID " << cell << " E " << energy << ":" << (energy > threshold_); + << "HGCalBHDigit[" << kount << "] ID " << cell << " E " << energy << ":" << (energy > threshold_); } } } diff --git a/Validation/HGCalValidation/plugins/HGCalHitValidation.cc b/Validation/HGCalValidation/plugins/HGCalHitValidation.cc index 3054699f1a1ca..d8f76294093f0 100644 --- a/Validation/HGCalValidation/plugins/HGCalHitValidation.cc +++ b/Validation/HGCalValidation/plugins/HGCalHitValidation.cc @@ -117,16 +117,14 @@ HGCalHitValidation::~HGCalHitValidation() {} void HGCalHitValidation::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { edm::ParameterSetDescription desc; - std::vector source = {"HGCalEESensitive", - "HGCalHESiliconSensitive", - "HGCalHEScintillatorSensitive"}; + std::vector source = {"HGCalEESensitive", "HGCalHESiliconSensitive", "HGCalHEScintillatorSensitive"}; desc.add>("geometrySource", source); - desc.add("eeSimHitSource", edm::InputTag("g4SimHits","HGCHitsEE")); - desc.add("fhSimHitSource", edm::InputTag("g4SimHits","HGCHitsHEfront")); - desc.add("bhSimHitSource", edm::InputTag("g4SimHits","HGCHitsHEback")); - desc.add("eeRecHitSource", edm::InputTag("HGCalRecHit","HGCEERecHits")); - desc.add("fhRecHitSource", edm::InputTag("HGCalRecHit","HGCHEFRecHits")); - desc.add("bhRecHitSource", edm::InputTag("HGCalRecHit","HGCHEBRecHits")); + desc.add("eeSimHitSource", edm::InputTag("g4SimHits", "HGCHitsEE")); + desc.add("fhSimHitSource", edm::InputTag("g4SimHits", "HGCHitsHEfront")); + desc.add("bhSimHitSource", edm::InputTag("g4SimHits", "HGCHitsHEback")); + desc.add("eeRecHitSource", edm::InputTag("HGCalRecHit", "HGCEERecHits")); + desc.add("fhRecHitSource", edm::InputTag("HGCalRecHit", "HGCHEFRecHits")); + desc.add("bhRecHitSource", edm::InputTag("HGCalRecHit", "HGCHEBRecHits")); std::vector dummy; desc.add>("ietaExcludeBH", dummy); descriptions.add("hgcalHitValidation", desc); @@ -164,7 +162,7 @@ void HGCalHitValidation::bookHistograms(DQMStore::IBooker& iB, edm::Run const&, hefEnRec = iB.book1D("hefEnRec", "", 1000, 0, 10); hefEnSim = iB.book1D("hefEnSim", "", 1000, 0, 0.01); hefEnSimRec = iB.book2D("hefEnSimRec", "", 200, 0, 0.001, 200, 0, 0.5); - + hebEnRec = iB.book1D("hebEnRec", "", 1000, 0, 15); hebEnSim = iB.book1D("hebEnSim", "", 1000, 0, 0.01); hebEnSimRec = iB.book2D("hebEnSimRec", "", 200, 0, 0.02, 200, 0, 4); @@ -196,7 +194,7 @@ void HGCalHitValidation::analyze(const edm::Event& iEvent, const edm::EventSetup //Accesing ee simhits edm::Handle> eeSimHits; iEvent.getByToken(eeSimHitToken_, eeSimHits); - + if (eeSimHits.isValid()) { analyzeHGCalSimHit(eeSimHits, 0, heeEnSim, eeHitRefs); #ifdef EDM_ML_DEBUG @@ -210,7 +208,7 @@ void HGCalHitValidation::analyze(const edm::Event& iEvent, const edm::EventSetup } else { edm::LogVerbatim("HGCalValid") << "No EE SimHit Found "; } - + //Accesing fh simhits edm::Handle> fhSimHits; iEvent.getByToken(fhSimHitToken_, fhSimHits); @@ -227,7 +225,7 @@ void HGCalHitValidation::analyze(const edm::Event& iEvent, const edm::EventSetup } else { edm::LogVerbatim("HGCalValid") << "No FH SimHit Found "; } - + //Accessing bh simhits edm::Handle> bhSimHits; iEvent.getByToken(bhSimHitToken_, bhSimHits); @@ -274,7 +272,7 @@ void HGCalHitValidation::analyze(const edm::Event& iEvent, const edm::EventSetup } else { edm::LogVerbatim("HGCalValid") << "No EE RecHit Found "; } - + //accessing FH Rechit information edm::Handle fhRecHit; iEvent.getByToken(fhRecHitToken_, fhRecHit); @@ -286,7 +284,7 @@ void HGCalHitValidation::analyze(const edm::Event& iEvent, const edm::EventSetup std::map::const_iterator itr = fhHitRefs.find(it->id().rawId()); if (itr != fhHitRefs.end()) { GlobalPoint xyz = hgcGeometry_[1]->getPosition(it->id()); - + hefRecVsSimX->Fill(std::get<1>(itr->second), xyz.x()); hefRecVsSimY->Fill(std::get<2>(itr->second), xyz.y()); hefRecVsSimZ->Fill(std::get<3>(itr->second), xyz.z()); @@ -305,7 +303,7 @@ void HGCalHitValidation::analyze(const edm::Event& iEvent, const edm::EventSetup } else { edm::LogVerbatim("HGCalValid") << "No FH RecHit Found "; } - + //accessing BH Rechit information edm::Handle bhRecHit; iEvent.getByToken(bhRecHitToken_, bhRecHit); @@ -329,7 +327,7 @@ void HGCalHitValidation::analyze(const edm::Event& iEvent, const edm::EventSetup hebdPhiVsPhi->Fill(std::get<2>(itr->second), (ang3 - std::get<2>(itr->second))); hebdzVsZ->Fill(std::get<3>(itr->second), (xyz.z() - std::get<3>(itr->second))); hebEnSimRec->Fill(std::get<0>(itr->second), energy); - + #ifdef EDM_ML_DEBUG edm::LogInfo("HGCalValid") << "BHHit: " << std::hex << id.rawId() << std::dec << " Sim (" << std::get<0>(itr->second) << ", " << std::get<1>(itr->second) << ", " From 10868c043078840f605c274dc09f61e9178fbf67 Mon Sep 17 00:00:00 2001 From: Sunanda Date: Tue, 4 May 2021 00:08:00 +0200 Subject: [PATCH 3/5] Use ESGetToken --- .../HGCalValidation/plugins/HGCalHitValidation.cc | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/Validation/HGCalValidation/plugins/HGCalHitValidation.cc b/Validation/HGCalValidation/plugins/HGCalHitValidation.cc index d8f76294093f0..42abd34ea7e75 100644 --- a/Validation/HGCalValidation/plugins/HGCalHitValidation.cc +++ b/Validation/HGCalValidation/plugins/HGCalHitValidation.cc @@ -80,6 +80,8 @@ class HGCalHitValidation : public DQMEDAnalyzer { edm::EDGetTokenT eeRecHitToken_; edm::EDGetTokenT fhRecHitToken_; edm::EDGetTokenT bhRecHitToken_; + std::vector> tok_ddd_; + std::vector> tok_geom_; //histogram related stuff MonitorElement *heedzVsZ, *heedyVsY, *heedxVsX; @@ -106,6 +108,11 @@ HGCalHitValidation::HGCalHitValidation(const edm::ParameterSet& cfg) { bhRecHitToken_ = consumes(cfg.getParameter("bhRecHitSource")); ietaExcludeBH_ = cfg.getParameter>("ietaExcludeBH"); + for (const auto& name : geometrySource_) { + tok_ddd_.emplace_back(esConsumes(edm::ESInputTag{"", name})); + tok_geom_.emplace_back(esConsumes(edm::ESInputTag{"", name})); + } + #ifdef EDM_ML_DEBUG edm::LogInfo("HGCalValid") << "Exclude the following " << ietaExcludeBH_.size() << " ieta values from BH plots"; for (unsigned int k = 0; k < ietaExcludeBH_.size(); ++k) @@ -171,15 +178,13 @@ void HGCalHitValidation::bookHistograms(DQMStore::IBooker& iB, edm::Run const&, void HGCalHitValidation::dqmBeginRun(edm::Run const& iRun, edm::EventSetup const& iSetup) { //initiating hgc Geometry for (size_t i = 0; i < geometrySource_.size(); i++) { - edm::ESHandle hgcCons; - iSetup.get().get(geometrySource_[i], hgcCons); + edm::ESHandle hgcCons= iSetup.getHandle(tok_ddd_[i]); if (hgcCons.isValid()) { hgcCons_.push_back(hgcCons.product()); } else { edm::LogWarning("HGCalValid") << "Cannot initiate HGCalDDDConstants for " << geometrySource_[i] << std::endl; } - edm::ESHandle hgcGeom; - iSetup.get().get(geometrySource_[i], hgcGeom); + edm::ESHandle hgcGeom = iSetup.getHandle(tok_geom_[i]); if (hgcGeom.isValid()) { hgcGeometry_.push_back(hgcGeom.product()); } else { From b6c494518693a60cb9fd7e234a96ab3e9c707741 Mon Sep 17 00:00:00 2001 From: Sunanda Date: Tue, 4 May 2021 00:15:37 +0200 Subject: [PATCH 4/5] Code check --- Validation/HGCalValidation/plugins/HGCalHitValidation.cc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Validation/HGCalValidation/plugins/HGCalHitValidation.cc b/Validation/HGCalValidation/plugins/HGCalHitValidation.cc index 42abd34ea7e75..9fa1d203597b6 100644 --- a/Validation/HGCalValidation/plugins/HGCalHitValidation.cc +++ b/Validation/HGCalValidation/plugins/HGCalHitValidation.cc @@ -109,8 +109,10 @@ HGCalHitValidation::HGCalHitValidation(const edm::ParameterSet& cfg) { ietaExcludeBH_ = cfg.getParameter>("ietaExcludeBH"); for (const auto& name : geometrySource_) { - tok_ddd_.emplace_back(esConsumes(edm::ESInputTag{"", name})); - tok_geom_.emplace_back(esConsumes(edm::ESInputTag{"", name})); + tok_ddd_.emplace_back( + esConsumes(edm::ESInputTag{"", name})); + tok_geom_.emplace_back( + esConsumes(edm::ESInputTag{"", name})); } #ifdef EDM_ML_DEBUG @@ -178,7 +180,7 @@ void HGCalHitValidation::bookHistograms(DQMStore::IBooker& iB, edm::Run const&, void HGCalHitValidation::dqmBeginRun(edm::Run const& iRun, edm::EventSetup const& iSetup) { //initiating hgc Geometry for (size_t i = 0; i < geometrySource_.size(); i++) { - edm::ESHandle hgcCons= iSetup.getHandle(tok_ddd_[i]); + edm::ESHandle hgcCons = iSetup.getHandle(tok_ddd_[i]); if (hgcCons.isValid()) { hgcCons_.push_back(hgcCons.product()); } else { From 31af37af8878f2eeae04dda04445df6726cdd236 Mon Sep 17 00:00:00 2001 From: Sunanda Date: Tue, 4 May 2021 00:58:35 +0200 Subject: [PATCH 5/5] Update Validation/Configuration/python/hgcalSimValid_cff.py --- Validation/Configuration/python/hgcalSimValid_cff.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Validation/Configuration/python/hgcalSimValid_cff.py b/Validation/Configuration/python/hgcalSimValid_cff.py index 3ac4142386bb0..680caacb61ff6 100644 --- a/Validation/Configuration/python/hgcalSimValid_cff.py +++ b/Validation/Configuration/python/hgcalSimValid_cff.py @@ -9,7 +9,7 @@ from Validation.HGCalValidation.simhitValidation_cff import * from Validation.HGCalValidation.digiValidation_cff import * from Validation.HGCalValidation.rechitValidation_cff import * -from Validation.HGCalValidation.hgcalHitValidation_cfi import * +from Validation.HGCalValidation.hgcalHitValidation_cff import * from RecoHGCal.TICL.SimTracksters_cff import * from Validation.HGCalValidation.HGCalValidator_cfi import hgcalValidator