CMS 3D CMS Logo

Public Member Functions | Static Public Member Functions | Private Types | Static Private Member Functions

CSCDetId Class Reference

#include <CSCDetId.h>

Inheritance diagram for CSCDetId:
DetId

List of all members.

Public Member Functions

int chamber () const
CSCDetId chamberId () const
int channel (int istrip)
 CSCDetId (uint32_t id)
 CSCDetId (int iendcap, int istation, int iring, int ichamber, int ilayer=0)
 CSCDetId (const CSCDetId &id)
 CSCDetId (DetId id)
 CSCDetId ()
int endcap () const
unsigned short iChamberType ()
int layer () const
int ring () const
int station () const
int triggerCscId () const
int triggerSector () const
short int zendcap () const

Static Public Member Functions

static int chamber (int index)
static int endcap (int index)
static unsigned short iChamberType (unsigned short istation, unsigned short iring)
static int layer (int index)
static int maxChamberId ()
static int maxEndcapId ()
static int maxLayerId ()
static int maxRingId ()
static int maxStationId ()
static int minChamberId ()
static int minEndcapId ()
static int minLayerId ()
static int minRingId ()
static int minStationId ()
static int rawIdMaker (int iendcap, int istation, int iring, int ichamber, int ilayer)
static int ring (int index)
static int station (int index)

Private Types

enum  eMaskBitDet {
  MASK_ENDCAP = 07, MASK_STATION = 07, MASK_RING = 07, MASK_CHAMBER = 077,
  MASK_LAYER = 07
}
enum  eMaxNum {
  MAX_ENDCAP = 2, MAX_STATION = 4, MAX_RING = 4, MAX_CHAMBER = 36,
  MAX_LAYER = 6
}
enum  eMinNum {
  MIN_ENDCAP = 1, MIN_STATION = 1, MIN_RING = 1, MIN_CHAMBER = 1,
  MIN_LAYER = 1
}
enum  eNumBitDet {
  BITS_ENDCAP = 3, BITS_STATION = 3, BITS_RING = 3, BITS_CHAMBER = 6,
  BITS_LAYER = 3
}
enum  eStartBitDet { START_CHAMBER = BITS_LAYER, START_RING = START_CHAMBER+BITS_CHAMBER, START_STATION = START_RING+BITS_RING, START_ENDCAP = START_STATION+BITS_STATION }

Static Private Member Functions

static int detIdToInt (int iring)
static uint32_t init (int iendcap, int istation, int iring, int ichamber, int ilayer)
static int intToDetId (int iring)

Detailed Description

Identifier class for hierarchy of Endcap Muon detector components.

Ported from MuEndDetectorId but now derived from DetId and updated accordingly.

Allows access to hardware integer labels of the subcomponents of the Muon Endcap CSC detector system.

The STATIC member functions can be used to translate back and forth between a layer/chamber 'rawId' and the set of subdetector labels.

Warning:
EVERY LABEL COUNTS FROM ONE NOT ZERO.

Definition at line 27 of file CSCDetId.h.


Member Enumeration Documentation

enum CSCDetId::eMaskBitDet [private]
Enumerator:
MASK_ENDCAP 
MASK_STATION 
MASK_RING 
MASK_CHAMBER 
MASK_LAYER 

Definition at line 308 of file CSCDetId.h.

enum CSCDetId::eMaxNum [private]
Enumerator:
MAX_ENDCAP 
MAX_STATION 
MAX_RING 
MAX_CHAMBER 
MAX_LAYER 

Definition at line 299 of file CSCDetId.h.

enum CSCDetId::eMinNum [private]
Enumerator:
MIN_ENDCAP 
MIN_STATION 
MIN_RING 
MIN_CHAMBER 
MIN_LAYER 

Definition at line 301 of file CSCDetId.h.

enum CSCDetId::eNumBitDet [private]
Enumerator:
BITS_ENDCAP 
BITS_STATION 
BITS_RING 
BITS_CHAMBER 
BITS_LAYER 

Definition at line 305 of file CSCDetId.h.

enum CSCDetId::eStartBitDet [private]
Enumerator:
START_CHAMBER 
START_RING 
START_STATION 
START_ENDCAP 

Definition at line 311 of file CSCDetId.h.


Constructor & Destructor Documentation

CSCDetId::CSCDetId ( )

Default constructor; fills the common part in the base and leaves 0 in all other fields

Definition at line 5 of file CSCDetId.cc.

Referenced by chamberId().

