Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-09-07 04:36:27

0001 // -*- C++ -*-
0002 //
0003 // Package:    CaloGeometryBuilder
0004 // Class:      CaloGeometryBuilder
0005 //
0006 /**\class CaloGeometryBuilder CaloGeometryBuilder.h tmp/CaloGeometryBuilder/interface/CaloGeometryBuilder.h
0007 
0008  Description: <one line class summary>
0009 
0010  Implementation:
0011      <Notes on implementation>
0012 */
0013 //
0014 // Original Author:  Jeremiah Mans
0015 //         Created:  Mon Oct  3 11:35:27 CDT 2005
0016 //
0017 //
0018 
0019 // system include files
0020 #include <memory>
0021 
0022 // user include files
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 // class decleration
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   // ----------member data ---------------------------
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 };