12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- #ifndef DataFormats_SiStripDetId_PXBDetId_H
- #define DataFormats_SiStripDetId_PXBDetId_H
- #include <ostream>
- #include "util/DetId.hpp"
- #include "util/PixelSubdetector.hpp"
- class PXBDetId;
- std::ostream& operator<<(std::ostream& os,const PXBDetId& id);
- class PXBDetId : public DetId {
- public:
-
- PXBDetId();
-
- PXBDetId(uint32_t rawid);
-
- PXBDetId(const DetId& id);
- PXBDetId(uint32_t layer, uint32_t ladder, uint32_t module)
- :DetId(DetId::Tracker,PixelSubdetector::PixelBarrel){
- id_ |= (layer& layerMask_) << layerStartBit_ |
- (ladder& ladderMask_) << ladderStartBit_ |
- (module& moduleMask_) << moduleStartBit_;
- }
-
- unsigned int layer() const{
- return int((id_>>layerStartBit_) & layerMask_);}
-
- unsigned int ladder() const
- { return ((id_>>ladderStartBit_) & ladderMask_) ;}
-
- unsigned int module() const
- { return ((id_>>moduleStartBit_)& moduleMask_) ;}
- private:
-
- static const unsigned int layerStartBit_= 16;
- static const unsigned int ladderStartBit_= 8;
- static const unsigned int moduleStartBit_= 2;
-
- static const unsigned int layerMask_= 0xF;
- static const unsigned int ladderMask_= 0xFF;
- static const unsigned int moduleMask_= 0x3F;
- };
- #endif
|