Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:14:41

0001 #ifndef GlobalTrackingGeometryBuilder_GlobalTrackingGeometryESProducer_h
0002 #define GlobalTrackingGeometryBuilder_GlobalTrackingGeometryESProducer_h
0003 
0004 /** \class GlobalTrackingGeometry
0005  * 
0006  *  ESProducer for GlobalTrackingGeometry in MuonGeometryRecord
0007  *
0008  *  \author Matteo Sani
0009  */
0010 
0011 #include "FWCore/Framework/interface/ESProducer.h"
0012 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0013 #include "Geometry/Records/interface/GlobalTrackingGeometryRecord.h"
0014 
0015 #include <memory>
0016 #include <string>
0017 
0018 class GlobalTrackingGeometry;
0019 class TrackerGeometry;
0020 class MTDGeometry;
0021 class DTGeometry;
0022 class CSCGeometry;
0023 class RPCGeometry;
0024 class GEMGeometry;
0025 class ME0Geometry;
0026 class TrackerDigiGeometryRecord;
0027 class MTDDigiGeometryRecord;
0028 class MuonGeometryRecord;
0029 
0030 class GlobalTrackingGeometryESProducer : public edm::ESProducer {
0031 public:
0032   /// Constructor
0033   GlobalTrackingGeometryESProducer(const edm::ParameterSet& p);
0034 
0035   /// Destructor
0036   ~GlobalTrackingGeometryESProducer() override;
0037 
0038   /// Produce GlobalTrackingGeometry
0039   std::unique_ptr<GlobalTrackingGeometry> produce(const GlobalTrackingGeometryRecord& record);
0040 
0041 private:
0042   edm::ESGetToken<TrackerGeometry, TrackerDigiGeometryRecord> trackerToken_;
0043   edm::ESGetToken<MTDGeometry, MTDDigiGeometryRecord> mtdToken_;
0044   edm::ESGetToken<DTGeometry, MuonGeometryRecord> dtToken_;
0045   edm::ESGetToken<CSCGeometry, MuonGeometryRecord> cscToken_;
0046   edm::ESGetToken<RPCGeometry, MuonGeometryRecord> rpcToken_;
0047   edm::ESGetToken<GEMGeometry, MuonGeometryRecord> gemToken_;
0048   edm::ESGetToken<ME0Geometry, MuonGeometryRecord> me0Token_;
0049 };
0050 #endif