CSCDetId::CSCDetId ( uint32_t  id)

Construct from a packed id. It is required that the Detector part of id is Muon and the SubDet part is CSC, otherwise an exception is thrown.

Definition at line 8 of file CSCDetId.cc.

References MuonSubdetId::CSC, DetId::det(), Exception, DetId::Muon, and DetId::subdetId().

                             :DetId(id) {
  if (det()!=DetId::Muon || subdetId()!=MuonSubdetId::CSC) {
    throw cms::Exception("InvalidDetId") << "CSCDetId ctor:"
                                         << " det: " << det()
                                         << " subdet: " << subdetId()
                                         << " is not a valid CSC id";  
  }
}
CSCDetId::CSCDetId ( DetId  id)

Definition at line 17 of file CSCDetId.cc.

References MuonSubdetId::CSC, DetId::det(), Exception, DetId::Muon, and DetId::subdetId().

                          :DetId(id) {
  if (det()!=DetId::Muon || subdetId()!=MuonSubdetId::CSC) {
    throw cms::Exception("InvalidDetId") << "CSCDetId ctor:"
                                         << " det: " << det()
                                         << " subdet: " << subdetId()
                                         << " is not a valid CSC id";  
  }
}
CSCDetId::CSCDetId ( int  iendcap,
int  istation,
int  iring,
int  ichamber,
int  ilayer = 0 
)

Construct from fully qualified identifier. Input values are required to be within legal ranges, otherwise an exception is thrown.
iendcap: 1=forward (+Z), 2=backward(-Z)

Definition at line 26 of file CSCDetId.cc.

References Exception, DetId::id_, init(), MAX_CHAMBER, MAX_ENDCAP, MAX_LAYER, MAX_RING, and MAX_STATION.

                                 : 
  DetId(DetId::Muon, MuonSubdetId::CSC) 
{    
  if (iendcap  < 0 || iendcap  > MAX_ENDCAP ||
      istation < 0 || istation > MAX_STATION ||
      iring    < 0 || iring    > MAX_RING ||
      ichamber < 0 || ichamber > MAX_CHAMBER ||
      ilayer   < 0 || ilayer   > MAX_LAYER ) {
    throw cms::Exception("InvalidDetId") << "CSCDetId ctor:" 
                                         << " Invalid parameters: " 
                                         << " E:"<< iendcap
                                         << " S:"<< istation
                                         << " R:"<< iring
                                         << " C:"<< ichamber
                                         << " L:"<< ilayer   
                                         << std::endl;
  }
  id_ |= init(iendcap, istation, iring, ichamber, ilayer);
}
CSCDetId::CSCDetId ( const CSCDetId id) [inline]

Copy ctor.

Definition at line 50 of file CSCDetId.h.

     : DetId(id.id_) { }  

Member Function Documentation

int CSCDetId::chamber ( ) const [inline]

Return Chamber label.

Definition at line 70 of file CSCDetId.h.

References DetId::id_, MASK_CHAMBER, and START_CHAMBER.

Referenced by CSCPairResidualsConstraint::addTrack(), MuonGeometrySanityCheck::analyze(), RPCEfficiency::analyze(), MuonAlignmentAnalyzer::analyze(), MuonAlignment::analyze(), CSCRecHitDBuilder::build(), CSCGeometryParsFromDD::build(), CSCGeometryBuilder::buildChamber(), cscd2r::chamberID(), MuonAlignmentFromReference::chamberPrettyNameFromId(), CSCChamberFitter::CSCChamberFitter(), CSCSegtoRPC::CSCSegtoRPC(), CSCDigitizer::doAction(), CSCOfflineMonitor::doBXMonitor(), CSCSkim::doCSCSkimming(), CSCOfflineMonitor::doEfficiencies(), CSCValidation::doEfficiencies(), CSCSkim::doMessyEventSkimming(), CSCOfflineMonitor::doOccupancies(), CSCValidation::doOccupancies(), CSCValidation::doRecHits(), CSCValidation::doTimeMonitoring(), CSCPairResidualsConstraint::dphidzFromTrack(), CSCEfficiency::fillRechitsSegments_info(), CSCEfficiency::fillSimhit_info(), MuonGeometryArrange::fillTree(), CSCValidation::findNonAssociatedRecHits(), MuonAlignmentFromReference::fitAndAlign(), cscdqm::EventProcessor::getCSCFromMap(), ChamberSegmentUtility::getCSCSegmentsInChamber(), TrackerMuonHitExtractor::getMuonHits(), HLTCSCOverlapFilter::hltFilter(), fireworks::info(), TAMuonChamberMatch::info(), DetIdInfo::info(), TrackerMuonHitExtractor::init(), cscdqm::Summary::isChamberStandby(), MuonSegmentMatcher::matchCSC(), MuonResidualsFromTrack::MuonResidualsFromTrack(), muon::overlap(), CSCChipSpeedCorrectionDBConditions::prefillDBChipSpeedCorrection(), SimHitShifter::produce(), MuonTrackProducer::produce(), CSCChamberFitter::radiusCorrection(), CSCOverlapsAlignmentAlgorithm::run(), AlignmentCSCOverlapSelector::select(), CSCPairResidualsConstraint::setZplane(), triggerCscId(), triggerSector(), and HLTMuon::validChambers().

                       {
     return (  (id_>>START_CHAMBER) & MASK_CHAMBER ); }
