/
githubmirror
/
cmssw
Обзор
Документация
Войти
/
githubmirror
/
cmssw
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Geometry/HGCalGeometry/plugins/HGCalGeometryESProducer.cc
86 строк
3 KB
Sunanda
Make use of fillDescrpton in defining the parameters in HGCalGeometryESProducer
14 май 2026, 07:03
14 май 2026, 07:03
19bdc8d
Код
Авторство
О чём код?
// -*- C++ -*- // // Package: HGCalGeometry // Class: HGCalGeometryESProducer // /**\class HGCalGeometryESProducer HGCalGeometryESProducer.h Description: <one line class summary> Implementation: <Notes on implementation> */ // // Original Author: Sunanda Banerjee // // // system include files #include <memory> // user include files #include "FWCore/Framework/interface/ModuleFactory.h" #include "FWCore/Framework/interface/ESProducer.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "Geometry/CaloGeometry/interface/CaloSubdetectorGeometry.h" #include "Geometry/CaloTopology/interface/HGCalTopology.h" #include "Geometry/HGCalGeometry/interface/HGCalGeometry.h" #include "Geometry/HGCalGeometry/interface/HGCalGeometryLoader.h" #include "Geometry/Records/interface/IdealGeometryRecord.h" #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" //#define EDM_ML_DEBUG // // class decleration // class HGCalGeometryESProducer : public edm::ESProducer { public: HGCalGeometryESProducer(const edm::ParameterSet& iP); ~HGCalGeometryESProducer() override; using ReturnType = std::unique_ptr<HGCalGeometry>; static void fillDescriptions(edm::ConfigurationDescriptions&); ReturnType produce(const IdealGeometryRecord&); private: // ----------member data --------------------------- edm::ESGetToken<HGCalTopology, IdealGeometryRecord> topologyToken_; std::string name_; }; HGCalGeometryESProducer::HGCalGeometryESProducer(const edm::ParameterSet& iConfig) { name_ = iConfig.getParameter<std::string>("name"); #ifdef EDM_ML_DEBUG edm::LogVerbatim("HGCalGeom") << "Constructing HGCalGeometry for " << name_; #endif auto cc = setWhatProduced(this, name_); topologyToken_ = cc.consumes<HGCalTopology>(edm::ESInputTag{"", name_}); } HGCalGeometryESProducer::~HGCalGeometryESProducer() {} // // member functions // void HGCalGeometryESProducer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { edm::ParameterSetDescription desc; desc.add<std::string>("name", "HGCalEESensitive"); descriptions.add("hgcalEEGeometryESProducer", desc); } // ------------ method called to produce the data ------------ HGCalGeometryESProducer::ReturnType HGCalGeometryESProducer::produce(const IdealGeometryRecord& iRecord) { const auto& topo = iRecord.get(topologyToken_); #ifdef EDM_ML_DEBUG edm::LogVerbatim("HGCalGeom") << "Create HGCalGeometry (*topo) for " << name_; #endif HGCalGeometryLoader builder; return ReturnType(builder.build(topo)); } DEFINE_FWK_EVENTSETUP_MODULE(HGCalGeometryESProducer);