File indexing completed on 2024-04-06 12:15:09
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019 #include <memory>
0020
0021
0022 #include "FWCore/Framework/interface/ModuleFactory.h"
0023 #include "FWCore/Framework/interface/ESProducer.h"
0024 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0025 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0026 #include "Geometry/CaloGeometry/interface/CaloSubdetectorGeometry.h"
0027 #include "Geometry/CaloTopology/interface/HGCalTBTopology.h"
0028 #include "Geometry/HGCalGeometry/interface/HGCalTBGeometry.h"
0029 #include "Geometry/HGCalGeometry/interface/HGCalTBGeometryLoader.h"
0030 #include "Geometry/Records/interface/IdealGeometryRecord.h"
0031
0032
0033
0034
0035
0036
0037
0038 class HGCalTBGeometryESProducer : public edm::ESProducer {
0039 public:
0040 HGCalTBGeometryESProducer(const edm::ParameterSet& iP);
0041 ~HGCalTBGeometryESProducer() override;
0042
0043 using ReturnType = std::unique_ptr<HGCalTBGeometry>;
0044
0045 ReturnType produce(const IdealGeometryRecord&);
0046
0047 private:
0048
0049 edm::ESGetToken<HGCalTBTopology, IdealGeometryRecord> topologyToken_;
0050 std::string name_;
0051 };
0052
0053 HGCalTBGeometryESProducer::HGCalTBGeometryESProducer(const edm::ParameterSet& iConfig) {
0054 name_ = iConfig.getUntrackedParameter<std::string>("Name");
0055 #ifdef EDM_ML_DEBUG
0056 edm::LogVerbatim("HGCalGeom") << "Constructing HGCalTBGeometry for " << name_;
0057 #endif
0058 auto cc = setWhatProduced(this, name_);
0059 topologyToken_ = cc.consumes<HGCalTBTopology>(edm::ESInputTag{"", name_});
0060 }
0061
0062 HGCalTBGeometryESProducer::~HGCalTBGeometryESProducer() {}
0063
0064
0065
0066
0067
0068
0069 HGCalTBGeometryESProducer::ReturnType HGCalTBGeometryESProducer::produce(const IdealGeometryRecord& iRecord) {
0070 const auto& topo = iRecord.get(topologyToken_);
0071 edm::LogVerbatim("HGCalGeom") << "Create HGCalTBGeometry (*topo) for " << name_;
0072
0073 HGCalTBGeometryLoader builder;
0074 return ReturnType(builder.build(topo));
0075 }
0076
0077 DEFINE_FWK_EVENTSETUP_MODULE(HGCalTBGeometryESProducer);