File indexing completed on 2024-09-07 04:36:27
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020 #include <memory>
0021
0022
0023 #include "FWCore/Framework/interface/ESProducer.h"
0024
0025 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0026 #include "FWCore/Utilities/interface/ESGetToken.h"
0027 #include "Geometry/Records/interface/IdealGeometryRecord.h"
0028 #include "Geometry/Records/interface/CaloGeometryRecord.h"
0029 #include "Geometry/Records/interface/HcalGeometryRecord.h"
0030 #include "Geometry/CaloGeometry/interface/CaloGeometry.h"
0031 #include "Geometry/HGCalGeometry/interface/HGCalGeometry.h"
0032
0033
0034
0035
0036
0037 class CaloGeometryBuilder : public edm::ESProducer {
0038 public:
0039 using ReturnType = std::unique_ptr<CaloGeometry>;
0040
0041 CaloGeometryBuilder(const edm::ParameterSet& iConfig);
0042
0043 ~CaloGeometryBuilder() override {}
0044
0045 ReturnType produceAligned(const CaloGeometryRecord& iRecord);
0046
0047 private:
0048
0049
0050 edm::ESGetToken<CaloSubdetectorGeometry, HcalGeometryRecord> hcalToken_;
0051 edm::ESGetToken<CaloSubdetectorGeometry, ZDCGeometryRecord> zdcToken_;
0052 edm::ESGetToken<CaloSubdetectorGeometry, CastorGeometryRecord> castorToken_;
0053 edm::ESGetToken<CaloSubdetectorGeometry, EcalBarrelGeometryRecord> ecalBarrelToken_;
0054 edm::ESGetToken<CaloSubdetectorGeometry, EcalEndcapGeometryRecord> ecalEndcapToken_;
0055 edm::ESGetToken<CaloSubdetectorGeometry, EcalPreshowerGeometryRecord> ecalPreshowerToken_;
0056 edm::ESGetToken<CaloSubdetectorGeometry, CaloTowerGeometryRecord> caloTowerToken_;
0057 std::vector<std::pair<edm::ESGetToken<HGCalGeometry, IdealGeometryRecord>, std::string>> hgcalTokens_;
0058 };