static int CSCDetId::chamber ( int  index) [inline, static]

Return Chamber label for supplied CSCDetId index.

Definition at line 163 of file CSCDetId.h.

References MASK_CHAMBER, and START_CHAMBER.

                                   {
     return (  (index>>START_CHAMBER) & MASK_CHAMBER ); }
CSCDetId CSCDetId::chamberId ( ) const [inline]
int CSCDetId::channel ( int  istrip) [inline]

Geometric channel no. from geometric strip no. - identical except for ME1a ganged strips

Note that 'Geometric' means increasing number corresponds to increasing local x coordinate.

Warning:
There is no attempt here to handle cabling or readout questions. If you need that look at CondFormats/CSCObjects/CSCChannelTranslator.

Definition at line 120 of file CSCDetId.h.

References ring().

Referenced by CSCRecHit2D::sharesInput().

                             { 
     if ( ring()== 4 ) 
       // strips 1-48 mapped to channels 1-16:
       // 1+17+33->1, 2+18+34->2, .... 16+32+48->16
       return 1 + (istrip-1)%16; 
     else 
       return istrip; 
   }
static int CSCDetId::detIdToInt ( int  iring) [inline, static, private]

Definition at line 287 of file CSCDetId.h.

References i.

Referenced by ring().

                                   {
    // reverse intToDetId: change 1, 2, 3, 4 inside the DetId to 4, 1, 2, 3 for external use
    // i.e. output ring # 1, 2, 3, 4 in ME1 means ME1b, ME12, ME13, ME1a as usual in the offline software.
    int i = (iring-1);
    if (i == 0)
      i = 4;
    return i;
  }
int CSCDetId::endcap ( ) const [inline]

Return Endcap label. 1=forward (+Z); 2=backward (-Z)

Definition at line 95 of file CSCDetId.h.

References DetId::id_, MASK_ENDCAP, and START_ENDCAP.

