00001 #ifndef MuonNumbering_DTNumberingScheme_h 00002 #define MuonNumbering_DTNumberingScheme_h 00003 00015 #include "Geometry/MuonNumbering/interface/MuonNumberingScheme.h" 00016 00017 class MuonBaseNumber; 00018 class MuBarDetBuilder; 00019 class DDCompactView; 00020 class MuonDDDConstants; 00021 00022 class DTNumberingScheme : public MuonNumberingScheme { 00023 public: 00024 00025 DTNumberingScheme( const DDCompactView& cpv ); 00026 DTNumberingScheme( const MuonDDDConstants& muonConstants ); 00027 ~DTNumberingScheme(){} 00028 00029 virtual int baseNumberToUnitNumber(const MuonBaseNumber num); 00030 00031 int getDetId(const MuonBaseNumber num) const; 00032 00033 private: 00034 00035 void initMe ( const MuonDDDConstants& muonConstants ); 00036 // Decode MuonBaseNumber to id: no checking 00037 void decode(const MuonBaseNumber& num, 00038 int& wire_id, 00039 int& layer_id, 00040 int& superlayer_id, 00041 int& sector_id, 00042 int& station_id, 00043 int& wheel_id 00044 ) const; 00045 00046 int theRegionLevel; 00047 int theWheelLevel; 00048 int theStationLevel; 00049 int theSuperLayerLevel; 00050 int theLayerLevel; 00051 int theWireLevel; 00052 00055 friend class DTGeometryBuilderFromDDD; 00056 friend class DTGeometryParserFromDDD; 00057 }; 00058 00059 #endif