CMS 3D CMS Logo

MuonDetLayerGeometryESProducer.cc
Go to the documentation of this file.
1 
11 
17 
23 
26 
29 
30 #include <memory>
31 
32 using namespace edm;
33 
35  setWhatProduced(this);
36 }
37 
38 
40 
41 
42 std::shared_ptr<MuonDetLayerGeometry>
44 
45  const std::string metname = "Muon|RecoMuon|RecoMuonDetLayers|MuonDetLayerGeometryESProducer";
46  MuonDetLayerGeometry* muonDetLayerGeometry = new MuonDetLayerGeometry();
47 
48  // Build DT layers
50  record.getRecord<MuonGeometryRecord>().get(dt);
51  if (dt.isValid()) {
52  muonDetLayerGeometry->addDTLayers(MuonDTDetLayerGeometryBuilder::buildLayers(*dt));
53  } else {
54  LogInfo(metname) << "No DT geometry is available.";
55  }
56 
57  // Build CSC layers
59  record.getRecord<MuonGeometryRecord>().get(csc);
60  if (csc.isValid()) {
61  muonDetLayerGeometry->addCSCLayers(MuonCSCDetLayerGeometryBuilder::buildLayers(*csc));
62  } else {
63  LogInfo(metname) << "No CSC geometry is available.";
64  }
65 
66  // Build GEM layers
68  record.getRecord<MuonGeometryRecord>().get(gem);
69  if (gem.isValid()) {
71  } else {
72  LogInfo(metname) << "No GEM geometry is available.";
73  }
74 
75  // Build ME0 layers
77  record.getRecord<MuonGeometryRecord>().get(me0);
78  if (me0.isValid()) {
80  } else {
81  LogDebug(metname) << "No ME0 geometry is available.";
82  }
83 
84 
85  // Build RPC layers
87  record.getRecord<MuonGeometryRecord>().get(rpc);
88  if (rpc.isValid()) {
90  } else {
91  LogInfo(metname) << "No RPC geometry is available.";
92  }
93 
94 
95  // Sort layers properly
96  muonDetLayerGeometry->sortLayers();
97 
98  return std::shared_ptr<MuonDetLayerGeometry>(muonDetLayerGeometry);
99 }
#define LogDebug(id)
float dt
Definition: AMPTWrapper.h:126
std::shared_ptr< MuonDetLayerGeometry > produce(const MuonRecoGeometryRecord &record)
Produce MuonDeLayerGeometry.
void addME0Layers(const std::pair< std::vector< DetLayer * >, std::vector< DetLayer * > > &gemlayers)
JetCorrectorParameters::Record record
Definition: classes.h:7
const std::string metname
void addDTLayers(const std::vector< DetLayer * > &dtlayers)
static std::pair< std::vector< DetLayer * >, std::vector< DetLayer * > > buildLayers(const CSCGeometry &geo)
static std::vector< DetLayer * > buildLayers(const DTGeometry &geo)
Operations.
void addGEMLayers(const std::pair< std::vector< DetLayer * >, std::vector< DetLayer * > > &gemlayers)
~MuonDetLayerGeometryESProducer() override
Destructor.
static std::pair< std::vector< DetLayer * >, std::vector< DetLayer * > > buildEndcapLayers(const ME0Geometry &geo)
static std::pair< std::vector< DetLayer * >, std::vector< DetLayer * > > buildEndcapLayers(const RPCGeometry &geo)
void addRPCLayers(const std::vector< DetLayer * > &barrelRPCLayers, const std::pair< std::vector< DetLayer * >, std::vector< DetLayer * > > &endcapRPCLayers)
HLT enums.
MuonDetLayerGeometryESProducer(const edm::ParameterSet &p)
Constructor.
bool isValid() const
Definition: ESHandle.h:47
void addCSCLayers(const std::pair< std::vector< DetLayer * >, std::vector< DetLayer * > > &csclayers)
static std::pair< std::vector< DetLayer * >, std::vector< DetLayer * > > buildEndcapLayers(const GEMGeometry &geo)
static std::vector< DetLayer * > buildBarrelLayers(const RPCGeometry &geo)
Builds the barrel layers. Result vector is sorted inside-out.