Referenced by CSCDigiToRaw::add(), CSCPairResidualsConstraint::addTrack(), BeamHaloAnalyzer::analyze(), MuonGeometrySanityCheck::analyze(), CSCAFEBThrAnalysis::analyze(), RPCEfficiency::analyze(), MuonAlignmentAnalyzer::analyze(), MuonAlignment::analyze(), CSCAFEBConnectAnalysis::analyze(), CSCRecHitDBuilder::build(), CSCGeometryParsFromDD::build(), CSCGeometryBuilder::buildChamber(), AlignableMuon::buildCSCEndcap(), CSCHaloAlgo::Calculate(), CSCPairResidualsConstraint::calculatePhi(), cscd2r::chamberID(), MuonAlignmentFromReference::chamberPrettyNameFromId(), ResidualRefitting::CollectTrackHits(), CSCChamberFitter::CSCChamberFitter(), CSCSegtoRPC::CSCSegtoRPC(), CSCDigitizer::doAction(), CSCOfflineMonitor::doBXMonitor(), CSCSkim::doCertainChamberSelection(), CSCSkim::doCSCSkimming(), CSCSkim::doDTOverlap(), CSCOfflineMonitor::doEfficiencies(), CSCValidation::doEfficiencies(), CSCSkim::doHaloLike(), CSCSkim::doMessyEventSkimming(), CSCOfflineMonitor::doOccupancies(), CSCValidation::doOccupancies(), CSCSkim::doOverlapSkimming(), CSCValidation::doRecHits(), CSCOfflineMonitor::doRecHits(), CSCValidation::doSegments(), CSCValidation::doTimeMonitoring(), CSCPairResidualsConstraint::dphidzFromTrack(), csc::L1TrackId::endcap(), AlignmentMonitorMuonResiduals::event(), CSCEfficiency::fillRechitsSegments_info(), CSCEfficiency::fillSimhit_info(), CSCValidation::findNonAssociatedRecHits(), MuonAlignmentFromReference::fitAndAlign(), cscdqm::EventProcessor::getCSCFromMap(), TrackerMuonHitExtractor::getMuonHits(), HLTCSCOverlapFilter::hltFilter(), fireworks::info(), TAMuonChamberMatch::info(), DetIdInfo::info(), TrackerMuonHitExtractor::init(), cscdqm::Summary::isChamberStandby(), MuonSegmentMatcher::matchCSC(), MuonResidualsFromTrack::MuonResidualsFromTrack(), CSCDetIdSameDetLayerComparator::operator()(), muon::overlap(), CSCChipSpeedCorrectionDBConditions::prefillDBChipSpeedCorrection(), cscdqm::EventProcessor::processCSC(), SimHitShifter::produce(), MuonTrackProducer::produce(), MuonSimHitProducer::produce(), CSCChamberFitter::radiusCorrection(), CSCOverlapsAlignmentAlgorithm::run(), AlignmentCSCBeamHaloSelector::select(), AlignmentCSCTrackSelector::select(), AlignmentCSCOverlapSelector::select(), CSCPairResidualsConstraint::setZplane(), TracktoRPC::TracktoRPC(), ValidateGeometry::validateCSChamberGeometry(), ValidateGeometry::validateCSCLayerGeometry(), HLTMuon::validChambers(), MuonAlignmentOutputXML::writeComponents(), and zendcap().

                      {
     return (  (id_>>START_ENDCAP) & MASK_ENDCAP ); }
static int CSCDetId::endcap ( int  index) [inline, static]

Return Endcap label for supplied CSCDetId index.

Definition at line 188 of file CSCDetId.h.

References MASK_ENDCAP, and START_ENDCAP.

                                  {
     return (  (index>>START_ENDCAP) & MASK_ENDCAP ); }
unsigned short CSCDetId::iChamberType ( ) [inline]
unsigned short CSCDetId::iChamberType ( unsigned short  istation,
unsigned short  iring 
) [static]

Return a unique integer 1-10 for a station, ring pair: 1 for S = 1 and R=4 inner strip part of ME11 (ME1a) 2,3,4 = R+1 for S = 1 and R = 1,2,3 (ME11 means ME1b) 5-10 = 2*S+R for S = 2,3,4 and R = 1,2

Definition at line 100 of file CSCDetId.cc.

References i.

                                                                                     {
  int i = 2 * istation + iring; // i=2S+R ok for S=2, 3, 4
  if ( istation == 1 ) {
    --i;                       // ring 1R -> i=1+R (2S+R-1=1+R for S=1)
    if ( i > 4 ) i = 1;        // But ring 1A (R=4) -> i=1
  }   
  return i;
}
static uint32_t CSCDetId::init ( int  iendcap,
int  istation,
int  iring,
int  ichamber,
int  ilayer 
) [inline, static, private]

Method for initialization within ctors.

Definition at line 255 of file CSCDetId.h.

References intToDetId(), MASK_CHAMBER, MASK_ENDCAP, MASK_LAYER, MASK_RING, MASK_STATION, START_CHAMBER, START_ENDCAP, START_RING, and START_STATION.

Referenced by CSCDetId(), and rawIdMaker().

                                                              {
    
    if (istation == 1)
      iring = intToDetId(iring);

     return
         (ilayer   & MASK_LAYER)                      |
       ( (ichamber & MASK_CHAMBER) << START_CHAMBER ) |
       ( (iring    & MASK_RING)    << START_RING )    |
       ( (istation & MASK_STATION) << START_STATION ) | 
       ( (iendcap  & MASK_ENDCAP)  << START_ENDCAP ) ; }
static int CSCDetId::intToDetId ( int  iring) [inline, static, private]

Methods for reordering CSCDetId for ME1 detectors.

Internally the chambers are ordered (Station/Ring) as: ME1/a (1/1), ME1/b (1/2), ME1/2 (1/3), ME1/3 (1/4) i.e. they are labelled within the DetId as if ME1a, ME1b, ME12, ME13 are rings 1, 2, 3, 4. The offline software always considers rings 1, 2, 3, 4 as ME1b, ME12, ME13, ME1a so that at least ME12 and ME13 have ring numbers which match in hardware and software!

