Detector identifier class for the strip tracker. More...
#include <SiStripDetId.h>
Public Types | |
enum | ModuleGeometry { UNKNOWNGEOMETRY, IB1, IB2, OB1, OB2, W1A, W2A, W3A, W1B, W2B, W3B, W4, W5, W6, W7 } |
enum | SubDetector { UNKNOWN = 0, TIB = 3, TID = 4, TOB = 5, TEC = 6 } |
Public Member Functions | |
virtual uint32_t | glued () const |
ModuleGeometry | moduleGeometry () const |
virtual uint32_t | partnerDetId () const |
uint16_t | reserved () const |
SiStripDetId (const DetId &det_id, const uint16_t &reserved) | |
SiStripDetId (const uint32_t &raw_id) | |
SiStripDetId (Detector det, int subdet) | |
SiStripDetId () | |
SiStripDetId (const uint32_t &raw_id, const uint16_t &reserved) | |
SiStripDetId (const DetId &) | |
virtual uint32_t | stereo () const |
virtual double | stripLength () const |
SubDetector | subDetector () const |
Static Private Attributes | |
static const unsigned | layerMask_ = 0x7 |
static const unsigned | layerStartBit_ = 14 |
static const uint16_t | reservedMask_ = 0x7 |
static const uint16_t | reservedStartBit_ = 20 |
static const unsigned | ringMaskTEC_ = 0x7 |
static const unsigned | ringMaskTID_ = 0x3 |
static const unsigned | ringStartBitTEC_ = 5 |
static const unsigned | ringStartBitTID_ = 9 |
static const uint32_t | sterMask_ = 0x3 |
static const uint32_t | sterStartBit_ = 0 |
Detector identifier class for the strip tracker.
Definition at line 17 of file SiStripDetId.h.
SiStripDetId::SiStripDetId | ( | ) |
SiStripDetId::SiStripDetId | ( | const uint32_t & | raw_id | ) |
SiStripDetId::SiStripDetId | ( | const DetId & | det_id | ) |
Construct from generic DetId
Definition at line 14 of file SiStripDetId.cc.
SiStripDetId::SiStripDetId | ( | Detector | det, |
int | subdet | ||
) |
Construct and fill only the det and sub-det fields.
Definition at line 18 of file SiStripDetId.cc.
SiStripDetId::SiStripDetId | ( | const uint32_t & | raw_id, |
const uint16_t & | reserved | ||
) |
Returns true if the module is a double side = rphi + stereo Construct from a raw value and set "reserved" field.
Definition at line 22 of file SiStripDetId.cc.
References DetId::id_, reservedMask_, and reservedStartBit_.
: DetId( raw_id ) { id_ &= ( ~static_cast<uint32_t>(reservedMask_<<reservedStartBit_) ); id_ |= ( ( reserved & reservedMask_ ) << reservedStartBit_ ); }
SiStripDetId::SiStripDetId | ( | const DetId & | det_id, |
const uint16_t & | reserved | ||
) |
Construct from generic DetId and set "reserved" field.
Definition at line 32 of file SiStripDetId.cc.
References DetId::id_, reservedMask_, and reservedStartBit_.
: DetId( det_id.rawId() ) { id_ &= ( ~static_cast<uint32_t>(reservedMask_<<reservedStartBit_) ); id_ |= ( ( reserved & reservedMask_ ) << reservedStartBit_ ); }
uint32_t SiStripDetId::glued | ( | ) | const [inline, virtual] |
A non-zero value means a glued module, null means not glued.
Definition at line 142 of file SiStripDetId.h.
References DetId::id_, sterMask_, and sterStartBit_.
Referenced by RingMaker::determineExtensions(), AlignableTracker::detsToAlignables(), RingMaker::dumpDetIds(), RingMaker::fillTECGeometryArray(), RingMaker::fillTIBGeometryArray(), RingMaker::fillTIDGeometryArray(), RingMaker::fillTOBGeometryArray(), cms::ClusterMTCCFilter::filter(), SiStripGainCosmicCalculator::getNewObject(), TIBDetId::isDoubleSide(), TOBDetId::isDoubleSide(), TECDetId::isDoubleSide(), TIDDetId::isDoubleSide(), RoadSearchDetIdHelper::IsGluedRPhi(), RoadSearchDetIdHelper::IsMatched(), RoadSearchCloudMakerAlgorithm::isSingleLayer(), RoadSearchDetIdHelper::IsSingleRPhi(), RoadSearchDetIdHelper::IsStereo(), and trackerHierarchy().
{ if ( ((id_>>sterStartBit_) & sterMask_ ) == 1 ) { return ( id_ - 1 ); } else if ( ((id_>>sterStartBit_) & sterMask_ ) == 2 ) { return ( id_ - 2 ); } else { return 0; } }
SiStripDetId::ModuleGeometry SiStripDetId::moduleGeometry | ( | ) | const [inline] |
Returns enumerated type specifying sub-detector.
Definition at line 120 of file SiStripDetId.h.
References IB1, IB2, DetId::id_, layerMask_, layerStartBit_, OB1, OB2, ringMaskTEC_, ringMaskTID_, ringStartBitTEC_, ringStartBitTID_, subDetector(), TEC, TIB, TID, TOB, UNKNOWN, UNKNOWNGEOMETRY, W1A, W1B, W2A, W2B, W3A, W3B, W4, W5, W6, and W7.
{ switch(subDetector()) { case TIB: return int((id_>>layerStartBit_) & layerMask_)<3? IB1 : IB2; case TOB: return int((id_>>layerStartBit_) & layerMask_)<5? OB2 : OB1; case TID: switch ((id_>>ringStartBitTID_) & ringMaskTID_) { case 1: return W1A; case 2: return W2A; case 3: return W3A; } case TEC: switch ((id_>>ringStartBitTEC_) & ringMaskTEC_) { case 1: return W1B; case 2: return W2B; case 3: return W3B; case 4: return W4; case 5: return W5; case 6: return W6; case 7: return W7; } case UNKNOWN: default: return UNKNOWNGEOMETRY; } }
uint32_t SiStripDetId::partnerDetId | ( | ) | const [inline, virtual] |
Returns DetId of the partner module if glued, otherwise null.
Definition at line 156 of file SiStripDetId.h.
References DetId::id_, sterMask_, and sterStartBit_.
Referenced by TrackAssociatorByHits::associateSimToReco(), MuonAssociatorByHits::associateSimToRecoIndices(), RingMaker::determineExtensions(), RingMaker::dumpDetIds(), and TrackerValidationVariables::fillHitQuantities().
{ if ( ((id_>>sterStartBit_) & sterMask_ ) == 1 ) { return ( id_ + 1 ); } else if ( ((id_>>sterStartBit_) & sterMask_ ) == 2 ) { return ( id_ - 1 ); } else { return 0; } }
uint16_t SiStripDetId::reserved | ( | ) | const [inline] |
Returns value of "reserved" field.
Definition at line 172 of file SiStripDetId.h.
References DetId::id_, reservedMask_, and reservedStartBit_.
{ return static_cast<uint16_t>( (id_>>reservedStartBit_) & reservedMask_ ); }
uint32_t SiStripDetId::stereo | ( | ) | const [inline, virtual] |
A non-zero value means a stereo module, null means not stereo.
Definition at line 150 of file SiStripDetId.h.
References DetId::id_, sterMask_, and sterStartBit_.
Referenced by SiStripRecHitsValid::analyze(), sistrip::MeasureLA::calibration_key(), helper::ClusterStorer::ClusterHitRecord< SiStripRecHit2D::ClusterRef >rekey(), RingMaker::determineExtensions(), RingMaker::dumpDetIds(), SiStripHotStripAlgorithmFromClusterOccupancy::extractBadStrips(), TrackerOfflineValidation::fillTree(), TrackerOfflineValidationSummary::fillTree(), cms::ClusterMTCCFilter::filter(), SiStripGainCosmicCalculator::getNewObject(), SiStripSubStructure::getTECDetectors(), SiStripSubStructure::getTIDDetectors(), AlignmentTrackSelector::isHit2D(), TECDetId::isRPhi(), TOBDetId::isRPhi(), TIBDetId::isRPhi(), TIDDetId::isRPhi(), TIDDetId::isStereo(), TIBDetId::isStereo(), TOBDetId::isStereo(), TECDetId::isStereo(), LA_Filler_Fitter::layerLabel(), TrajectoryManager::makeSinglePSimHit(), TkAlCaOverlapTagger::produce(), reco::modules::TrackerTrackHitFilter::produceFromTrajectory(), and trackerHierarchy().
{ if ( ((id_>>sterStartBit_ ) & sterMask_ ) == 1 ) { return ( (id_>>sterStartBit_) & sterMask_ ); } else { return 0; } }
double SiStripDetId::stripLength | ( | ) | const [inline, virtual] |
Returns strip length of strip tracker sensor, otherwise null.
Definition at line 164 of file SiStripDetId.h.
{
return 0.;
}
SiStripDetId::SubDetector SiStripDetId::subDetector | ( | ) | const [inline] |
Returns enumerated type specifying sub-detector.
Definition at line 102 of file SiStripDetId.h.
References DetId::det(), DetId::subdetId(), TEC, TIB, TID, TOB, DetId::Tracker, and UNKNOWN.
Referenced by MonitorTrackResiduals::analyze(), sistrip::MeasureLA::calibration_key(), MonitorTrackResiduals::createMEs(), LA_Filler_Fitter::fill(), SiStripFolderOrganizer::getFolderName(), SiStripFolderOrganizer::getLayerFolderName(), SiStripHashedDetId::init(), SiStripBadModuleGenerator::isTECDetector(), SiStripBadModuleGenerator::isTIBDetector(), SiStripBadModuleGenerator::isTIDDetector(), SiStripBadModuleGenerator::isTOBDetector(), LA_Filler_Fitter::layerLabel(), moduleGeometry(), ShallowClustersProducer::moduleVars::moduleVars(), SiStripFolderOrganizer::setLayerFolder(), SiStripRegionCabling::subdetFromDetId(), LA_Filler_Fitter::subdetLabel(), TrackerDpgAnalysis::toStringName(), and HDQMInspectorConfigSiStrip::translateDetId().
{ if( det() == DetId::Tracker && subdetId() == static_cast<int>(SiStripDetId::TIB) ) { return SiStripDetId::TIB; } else if ( det() == DetId::Tracker && subdetId() == static_cast<int>(SiStripDetId::TID) ) { return SiStripDetId::TID; } else if ( det() == DetId::Tracker && subdetId() == static_cast<int>(SiStripDetId::TOB) ) { return SiStripDetId::TOB; } else if ( det() == DetId::Tracker && subdetId() == static_cast<int>(SiStripDetId::TEC) ) { return SiStripDetId::TEC; } else { return SiStripDetId::UNKNOWN; } }
const unsigned SiStripDetId::layerMask_ = 0x7 [static, private] |
Reimplemented in TIBDetId, and TOBDetId.
Definition at line 92 of file SiStripDetId.h.
Referenced by moduleGeometry().
const unsigned SiStripDetId::layerStartBit_ = 14 [static, private] |
Reimplemented in TIBDetId, and TOBDetId.
Definition at line 91 of file SiStripDetId.h.
Referenced by moduleGeometry().
const uint16_t SiStripDetId::reservedMask_ = 0x7 [static, private] |
Mask for "reserved" bit field (3-bits wide).
Definition at line 86 of file SiStripDetId.h.
Referenced by reserved(), and SiStripDetId().
const uint16_t SiStripDetId::reservedStartBit_ = 20 [static, private] |
Position of "reserved" bit field.
Definition at line 80 of file SiStripDetId.h.
Referenced by reserved(), and SiStripDetId().
const unsigned SiStripDetId::ringMaskTEC_ = 0x7 [static, private] |
Definition at line 96 of file SiStripDetId.h.
Referenced by moduleGeometry().
const unsigned SiStripDetId::ringMaskTID_ = 0x3 [static, private] |
Definition at line 94 of file SiStripDetId.h.
Referenced by moduleGeometry().
const unsigned SiStripDetId::ringStartBitTEC_ = 5 [static, private] |
Definition at line 95 of file SiStripDetId.h.
Referenced by moduleGeometry().
const unsigned SiStripDetId::ringStartBitTID_ = 9 [static, private] |
Definition at line 93 of file SiStripDetId.h.
Referenced by moduleGeometry().
const uint32_t SiStripDetId::sterMask_ = 0x3 [static, private] |
Reimplemented in TECDetId, TIBDetId, TIDDetId, and TOBDetId.
Definition at line 89 of file SiStripDetId.h.
Referenced by glued(), partnerDetId(), and stereo().
const uint32_t SiStripDetId::sterStartBit_ = 0 [static, private] |
Reimplemented in TECDetId, TIBDetId, TIDDetId, and TOBDetId.
Definition at line 83 of file SiStripDetId.h.
Referenced by glued(), partnerDetId(), and stereo().