File indexing completed on 2024-04-06 12:15:01
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020 #include "FWCore/Framework/interface/ESProducer.h"
0021 #include "FWCore/Framework/interface/ModuleFactory.h"
0022 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0023 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0024
0025 #include "Geometry/HGCalCommonData/interface/HGCalDDDConstants.h"
0026 #include "Geometry/HGCalCommonData/interface/HGCalParameters.h"
0027 #include "Geometry/Records/interface/IdealGeometryRecord.h"
0028
0029
0030
0031 class HGCalNumberingInitialization : public edm::ESProducer {
0032 public:
0033 HGCalNumberingInitialization(const edm::ParameterSet&);
0034 ~HGCalNumberingInitialization() override;
0035
0036 typedef std::unique_ptr<HGCalDDDConstants> ReturnType;
0037
0038 ReturnType produce(const IdealGeometryRecord&);
0039
0040 private:
0041 edm::ESGetToken<HGCalParameters, IdealGeometryRecord> hgParToken_;
0042 std::string name_;
0043 };
0044
0045 HGCalNumberingInitialization::HGCalNumberingInitialization(const edm::ParameterSet& iConfig) {
0046 name_ = iConfig.getUntrackedParameter<std::string>("Name");
0047 #ifdef EDM_ML_DEBUG
0048 edm::LogVerbatim("HGCalGeom") << "HGCalNumberingInitialization for " << name_;
0049 #endif
0050 auto cc = setWhatProduced(this, name_);
0051 hgParToken_ = cc.consumes<HGCalParameters>(edm::ESInputTag{"", name_});
0052 }
0053
0054 HGCalNumberingInitialization::~HGCalNumberingInitialization() {}
0055
0056
0057 HGCalNumberingInitialization::ReturnType HGCalNumberingInitialization::produce(const IdealGeometryRecord& iRecord) {
0058 #ifdef EDM_ML_DEBUG
0059 edm::LogVerbatim("HGCalGeom") << "in HGCalNumberingInitialization::produce for " << name_;
0060 #endif
0061 const auto& pHGpar = iRecord.get(hgParToken_);
0062 return std::make_unique<HGCalDDDConstants>(&pHGpar, name_);
0063 }
0064
0065
0066 DEFINE_FWK_EVENTSETUP_MODULE(HGCalNumberingInitialization);