00001 #ifndef CSCGeometryBuilder_CSCGeometryESModule_h 00002 #define CSCGeometryBuilder_CSCGeometryESModule_h 00003 00011 #include <FWCore/Framework/interface/ESProducer.h> 00012 #include <FWCore/ParameterSet/interface/ParameterSet.h> 00013 #include <Geometry/Records/interface/MuonGeometryRecord.h> 00014 #include <Geometry/CSCGeometry/interface/CSCGeometry.h> 00015 #include <boost/shared_ptr.hpp> 00016 00017 #include <string> 00018 00019 class CSCGeometryESModule : public edm::ESProducer { 00020 public: 00022 CSCGeometryESModule(const edm::ParameterSet& p); 00023 00025 virtual ~CSCGeometryESModule(); 00026 00028 boost::shared_ptr<CSCGeometry> produce(const MuonGeometryRecord& record); 00029 00030 private: 00031 00033 void geometryCallback_( const MuonNumberingRecord& ); 00034 boost::shared_ptr<CSCGeometry> cscGeometry; 00035 00036 // Flags for controlling geometry modelling during build of CSCGeometry 00037 bool useRealWireGeometry; 00038 bool useOnlyWiresInME1a; 00039 bool useGangedStripsInME1a; 00040 bool useCentreTIOffsets; 00041 bool debugV; 00042 bool applyAlignment_; // Switch to apply alignment corrections 00043 bool useDDD_; // whether to build from DDD or DB 00044 const std::string alignmentsLabel_; 00045 const std::string myLabel_; 00046 00047 }; 00048 #endif 00049 00050 00051 00052 00053 00054