![]() |
![]() |
#include <DataFormats/SiPixelDetId/interface/PixelBarrelName.h>
Public Types | |
enum | Shell { mO = 1, mI = 2, pO = 3, pI = 4 } |
Public Member Functions | |
PXBDetId | getDetId () |
return the DetId | |
bool | isHalfModule () const |
full or half module | |
int | ladderName () const |
ladder id (index in phi) | |
int | layerName () const |
layer id | |
int | moduleName () const |
module id (index in z) | |
virtual PixelModuleName::ModuleType | moduleType () const |
module Type | |
virtual std::string | name () const |
from base class | |
virtual bool | operator== (const PixelModuleName &) const |
check equality of modules from datamemebers | |
PixelBarrelName (std::string name) | |
ctor from name string | |
PixelBarrelName (Shell shell=mO, int layer=0, int module=0, int ladder=0) | |
ctor for defined name with dummy parameters | |
PixelBarrelName (const DetId &) | |
ctor from DetId | |
int | sectorName () const |
sector id | |
Shell | shell () const |
virtual | ~PixelBarrelName () |
Private Attributes | |
int | theLadder |
int | theLayer |
int | theModule |
Shell | thePart |
Definition at line 14 of file PixelBarrelName.h.
PixelBarrelName::PixelBarrelName | ( | const DetId & | id | ) |
ctor from DetId
Definition at line 12 of file PixelBarrelName.cc.
References funct::abs(), PXBDetId::ladder(), PXBDetId::layer(), mI, mO, PXBDetId::module(), pI, pO, theLadder, theLayer, theModule, and thePart.
Referenced by SiPixelTrackResidualSource::analyze(), SiPixelRawDataErrorModule::book(), SiPixelClusterModule::book(), SiPixelTrackResidualModule::book(), SiPixelRecHitModule::book(), SiPixelDigiModule::book(), SiPixelDigiModule::fill(), SiPixelRawDataErrorModule::fill(), SiPixelFolderOrganizer::getModuleFolder(), and SiPixelFolderOrganizer::setModuleFolder().
00013 : PixelModuleName(true) 00014 { 00015 00016 // uint32_t rawId = id.rawId(); 00017 PXBDetId cmssw_numbering(id); 00018 00019 00020 theLayer = cmssw_numbering.layer(); 00021 00022 int oldModule = cmssw_numbering.module() -4; if (oldModule<=0) oldModule--; 00023 00024 int oldLadder = cmssw_numbering.ladder(); 00025 if (theLayer == 1) { 00026 if (oldLadder <= 5) oldLadder = 6-oldLadder; 00027 else if (oldLadder >= 6 && oldLadder <= 15 ) oldLadder = 5-oldLadder; 00028 else if (oldLadder >= 16) oldLadder = 26-oldLadder; 00029 } 00030 else if (theLayer == 2) { 00031 if (oldLadder <= 8) oldLadder = 9-oldLadder; 00032 else if (oldLadder >= 9 && oldLadder <= 24) oldLadder = 8-oldLadder; 00033 else if (oldLadder >= 25) oldLadder = 41-oldLadder; 00034 } 00035 else if (theLayer == 3) { 00036 if (oldLadder <= 11) oldLadder = 12-oldLadder; 00037 else if (oldLadder >= 12 && oldLadder <= 33) oldLadder = 11-oldLadder; 00038 else if (oldLadder >= 34) oldLadder = 56-oldLadder; 00039 } 00040 00041 // 00042 // part 00043 // 00044 if (oldModule < 0 && oldLadder < 0) thePart = mO; 00045 else if (oldModule > 0 && oldLadder < 0) thePart = pO; 00046 else if (oldModule < 0 && oldLadder > 0) thePart = mI; 00047 else if (oldModule > 0 && oldLadder > 0) thePart = pI; 00048 00049 00050 // 00051 // ladder 00052 // 00053 theLadder = abs(oldLadder); 00054 00055 // 00056 // module 00057 // 00058 theModule = abs(oldModule); 00059 00060 }
PixelBarrelName::PixelBarrelName | ( | Shell | shell = mO , |
|
int | layer = 0 , |
|||
int | module = 0 , |
|||
int | ladder = 0 | |||
) | [inline] |
ctor for defined name with dummy parameters
Definition at line 23 of file PixelBarrelName.h.
00024 : PixelModuleName(true), 00025 thePart(shell), theLayer(layer), theModule(module), theLadder(ladder) 00026 { }
PixelBarrelName::PixelBarrelName | ( | std::string | name | ) |
ctor from name string
Definition at line 63 of file PixelBarrelName.cc.
References mI, mO, pI, pO, theLadder, theLayer, theModule, and thePart.
00064 : PixelModuleName(true), thePart(mO), theLayer(0), 00065 theModule(0), theLadder(0) { 00066 00067 // parse the name string 00068 // first, check to make sure this is an BPix name, should start with "BPix_" 00069 // also check to make sure the needed parts are present 00070 if ( (name.substr(0, 5) != "BPix_") || 00071 (name.find("_B") == string::npos) || 00072 (name.find("_LYR") == string::npos) || 00073 (name.find("_LDR") == string::npos) || 00074 (name.find("_MOD") == string::npos) ) { 00075 edm::LogError ("BadNameString|SiPixel") 00076 << "Bad name string in PixelBarrelName::PixelBarrelName(std::string): " 00077 << name; 00078 return; 00079 } 00080 00081 // strip off ROC part if it's there 00082 if (name.find("_ROC") != string::npos) 00083 name = name.substr(0, name.find("_ROC")); 00084 00085 // find shell 00086 string shellString = name.substr(name.find("_B")+2, name.find("_SEC")-name.find("_B")-2); 00087 if (shellString == "mO") thePart = mO; 00088 else if (shellString == "mI") thePart = mI; 00089 else if (shellString == "pO") thePart = pO; 00090 else if (shellString == "pI") thePart = pI; 00091 else { 00092 edm::LogError ("BadNameString|SiPixel") 00093 << "Unable to determine shell in PixelBarrelName::PixelBarrelName(std::string): " 00094 << name; 00095 } 00096 00097 // find the layer 00098 string layerString = name.substr(name.find("_LYR")+4, name.find("_LDR")-name.find("_LYR")-4); 00099 if (layerString == "1") theLayer = 1; 00100 else if (layerString == "2") theLayer = 2; 00101 else if (layerString == "3") theLayer = 3; 00102 else { 00103 edm::LogError ("BadNameString|SiPixel") 00104 << "Unable to determine layer in PixelBarrelName::PixelBarrelName(std::string): " 00105 << name; 00106 } 00107 00108 // find the ladder 00109 string ladderString = name.substr(name.find("_LDR")+4, name.find("_MOD")-name.find("_LDR")-4); 00110 if (ladderString == "1H") theLadder = 1; 00111 else if (ladderString == "10H" && theLayer == 1) theLadder = 10; 00112 else if (ladderString == "16H" && theLayer == 2) theLadder = 16; 00113 else if (ladderString == "22H" && theLayer == 3) theLadder = 22; 00114 else if (ladderString.substr(ladderString.size()-1, 1) == "F") { 00115 int ladderNum = atoi(ladderString.substr(0, ladderString.size() -1).c_str()); 00116 if (theLayer == 1 && ladderNum > 1 && ladderNum < 10) theLadder = ladderNum; 00117 else if (theLayer == 2 && ladderNum > 1 && ladderNum < 16) theLadder = ladderNum; 00118 else if (theLayer == 3 && ladderNum > 1 && ladderNum < 22) theLadder = ladderNum; 00119 else { 00120 edm::LogError ("BadNameString|SiPixel") 00121 << "Unable to determine ladder in PixelBarrelName::PixelBarrelName(std::string): " 00122 << name; 00123 } 00124 } // full ladders 00125 else { 00126 edm::LogError ("BadNameString|SiPixel") 00127 << "Unable to determine ladder in PixelBarrelName::PixelBarrelName(std::string): " 00128 << name; 00129 } 00130 00131 // find the module 00132 string moduleString = name.substr(name.find("_MOD")+4, name.size()-name.find("_MOD")-4); 00133 if (moduleString == "1") theModule = 1; 00134 else if (moduleString == "2") theModule = 2; 00135 else if (moduleString == "3") theModule = 3; 00136 else if (moduleString == "4") theModule = 4; 00137 else { 00138 edm::LogError ("BadNameString|SiPixel") 00139 << "Unable to determine module in PixelBarrelName::PixelBarrelName(std::string): " 00140 << name; 00141 } 00142 00143 } // PixelBarrelName::PixelBarrelName(std::string name)
virtual PixelBarrelName::~PixelBarrelName | ( | ) | [inline, virtual] |
PXBDetId PixelBarrelName::getDetId | ( | ) |
return the DetId
Definition at line 228 of file PixelBarrelName.cc.
References ladderName(), layerName(), mO, moduleName(), SurfaceOrientation::outer, pI, pO, shell(), and thePart.
00228 { 00229 00230 uint32_t layer = 0; 00231 uint32_t ladder = 0; 00232 uint32_t module = 0; 00233 00234 layer = layerName(); 00235 uint32_t tmpLadder = ladderName(); 00236 uint32_t tmpModule = moduleName(); 00237 00238 // translate the ladder number from the naming convention to the cmssw convention 00239 bool outer = false; 00240 Shell shell = thePart; 00241 outer = (shell == mO) || (shell == pO); 00242 if (outer) { 00243 if (layer == 1) 00244 ladder = tmpLadder + 5; 00245 else if (layer == 2) 00246 ladder = tmpLadder + 8; 00247 else if (layer == 3) 00248 ladder = tmpLadder + 11; 00249 } // outer 00250 else { // inner 00251 if (layer == 1) { 00252 if (tmpLadder <= 5) ladder = 6 - tmpLadder; 00253 else if (tmpLadder <= 10) ladder = 26 - tmpLadder; 00254 } // layer 1 00255 else if (layer == 2) { 00256 if (tmpLadder <= 8) ladder = 9 - tmpLadder; 00257 else if (tmpLadder <= 16) ladder = 41 - tmpLadder; 00258 } // layer 2 00259 else if (layer == 3) { 00260 if (tmpLadder <= 11) ladder = 12 - tmpLadder; 00261 else if (tmpLadder <= 22) ladder = 56 - tmpLadder; 00262 } // layer 3 00263 } // inner 00264 00265 // translate the module number from naming convention to cmssw convention 00266 // numbering starts at positive z 00267 if (shell == pO || shell == pI) 00268 module = tmpModule + 4; 00269 else // negative z side 00270 module = 5 - tmpModule; 00271 00272 return PXBDetId(layer, ladder, module); 00273 00274 } // PXBDetId PixelBarrelName::getDetId()
bool PixelBarrelName::isHalfModule | ( | ) | const |
full or half module
Definition at line 189 of file PixelBarrelName.cc.
References theLadder, and theLayer.
Referenced by PixelToLNKAssociateFromAscii::addConnections(), sipixelobjects::FrameConversion::FrameConversion(), PixelBarrelLinkMaker::links(), moduleType(), and name().
00190 { 00191 bool halfModule = false; 00192 if (theLadder == 1) halfModule = true; 00193 if (theLayer == 1 && theLadder == 10) halfModule = true; 00194 if (theLayer == 2 && theLadder == 16) halfModule = true; 00195 if (theLayer == 3 && theLadder == 22) halfModule = true; 00196 return halfModule; 00197 }
int PixelBarrelName::ladderName | ( | ) | const [inline] |
ladder id (index in phi)
Definition at line 45 of file PixelBarrelName.h.
References theLadder.
Referenced by getDetId(), and PixelBarrelLinkMaker::Order::operator()().
00045 { return theLadder; }
int PixelBarrelName::layerName | ( | ) | const [inline] |
layer id
Definition at line 39 of file PixelBarrelName.h.
References theLayer.
Referenced by getDetId(), PixelBarrelLinkMaker::links(), and PixelBarrelLinkMaker::Order::operator()().
00039 { return theLayer; }
int PixelBarrelName::moduleName | ( | ) | const [inline] |
module id (index in z)
Definition at line 42 of file PixelBarrelName.h.
References theModule.
Referenced by getDetId(), and PixelBarrelLinkMaker::Order::operator()().
00042 { return theModule; }
PixelModuleName::ModuleType PixelBarrelName::moduleType | ( | ) | const [virtual] |
module Type
Implements PixelModuleName.
Definition at line 199 of file PixelBarrelName.cc.
References isHalfModule(), PixelModuleName::v1x8, and PixelModuleName::v2x8.
Referenced by sipixelobjects::FrameConversion::FrameConversion().
00200 { 00201 return isHalfModule() ? PixelBarrelName::v1x8 : PixelBarrelName::v2x8; 00202 }
string PixelBarrelName::name | ( | ) | const [virtual] |
from base class
Implements PixelModuleName.
Definition at line 216 of file PixelBarrelName.cc.
References isHalfModule(), sectorName(), theLadder, theLayer, theModule, and thePart.
Referenced by SiPixelInformationExtractor::findNoisyPixels(), PixelBarrelLinkMaker::Order::operator()(), sipixelobjects::PixelFEDLink::printForMap(), and SiPixelOfflineCalibAnalysisBase::translateDetIdToString().
00217 { 00218 std::ostringstream stm; 00219 00220 stm<<"BPix_B"<<thePart<<"_SEC"<<sectorName()<<"_LYR"<<theLayer<<"_LDR"<<theLadder; 00221 if ( isHalfModule() ) stm <<"H"; else stm <<"F"; 00222 stm << "_MOD" << theModule; 00223 00224 return stm.str(); 00225 }
bool PixelBarrelName::operator== | ( | const PixelModuleName & | o | ) | const [virtual] |
check equality of modules from datamemebers
Implements PixelModuleName.
Definition at line 204 of file PixelBarrelName.cc.
References PixelModuleName::isBarrel(), theLadder, theLayer, theModule, and thePart.
00205 { 00206 if ( o.isBarrel() ) { 00207 const PixelBarrelName *other = dynamic_cast<const PixelBarrelName*>(&o); 00208 return ( other 00209 && thePart == other->thePart 00210 && theLayer == other->theLayer 00211 && theModule == other->theModule 00212 && theLadder == other->theLadder); 00213 } else return false; 00214 }
int PixelBarrelName::sectorName | ( | ) | const |
sector id
Definition at line 145 of file PixelBarrelName.cc.
References theLadder, and theLayer.
Referenced by name().
00146 { 00147 int sector = 0; 00148 if (theLayer==1) { 00149 switch (theLadder) { 00150 case 1 : case 2: {sector = 1; break;} 00151 case 3 : {sector = 2; break;} 00152 case 4 : {sector = 3; break;} 00153 case 5 : {sector = 4; break;} 00154 case 6 : {sector = 5; break;} 00155 case 7 : {sector = 6; break;} 00156 case 8 : {sector = 7; break;} 00157 case 9 : case 10:{sector = 8; break;} 00158 default: ; 00159 }; 00160 } else if (theLayer==2) { 00161 switch (theLadder) { 00162 case 1 : case 2: {sector = 1; break;} 00163 case 3 : case 4: {sector = 2; break;} 00164 case 5 : case 6: {sector = 3; break;} 00165 case 7 : case 8: {sector = 4; break;} 00166 case 9 : case 10: {sector = 5; break;} 00167 case 11 : case 12: {sector = 6; break;} 00168 case 13 : case 14: {sector = 7; break;} 00169 case 15 : case 16: {sector = 8; break;} 00170 default: ; 00171 }; 00172 } else if (theLayer==3) { 00173 switch (theLadder) { 00174 case 1 : case 2: case 3: {sector = 1; break;} 00175 case 4 : case 5: case 6: {sector = 2; break;} 00176 case 7 : case 8: case 9: {sector = 3; break;} 00177 case 10 : case 11: {sector = 4; break;} 00178 case 12 : case 13: {sector = 5; break;} 00179 case 14 : case 15: case 16: {sector = 6; break;} 00180 case 17 : case 18: case 19: {sector = 7; break;} 00181 case 20 : case 21: case 22: {sector = 8; break;} 00182 default: ; 00183 }; 00184 } 00185 return sector; 00186 00187 }
Shell PixelBarrelName::shell | ( | ) | const [inline] |
Definition at line 36 of file PixelBarrelName.h.
References thePart.
Referenced by sipixelobjects::FrameConversion::FrameConversion(), and getDetId().
00036 { return thePart; }
int PixelBarrelName::theLadder [private] |
Definition at line 64 of file PixelBarrelName.h.
Referenced by isHalfModule(), ladderName(), name(), operator==(), PixelBarrelName(), and sectorName().
int PixelBarrelName::theLayer [private] |
Definition at line 64 of file PixelBarrelName.h.
Referenced by isHalfModule(), layerName(), name(), operator==(), PixelBarrelName(), and sectorName().
int PixelBarrelName::theModule [private] |
Definition at line 64 of file PixelBarrelName.h.
Referenced by moduleName(), name(), operator==(), and PixelBarrelName().
Shell PixelBarrelName::thePart [private] |
Definition at line 63 of file PixelBarrelName.h.
Referenced by getDetId(), name(), operator==(), PixelBarrelName(), and shell().