File indexing completed on 2024-04-06 12:14:14
0001 #include "Geometry/CaloEventSetup/plugins/CaloTopologyBuilder.h"
0002 #include "Geometry/CaloTopology/interface/CaloSubdetectorTopology.h"
0003 #include "Geometry/CaloTopology/interface/EcalBarrelTopology.h"
0004 #include "Geometry/CaloTopology/interface/EcalEndcapTopology.h"
0005 #include "Geometry/CaloTopology/interface/EcalPreshowerTopology.h"
0006 #include "DataFormats/EcalDetId/interface/EcalSubdetector.h"
0007
0008 CaloTopologyBuilder::CaloTopologyBuilder(const edm::ParameterSet& )
0009 : geometryToken_{setWhatProduced(this, &CaloTopologyBuilder::produceCalo)
0010 .consumesFrom<CaloGeometry, CaloGeometryRecord>(edm::ESInputTag{})} {}
0011
0012 CaloTopologyBuilder::~CaloTopologyBuilder() {}
0013
0014
0015
0016
0017
0018
0019 CaloTopologyBuilder::ReturnType CaloTopologyBuilder::produceCalo(const CaloTopologyRecord& iRecord) {
0020 const auto& geometry = iRecord.get(geometryToken_);
0021
0022 ReturnType ct = std::make_unique<CaloTopology>();
0023
0024 ct->setSubdetTopology(DetId::Ecal, EcalBarrel, std::make_unique<EcalBarrelTopology>(geometry));
0025 ct->setSubdetTopology(DetId::Ecal, EcalEndcap, std::make_unique<EcalEndcapTopology>(geometry));
0026 ct->setSubdetTopology(DetId::Ecal, EcalPreshower, std::make_unique<EcalPreshowerTopology>());
0027 return ct;
0028 }