#include <PixelEndcapName.h>
Public Types | |
enum | HalfCylinder { mO = 1, mI = 2, pO = 3, pI = 4 } |
Public Member Functions | |
int | bladeName () const |
blade id | |
int | diskName () const |
disk id | |
PXFDetId | getDetId () |
return DetId | |
HalfCylinder | halfCylinder () const |
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 | |
int | pannelName () const |
pannel id | |
PixelEndcapName (std::string name) | |
ctor from name string | |
PixelEndcapName (HalfCylinder part=mO, int disk=0, int blade=0, int pannel=0, int plaq=0) | |
ctor for defined name | |
PixelEndcapName (const DetId &) | |
ctor from DetId | |
int | plaquetteName () const |
plaquetteId (in pannel) | |
virtual | ~PixelEndcapName () |
Private Attributes | |
int | theBlade |
int | theDisk |
int | thePannel |
HalfCylinder | thePart |
int | thePlaquette |
Endcap Module name (as in PixelDatabase) for endcaps
Definition at line 16 of file PixelEndcapName.h.
PixelEndcapName::PixelEndcapName | ( | const DetId & | id | ) |
ctor from DetId
Definition at line 11 of file PixelEndcapName.cc.
References PXFDetId::blade(), PXFDetId::disk(), mI, mO, PXFDetId::module(), SurfaceOrientation::outer, PXFDetId::panel(), pI, pO, PXFDetId::side(), theBlade, theDisk, thePannel, thePart, and thePlaquette.
: PixelModuleName(false) { PXFDetId cmssw_numbering(id); int side = cmssw_numbering.side(); int tmpBlade = cmssw_numbering.blade(); bool outer = false; if (tmpBlade >= 7 && tmpBlade <= 18) { outer = true; theBlade = tmpBlade-6; } else if( tmpBlade <=6 ) { theBlade = 7-tmpBlade; } else if( tmpBlade >= 19) { theBlade = 31-tmpBlade; } if( side == 1 && outer ) thePart = mO; else if( side == 1 && !outer ) thePart = mI; else if( side == 2 && outer ) thePart = pO; else if( side == 2 && !outer ) thePart = pI; theDisk = cmssw_numbering.disk(); thePannel = cmssw_numbering.panel(); thePlaquette = cmssw_numbering.module(); }
PixelEndcapName::PixelEndcapName | ( | HalfCylinder | part = mO , |
int | disk = 0 , |
||
int | blade = 0 , |
||
int | pannel = 0 , |
||
int | plaq = 0 |
||
) | [inline] |
ctor for defined name
Definition at line 25 of file PixelEndcapName.h.
: PixelModuleName(false), thePart(part), theDisk(disk), theBlade(blade), thePannel(pannel), thePlaquette(plaq) { }
PixelEndcapName::PixelEndcapName | ( | std::string | name | ) |
ctor from name string
Definition at line 41 of file PixelEndcapName.cc.
References mI, mO, name(), pI, pO, theBlade, theDisk, thePannel, thePart, and thePlaquette.
: PixelModuleName(false), thePart(mO), theDisk(0), theBlade(0), thePannel(0), thePlaquette(0) { // parse the name string // first, check to make sure this is an FPix name, should start with "FPix_" // also check to make sure the needed parts are present if ( (name.substr(0, 5) != "FPix_") || (name.find("_B") == string::npos) || (name.find("_D") == string::npos) || (name.find("_BLD") == string::npos) || (name.find("_PNL") == string::npos) || (name.find("_PLQ") == string::npos) ) { edm::LogError ("BadNameString|SiPixel") << "Bad name string in PixelEndcapName::PixelEndcapName(std::string): " << name; return; } // strip off ROC part if it's there if (name.find("_ROC") != string::npos) name = name.substr(0, name.find("_ROC")); // get the half cylinder string hcString = name.substr(name.find("_B")+2, name.find("_D")-name.find("_B")-2); if (hcString == "mO") thePart = mO; else if (hcString == "mI") thePart = mI; else if (hcString == "pO") thePart = pO; else if (hcString == "pI") thePart = pI; else { edm::LogError ("BadNameString|SiPixel") << "Unable to determine half cylinder in PixelEndcapName::PixelEndcapName(std::string): " << name; } // get the disk string diskString = name.substr(name.find("_D")+2, name.find("_BLD")-name.find("_D")-2); if (diskString == "1") theDisk = 1; else if (diskString == "2") theDisk = 2; else if (diskString == "3") theDisk = 3; else { edm::LogError ("BadNameString|SiPixel") << "Unable to determine disk number in PixelEndcapName::PixelEndcapName(std::string): " << name; } // get the blade string bladeString = name.substr(name.find("_BLD")+4, name.find("_PNL")-name.find("_BLD")-4); // since atoi() doesn't report errors, do it the long way if (bladeString == "1") theBlade = 1; else if (bladeString == "2") theBlade = 2; else if (bladeString == "3") theBlade = 3; else if (bladeString == "4") theBlade = 4; else if (bladeString == "5") theBlade = 5; else if (bladeString == "6") theBlade = 6; else if (bladeString == "7") theBlade = 7; else if (bladeString == "8") theBlade = 8; else if (bladeString == "9") theBlade = 9; else if (bladeString == "10") theBlade = 10; else if (bladeString == "11") theBlade = 11; else if (bladeString == "12") theBlade = 12; else { edm::LogError ("BadNameString|SiPixel") << "Unable to determine blade number in PixelEndcapName::PixelEndcapName(std::string): " << name; } // find the panel string panelString = name.substr(name.find("_PNL")+4, name.find("_PLQ")-name.find("_PNL")-4); if (panelString == "1") thePannel = 1; else if (panelString == "2") thePannel = 2; else { edm::LogError ("BadNameString|SiPixel") << "Unable to determine panel number in PixelEndcapName::PixelEndcapName(std::string): " << name; } // find the plaquette string plaquetteString = name.substr(name.find("_PLQ")+4, name.size()-name.find("_PLQ")-4); if (plaquetteString == "1") thePlaquette = 1; else if (plaquetteString == "2") thePlaquette = 2; else if (plaquetteString == "3") thePlaquette = 3; else if (plaquetteString == "4") thePlaquette = 4; else { edm::LogError ("BadNameString|SiPixel") << "Unable to determine plaquette number in PixelEndcapName::PixelEndcapName(std::string): " << name; } } // PixelEndcapName::PixelEndcapName(std::string name)
virtual PixelEndcapName::~PixelEndcapName | ( | ) | [inline, virtual] |
Definition at line 33 of file PixelEndcapName.h.
{ }
int PixelEndcapName::bladeName | ( | ) | const [inline] |
blade id
Definition at line 44 of file PixelEndcapName.h.
References theBlade.
Referenced by SiPixelDigiSource::analyze(), SiPixelHitEfficiencyModule::book(), SiPixelClusterModule::book(), SiPixelTrackResidualModule::book(), SiPixelRecHitModule::book(), SiPixelDigiModule::book(), SiPixelRecHitSource::buildStructure(), SiPixelDigiSource::buildStructure(), SiPixelRawDataErrorSource::buildStructure(), SiPixelClusterSource::buildStructure(), SiPixelDigiModule::fill(), getDetId(), SiPixelFolderOrganizer::getModuleFolder(), PixelEndcapLinkMaker::Order::operator()(), sipixelobjects::PixelFEDLink::printForMap(), and SiPixelFolderOrganizer::setModuleFolder().
{ return theBlade; }
int PixelEndcapName::diskName | ( | ) | const [inline] |
disk id
Definition at line 41 of file PixelEndcapName.h.
References theDisk.
Referenced by SiPixelDetSummary::add(), SiPixelHitEfficiencySource::analyze(), SiPixelTrackResidualSource::analyze(), SiPixelDigiSource::analyze(), SiPixelHitEfficiencyModule::book(), SiPixelClusterModule::book(), SiPixelTrackResidualModule::book(), SiPixelRecHitModule::book(), SiPixelDigiModule::book(), SiPixelRecHitSource::buildStructure(), SiPixelDigiSource::buildStructure(), SiPixelRawDataErrorSource::buildStructure(), SiPixelClusterSource::buildStructure(), SiPixelClusterModule::fill(), getDetId(), SiPixelFolderOrganizer::getModuleFolder(), PixelEndcapLinkMaker::Order::operator()(), sipixelobjects::PixelFEDLink::printForMap(), and SiPixelFolderOrganizer::setModuleFolder().
{ return theDisk; }
PXFDetId PixelEndcapName::getDetId | ( | void | ) |
return DetId
Definition at line 183 of file PixelEndcapName.cc.
References bladeName(), diskName(), halfCylinder(), mI, mO, SurfaceOrientation::outer, pannelName(), pI, plaquetteName(), and pO.
{ uint32_t side = 0; uint32_t disk = 0; uint32_t blade = 0; uint32_t panel = 0; uint32_t module = 0; // figure out the side HalfCylinder hc = halfCylinder(); if (hc == mO || hc == mI) side = 1; else if (hc == pO || hc == pI) side = 2; // get disk/blade/panel/module numbers from PixelEndcapName object disk = static_cast<uint32_t>(diskName()); uint32_t tmpBlade = static_cast<uint32_t>(bladeName()); panel = static_cast<uint32_t>(pannelName()); module = static_cast<uint32_t>(plaquetteName()); // convert blade numbering to cmssw convention bool outer = false; outer = (hc == mO) || (hc == pO); if (outer) { blade = tmpBlade + 6; } else { // inner if (tmpBlade <= 6) blade = 7 - tmpBlade; else if (tmpBlade <= 12) blade = 31 - tmpBlade; } // create and return the DetId return PXFDetId(side, disk, blade, panel, module); } // PXFDetId PixelEndcapName::getDetId()
HalfCylinder PixelEndcapName::halfCylinder | ( | ) | const [inline] |
Definition at line 38 of file PixelEndcapName.h.
References thePart.
Referenced by SiPixelDetSummary::add(), SiPixelDigiSource::analyze(), SiPixelRecHitSource::buildStructure(), SiPixelDigiSource::buildStructure(), SiPixelRawDataErrorSource::buildStructure(), SiPixelClusterSource::buildStructure(), getDetId(), SiPixelFolderOrganizer::getModuleFolder(), HLTPixelAsymmetryFilter::hltFilter(), PixelEndcapLinkMaker::Order::operator()(), sipixelobjects::PixelFEDLink::printForMap(), and SiPixelFolderOrganizer::setModuleFolder().
{ return thePart; }
PixelModuleName::ModuleType PixelEndcapName::moduleType | ( | ) | const [virtual] |
module Type
Implements PixelModuleName.
Definition at line 132 of file PixelEndcapName.cc.
References pannelName(), plaquetteName(), PixelModuleName::v1x2, PixelModuleName::v1x5, PixelModuleName::v2x3, PixelModuleName::v2x4, and PixelModuleName::v2x5.
Referenced by PixelEndcapLinkMaker::links().
{ ModuleType type = v1x2; if (pannelName() == 1) { if (plaquetteName() == 1) { type = v1x2; } else if (plaquetteName() == 2) { type = v2x3; } else if (plaquetteName() == 3) { type = v2x4; } else if (plaquetteName() == 4) { type = v1x5; } } else { if (plaquetteName() == 1) { type = v2x3; } else if (plaquetteName() == 2) { type = v2x4; } else if (plaquetteName() == 3) { type = v2x5; } } return type; }
string PixelEndcapName::name | ( | ) | const [virtual] |
from base class
Implements PixelModuleName.
Definition at line 163 of file PixelEndcapName.cc.
References theBlade, theDisk, thePannel, thePart, and thePlaquette.
Referenced by SiPixelDetSummary::add(), SiPixelInformationExtractor::findNoisyPixels(), PixelEndcapLinkMaker::links(), PixelEndcapLinkMaker::Order::operator()(), PixelEndcapName(), sipixelobjects::PixelROC::print(), sipixelobjects::PixelFEDLink::printForMap(), and SiPixelOfflineCalibAnalysisBase::translateDetIdToString().
{ std::ostringstream stm; stm <<"FPix_B"<<thePart<<"_D"<<theDisk<<"_BLD"<<theBlade<<"_PNL"<<thePannel<<"_PLQ"<<thePlaquette; return stm.str(); }
bool PixelEndcapName::operator== | ( | const PixelModuleName & | o | ) | const [virtual] |
check equality of modules from datamemebers
Implements PixelModuleName.
Definition at line 149 of file PixelEndcapName.cc.
References PixelModuleName::isBarrel(), python::connectstrParser::o, theBlade, theDisk, thePannel, thePart, and thePlaquette.
{ if (!o.isBarrel()) { const PixelEndcapName * other = dynamic_cast<const PixelEndcapName *>(&o); return ( other && thePart == other->thePart && theDisk == other->theDisk && theBlade == other->theBlade && thePannel == other->thePannel && thePlaquette == other->thePlaquette ); } else return false; }
int PixelEndcapName::pannelName | ( | ) | const [inline] |
pannel id
Definition at line 47 of file PixelEndcapName.h.
References thePannel.
Referenced by SiPixelHitEfficiencySource::analyze(), SiPixelDigiSource::analyze(), SiPixelHitEfficiencyModule::book(), SiPixelClusterModule::book(), SiPixelTrackResidualModule::book(), SiPixelRecHitModule::book(), SiPixelDigiModule::book(), SiPixelRecHitSource::buildStructure(), SiPixelDigiSource::buildStructure(), SiPixelRawDataErrorSource::buildStructure(), SiPixelClusterSource::buildStructure(), SiPixelDigiModule::fill(), sipixelobjects::FrameConversion::FrameConversion(), getDetId(), SiPixelFolderOrganizer::getModuleFolder(), moduleType(), PixelEndcapLinkMaker::Order::operator()(), PixelPannelType::pannelType(), sipixelobjects::PixelFEDLink::printForMap(), and SiPixelFolderOrganizer::setModuleFolder().
{ return thePannel; }
int PixelEndcapName::plaquetteName | ( | ) | const [inline] |
plaquetteId (in pannel)
Definition at line 50 of file PixelEndcapName.h.
References thePlaquette.
Referenced by SiPixelHitEfficiencySource::analyze(), SiPixelDigiSource::analyze(), SiPixelHitEfficiencyModule::book(), SiPixelClusterModule::book(), SiPixelTrackResidualModule::book(), SiPixelRecHitModule::book(), SiPixelDigiModule::book(), SiPixelRecHitSource::buildStructure(), SiPixelDigiSource::buildStructure(), SiPixelRawDataErrorSource::buildStructure(), SiPixelClusterSource::buildStructure(), sipixelobjects::FrameConversion::FrameConversion(), getDetId(), SiPixelFolderOrganizer::getModuleFolder(), moduleType(), PixelEndcapLinkMaker::Order::operator()(), and SiPixelFolderOrganizer::setModuleFolder().
{ return thePlaquette; }
int PixelEndcapName::theBlade [private] |
Definition at line 64 of file PixelEndcapName.h.
Referenced by bladeName(), name(), operator==(), and PixelEndcapName().
int PixelEndcapName::theDisk [private] |
Definition at line 64 of file PixelEndcapName.h.
Referenced by diskName(), name(), operator==(), and PixelEndcapName().
int PixelEndcapName::thePannel [private] |
Definition at line 64 of file PixelEndcapName.h.
Referenced by name(), operator==(), pannelName(), and PixelEndcapName().
HalfCylinder PixelEndcapName::thePart [private] |
Definition at line 63 of file PixelEndcapName.h.
Referenced by halfCylinder(), name(), operator==(), and PixelEndcapName().
int PixelEndcapName::thePlaquette [private] |
Definition at line 64 of file PixelEndcapName.h.
Referenced by name(), operator==(), PixelEndcapName(), and plaquetteName().