CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_2_SLHC2/src/DataFormats/SiPixelDetId/src/StackedTrackerDetId.cc

Go to the documentation of this file.
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