CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_1/src/DataFormats/SiStripDetId/src/TIBDetId.cc

Go to the documentation of this file.
00001 #include "DataFormats/SiStripDetId/interface/TIBDetId.h"
00002 
00003 TIBDetId::TIBDetId() : SiStripDetId(){
00004 }
00005 TIBDetId::TIBDetId(uint32_t rawid) : SiStripDetId(rawid){
00006 }
00007 TIBDetId::TIBDetId(const DetId& id) : SiStripDetId(id.rawId()){
00008 }
00009   
00010 bool TIBDetId::isDoubleSide() const {
00011   // Double Side: only layers 1 and 2
00012   if( this->glued() == 0 && ( this->layer() == 1 || this->layer() == 2 ) ) {
00013     return true;
00014   } else {
00015     return false;
00016   }
00017 }
00018 
00019 std::ostream& operator<<(std::ostream& os,const TIBDetId& id) {
00020   unsigned int              theLayer  = id.layer();
00021   std::vector<unsigned int> theString = id.string();
00022   unsigned int              theModule = id.module();
00023   std::string side;
00024   std::string part;
00025   side = (theString[0] == 1 ) ? "-" : "+";
00026   part = (theString[1] == 1 ) ? "int" : "ext";
00027   std::string type;
00028   type = (id.stereo() == 0) ? "r-phi" : "stereo";
00029   type = (id.glued() == 0) ? type : type+" glued";
00030   type = (id.isDoubleSide()) ? "double side" : type;
00031   return os << "TIB" << side
00032             << " Layer " << theLayer << " " << part
00033             << " String " << theString[2]
00034             << " Module " << theModule << " " << type
00035             << " (" << id.rawId() << ")";
00036 }
00037