CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions
MuonDetLayerGeometryESProducer Class Reference

#include <MuonDetLayerGeometryESProducer.h>

Inheritance diagram for MuonDetLayerGeometryESProducer:
edm::ESProducer edm::ESProxyFactoryProducer edm::eventsetup::DataProxyProvider

Public Member Functions

 MuonDetLayerGeometryESProducer (const edm::ParameterSet &p)
 Constructor. More...
 
boost::shared_ptr
< MuonDetLayerGeometry
produce (const MuonRecoGeometryRecord &record)
 Produce MuonDeLayerGeometry. More...
 
virtual ~MuonDetLayerGeometryESProducer ()
 Destructor. More...
 
- Public Member Functions inherited from edm::ESProducer
 ESProducer ()
 
virtual ~ESProducer ()
 
- Public Member Functions inherited from edm::ESProxyFactoryProducer
 ESProxyFactoryProducer ()
 
virtual void newInterval (const eventsetup::EventSetupRecordKey &iRecordType, const ValidityInterval &iInterval)
 overrides DataProxyProvider method More...
 
virtual ~ESProxyFactoryProducer ()
 
- Public Member Functions inherited from edm::eventsetup::DataProxyProvider
 DataProxyProvider ()
 
const ComponentDescriptiondescription () const
 
bool isUsingRecord (const EventSetupRecordKey &) const
 
const KeyedProxieskeyedProxies (const EventSetupRecordKey &iRecordKey) const
 
void resetProxies (const EventSetupRecordKey &iRecordType)
 
void resetProxiesIfTransient (const EventSetupRecordKey &iRecordType)
 
void setAppendToDataLabel (const edm::ParameterSet &)
 
void setDescription (const ComponentDescription &iDescription)
 
std::set< EventSetupRecordKeyusingRecords () const
 
virtual ~DataProxyProvider ()
 

Additional Inherited Members

- Public Types inherited from edm::eventsetup::DataProxyProvider
typedef std::vector< std::pair
< DataKey,
edm::propagate_const
< std::shared_ptr< DataProxy > > > > 
KeyedProxies
 
typedef std::vector
< EventSetupRecordKey
Keys
 
typedef std::map
< EventSetupRecordKey,
KeyedProxies
RecordProxies
 
- Static Public Member Functions inherited from edm::eventsetup::DataProxyProvider
static void prevalidate (ConfigurationDescriptions &)
 
- Protected Member Functions inherited from edm::ESProducer
template<typename T >
void setWhatProduced (T *iThis, const es::Label &iLabel=es::Label())
 
template<typename T >
void setWhatProduced (T *iThis, const char *iLabel)
 
template<typename T >
void setWhatProduced (T *iThis, const std::string &iLabel)
 
template<typename T , typename TDecorator >
void setWhatProduced (T *iThis, const TDecorator &iDec, const es::Label &iLabel=es::Label())
 
template<typename T , typename TReturn , typename TRecord >
void setWhatProduced (T *iThis, TReturn(T::*iMethod)(const TRecord &), const es::Label &iLabel=es::Label())
 
template<typename T , typename TReturn , typename TRecord , typename TArg >
void setWhatProduced (T *iThis, TReturn(T::*iMethod)(const TRecord &), const TArg &iDec, const es::Label &iLabel=es::Label())
 
- Protected Member Functions inherited from edm::ESProxyFactoryProducer
template<class TFactory >
void registerFactory (std::auto_ptr< TFactory > iFactory, const std::string &iLabel=std::string())
 
virtual void registerFactoryWithKey (const eventsetup::EventSetupRecordKey &iRecord, std::auto_ptr< eventsetup::ProxyFactoryBase > &iFactory, const std::string &iLabel=std::string())
 
virtual void registerProxies (const eventsetup::EventSetupRecordKey &iRecord, KeyedProxies &aProxyList)
 override DataProxyProvider method More...
 
- Protected Member Functions inherited from edm::eventsetup::DataProxyProvider
void eraseAll (const EventSetupRecordKey &iRecordKey)
 deletes all the Proxies in aStream More...
 
void invalidateProxies (const EventSetupRecordKey &iRecordKey)
 
template<class T >
void usingRecord ()
 
void usingRecordWithKey (const EventSetupRecordKey &)
 

Detailed Description

Definition at line 18 of file MuonDetLayerGeometryESProducer.h.

Constructor & Destructor Documentation

MuonDetLayerGeometryESProducer::MuonDetLayerGeometryESProducer ( const edm::ParameterSet p)

Constructor.

Definition at line 34 of file MuonDetLayerGeometryESProducer.cc.

34  {
35  setWhatProduced(this);
36 }
void setWhatProduced(T *iThis, const es::Label &iLabel=es::Label())
Definition: ESProducer.h:115
MuonDetLayerGeometryESProducer::~MuonDetLayerGeometryESProducer ( )
virtual

Destructor.

Definition at line 39 of file MuonDetLayerGeometryESProducer.cc.

39 {}

Member Function Documentation

boost::shared_ptr< MuonDetLayerGeometry > MuonDetLayerGeometryESProducer::produce ( const MuonRecoGeometryRecord record)

Produce MuonDeLayerGeometry.

Definition at line 43 of file MuonDetLayerGeometryESProducer.cc.

References MuonDetLayerGeometry::addCSCLayers(), MuonDetLayerGeometry::addDTLayers(), MuonDetLayerGeometry::addGEMLayers(), MuonDetLayerGeometry::addME0Layers(), MuonDetLayerGeometry::addRPCLayers(), MuonRPCDetLayerGeometryBuilder::buildBarrelLayers(), MuonRPCDetLayerGeometryBuilder::buildEndcapLayers(), MuonGEMDetLayerGeometryBuilder::buildEndcapLayers(), MuonME0DetLayerGeometryBuilder::buildEndcapLayers(), MuonCSCDetLayerGeometryBuilder::buildLayers(), MuonDTDetLayerGeometryBuilder::buildLayers(), dt, edm::eventsetup::DependentRecordImplementation< RecordT, ListT >::getRecord(), edm::ESHandleBase::isValid(), LogDebug, metname, MuonDetLayerGeometry::sortLayers(), and AlCaHLTBitMon_QueryRunRegistry::string.

43  {
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 boost::shared_ptr<MuonDetLayerGeometry>(muonDetLayerGeometry);
99 }
#define LogDebug(id)
float dt
Definition: AMPTWrapper.h:126
void addME0Layers(const std::pair< std::vector< DetLayer * >, std::vector< DetLayer * > > &gemlayers)
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)
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)
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.