Definition at line 278 of file CSCDetId.h.

References i.

Referenced by init().

                                   {
    // change iring = 1, 2, 3, 4 input to 2, 3, 4, 1 for use inside the DetId
    // i.e. ME1b, ME12, ME13, ME1a externally become stored internally in order ME1a, ME1b, ME12, ME13
    int i = (iring+1)%4;
    if (i == 0)
      i = 4;
    return i;
  }
int CSCDetId::layer ( ) const [inline]

Return Layer label.

Definition at line 63 of file CSCDetId.h.

References DetId::id_, and MASK_LAYER.

Referenced by CSCDigiToRaw::add(), CSCSegAlgoTC::areHitsCloseInGlobalPhi(), CSCSegAlgoSK::areHitsCloseInGlobalPhi(), CSCRecHitDBuilder::build(), CSCGeometryParsFromDD::build(), CSCGeometryBuilder::buildChamber(), CSCSegAlgoTC::buildSegments(), chamberId(), CSCCLCTData::comparatorDigis(), CSCSegAlgoST::correctTheCovX(), CSCSegAlgoDF::derivativeMatrix(), CSCSegAlgoHitPruning::derivativeMatrix(), CSCSegAlgoShowering::derivativeMatrix(), CSCSegAlgoSK::derivativeMatrix(), CSCSegAlgoTC::derivativeMatrix(), CSCSegAlgoST::derivativeMatrix(), CSCCFEBData::digis(), CSCDigitizer::doAction(), CSCSkim::doCSCSkimming(), CSCOfflineMonitor::doEfficiencies(), CSCValidation::doEfficiencies(), CSCSkim::doMessyEventSkimming(), CSCValidation::doRecHits(), CSCValidation::doResolution(), CSCOfflineMonitor::doResolution(), CSCSegAlgoHitPruning::fillChiSquared(), CSCSegAlgoSK::fillChiSquared(), CSCSegAlgoTC::fillChiSquared(), CSCSegAlgoST::fillChiSquared(), CSCEfficiency::fillRechitsSegments_info(), CSCEfficiency::fillSimhit_info(), CSCValidation::findNonAssociatedRecHits(), CSCSegAlgoHitPruning::fitSlopes(), CSCSegAlgoST::fitSlopes(), CSCSegAlgoTC::fitSlopes(), CSCSegAlgoSK::fitSlopes(), MuonChamberResidual::hitlayer(), fireworks::info(), DetIdInfo::info(), TAMuonChamberMatch::info(), CSCSegAlgoTC::isHitNearSegment(), CSCSegAlgoShowering::isHitNearSegment(), CSCSegAlgoSK::isHitNearSegment(), CSCSegAlgoDF::isHitNearSegment(), CSCChamber::layer(), CSCDigitizer::layersMissing(), MuonResidualsFromTrack::MuonResidualsFromTrack(), SimHitShifter::produce(), MuonSimHitProducer::produce(), CSCSegAlgoDF::pruneFromResidual(), CSCSegAlgoShowering::pruneFromResidual(), CSCEventData::selfTest(), CSCSegAlgoShowering::showerSeg(), CSCSegAlgoTC::tryAddingHitsToSegment(), CSCSegAlgoDF::updateParameters(), CSCSegAlgoShowering::updateParameters(), CSCSegAlgoSK::updateParameters(), and CSCSegAlgoTC::updateParameters().

                    {
    return (id_ & MASK_LAYER); } 
static int CSCDetId::layer ( int  index) [inline, static]

Return Layer label for supplied CSCDetId index.

Definition at line 156 of file CSCDetId.h.

References MASK_LAYER.

                                 {
     return (index & MASK_LAYER); }
static int CSCDetId::maxChamberId ( ) [inline, static]
static int CSCDetId::maxEndcapId ( ) [inline, static]
static int CSCDetId::maxLayerId ( ) [inline, static]
static int CSCDetId::maxRingId ( ) [inline, static]
static int CSCDetId::maxStationId ( ) [inline, static]
static int CSCDetId::minChamberId ( ) [inline, static]
static int CSCDetId::minEndcapId ( ) [inline, static]
static int CSCDetId::minLayerId ( ) [inline, static]
static int CSCDetId::minRingId ( ) [inline, static]
static int CSCDetId::minStationId ( ) [inline, static]
static int CSCDetId::rawIdMaker ( int  iendcap,
int  istation,
int  iring,
int  ichamber,
int  ilayer 
) [inline, static]

