CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_8_patch3/src/DataFormats/MuonDetId/interface/DTBtiId.h

Go to the documentation of this file.
00001 //-------------------------------------------------
00002 //
00008 //
00009 //--------------------------------------------------
00010 #ifndef DT_BTI_ID_H_
00011 #define DT_BTI_ID_H_
00012 
00013 //------------------------------------
00014 // Collaborating Class Declarations --
00015 //------------------------------------
00016 
00017 //----------------------
00018 // Base Class Headers --
00019 //----------------------
00020 #include "DataFormats/MuonDetId/interface/DTChamberId.h"
00021 #include "DataFormats/MuonDetId/interface/DTSuperLayerId.h"
00022 
00023 //---------------
00024 // C++ Headers --
00025 //---------------
00026 
00027 //              ---------------------
00028 //              -- Class Interface --
00029 //              ---------------------
00030 
00031 //typedef unsigned char myint8;
00032 class DTBtiId {
00033 
00034  public:
00035 
00037   DTBtiId() : _bti(0) {}
00038 
00040   DTBtiId(const DTSuperLayerId& mu_superlayer_id, 
00041                   const int bti_id) : _suplId(mu_superlayer_id),
00042                                          _bti(bti_id) {}
00043 
00045   DTBtiId(const DTChamberId& mu_stat_id, 
00046                   const int superlayer_id, 
00047                   const int bti_id) : _suplId(mu_stat_id,superlayer_id),
00048                                          _bti(bti_id) {}
00049 
00051   DTBtiId(const int wheel_id, 
00052                   const int station_id, 
00053                   const int sector_id, 
00054                   const int superlayer_id, 
00055                   const int bti_id) : 
00056                           _suplId(wheel_id,station_id,sector_id,superlayer_id),
00057                           _bti(bti_id) {}
00058   
00060   DTBtiId(const DTBtiId& btiId) :
00061                                    _suplId(btiId._suplId), _bti(btiId._bti) {}
00062  
00064   virtual ~DTBtiId() {}
00065 
00067   inline int wheel()      const { return _suplId.wheel(); }
00069   inline int station()    const { return _suplId.station(); }
00071   inline int sector()     const { return _suplId.sector(); }
00073   inline int superlayer() const { return _suplId.superlayer(); }
00075   inline int bti()        const { return _bti; }
00077   inline DTSuperLayerId SLId() const { return _suplId; }
00078 
00079   bool operator == ( const DTBtiId& id) const { 
00080     if ( wheel()!=id.wheel()) return false;
00081     if ( sector()!=id.sector())return false;
00082     if ( station()!=id.station())return false;
00083     if ( superlayer()!=id.superlayer())return false;
00084     if ( _bti!=id.bti())return false;
00085     return true;
00086   }
00087 
00088   bool operator <  ( const DTBtiId& id) const { 
00089     if ( wheel()       < id.wheel()      ) return true;
00090     if ( wheel()       > id.wheel()      ) return false;
00091   
00092     if ( station()     < id.station()    ) return true;
00093     if ( station()     > id.station()    ) return false;
00094   
00095     if ( sector()      < id.sector()     ) return true;
00096     if ( sector()      > id.sector()     ) return false;
00097 
00098     if ( superlayer()  < id.superlayer() ) return true;
00099     if ( superlayer()  > id.superlayer() ) return false;
00100 
00101     if ( bti()         < id.bti()        ) return true;
00102     if ( bti()         > id.bti()        ) return false;
00103 
00104     return false;
00105   }
00106 
00107 
00108  private:
00109   DTSuperLayerId _suplId; // this is 4 bytes
00110   int _bti;
00111 
00112 };
00113 
00114 #endif