Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:15:18

0001 #ifndef Geometry_MuonNumbering_DTNumberingScheme_h
0002 #define Geometry_MuonNumbering_DTNumberingScheme_h
0003 
0004 /** \class DTNumberingScheme
0005  *
0006  * implementation of MuonNumberingScheme for muon barrel,
0007  * converts the MuonBaseNumber to a unit id
0008  *  
0009  * Original \author Arno Straessner, CERN <arno.straessner@cern.ch>
0010  *         Modified by Sunanda B. in different PRs (the last one is #30971)
0011  *
0012  */
0013 
0014 #include "Geometry/MuonNumbering/interface/MuonNumberingScheme.h"
0015 
0016 class MuonBaseNumber;
0017 class MuBarDetBuilder;
0018 class MuonGeometryConstants;
0019 
0020 class DTNumberingScheme : public MuonNumberingScheme {
0021 public:
0022   DTNumberingScheme(const MuonGeometryConstants& muonConstants);
0023   ~DTNumberingScheme() override {}
0024 
0025   int baseNumberToUnitNumber(const MuonBaseNumber& num) const override;
0026 
0027   int getDetId(const MuonBaseNumber& num) const;
0028 
0029 private:
0030   void initMe(const MuonGeometryConstants& muonConstants);
0031   // Decode MuonBaseNumber to id: no checking
0032   void decode(const MuonBaseNumber& num,
0033               int& wire_id,
0034               int& layer_id,
0035               int& superlayer_id,
0036               int& sector_id,
0037               int& station_id,
0038               int& wheel_id) const;
0039 
0040   int theRegionLevel;
0041   int theWheelLevel;
0042   int theStationLevel;
0043   int theSuperLayerLevel;
0044   int theLayerLevel;
0045   int theWireLevel;
0046 
0047   /** Same as BaseNumberToUnitNumber but w/o check: used by MuBarDetBuilder
0048    * class to build the geometry from DDD */
0049   friend class DTGeometryBuilderFromDDD;
0050   friend class DTGeometryParserFromDDD;
0051 };
0052 
0053 #endif