Returns the unique integer 'rawId' which labels each CSC layer.

The arguments are the integer labels for, respectively,
endcap, station, ring, chamber, layer.

Warning:
The input int args are expected to be .ge. 1 and there is no sanity-checking for their upper limits.
The returned integers are not necessarily consecutive, i.e. there are gaps. This is to permit computational efficiency starting from the component ids.

Definition at line 146 of file CSCDetId.h.

References MuonSubdetId::CSC, init(), DetId::kDetOffset, DetId::kSubdetOffset, and DetId::Muon.

Referenced by CSCNumberingScheme::baseNumberToUnitNumber(), CSCReadoutMapping::findHardwareId(), CSCTriggerSimpleMapping::hwId(), CSCTriggerMapping::swId(), and CSCReadoutMapping::swId().

                                          {
     return ( (DetId::Muon&0xF)<<(DetId::kDetOffset) ) |            // set Muon flag
            ( (MuonSubdetId::CSC&0x7)<<(DetId::kSubdetOffset) ) |   // set CSC flag
               init(iendcap, istation, iring, ichamber, ilayer) ; } // set CSC id
int CSCDetId::ring ( ) const [inline]

Return Ring label.

Definition at line 77 of file CSCDetId.h.

References detIdToInt(), DetId::id_, MASK_RING, MASK_STATION, START_RING, and START_STATION.

Referenced by CSCDigiToRaw::add(), CSCPairResidualsConstraint::addTrack(), MuonGeometrySanityCheck::analyze(), RPCEfficiency::analyze(), MuonAlignmentAnalyzer::analyze(), MuonAlignment::analyze(), CSCRecHitDBuilder::build(), CSCGeometryParsFromDD::build(), FWCSCWireDigiProxyBuilder::build(), CSCGeometryBuilder::build(), CSCGeometryBuilder::buildChamber(), AlignableMuon::buildCSCEndcap(), CSCPairResidualsConstraint::calculatePhi(), cscd2r::chamberID(), MuonAlignmentFromReference::chamberPrettyNameFromId(), channel(), CSCCLCTData::comparatorDigis(), CSCChamberFitter::CSCChamberFitter(), CSCSegtoRPC::CSCSegtoRPC(), CSCCFEBData::digis(), CSCDigitizer::doAction(), CSCOfflineMonitor::doBXMonitor(), CSCSkim::doCSCSkimming(), CSCOfflineMonitor::doEfficiencies(), CSCValidation::doEfficiencies(), CSCSkim::doMessyEventSkimming(), CSCOfflineMonitor::doOccupancies(), CSCValidation::doOccupancies(), CSCValidation::doRecHits(), CSCValidation::doResolution(), CSCOfflineMonitor::doResolution(), CSCValidation::doTimeMonitoring(), CSCPairResidualsConstraint::dphidzFromTrack(), AlignmentMonitorMuonResiduals::event(), CSCConfigurableStripConditions::fetchNoisifier(), MuonIdProducer::fillArbitrationInfo(), MuonMesh::fillMesh(), CSCHitFromStripOnly::fillPulseHeights(), CSCEfficiency::fillRechitsSegments_info(), CSCEfficiency::fillSimhit_info(), CSCValidation::findNonAssociatedRecHits(), MuonAlignmentFromReference::fitAndAlign(), CSCConfigurableStripConditions::gain(), CSCDriftSim::gasGain(), cscdqm::EventProcessor::getCSCFromMap(), TrackerMuonHitExtractor::getMuonHits(), CSCValidation::getthisSignal(), CSCValidation::getWidth(), HLTCSCOverlapFilter::hltFilter(), iChamberType(), fireworks::info(), DetIdInfo::info(), TAMuonChamberMatch::info(), TrackerMuonHitExtractor::init(), cscdqm::Summary::isChamberStandby(), CSCPairResidualsConstraint::isFiducial(), MuonSeedOrcaPatternRecognition::markAsUsed(), MuonSegmentMatcher::matchCSC(), MuonResidualsFromTrack::MuonResidualsFromTrack(), CSCDetIdSameDetLayerComparator::operator()(), muon::overlap(), CSCChipSpeedCorrectionDBConditions::prefillDBChipSpeedCorrection(), cscdqm::EventProcessor::processCSC(), SimHitShifter::produce(), MuonTrackProducer::produce(), MuonSimHitProducer::produce(), MuonMesh::pruneMesh(), MuonSeedPtExtractor::pT_extract(), CSCChamberFitter::radiusCorrection(), CSCDigiValidator::relabelCompDigis(), CSCOverlapsAlignmentAlgorithm::run(), CSCHitFromStripOnly::runStrip(), CSCPairResidualsConstraint::setZplane(), SETSeedFinder::sortByLayer(), MuonSeedPtExtractor::stationCode(), triggerCscId(), triggerSector(), ValidateGeometry::validateCSCLayerGeometry(), HLTMuon::validChambers(), and CSCSegmentValidation::whatChamberType().

                    {
     if (((id_>>START_STATION) & MASK_STATION) == 1)
       return (  detIdToInt((id_>>START_RING) & MASK_RING )); 
     else
       return (((id_>>START_RING) & MASK_RING )); 
   }
