![]() |
![]() |
00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 00014 00015 00016 #include "DataFormats/SiPixelDetId/interface/StackedTrackerDetId.h" 00017 00019 StackedTrackerDetId::StackedTrackerDetId() : DetId() {} 00020 StackedTrackerDetId::StackedTrackerDetId( uint32_t rawid ) : DetId(rawid) {} 00021 StackedTrackerDetId::StackedTrackerDetId( const DetId& id ) : DetId(id.rawId()) {} 00022 00024 StackedTrackerDetId::StackedTrackerDetId( uint32_t layer, uint32_t rod, uint32_t module ) 00025 : DetId(DetId::Tracker, StackedTracker) 00026 { 00027 id_ |= (1 & iSwitchMask_) << iSwitchStartBit_ | 00028 (layer & iLayerMask_B_) << iLayerStartBit_B_ | 00029 (rod & iPhiMask_B_ ) << iPhiStartBit_B_ | 00030 (module & iZMask_B_ ) << iZStartBit_B_ ; 00031 } 00032 00034 StackedTrackerDetId::StackedTrackerDetId( uint32_t side, uint32_t disk, uint32_t ring, uint32_t module ) 00035 : DetId(DetId::Tracker, StackedTracker) 00036 { 00037 id_ |= (2 & iSwitchMask_) << iSwitchStartBit_ | 00038 (side & iSideMask_E_) << iSideStartBit_E_ | 00039 (disk & iZMask_E_ ) << iZStartBit_E_ | 00040 (ring & iRingMask_E_ ) << iRingStartBit_E_ | 00041 (module & iPhiMask_E_ ) << iPhiStartBit_E_ ; 00042 } 00043 00044 std::ostream& operator << ( std::ostream& os, const StackedTrackerDetId& id ) { 00045 return os << id.rawId() 00046 << " subdetector: " << id.subdet() << "\n" 00047 << " BARREL: " << id.isBarrel() 00048 << "\tLAY: " << id.iLayer() << "\tROD: " << id.iPhi() << "\tMOD: " << id.iZ() << "\n" 00049 << " ENDCAP: " << id.isEndcap() 00050 << "\tSIDE: " << id.iSide() << "\tDISK: " << id.iZ() << "\tRING: " << id.iRing() << "\tMOD: " << id.iPhi() << "\n"; 00051 } 00052