Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-03-17 10:50:42

0001 #ifndef MuonDetId_DTSuperLayerId_H
0002 #define MuonDetId_DTSuperLayerId_H
0003 
0004 /** \class DTSuperLayerId
0005  *  DetUnit identifier for DT SuperLayers (SL)
0006  *
0007  *  \author G. Cerminara - INFN Torino
0008  */
0009 
0010 #include <DataFormats/MuonDetId/interface/DTChamberId.h>
0011 
0012 class DTSuperLayerId : public DTChamberId {
0013 public:
0014   /// Default constructor. It fills the common part in the base
0015   /// and leaves 0 in all other fields
0016   DTSuperLayerId();
0017 
0018   /// Construct from a packed id.
0019   /// It is required that the packed id represents a valid DT DetId
0020   /// (proper Detector and  SubDet fields), otherwise an exception is thrown.
0021   /// Any bits outside the DTSuperLayerId fields are zeroed; apart for
0022   /// this, no check is done on the vaildity of the values.
0023   explicit DTSuperLayerId(uint32_t id);
0024 
0025   /// Construct from indexes.
0026   /// Input values are required to be within legal ranges, otherwise an
0027   /// exception is thrown.
0028   DTSuperLayerId(int wheel, int station, int sector, int superlayer);
0029 
0030   /// Copy Constructor.
0031   /// Any bits outside the DTChamberId fields are zeroed; apart for
0032   /// this, no check is done on the vaildity of the values.
0033   DTSuperLayerId(const DTSuperLayerId& slId);
0034 
0035   /// Constructor from a DTChamberId and SL number.
0036   DTSuperLayerId(const DTChamberId& chId, int superlayer);
0037 
0038   /// Return the superlayer number
0039   int superLayer() const { return ((id_ >> slayerStartBit_) & slMask_); }
0040 
0041   /// Return the superlayer number (deprecated method name)
0042   int superlayer() const { return superLayer(); }
0043 
0044   /// Return the corresponding ChamberId
0045   DTChamberId chamberId() const { return DTChamberId(id_ & chamberIdMask_); }
0046 
0047 private:
0048 };
0049 
0050 std::ostream& operator<<(std::ostream& os, const DTSuperLayerId& id);
0051 
0052 #endif