static int CSCDetId::ring ( int  index) [inline, static]

Return Ring label for supplied CSCDetId index.

Definition at line 170 of file CSCDetId.h.

References detIdToInt(), MASK_RING, MASK_STATION, START_RING, and START_STATION.

                                {
     if (((index>>START_STATION) & MASK_STATION) == 1)
       return (  detIdToInt((index>>START_RING) & MASK_RING )); 
     else
       return (( index>>START_RING) & MASK_RING ); 
   }
static int CSCDetId::station ( int  index) [inline, static]

Return Station label for supplied CSCDetId index.

Definition at line 181 of file CSCDetId.h.

References MASK_STATION, and START_STATION.

                                   {
     return (  (index>>START_STATION) & MASK_STATION ); }
int CSCDetId::station ( ) const [inline]

Return Station label.

Definition at line 88 of file CSCDetId.h.

References DetId::id_, MASK_STATION, and START_STATION.

Referenced by CSCDigiToRaw::add(), CSCPairResidualsConstraint::addTrack(), AlignmentMonitorMuonResiduals::afterAlignment(), MuonGeometrySanityCheck::analyze(), RPCEfficiency::analyze(), MuonAlignmentAnalyzer::analyze(), MuonAlignment::analyze(), CSCRecHitDBuilder::build(), CSCGeometryParsFromDD::build(), FWCSCWireDigiProxyBuilder::build(), CSCGeometryBuilder::build(), CSCGeometryBuilder::buildChamber(), AlignableMuon::buildCSCEndcap(), CSCPairResidualsConstraint::calculatePhi(), cscd2r::chamberID(), MuonAlignmentFromReference::chamberPrettyNameFromId(), CSCChamberFitter::CSCChamberFitter(), CSCSegtoRPC::CSCSegtoRPC(), CSCDigitizer::doAction(), CSCOfflineMonitor::doBXMonitor(), CSCSkim::doCSCSkimming(), CSCOfflineMonitor::doEfficiencies(), CSCValidation::doEfficiencies(), CSCSkim::doMessyEventSkimming(), CSCOfflineMonitor::doOccupancies(), CSCValidation::doOccupancies(), CSCOfflineMonitor::doPedestalNoise(), CSCValidation::doRecHits(), CSCOfflineMonitor::doRecHits(), CSCValidation::doResolution(), CSCOfflineMonitor::doResolution(), CSCValidation::doTimeMonitoring(), CSCPairResidualsConstraint::dphidzFromTrack(), AlignmentMonitorMuonResiduals::event(), CSCConfigurableStripConditions::fetchNoisifier(), CSCEfficiency::fillRechitsSegments_info(), CSCEfficiency::fillSimhit_info(), DynamicTruncation::filteringAlgo(), CSCValidation::findNonAssociatedRecHits(), MuonAlignmentFromReference::fitAndAlign(), CSCConfigurableStripConditions::gain(), CSCDriftSim::gasGain(), cscdqm::EventProcessor::getCSCFromMap(), TrackerMuonHitExtractor::getMuonHits(), GlobalMuonRefitter::getRidOfSelectStationHits(), CSCValidation::getthisSignal(), CSCValidation::getWidth(), HLTCSCOverlapFilter::hltFilter(), iChamberType(), fireworks::info(), TAMuonChamberMatch::info(), DetIdInfo::info(), TrackerMuonHitExtractor::init(), cscdqm::Summary::isChamberStandby(), CSCPairResidualsConstraint::isFiducial(), MuonSegmentMatcher::matchCSC(), TrackTransformerForGlobalCosmicMuons::MuonKeep(), MuonResidualsFromTrack::MuonResidualsFromTrack(), CSCDetIdSameDetLayerComparator::operator()(), muon::overlap(), CSCChipSpeedCorrectionDBConditions::prefillDBChipSpeedCorrection(), cscdqm::EventProcessor::processCSC(), SimHitShifter::produce(), MuonTrackProducer::produce(), MuonSimHitProducer::produce(), MuonSeedPtExtractor::pT_extract(), CSCChamberFitter::radiusCorrection(), CSCDigiValidator::relabelCompDigis(), ResidualRefitting::ReturnStation(), CSCOverlapsAlignmentAlgorithm::run(), MuonSeedCleaner::SeedCandidates(), AlignmentCSCBeamHaloSelector::select(), AlignmentCSCTrackSelector::select(), AlignmentCSCOverlapSelector::select(), CSCPairResidualsConstraint::setZplane(), SETSeedFinder::sortByLayer(), csc::L1TrackId::station(), TAMuonChamberMatch::station(), reco::MuonChamberMatch::station(), MuonSeedPtExtractor::stationCode(), triggerCscId(), triggerSector(), ValidateGeometry::validateCSCLayerGeometry(), HLTMuon::validChambers(), and CSCSegmentValidation::whatChamberType().

                       {
     return (  (id_>>START_STATION) & MASK_STATION ); }
