CMS 3D CMS Logo

GlobalDetLayerGeometryESProducer.cc
Go to the documentation of this file.
2 
7 
8 #include <memory>
9 #include <string>
10 
11 using namespace edm;
12 
14  std::string myName = p.getParameter<std::string>("ComponentName");
15  setWhatProduced(this, myName).setConsumes(trackerToken_).setConsumes(muonToken_).setConsumes(mtdToken_);
16 }
17 
19 
20 std::unique_ptr<DetLayerGeometry> GlobalDetLayerGeometryESProducer::produce(const RecoGeometryRecord& iRecord) {
21  auto const& tracker = iRecord.get(trackerToken_);
22  auto const& muon = iRecord.get(muonToken_);
24 
25  // get the MTD if it is available
26  if (auto mtdRecord = iRecord.tryToGetRecord<MTDRecoGeometryRecord>()) {
27  mtd = mtdRecord->getHandle(mtdToken_);
28  if (!mtd.isValid()) {
29  LogInfo("GlobalDetLayergGeometryBuilder") << "No MTD geometry is available.";
30  }
31  } else {
32  LogInfo("GlobalDetLayerGeometryBuilder") << "No MTDDigiGeometryRecord is available.";
33  }
34 
35  // if we've got MTD initialize it
36  if (mtd.isValid())
37  return std::make_unique<GlobalDetLayerGeometry>(&tracker, &muon, mtd.product());
38 
39  return std::make_unique<GlobalDetLayerGeometry>(&tracker, &muon);
40 }
41 
T getParameter(std::string const &) const
ProductT const & get(ESGetToken< ProductT, DepRecordT > const &iToken) const
GlobalDetLayerGeometryESProducer(const edm::ParameterSet &p)
#define DEFINE_FWK_EVENTSETUP_MODULE(type)
Definition: ModuleFactory.h:60
HLT enums.
bool isValid() const
Definition: ESHandle.h:44
std::unique_ptr< DetLayerGeometry > produce(const RecoGeometryRecord &)
T const * product() const
Definition: ESHandle.h:86