int CSCDetId::triggerCscId ( ) const

Return trigger-level CSC id within a sector for an Endcap Muon chamber.

This id is an index within a sector such that the 3 inner ring chambers (20 degrees each) are 1, 2, 3 (increasing counterclockwise) and the 6 outer ring chambers (10 degrees each) are 4, 5, 6, 7, 8, 9 (again increasing counter-clockwise.)

This method knows which chambers are part of which sector and returns the chamber label/index/identifier accordingly. Beware that this information is liable to change according to hardware and software changes.

Definition at line 67 of file CSCDetId.cc.

References chamber(), query::result, ring(), and station().

{
  // UPDATED TO OCT 2005 - LGRAY Feb 2006

  int result;
  int ring    = this->ring();
  int station = this->station();
  int chamber = this->chamber();

  if( station == 1 ) {
    result = (chamber) % 3 + 1; // 1,2,3
    switch (ring) {
    case 1:
      break;
    case 2:
      result += 3; // 4,5,6
      break;
    case 3:
      result += 6; // 7,8,9
      break;
    }
  }
  else {
    if( ring == 1 ) {
      result = (chamber+1) % 3 + 1; // 1,2,3
    }
    else {
      result = (chamber+3) % 6 + 4; // 4,5,6,7,8,9
    }
  }
  return result;
}
int CSCDetId::triggerSector ( ) const

Return trigger-level sector id for an Endcap Muon chamber.

This method encapsulates the information about which chambers are in which sectors, and may need updating according to hardware changes, or software chamber indexing.

Station 1 has 3 rings of 10-degree chambers.
Stations 2, 3, 4 have an inner ring of 20-degree chambers and an outer ring of 10-degree chambers.

Sectors are 60 degree slices of a station, covering both rings.
For Station 1, there are subsectors of 30 degrees: 9 10-degree chambers (3 each from ME1/1, ME1/2, ME1/3.)

The first sector starts at phi = 15 degrees so it matches Barrel Muon sectors. We count from one not zero.

Definition at line 47 of file CSCDetId.cc.

References chamber(), query::result, ring(), and station().

Referenced by MuonIdProducer::sectorPhi().

{
  // UPDATED TO OCT 2005 - LGRAY Feb 2006

  int result;
  int ring    = this->ring();
  int station = this->station();
  int chamber = this->chamber();

    if(station > 1 && ring > 1 ) {
      result = ((static_cast<unsigned>(chamber-3) & 0x7f) / 6) + 1; // ch 3-8->1, 9-14->2, ... 1,2 -> 6
    }
    else {
      result =  (station != 1) ? ((static_cast<unsigned>(chamber-2) & 0x1f) / 3) + 1 : // ch 2-4-> 1, 5-7->2, ...
                                 ((static_cast<unsigned>(chamber-3) & 0x7f) / 6) + 1;
    }

  return (result <= 6) ? result : 6; // max sector is 6, some calculations give a value greater than six but this is expected.
}
short int CSCDetId::zendcap ( ) const [inline]

What is the sign of global z?

Definition at line 102 of file CSCDetId.h.

References endcap().

                             {
     return ( endcap()!=1 ? -1 : +1 );
   }