CMS 3D CMS Logo

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

EEDetId Class Reference

#include <EEDetId.h>

Inheritance diagram for EEDetId:
DetId

List of all members.

Public Types

enum  { Subdet = EcalEndcap }
enum  { kEEhalf = 7324, kSizeForDenseIndexing = 2*kEEhalf }

Public Member Functions

uint32_t denseIndex () const
 EEDetId ()
 EEDetId (uint32_t rawid)
 EEDetId (int i, int j, int iz, int mode)
 EEDetId (const DetId &id)
 EEDetId (int crystal_ix, int crystal_iy, int iz)
int hashedIndex () const
int ic () const
int iPhiOuterRing () const
int iquadrant () const
int isc () const
int ix () const
int iy () const
EEDetId offsetBy (int nrStepsX, int nrStepsY) const
EEDetIdoperator= (const DetId &id)
bool positiveZ () const
EcalScDetId sc () const
EEDetId switchZSide () const
int zside () const

Static Public Member Functions

static EEDetId detIdFromDenseIndex (uint32_t din)
static int distanceX (const EEDetId &a, const EEDetId &b)
static int distanceY (const EEDetId &a, const EEDetId &b)
static bool fastValidDetId (int crystal_ix, int crystal_iy)
static EEDetId idOuterRing (int iPhi, int zEnd)
static int isc (int iscCol, int iscRow)
static bool isNextToBoundary (EEDetId id)
static bool isNextToDBoundary (EEDetId id)
static bool isNextToRingBoundary (EEDetId id)
static DetId offsetBy (const DetId startId, int nrStepsX, int nrStepsY)
static bool slowValidDetId (int crystal_ix, int crystal_iy)
static EcalSubdetector subdet ()
static DetId switchZSide (const DetId startId)
static EEDetId unhashIndex (int hi)
static bool validDenseIndex (uint32_t din)
static bool validDetId (int crystal_ix, int crystal_iy, int iz)
static bool validHashIndex (int i)

Static Public Attributes

static const int ICR_MAX = 25
static const int ICR_MIN = 1
static const int ISC_MAX = 316
static const int ISC_MIN = 1
static const int IX_MAX = 100
static const int IX_MIN = 1
static const int IY_MAX = 100
static const int IY_MIN = 1
static const int XYMODE = 0
static const int SCCRYSTALMODE = 1

Private Member Functions

bool isOuterRing () const
int ix (int iSC, int iCrys) const
int ixQuadrantOne () const
int iy (int iSC, int iCrys) const
int iyQuadrantOne () const

Static Private Member Functions

static bool isOuterRingXY (int ax, int ay)

Static Private Attributes

static const int iYoffset [nCols+1] = { 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0 }
static const unsigned short kdi [2 *IY_MAX]
static const unsigned short kxf [2 *IY_MAX]
static const int nCols = 10
static const int nCrys = 5
static const int QuadColLimits [nCols+1] = { 0, 8,17,27,36,45,54,62,70,76,79 }

Detailed Description

Crystal/cell identifier class for the ECAL endcap

Id:
EEDetId.h,v 1.28 2012/11/05 17:36:08 innocent Exp

Definition at line 16 of file EEDetId.h.


Member Enumeration Documentation

anonymous enum
Enumerator:
Subdet 

Sudetector type. Here it is ECAL endcap.

Definition at line 18 of file EEDetId.h.

anonymous enum
Enumerator:
kEEhalf 

Number of crystals per Dee

kSizeForDenseIndexing 

Number of dense crystal indices, that is number of crystals per endcap.

Definition at line 327 of file EEDetId.h.


Constructor & Destructor Documentation

EEDetId::EEDetId ( ) [inline]

Constructor of a null id

Definition at line 26 of file EEDetId.h.

Referenced by idOuterRing(), offsetBy(), switchZSide(), and unhashIndex().

{}
EEDetId::EEDetId ( uint32_t  rawid) [inline]

Constructor from a raw value

Parameters:
rawiddet ID number

Definition at line 31 of file EEDetId.h.

: DetId(rawid) {}
EEDetId::EEDetId ( int  crystal_ix,
int  crystal_iy,
int  iz 
) [inline]

Constructor from crystal ix,iy,iz (iz=+1/-1) (mode = XYMODE) or from sc,cr,iz (mode = SCCRYSTALMODE).

ix runs from 1 to 100 along x-axis of standard CMS coordinates
iy runs from 1 to 100 along y-axis of standard CMS coordinates
iz is -1 for EE- and +1 for EE+

For isc see isc(), for ic see ic()

See also:
isc(), ic()
Parameters:
iix or isc index
jiy or isc index
iziz/zside index: -1 for EE-, +1 for EE+
modepass XYMODE if i j refer to ix, iy, SCCRYSTALMODE if thery refer to isc, ic

Definition at line 46 of file EEDetId.h.

References DetId::id_.

                                                  : 
    DetId( Ecal, EcalEndcap ) {
    id_|=(crystal_iy&0x7f)|((crystal_ix&0x7f)<<7)|((iz>0)?(0x4000):(0));
  }
EEDetId::EEDetId ( int  i,
int  j,
int  iz,
int  mode 
)

Definition at line 56 of file EEDetId.cc.

References Exception, DetId::id_, ix(), iy(), SCCRYSTALMODE, validDetId(), and XYMODE.

                                                           : DetId( Ecal, EcalEndcap ) 
{
   int crystal_ix=0;
   int crystal_iy=0;
   if (mode == XYMODE) 
   {
      crystal_ix = index1;
      crystal_iy = index2;  
   } 
   else if (mode == SCCRYSTALMODE) 
   {
      int SC = index1;
      int crystal = index2;
      //      std::cout << "iz " << iz << " SC " << index1 << "crystal " << index2  << std::endl;
      
      crystal_ix=iz*ix(SC,crystal);
      if (crystal_ix<0)
        crystal_ix++;
      crystal_ix+=50;
      crystal_iy=iy(SC,crystal);
      if (crystal_iy<0)
         crystal_iy++;
      crystal_iy+=50;

   } 
   else 
   {
      throw cms::Exception("InvalidDetId") << "EEDetId:  Cannot create object.  Unknown mode for (int, int, int) constructor.";
   }
  
   if (!validDetId(crystal_ix,crystal_iy,iz))
   {
      throw cms::Exception("InvalidDetId") << "EEDetId:  Cannot create object.  Indexes out of bounds \n"
                                           << "x = " << crystal_ix << " y = " << crystal_iy << " z = " << iz;
   }
  
   id_|=(crystal_iy&0x7f)|((crystal_ix&0x7f)<<7)|((iz>0)?(0x4000):(0));
}
EEDetId::EEDetId ( const DetId id) [inline]

Constructor from a generic cell id

Parameters:
idsource detid

Definition at line 56 of file EEDetId.h.

: DetId(id){}

Member Function Documentation

uint32_t EEDetId::denseIndex ( ) const [inline]
static EEDetId EEDetId::detIdFromDenseIndex ( uint32_t  din) [inline, static]

Converts a hashed/dense index as defined in hashedIndex() and denseIndex() methods to a det id.

Parameters:
dinhashed/dense index
Returns:
det id

Definition at line 221 of file EEDetId.h.

References unhashIndex().

Referenced by CaloGenericDetId::CaloGenericDetId(), EEHitResponse::EEHitResponse(), cond::PayLoadInspector< DataT >::plot(), and EcalTPSkimmer::produce().

{ return unhashIndex( din ) ; }
int EEDetId::distanceX ( const EEDetId a,
const EEDetId b 
) [static]

Returns the distance along x-axis in crystal units between two EEDetId

Parameters:
adet id of first crystal
bdet id of second crystal
Returns:
distance

Definition at line 577 of file EEDetId.cc.

References abs, and ix().

Referenced by PFPhotonClusters::FillClusterShape().

{
    return abs(a.ix()-b.ix());
}
int EEDetId::distanceY ( const EEDetId a,
const EEDetId b 
) [static]

Returns the distance along y-axis in crystal units between two EEDetId

Parameters:
adet id of first crystal
bdet id of second crystal
Returns:
distance

Definition at line 582 of file EEDetId.cc.

References abs, and iy().

Referenced by PFPhotonClusters::FillClusterShape().

{
  return abs(a.iy() - b.iy()); 
}
static bool EEDetId::fastValidDetId ( int  crystal_ix,
int  crystal_iy 
) [inline, static]

check if ix and iy is in a "ring" inscribed in EE if is inside is valid for sure if not the slow version shall be called

Definition at line 263 of file EEDetId.h.

References f, alignCSCRings::r, x, and detailsBasic3DVector::y.

Referenced by validDetId().

                                                             {
    float x =  crystal_ix; float y =  crystal_iy;
    float r = (x - 50.5f) * (x - 50.5f) + (y - 50.5f) * (y - 50.5f);
    return r > 12.f * 12.f && r < 48.f * 48.f;
  }
int EEDetId::hashedIndex ( ) const [inline]

Gets a compact index for arrays

Returns:
compact index from 0 to kSizeForDenseIndexing-1

Definition at line 183 of file EEDetId.h.

References ix(), iy(), kdi, kEEhalf, kxf, and positiveZ().

Referenced by EcalURecHitHists::analyze(), EcalGetLaserData::analyze(), EcalPulseShapeGrapher::analyze(), CaloGeometryHelper::buildCrystalArray(), CaloGeometryHelper::buildNeighbourArray(), popcon::EcalChannelStatusHandler::cosmicsAnalysis(), denseIndex(), ecalEnergyInCone(), PFRecHitProducerECAL::ecalNeighbArray(), CalorimetryManager::EMShowerSimulation(), EcalTestDevDB::generateEcalLaserAlphas(), EcalTestDevDB::generateEcalLaserAPDPNRatios(), EcalTestDevDB::generateEcalLaserAPDPNRatiosRef(), EcalDQMBinningService::getBinMapEcal_(), EcalDQMBinningService::getBinMapEE_(), CaloGeometryHelper::getNeighbours(), popcon::EcalPedestalsHandler::getNewObjectsH2(), popcon::EcalPedestalsHandler::getNewObjectsP5(), ecalpyutils::hashedIndexEE(), CalorimetryManager::HDShowerSimulation(), EcalEndcapRecHitsMaker::init(), popcon::EcalChannelStatusHandler::laserAnalysis(), PFRecHitProducerECAL::move(), CaloGeometryHelper::move(), CalorimetryManager::MuonMipSimulation(), popcon::EcalChannelStatusHandler::pedAnalysis(), AlCaIsoTracksProducer::produce(), EcalUncalibRecHitWorkerWeights::run(), EcalUncalibRecHitWorkerGlobal::run(), EcalUncalibRecHitWorkerRatio::run(), EcalGeomPhiSymHelper::setup(), and EcalEndcapRecHitsMaker::towerOf().

  {
    const uint32_t jx ( ix() ) ;
    const uint32_t jd ( 2*( iy() - 1 ) + ( jx - 1 )/50 ) ;
    return (  ( positiveZ() ? kEEhalf : 0) + kdi[jd] + jx - kxf[jd] ) ;
  }
int EEDetId::ic ( ) const

Gets crystal number inside SuperCrystal. Crystal numbering withing a supercrystal in each quadrant:

   *                       A y
   *  (Q2)                 |                    (Q1)
   *       25 20 15 10 5   |     5 10 15 20 25
   *       24 19 14  9 4   |     4  9 14 19 24
   *       23 18 13  8 3   |     3  8 13 18 23
   *       22 17 12  7 2   |     2  7 12 17 22
   *       21 16 11  6 1   |     1  6 11 16 21
   *                       |
   * ----------------------o---------------------------> x
   *                       |
   *       21 16 11  6 1   |     1  6 11 16 21
   *       22 17 12  7 2   |     2  7 12 17 22
   *       23 18 13  8 3   |     3  8 13 18 23
   *       24 19 14  9 4   |     4  9 14 19 24
   *       25 20 15 10 5   |     5 10 15 20 25
   *  (Q3)                                       (Q4)
   * 
Returns:
crystal number from 1 to 25

Definition at line 324 of file EEDetId.cc.

References iquadrant(), ixQuadrantOne(), iyQuadrantOne(), and nCrys.

Referenced by EcalURecHitHists::analyze(), fireworks::info(), and DetIdInfo::info().

{
   /*
    *  Return crystal number from (x,y) coordinates.
    *
    *  Author    : B W Kennedy
    *  Version   : 1.00
    *  Created   : 5 May 2006
    *  Last Mod  :
    *
    *  Input     : ix, iy - (x,y) position of crystal
    */
   
   /*  Useful constants . */
   int iQuadrant = iquadrant();
   int icrCol=-1;
   int icrRow=-1;
   
   if (iQuadrant == 1 || iQuadrant == 3)
   {
      icrCol=(ixQuadrantOne()-1) % nCrys;
      icrRow=(iyQuadrantOne()-1) % nCrys;
   }
  
   else if (iQuadrant == 2 || iQuadrant == 4)
   {
      icrRow=(ixQuadrantOne()-1) % nCrys;
      icrCol=(iyQuadrantOne()-1) % nCrys;
   } 

   int icrys = 5*icrCol + icrRow + 1;
  
   return icrys;
}  
EEDetId EEDetId::idOuterRing ( int  iPhi,
int  zEnd 
) [static]

Definition at line 435 of file EEDetId.cc.

References EEDetId(), IX_MAX, and IY_MAX.

{
   iPhi -= 10 ; // phi=1 in barrel is at -10deg
   while( iPhi <   1 ) iPhi+=360 ;
   while( iPhi > 360 ) iPhi-=360 ;

   const int index1 ( iPhi - 1 ) ;
   const int quad   ( index1/90 ) ;
   int       indexq (  index1 - quad*90 + 1 ) ;
   if( 0==quad || 2==quad ) indexq = 91 - indexq ;
   const int indexh ( indexq > 45 ? 91 - indexq : indexq ) ;
   const int axh    ( indexh<=10 ? indexh :
                      ( indexh<=12 ? 10 :
                        ( indexh<=17 ? indexh - 2 :
                          ( indexh<=18 ? 15 :
                            ( indexh<=28 ? indexh - 3 :
                              ( indexh<=30 ? 25 :
                                ( indexh<=35 ? indexh - 5 :
                                  ( indexh<=39 ? 30 :
                                    ( indexh<=44 ? indexh - 9 : 35 ))))))))) ;
   const int ayh    ( indexh<=10 ? 50 :
                      ( indexh<=12 ? 60 - indexh :
                        ( indexh<=17 ? 47 :
                          ( indexh<=18 ? 64 - indexh : 
                            ( indexh<=28 ? 45 :
                              ( indexh<=30 ? 73 - indexh :
                                ( indexh<=35 ? 42 :
                                  ( indexh<=39 ? 77 - indexh :
                                    ( indexh<=44 ? 37 : 36 ))))))))) ;
   const int bxh ( indexq>45 ? ayh : axh ) ;
   const int byh ( indexq>45 ? axh : ayh ) ;
   const int cx  ( ( quad==0 || quad==3 ? bxh : -bxh+1 ) + IX_MAX/2 ) ;
   const int cy  ( ( quad==0 || quad==1 ? byh : -byh+1 ) + IY_MAX/2 ) ;

   return EEDetId( cx, cy, ( zEnd > 0 ? 1 : -1 ) ) ;
}
int EEDetId::iPhiOuterRing ( ) const

Definition at line 388 of file EEDetId.cc.

References abs, lumiQTWidget::ax, iquadrant(), isOuterRing(), ix(), IX_MAX, iy(), and IY_MAX.

Referenced by spr::simpleMove(), and PFRecHitProducerECAL::stdsimplemove().

{
   int returnValue ( 0 ) ;
   if( isOuterRing() )
   {
      const int ax ( abs( ix() - IX_MAX/2 ) ) ;
      const int ay ( abs( iy() - IY_MAX/2 ) ) ;
      returnValue = ax + 50 - ay ;
      if( ay <= 47 ) --returnValue ;
      if( ay <= 45 ) --returnValue ;
      if( ay <= 42 ) --returnValue ;
      if( ay <= 37 ) --returnValue ;
      if( ay <= 35 ) --returnValue ;
      if( ay <= 30 ) --returnValue ;
      if( ay <= 25 ) --returnValue ;
      if( ay <= 15 ) --returnValue ;
      if( ay <= 10 ) --returnValue ;
      const int iq ( iquadrant() ) ;
      if( 1==iq )
      {
         returnValue = 91 - returnValue ;
      }
      else
      {
         if( 2==iq )
         {
            returnValue += 90 ;
         }
         else
         {
            if( 3==iq )
            {
               returnValue = 271 - returnValue ;
            }
            else
            {
               returnValue += 270 ;
            }
         }
      }
      returnValue = 1 + ( 360 + returnValue - 10 -1 )%360 ;
   }
//   if( positiveZ() ) returnValue += 360 ;
   return returnValue ;
}
int EEDetId::iquadrant ( ) const

Gets the quadrant of the DetId. Quadrant number definition, x and y in std CMS coordinates, for EE+:

   *                 A y
   *                 |
   *          Q2     |    Q1
   *                 |
   *       ----------o---------> x
   *                 |
   *          Q3     |    Q4
   *                 |
   * 
Returns:
quadrant number

Definition at line 264 of file EEDetId.cc.

References ix(), and iy().

Referenced by EcalTrigTowerConstituentsMap::changeEEDetIdQuadrantAndZ(), EcalDQMBinningService::findBinsProjEta_(), ic(), fireworks::info(), DetIdInfo::info(), iPhiOuterRing(), ixQuadrantOne(), iyQuadrantOne(), and EcalTrigTowerConstituentsMap::wrapEEDetId().

{
   if (ix()>50)
   {
      if(iy()>50)
         return 1;
      else
         return 4;
   }
   else
   {
      if(iy()>50)
         return 2;
      else
         return 3;
   }
   //Should never be reached
   return -1;
}  
int EEDetId::isc ( ) const

Gets the SuperCrystal number within the endcap. This number runs from 1 to 316, numbers 70 149 228 307 are not used.

BEWARE: This number is not consistent with indices used in constructor: see details below.

Numbering in quadrant 1 of EE+ is the following

   *  08 17 27        
   *  07 16 26 36 45 54     
   *  06 15 25 35 44 53 62    
   *  05 14 24 34 43 52 61 69   
   *  04 13 23 33 42 51 60 68 76  
   *  03 12 22 32 41 50 59 67 75  
   *  02 11 21 31 40 49 58 66 74  
   *  01 10 20 30 39 48 57 65 73 79 
   *     09 19 29 38 47 56 64 72 78 
   *        18 28 37 46 55 63 71 77
   *  
   *        == THERE IS NO INDEX 70! ==
   * 

Quadrant 2 indices are deduced by a symetry about y-axis and by adding an offset of 79.
Quadrant 3 and 4 indices are deduced from quadrant 1 and 2 by a symetry about x-axis and adding an offset. Quadrant N starts with index 1 + (N-1)*79.

EE- indices are deduced from EE+ by a symetry about (x,y)-plane (mirrored view). It is inconsistent with indices used in constructor EEDetId(int, int,int) in SCCRYSTALMODE. Indices of constructor uses a symetry along y-axis: in principal it considers the isc as a local index. The discrepancy is most probably due to a bug in the implementation of this isc() method.

Definition at line 285 of file EEDetId.cc.

References ix(), iy(), and nCrys.

Referenced by CaloGeometryHelper::borderCrossing(), fireworks::info(), DetIdInfo::info(), and EcalEndcapRecHitsMaker::SChashedIndex().

{ 
   return isc( 1 + ( ix() - 1 )/nCrys,
               1 + ( iy() - 1 )/nCrys ) ; 
}
int EEDetId::isc ( int  iscCol,
int  iscRow 
) [static]

Gives supercrystal index from endcap *supercrystal* x and y indexes.

See also:
isc() for the index definition
Parameters:
iscColsupercrystal column number: supecrystal x-index for EE+
iscRow,:supecrystal y-index
Returns:
supercystal index

Definition at line 292 of file EEDetId.cc.

References ISC_MAX, iYoffset, and QuadColLimits.

{
   if( 0  < jx &&
       21 > jx &&
       0  < jy &&
       21 > jy    )
   {
      const int iquad (  ( 10<jx && 10<jy ? 1 :
                           ( 11>jx && 10<jy ? 2 :
                             ( 11>jx && 11>jy ? 3 : 4 ) ) ) ) ;
  
      const int iCol = ( 1 == iquad || 4 == iquad ? jx - 10 : 11 - jx ) ;
      const int iRow = ( 1 == iquad || 2 == iquad ? jy - 10 : 11 - jy ) ;

      static int nSCinQuadrant = ISC_MAX/4;

      const int yOff ( iYoffset[iCol] ) ;

      const int qOff ( nSCinQuadrant*( iquad - 1 ) ) ;

      const int iscOne ( QuadColLimits[iCol-1] + iRow - yOff ) ;

      return ( yOff                >= iRow   ? -1 : 
               ( QuadColLimits[iCol] <  iscOne ? -2 :
                 iscOne + qOff ) ) ;
   }
   else
   {
      return -3 ; // bad inputs
   }
}  
bool EEDetId::isNextToBoundary ( EEDetId  id) [static]

Definition at line 361 of file EEDetId.cc.

References isNextToDBoundary(), and isNextToRingBoundary().

Referenced by isNextToBoundary().

{
   return isNextToDBoundary( id ) || isNextToRingBoundary( id ) ;
}
bool EEDetId::isNextToDBoundary ( EEDetId  id) [static]

Definition at line 367 of file EEDetId.cc.

Referenced by PhotonIsolationCalculator::classify(), GsfElectronAlgo::createElectron(), and isNextToBoundary().

{
   // hardcoded values for D boundary
   return id.ix() == 50 || id.ix() == 51 ;
}
bool EEDetId::isNextToRingBoundary ( EEDetId  id) [static]

Definition at line 375 of file EEDetId.cc.

References i, ix(), iy(), j, validDetId(), and zside().

Referenced by PhotonIsolationCalculator::classify(), GsfElectronAlgo::createElectron(), EcalCleaningAlgo::isNearCrack(), isNextToBoundary(), and InterestingDetIdCollectionProducer::produce().

{
   for (int i = -1; i <= 1; ++i) {
      for (int j = -1; j <= 1; ++j) {
         if ( ! validDetId( id.ix() + i, id.iy() + j, id.zside() ) ) {
            return true;
         }
      }
   }
   return false;
}
bool EEDetId::isOuterRing ( ) const [private]

Definition at line 520 of file EEDetId.cc.

References lumiQTWidget::ax, isOuterRingXY(), ix(), IX_MAX, iy(), and IY_MAX.

Referenced by iPhiOuterRing().

{
   const int kx ( ix() ) ;
   const int ky ( iy() ) ;
   const int ax ( kx>IX_MAX/2 ? kx-IX_MAX/2 : IX_MAX/2 + 1 - kx ) ;
   const int ay ( ky>IY_MAX/2 ? ky-IY_MAX/2 : IY_MAX/2 + 1 - ky ) ;
   return ( isOuterRingXY( ax, ay ) ||
            isOuterRingXY( ay, ax )    ) ;
}
bool EEDetId::isOuterRingXY ( int  ax,
int  ay 
) [static, private]

Definition at line 531 of file EEDetId.cc.

Referenced by isOuterRing().

{
   return ( ( ax<=10 &&           ay==50 ) ||
            ( ax==10 &&           ay>=48 ) ||
            ( ax<=15 && ax>=11 && ay==47 ) ||
            ( ax==15 &&           ay==46 ) ||
            ( ax<=25 && ax>=16 && ay==45 ) ||
            ( ax==25 &&           ay<=44 && ay>=43 ) ||
            ( ax<=30 && ax>=26 && ay==42 ) ||
            ( ax==30 &&           ay<=41 && ay>=38 ) ||
            ( ax<=35 && ax>=31 && ay==37 ) ||
            ( ax==35 &&           ay==36 )              ) ;
}
int EEDetId::ix ( int  iSC,
int  iCrys 
) const [private]

Definition at line 117 of file EEDetId.cc.

References exception, nCols, and QuadColLimits.

{
  /*
   *  ix() return individual crystal x-coordinate
   *
   *  Author    : B W Kennedy
   *  Version   : 1.00
   *  Created   : 21 December 2005
   *  Last Mod  : 31 January 2006
   *
   *  Input     : iSC, iCrys - Supercrystal and crystal ids
   */
  
  
   int nSCinQuadrant = QuadColLimits[nCols];

   if (iSC > 4*nSCinQuadrant || iSC < 1) 
   {
      throw new std::exception();
   }
  
   //  Map SC number into (x>0,y>0) quadrant.
   int iSCmap, iqx,iq;
   if (iSC > 3*nSCinQuadrant) 
   {
      iSCmap = iSC - 3*nSCinQuadrant;
      iqx =  1;
      iq=4;
   } 
   else if (iSC > 2*nSCinQuadrant) 
   {
      iSCmap = iSC - 2*nSCinQuadrant;
      iqx = -1;
      iq=3;
   } 
   else if (iSC > nSCinQuadrant) 
   {
      iSCmap = iSC - nSCinQuadrant;
      iqx = -1;
      iq=2;
   } 
   else 
   {
      iSCmap = iSC;
      iqx = 1;
      iq=1;
   }

   // Decide which column the SC is in
   int iCol = 0 ;
   while (iSCmap > QuadColLimits[iCol++]) ;
   iCol-- ;

   int ixCrys=-1;
   if (iq == 1 || iq == 3) 
      ixCrys = iqx*(5*(iCol-1) + (int)(iCrys+4)/5);
   else   if (iq == 2 || iq == 4) 
      ixCrys = iqx*(5*(iCol-1) + (iCrys-1)%5 + 1);
   
   // returning a value from 1 to 100  

   return ixCrys;
}
int EEDetId::ix ( ) const [inline]

Gets the crystal x-index.

See also:
EEDetId(int, int, int, int) for x-index definition
Returns:
x-index

Definition at line 77 of file EEDetId.h.

References DetId::id_.

Referenced by EcalEndcapMonitorModule::analyze(), PhiSymmetryCalibration::analyze(), HLTAlCaMonPi0::analyze(), EELedTask::analyze(), EEIntegrityTask::analyze(), EcalEndcapRecHitsValidation::analyze(), EERecoSummary::analyze(), EESelectiveReadoutTask::analyze(), EcnaAnalyzer::analyze(), EcalRecHitsValidation::analyze(), EELaserTask::analyze(), EcalDigisValidation::analyze(), EECosmicTask::analyze(), EETimingTask::analyze(), EEOccupancyTask::analyze(), EcalCosmicsHists::analyze(), EcalEndcapDigisValidation::analyze(), JetToDigiDump::analyze(), EEClusterTaskExtras::analyze(), EEPedestalOnlineTask::analyze(), HLTAlCa::analyze(), EETestPulseTask::analyze(), DQMSourceEleCalib::analyze(), EEClusterTask::analyze(), EcalEndcapSimHitsValidation::analyze(), EEPedestalTask::analyze(), EcalMixingModuleValidation::analyze(), DQMSourcePi0::analyze(), EEStatusFlagsTask::analyze(), EcalSelectiveReadoutValidation::analyzeEE(), HLTEcalResonanceFilter::calcShowerShape(), EcalTrigTowerConstituentsMap::changeEEDetIdQuadrantAndZ(), EcalDQMBinningService::channelName(), EcalBoundaryInfoCalculator< EBDetId >::checkRecHitHasDeadNeighbour(), EcalBoundaryInfoCalculator< EBDetId >::checkRecHitHasInvalidNeighbour(), popcon::EcalChannelStatusHandler::cosmicsAnalysis(), EESelectiveReadoutTask::dccNum(), distanceX(), popcon::EcalLaserHandler::dumpEndcapPayload(), InvRingCalib::duringLoop(), ZeeCalibration::duringLoop(), EEDetId(), ElectronCalibrationUniv::endJob(), PhiSymmetryCalibration_step2_SM::endJob(), PhiSymmetryCalibration_step2::endJob(), EcalEleCalibLooper::endOfLoop(), ZeeCalibration::endOfLoop(), DQMSourceEleCalib::fillAroundEndcap(), AlCaElectronsTest::fillAroundEndcap(), PFPhotonClusters::FillClusterShape(), MatrixFillMap::fillEEMap(), ecaldqm::fillME(), EcalDQMBinningService::findBinsProjEta_(), TrackDetMatchInfo::findMaxDeposition(), EcalElectronicsMapping::getDCCandSC(), EcalElectronicsMapping::getEcalScDetId(), EcalElectronicsMapping::getLMNumber(), EcalClusterTools::getNormedIX(), EcalRingCalibrationTools::getRingIndex(), hashedIndex(), ecalpyutils::hashedIndexToXY(), fireworks::info(), DetIdInfo::info(), EcalRingCalibrationTools::initializeFromGeometry(), iPhiOuterRing(), iquadrant(), isc(), isNextToRingBoundary(), isOuterRing(), ixQuadrantOne(), popcon::EcalChannelStatusHandler::laserAnalysis(), EcalClusterLocal::localCoordsEE(), EcalDisplaysByEvent::makeHistos(), popcon::EcalChannelStatusHandler::nBadLaserModules(), TrackDetMatchInfo::nXnEnergy(), offsetBy(), EEDetIdSorter::operator()(), popcon::EcalChannelStatusHandler::pedAnalysis(), PFPhotonClusters::PFCrystalCoor(), cond::PayLoadInspector< DataT >::plot(), EETriggerTowerTask::processDigis(), EcalShowerProperties::processEcalRecHits(), AlCaIsoTracksProducer::produce(), EESelectiveReadoutTask::readOutUnitOf(), EcalRecHitWorkerRecover::run(), sc(), EcalDeadCellTriggerPrimitiveFilter::setEvtRecHitstatus(), EcalGeomPhiSymHelper::setup(), EcalSelectiveReadoutValidation::superCrystalOf(), switchZSide(), unhashIndex(), EcalSimHitsValidProducer::update(), CaloGenericDetId::validDetId(), EcalTrigTowerConstituentsMap::wrapEEDetId(), xuti::writeCell(), ECALRecHitAnalyzer::WriteECALRecHits(), Pi0CalibXMLwriter::writeLine(), and calibXMLwriter::writeLine().

{ return (id_>>7)&0x7F; }
int EEDetId::ixQuadrantOne ( ) const [private]

Definition at line 241 of file EEDetId.cc.

References iquadrant(), and ix().

Referenced by ic().

{ 
   int iQuadrant = iquadrant();
   if ( iQuadrant == 1 || iQuadrant == 4)
      return (ix() - 50);
   else if ( iQuadrant == 2 || iQuadrant == 3)
      return (51 - ix());
   //Should never be reached
   return -1;
}
int EEDetId::iy ( ) const [inline]

Get the crystal y-index

See also:
EEDetId(int, int, int, int) for y-index definition.
Returns:
y-index

Definition at line 83 of file EEDetId.h.

References DetId::id_.

Referenced by PhiSymmetryCalibration::analyze(), HLTAlCaMonPi0::analyze(), EERecoSummary::analyze(), EcalEndcapRecHitsValidation::analyze(), EcalRecHitsValidation::analyze(), EcalDigisValidation::analyze(), EcalCosmicsHists::analyze(), JetToDigiDump::analyze(), EcalEndcapDigisValidation::analyze(), HLTAlCa::analyze(), EEClusterTaskExtras::analyze(), DQMSourceEleCalib::analyze(), EEClusterTask::analyze(), EcalEndcapSimHitsValidation::analyze(), DQMSourcePi0::analyze(), EcalMixingModuleValidation::analyze(), HLTEcalResonanceFilter::calcShowerShape(), EcalTrigTowerConstituentsMap::changeEEDetIdQuadrantAndZ(), EcalDQMBinningService::channelName(), EcalBoundaryInfoCalculator< EBDetId >::checkRecHitHasDeadNeighbour(), EcalBoundaryInfoCalculator< EBDetId >::checkRecHitHasInvalidNeighbour(), popcon::EcalChannelStatusHandler::cosmicsAnalysis(), EESelectiveReadoutTask::dccNum(), distanceY(), popcon::EcalLaserHandler::dumpEndcapPayload(), InvRingCalib::duringLoop(), ZeeCalibration::duringLoop(), EEDetId(), ElectronCalibrationUniv::endJob(), PhiSymmetryCalibration_step2_SM::endJob(), PhiSymmetryCalibration_step2::endJob(), EcalEleCalibLooper::endOfLoop(), ZeeCalibration::endOfLoop(), DQMSourceEleCalib::fillAroundEndcap(), AlCaElectronsTest::fillAroundEndcap(), PFPhotonClusters::FillClusterShape(), MatrixFillMap::fillEEMap(), ecaldqm::fillME(), EcalDQMBinningService::findBinsProjEta_(), TrackDetMatchInfo::findMaxDeposition(), EcalElectronicsMapping::getEcalScDetId(), EcalClusterTools::getNormedIY(), EcalRingCalibrationTools::getRingIndex(), hashedIndex(), ecalpyutils::hashedIndexToXY(), fireworks::info(), DetIdInfo::info(), EcalRingCalibrationTools::initializeFromGeometry(), iPhiOuterRing(), iquadrant(), isc(), isNextToRingBoundary(), isOuterRing(), iyQuadrantOne(), popcon::EcalChannelStatusHandler::laserAnalysis(), EcalClusterLocal::localCoordsEE(), EcalDisplaysByEvent::makeHistos(), TrackDetMatchInfo::nXnEnergy(), offsetBy(), EEDetIdSorter::operator()(), popcon::EcalChannelStatusHandler::pedAnalysis(), PFPhotonClusters::PFCrystalCoor(), cond::PayLoadInspector< DataT >::plot(), EcalShowerProperties::processEcalRecHits(), AlCaIsoTracksProducer::produce(), EESelectiveReadoutTask::readOutUnitOf(), EcalRecHitWorkerRecover::run(), sc(), EcalDeadCellTriggerPrimitiveFilter::setEvtRecHitstatus(), EcalGeomPhiSymHelper::setup(), EcalSelectiveReadoutValidation::superCrystalOf(), switchZSide(), unhashIndex(), EcalSimHitsValidProducer::update(), CaloGenericDetId::validDetId(), EcalTrigTowerConstituentsMap::wrapEEDetId(), xuti::writeCell(), ECALRecHitAnalyzer::WriteECALRecHits(), Pi0CalibXMLwriter::writeLine(), and calibXMLwriter::writeLine().

{ return id_&0x7F; }
int EEDetId::iy ( int  iSC,
int  iCrys 
) const [private]

Definition at line 181 of file EEDetId.cc.

References exception, iYoffset, nCols, and QuadColLimits.

{
  /*
   *  iy() return individual crystal y-coordinate
   *
   *  Author    : B W Kennedy
   *  Version   : 1.00
   *  Created   : 21 December 2005
   *  Last Mod  : 31 January 2006
   *
   *  Input     : iSC, iCrys - Supercrystal and crystal ids
   */

   int nSCinQuadrant = QuadColLimits[nCols];
   if (iSC > 4*nSCinQuadrant || iSC < 1) 
   {
      throw new std::exception();
   }

   //  Map SC number into (x>0,y>0) quadrant
   int iSCmap, iqy,iq;
   if (iSC > 3*nSCinQuadrant) 
   {
      iSCmap = iSC - 3*nSCinQuadrant;
      iqy = -1;
      iq=4;
   } 
   else if (iSC > 2*nSCinQuadrant) 
   {
      iSCmap = iSC - 2*nSCinQuadrant;
      iqy = -1;
      iq=3;
   } 
   else if (iSC > nSCinQuadrant) 
   {
      iSCmap = iSC - nSCinQuadrant;
      iqy = 1;
      iq=2;
   } else 
   {
      iSCmap = iSC;
      iqy = 1;
      iq=1;
   }

   // Decide which column the SC is in
   int iCol = 0;
   while (iSCmap > QuadColLimits[iCol++]) ;
   iCol--;

   int iSCy = iSCmap - QuadColLimits[iCol-1] + iYoffset[iCol];
  
   int iyCrys=-1;
   if (iq == 1 || iq == 3)
      iyCrys = iqy*(5*(iSCy-1) + (iCrys-1)%5 + 1);
   else if (iq == 2 || iq == 4)
      iyCrys = iqy*(5*(iSCy-1) + (int)(iCrys+4)/5 );
   return iyCrys;
}
int EEDetId::iyQuadrantOne ( ) const [private]

Definition at line 252 of file EEDetId.cc.

References iquadrant(), and iy().

Referenced by ic().

{ 
   int iQuadrant = iquadrant();
   if ( iQuadrant == 1 || iQuadrant == 2)
      return (iy() - 50);
   else if ( iQuadrant == 3 || iQuadrant == 4)
      return 51 - iy();
   //Should never be reached
   return -1;
}
EEDetId EEDetId::offsetBy ( int  nrStepsX,
int  nrStepsY 
) const

returns a new EEDetId offset by nrStepsX and nrStepsY (can be negative), returns EEDetId(0) if invalid

Definition at line 474 of file EEDetId.cc.

References EEDetId(), ix(), iy(), validDetId(), and zside().

Referenced by EcalTools::deadNeighbour(), EcalCleaningAlgo::neighbours(), offsetBy(), and EcalTools::recHitE().

{
        int newX = ix() + nrStepsX;
        int newY = iy() + nrStepsY;

        if( validDetId( newX, newY, zside() ) ) {
                return EEDetId( newX, newY, zside() );
        } else {
                return EEDetId(0);
        }
}
DetId EEDetId::offsetBy ( const DetId  startId,
int  nrStepsX,
int  nrStepsY 
) [static]

following are static member functions of the above two functions which take and return a DetId, returns DetId(0) if invalid

Definition at line 498 of file EEDetId.cc.

References DetId::det(), DetId::DetId(), DetId::Ecal, EcalEndcap, offsetBy(), DetId::rawId(), and DetId::subdetId().

{
        if( startId.det() == DetId::Ecal && startId.subdetId() == EcalEndcap ) {
                EEDetId eeStartId( startId );
                return eeStartId.offsetBy( nrStepsX, nrStepsY ).rawId();
        } else {
                return DetId(0);
        }
}
EEDetId& EEDetId::operator= ( const DetId id) [inline]

Assignment operator

Parameters:
idsource det id

Definition at line 61 of file EEDetId.h.

References DetId::id_.

{id_ = id.rawId(); return *this;}
bool EEDetId::positiveZ ( ) const [inline]

Checks if crystal is in EE+

Returns:
true for EE+, false for EE-

Definition at line 174 of file EEDetId.h.

References DetId::id_.

Referenced by hashedIndex().

{ return id_&0x4000;}
EcalScDetId EEDetId::sc ( ) const [inline]

Gets the DetId of the supercrystal the crystal belong to.

Returns:
the supercrystal det id
Exceptions:
cms::Exceptionif the crystal det id is invalid

Definition at line 89 of file EEDetId.h.

References ix(), iy(), and zside().

Referenced by ecaldqm::DQWorkerClient::fillQuality_(), and EcalDQMBinningService::findBinsSuperCrystal_().

                         {
    const int scEdge = 5;
    return EcalScDetId(1+(ix()-1)/scEdge, 1+(iy()-1)/scEdge, zside());
  }
bool EEDetId::slowValidDetId ( int  crystal_ix,
int  crystal_iy 
) [static]

Definition at line 546 of file EEDetId.cc.

Referenced by validDetId().

{
  return // negative logic!
    !( 
      (crystal_ix >= 1 && crystal_ix <= 3 && (crystal_iy <= 40 || crystal_iy > 60) ) ||
      (crystal_ix >= 4 && crystal_ix <= 5 && (crystal_iy <= 35 || crystal_iy > 65) ) || 
      (crystal_ix >= 6 && crystal_ix <= 8 && (crystal_iy <= 25 || crystal_iy > 75) ) || 
      (crystal_ix >= 9 && crystal_ix <= 13 && (crystal_iy <= 20 || crystal_iy > 80) ) || 
      (crystal_ix >= 14 && crystal_ix <= 15 && (crystal_iy <= 15 || crystal_iy > 85) ) || 
      (crystal_ix >= 16 && crystal_ix <= 20 && (crystal_iy <= 13 || crystal_iy > 87) ) || 
      (crystal_ix >= 21 && crystal_ix <= 25 && (crystal_iy <= 8 || crystal_iy > 92) ) || 
      (crystal_ix >= 26 && crystal_ix <= 35 && (crystal_iy <= 5 || crystal_iy > 95) ) || 
      (crystal_ix >= 36 && crystal_ix <= 39 && (crystal_iy <= 3 || crystal_iy > 97) ) || 
      (crystal_ix >= 98 && crystal_ix <= 100 && (crystal_iy <= 40 || crystal_iy > 60) ) ||
      (crystal_ix >= 96 && crystal_ix <= 97 && (crystal_iy <= 35 || crystal_iy > 65) ) || 
      (crystal_ix >= 93 && crystal_ix <= 95 && (crystal_iy <= 25 || crystal_iy > 75) ) || 
      (crystal_ix >= 88 && crystal_ix <= 92 && (crystal_iy <= 20 || crystal_iy > 80) ) || 
      (crystal_ix >= 86 && crystal_ix <= 87 && (crystal_iy <= 15 || crystal_iy > 85) ) || 
      (crystal_ix >= 81 && crystal_ix <= 85 && (crystal_iy <= 13 || crystal_iy > 87) ) || 
      (crystal_ix >= 76 && crystal_ix <= 80 && (crystal_iy <= 8 || crystal_iy > 92) ) || 
      (crystal_ix >= 66 && crystal_ix <= 75 && (crystal_iy <= 5 || crystal_iy > 95) ) || 
      (crystal_ix >= 62 && crystal_ix <= 65 && (crystal_iy <= 3 || crystal_iy > 97) ) ||
      ( (crystal_ix == 40 || crystal_ix == 61) && ( (crystal_iy >= 46 && crystal_iy <= 55 ) || crystal_iy <= 3 || crystal_iy > 97 )) ||
      ( (crystal_ix == 41 || crystal_ix == 60) && crystal_iy >= 44 && crystal_iy <= 57 ) ||
      ( (crystal_ix == 42 || crystal_ix == 59) && crystal_iy >= 43 && crystal_iy <= 58 ) ||
      ( (crystal_ix == 43 || crystal_ix == 58) && crystal_iy >= 42 && crystal_iy <= 59 ) ||
      ( (crystal_ix == 44 || crystal_ix == 45 || crystal_ix == 57 || crystal_ix == 56) && crystal_iy >= 41 && crystal_iy <= 60 ) ||
      ( crystal_ix >= 46 && crystal_ix <= 55 && crystal_iy >= 40 && crystal_iy <= 61 ) 
       );
}
static EcalSubdetector EEDetId::subdet ( ) [inline, static]

Gets the subdetector

Returns:
subdetectot ID, that is EcalEndcap

Definition at line 66 of file EEDetId.h.

References EcalEndcap.

{ return EcalEndcap;}
EEDetId EEDetId::switchZSide ( ) const

returns a new EEDetId swapped (same iX, iY) to the other endcap, returns EEDetId(0) if invalid (shouldnt happen)

Definition at line 487 of file EEDetId.cc.

References EEDetId(), ix(), iy(), validDetId(), and zside().

Referenced by ecaldqm::TimingClient::producePlots(), and switchZSide().

{
        int newZSide = -1 * zside();
        if( validDetId(ix(), iy(), newZSide ) ) {
                return EEDetId( ix(), iy(), newZSide );
        } else {
                return EEDetId(0);
        }
}
DetId EEDetId::switchZSide ( const DetId  startId) [static]

Definition at line 509 of file EEDetId.cc.

References DetId::det(), DetId::DetId(), DetId::Ecal, EcalEndcap, DetId::rawId(), DetId::subdetId(), and switchZSide().

{
        if( startId.det() == DetId::Ecal && startId.subdetId() == EcalEndcap ) {
                EEDetId eeStartId(startId);
                return eeStartId.switchZSide().rawId();
        } else {
                return DetId(0);
        }
}
EEDetId EEDetId::unhashIndex ( int  hi) [static]
static bool EEDetId::validDenseIndex ( uint32_t  din) [inline, static]

Checks validity of a dense/hashed index

Parameters:
dindense/hashed index as returned by hashedIndex() or denseIndex() method
Returns:
true if index is valid, false otherwise

Definition at line 214 of file EEDetId.h.

References validHashIndex().

Referenced by EcalTPSkimmer::produce().

{ return validHashIndex( din ) ; }
static bool EEDetId::validDetId ( int  crystal_ix,
int  crystal_iy,
int  iz 
) [inline, static]

Checks validity of a crystal (x,y.z) index triplet.

Parameters:
crystal_ixcrystal x-index
crystal_iycrystal y-index
izcrystal z-index
See also:
EEDetId(int, int, int, int) for index definition
Returns:
true if valid, false otherwise

Definition at line 249 of file EEDetId.h.

References abs, fastValidDetId(), IX_MAX, IX_MIN, IY_MAX, IY_MIN, and slowValidDetId().

Referenced by EETimingClient::analyze(), EECosmicTask::analyze(), EcalCosmicsHists::analyze(), EcalGetLaserData::analyze(), EcalDQMStatusReader::beginRun(), EcalBoundaryInfoCalculator< EBDetId >::checkRecHitHasDeadNeighbour(), EcalBoundaryInfoCalculator< EBDetId >::checkRecHitHasInvalidNeighbour(), popcon::EcalChannelStatusHandler::cosmicsAnalysis(), EcalEndcapTopology::decrementIx(), EcalEndcapHardcodedTopology::decrementIx(), EcalEndcapHardcodedTopology::decrementIy(), EcalEndcapTopology::decrementIy(), EcalTPGCrystalStatusXMLTranslator::dumpXML(), EcalEleCalibLooper::EcalEleCalibLooper(), EEDetId(), EcalEleCalibLooper::EERegionDefinition(), InvRingCalib::EERingDef(), ZeeCalibration::endOfJob(), EcalSimHitsValidProducer::energyInEEMatrix(), EcalEndcapSimHitsValidation::energyInMatrixEE(), spr::extraIds(), PhiSymmetryCalibration_step2::fillConstantsHistos(), PhiSymmetryCalibration_step2_SM::fillConstantsHistos(), MatrixFillMap::fillEEMap(), EcalEndcapSimHitsValidation::fillEEMatrix(), EcalSimHitsValidProducer::fillEEMatrix(), ecaldqm::DQWorkerClient::fillQuality_(), EcalRecHitsValidation::findEndcapMatrix(), EcalNextToDeadChannelESProducer::findNextToDeadChannelsCallback(), EcalTestDevDB::generateEcalLaserAlphas(), EcalTestDevDB::generateEcalLaserAPDPNRatios(), EcalTestDevDB::generateEcalLaserAPDPNRatiosRef(), EcalDQMBinningService::getBinMapEcal_(), EcalDQMBinningService::getBinMapEE_(), MiscalibReaderFromXMLEcalEndcap::getCellFromAttributes(), EcalTrivialConditionRetriever::getChannelStatusFromConfiguration(), EcalDeadCellTriggerPrimitiveFilter::getChannelStatusMaps(), EcalDeadCellDeltaRFilter::getChannelStatusMaps(), EcalElectronicsMapping::getDCCandSC(), EcalRingCalibrationTools::getDetIdsInECAL(), EcalEndcapSimHitsValidation::getIdsAroundMax(), popcon::EcalIntercalibHandler::getNewObjects(), popcon::EcalPedestalsHandler::getNewObjectsH2(), popcon::EcalPedestalsHandler::getNewObjectsP5(), EcalTrivialConditionRetriever::getTrgChannelStatusFromConfiguration(), EcalEndcapNumberingScheme::getUnitID(), ecalpyutils::hashedIndexEE(), NumbersPn::iLM(), EcalEndcapTopology::incrementIx(), EcalEndcapHardcodedTopology::incrementIx(), EcalEndcapHardcodedTopology::incrementIy(), EcalEndcapTopology::incrementIy(), Numbers::indexEE(), isNextToRingBoundary(), popcon::EcalChannelStatusHandler::laserAnalysis(), popcon::EcalChannelStatusHandler::laserMasking(), popcon::EcalChannelStatusHandler::nBadLaserModules(), offsetBy(), popcon::EcalChannelStatusHandler::pedAnalysis(), popcon::EcalChannelStatusHandler::pedMasking(), popcon::EcalChannelStatusHandler::pedOnlineMasking(), popcon::EcalChannelStatusHandler::physicsMasking(), cond::PayLoadInspector< DataT >::plot(), CaloMiscalibMapEcal::print(), EcalDetIdToBeRecoveredProducer::produce(), EcalRecHitProducer::produce(), EcalTrivialConditionRetriever::produceEcalChannelStatus(), EcalTrivialConditionRetriever::produceEcalDQMChannelStatus(), EcalTrivialConditionRetriever::produceEcalGainRatios(), EcalTrivialConditionRetriever::produceEcalIntercalibConstants(), EcalTrivialConditionRetriever::produceEcalIntercalibConstantsMC(), EcalTrivialConditionRetriever::produceEcalIntercalibErrors(), EcalTrivialConditionRetriever::produceEcalLaserAlphas(), EcalTrivialConditionRetriever::produceEcalLaserAPDPNRatios(), EcalTrivialConditionRetriever::produceEcalLaserAPDPNRatiosRef(), EcalTrivialConditionRetriever::produceEcalLinearCorrections(), EcalTrivialConditionRetriever::produceEcalPedestals(), EcalTrivialConditionRetriever::produceEcalTimeCalibConstants(), EcalTrivialConditionRetriever::produceEcalTimeCalibErrors(), popcon::EcalTPGBadXTHandler::produceEcalTrgChannelStatus(), EcalTrivialConditionRetriever::produceEcalTrgChannelStatus(), EcalTrivialConditionRetriever::produceEcalWeightXtalGroups(), StoreEcalCondition::readEcalChannelStatusFromFile(), EcalDQMStatusWriter::readEcalDQMChannelStatusFromFile(), StoreEcalCondition::readEcalGainRatiosFromFile(), StoreEcalCondition::readEcalIntercalibConstantsFromFile(), StoreEcalCondition::readEcalIntercalibConstantsMCFromFile(), EcalRecHitWorkerRecover::run(), EcalSelectiveReadout::runSelectiveReadout0(), cond::PayLoadInspector< DataT >::summary(), switchZSide(), and Numbers::validEE().

                                                                 {
    return 
      crystal_ix >= IX_MIN && crystal_ix <= IX_MAX &&
      crystal_iy >= IY_MIN && crystal_iy <= IY_MAX &&  
      std::abs(iz)==1 && 
      ( fastValidDetId(crystal_ix,crystal_iy) ||
        slowValidDetId(crystal_ix,crystal_iy) );
  }
static bool EEDetId::validHashIndex ( int  i) [inline, static]
int EEDetId::zside ( ) const [inline]

Gets the z-side of the crystal (1/-1)

Returns:
-1 for EE-, +1 for EE+

Definition at line 71 of file EEDetId.h.

References DetId::id_.

Referenced by PhiSymmetryCalibration::analyze(), EERecoSummary::analyze(), EcalEndcapRecHitsValidation::analyze(), EcalRecHitsValidation::analyze(), EcalDigisValidation::analyze(), EcalCosmicsHists::analyze(), EcalEndcapDigisValidation::analyze(), EcalPreshowerRecHitsValidation::analyze(), EcalEndcapSimHitsValidation::analyze(), EcalMixingModuleValidation::analyze(), EcalBoundaryInfoCalculator< EBDetId >::checkRecHitHasDeadNeighbour(), EcalBoundaryInfoCalculator< EBDetId >::checkRecHitHasInvalidNeighbour(), popcon::EcalChannelStatusHandler::cosmicsAnalysis(), EESelectiveReadoutTask::dccNum(), popcon::EcalLaserHandler::dumpEndcapPayload(), InvRingCalib::duringLoop(), ZeeCalibration::duringLoop(), InvRingCalib::EERegId(), InvRingCalib::EERegionDef(), InvRingCalib::EERingDef(), ElectronCalibrationUniv::endJob(), PhiSymmetryCalibration_step2_SM::endJob(), PhiSymmetryCalibration_step2::endJob(), EcalEleCalibLooper::endOfLoop(), ZeeCalibration::endOfLoop(), MatrixFillMap::fillEEMap(), ECALRecHitAnalyzer::FillGeometry(), ecaldqm::fillME(), EcalDQMBinningService::findBinsCrystal_(), EcalDQMBinningService::findBinsProjEta_(), EcalDQMBinningService::findBinsProjPhi_(), EcalDQMBinningService::findBinsSuperCrystal_(), EcalDQMBinningService::findBinsTriggerTower_(), TrackDetMatchInfo::findMaxDeposition(), EcalElectronicsMapping::getEcalScDetId(), EcalRingCalibrationTools::getRingIndex(), ecalpyutils::hashedIndexToXY(), EcalRingCalibrationTools::initializeFromGeometry(), isNextToRingBoundary(), popcon::EcalChannelStatusHandler::laserAnalysis(), TrackDetMatchInfo::nXnEnergy(), offsetBy(), EEDetIdSorter::operator()(), popcon::EcalChannelStatusHandler::pedAnalysis(), cond::PayLoadInspector< DataT >::plot(), EcalShowerProperties::processEcalRecHits(), EESelectiveReadoutTask::readOutUnitOf(), EcalRecHitWorkerRecover::run(), sc(), EcalEndcapRecHitsMaker::SChashedIndex(), EcalDeadCellTriggerPrimitiveFilter::setEvtRecHitstatus(), EcalGeomPhiSymHelper::setup(), EcalSelectiveReadoutValidation::superCrystalOf(), switchZSide(), EcalTrigTowerConstituentsMap::towerOf(), EcalSimHitsValidProducer::update(), CaloGenericDetId::validDetId(), xuti::writeCell(), ECALRecHitAnalyzer::WriteECALRecHits(), Pi0CalibXMLwriter::writeLine(), and calibXMLwriter::writeLine().

{ return (id_&0x4000)?(1):(-1); }

Member Data Documentation

const int EEDetId::ICR_MAX = 25 [static]

Upper bound of crystal index within a supercrystal

Definition at line 325 of file EEDetId.h.

const int EEDetId::ICR_MIN = 1 [static]

Lower bound of crystal index within a supercrystal

Definition at line 315 of file EEDetId.h.

const int EEDetId::ISC_MAX = 316 [static]

Upper bound of supercystal index defined in isc()

Beware it differs from the number of supercrystals in one endcap, which is 312, because the numbering is not dense.

Definition at line 321 of file EEDetId.h.

Referenced by isc().

const int EEDetId::ISC_MIN = 1 [static]

Lower bound of supercystal index as defined in isc()

Definition at line 311 of file EEDetId.h.

const int EEDetId::IX_MAX = 100 [static]

Upper bound of EE crystal y-index

Definition at line 303 of file EEDetId.h.

Referenced by EcalGetLaserData::analyze(), EcalTPGCrystalStatusXMLTranslator::dumpXML(), ZeeCalibration::endOfJob(), EcalNextToDeadChannelESProducer::findNextToDeadChannelsCallback(), EcalTestDevDB::generateEcalLaserAlphas(), EcalTestDevDB::generateEcalLaserAPDPNRatios(), EcalTestDevDB::generateEcalLaserAPDPNRatiosRef(), EcalTrivialConditionRetriever::getChannelStatusFromConfiguration(), EcalRingCalibrationTools::getDetIdsInECAL(), EcalRingCalibrationTools::getDetIdsInRing(), popcon::EcalPedestalsHandler::getNewObjectsP5(), EcalTrivialConditionRetriever::getTrgChannelStatusFromConfiguration(), idOuterRing(), EcalRingCalibrationTools::initializeFromGeometry(), iPhiOuterRing(), isOuterRing(), cond::PayLoadInspector< DataT >::plot(), CaloMiscalibMapEcal::prefillMap(), CaloMiscalibMapEcal::print(), EcalTrivialConditionRetriever::produceEcalChannelStatus(), EcalTrivialConditionRetriever::produceEcalDQMChannelStatus(), EcalTrivialConditionRetriever::produceEcalGainRatios(), EcalTrivialConditionRetriever::produceEcalIntercalibConstants(), EcalTrivialConditionRetriever::produceEcalIntercalibConstantsMC(), EcalTrivialConditionRetriever::produceEcalIntercalibErrors(), EcalTrivialConditionRetriever::produceEcalLaserAlphas(), EcalTrivialConditionRetriever::produceEcalLaserAPDPNRatios(), EcalTrivialConditionRetriever::produceEcalLaserAPDPNRatiosRef(), EcalTrivialConditionRetriever::produceEcalLinearCorrections(), EcalTrivialConditionRetriever::produceEcalPedestals(), EcalTrivialConditionRetriever::produceEcalTimeCalibConstants(), EcalTrivialConditionRetriever::produceEcalTimeCalibErrors(), popcon::EcalTPGBadXTHandler::produceEcalTrgChannelStatus(), EcalTrivialConditionRetriever::produceEcalTrgChannelStatus(), EcalTrivialConditionRetriever::produceEcalWeightXtalGroups(), StoreEcalCondition::readEcalChannelStatusFromFile(), StoreEcalCondition::readEcalGainRatiosFromFile(), StoreEcalCondition::readEcalIntercalibConstantsFromFile(), StoreEcalCondition::readEcalIntercalibConstantsMCFromFile(), cond::PayLoadInspector< DataT >::summary(), and validDetId().

const int EEDetId::IX_MIN = 1 [static]

Lower bound of EE crystal x-index

Definition at line 295 of file EEDetId.h.

Referenced by EcalGetLaserData::analyze(), ZeeCalibration::endOfJob(), EcalNextToDeadChannelESProducer::findNextToDeadChannelsCallback(), EcalTestDevDB::generateEcalLaserAlphas(), EcalTestDevDB::generateEcalLaserAPDPNRatios(), EcalTestDevDB::generateEcalLaserAPDPNRatiosRef(), EcalTrivialConditionRetriever::getChannelStatusFromConfiguration(), popcon::EcalPedestalsHandler::getNewObjectsP5(), EcalTrivialConditionRetriever::getTrgChannelStatusFromConfiguration(), CaloMiscalibMapEcal::prefillMap(), CaloMiscalibMapEcal::print(), EcalTrivialConditionRetriever::produceEcalChannelStatus(), EcalTrivialConditionRetriever::produceEcalDQMChannelStatus(), EcalTrivialConditionRetriever::produceEcalGainRatios(), EcalTrivialConditionRetriever::produceEcalIntercalibConstants(), EcalTrivialConditionRetriever::produceEcalIntercalibConstantsMC(), EcalTrivialConditionRetriever::produceEcalIntercalibErrors(), EcalTrivialConditionRetriever::produceEcalLaserAlphas(), EcalTrivialConditionRetriever::produceEcalLaserAPDPNRatios(), EcalTrivialConditionRetriever::produceEcalLaserAPDPNRatiosRef(), EcalTrivialConditionRetriever::produceEcalLinearCorrections(), EcalTrivialConditionRetriever::produceEcalPedestals(), EcalTrivialConditionRetriever::produceEcalTimeCalibConstants(), EcalTrivialConditionRetriever::produceEcalTimeCalibErrors(), popcon::EcalTPGBadXTHandler::produceEcalTrgChannelStatus(), EcalTrivialConditionRetriever::produceEcalTrgChannelStatus(), EcalTrivialConditionRetriever::produceEcalWeightXtalGroups(), StoreEcalCondition::readEcalChannelStatusFromFile(), StoreEcalCondition::readEcalGainRatiosFromFile(), StoreEcalCondition::readEcalIntercalibConstantsFromFile(), StoreEcalCondition::readEcalIntercalibConstantsMCFromFile(), and validDetId().

const int EEDetId::IY_MAX = 100 [static]

Upper bound of EE crystal y-index

Definition at line 307 of file EEDetId.h.

Referenced by EcalGetLaserData::analyze(), EcalTPGCrystalStatusXMLTranslator::dumpXML(), ZeeCalibration::endOfJob(), EcalNextToDeadChannelESProducer::findNextToDeadChannelsCallback(), EcalTestDevDB::generateEcalLaserAlphas(), EcalTestDevDB::generateEcalLaserAPDPNRatios(), EcalTestDevDB::generateEcalLaserAPDPNRatiosRef(), EcalTrivialConditionRetriever::getChannelStatusFromConfiguration(), EcalRingCalibrationTools::getDetIdsInECAL(), EcalRingCalibrationTools::getDetIdsInRing(), popcon::EcalPedestalsHandler::getNewObjectsP5(), EcalTrivialConditionRetriever::getTrgChannelStatusFromConfiguration(), idOuterRing(), EcalRingCalibrationTools::initializeFromGeometry(), iPhiOuterRing(), isOuterRing(), cond::PayLoadInspector< DataT >::plot(), CaloMiscalibMapEcal::prefillMap(), CaloMiscalibMapEcal::print(), EcalTrivialConditionRetriever::produceEcalChannelStatus(), EcalTrivialConditionRetriever::produceEcalDQMChannelStatus(), EcalTrivialConditionRetriever::produceEcalGainRatios(), EcalTrivialConditionRetriever::produceEcalIntercalibConstants(), EcalTrivialConditionRetriever::produceEcalIntercalibConstantsMC(), EcalTrivialConditionRetriever::produceEcalIntercalibErrors(), EcalTrivialConditionRetriever::produceEcalLaserAlphas(), EcalTrivialConditionRetriever::produceEcalLaserAPDPNRatios(), EcalTrivialConditionRetriever::produceEcalLaserAPDPNRatiosRef(), EcalTrivialConditionRetriever::produceEcalLinearCorrections(), EcalTrivialConditionRetriever::produceEcalPedestals(), EcalTrivialConditionRetriever::produceEcalTimeCalibConstants(), EcalTrivialConditionRetriever::produceEcalTimeCalibErrors(), popcon::EcalTPGBadXTHandler::produceEcalTrgChannelStatus(), EcalTrivialConditionRetriever::produceEcalTrgChannelStatus(), EcalTrivialConditionRetriever::produceEcalWeightXtalGroups(), StoreEcalCondition::readEcalChannelStatusFromFile(), StoreEcalCondition::readEcalGainRatiosFromFile(), StoreEcalCondition::readEcalIntercalibConstantsFromFile(), StoreEcalCondition::readEcalIntercalibConstantsMCFromFile(), cond::PayLoadInspector< DataT >::summary(), unhashIndex(), and validDetId().

const int EEDetId::IY_MIN = 1 [static]

Lower bound of EE crystal y-index

Definition at line 299 of file EEDetId.h.

Referenced by EcalGetLaserData::analyze(), ZeeCalibration::endOfJob(), EcalNextToDeadChannelESProducer::findNextToDeadChannelsCallback(), EcalTestDevDB::generateEcalLaserAlphas(), EcalTestDevDB::generateEcalLaserAPDPNRatios(), EcalTestDevDB::generateEcalLaserAPDPNRatiosRef(), EcalTrivialConditionRetriever::getChannelStatusFromConfiguration(), popcon::EcalPedestalsHandler::getNewObjectsP5(), EcalTrivialConditionRetriever::getTrgChannelStatusFromConfiguration(), CaloMiscalibMapEcal::prefillMap(), CaloMiscalibMapEcal::print(), EcalTrivialConditionRetriever::produceEcalChannelStatus(), EcalTrivialConditionRetriever::produceEcalDQMChannelStatus(), EcalTrivialConditionRetriever::produceEcalGainRatios(), EcalTrivialConditionRetriever::produceEcalIntercalibConstants(), EcalTrivialConditionRetriever::produceEcalIntercalibConstantsMC(), EcalTrivialConditionRetriever::produceEcalIntercalibErrors(), EcalTrivialConditionRetriever::produceEcalLaserAlphas(), EcalTrivialConditionRetriever::produceEcalLaserAPDPNRatios(), EcalTrivialConditionRetriever::produceEcalLaserAPDPNRatiosRef(), EcalTrivialConditionRetriever::produceEcalLinearCorrections(), EcalTrivialConditionRetriever::produceEcalPedestals(), EcalTrivialConditionRetriever::produceEcalTimeCalibConstants(), EcalTrivialConditionRetriever::produceEcalTimeCalibErrors(), popcon::EcalTPGBadXTHandler::produceEcalTrgChannelStatus(), EcalTrivialConditionRetriever::produceEcalTrgChannelStatus(), EcalTrivialConditionRetriever::produceEcalWeightXtalGroups(), StoreEcalCondition::readEcalChannelStatusFromFile(), StoreEcalCondition::readEcalGainRatiosFromFile(), StoreEcalCondition::readEcalIntercalibConstantsFromFile(), StoreEcalCondition::readEcalIntercalibConstantsMCFromFile(), and validDetId().

const int EEDetId::iYoffset = { 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0 } [static, private]

Definition at line 355 of file EEDetId.h.

Referenced by isc(), and iy().

const unsigned short EEDetId::kdi [static, private]
Initial value:
 {
    0,   10,   20,   30,   40,   50,   60,   75,   90,  105,
  120,  145,  170,  195,  220,  245,  270,  300,  330,  360,
  390,  420,  450,  480,  510,  540,  570,  605,  640,  675,
  710,  747,  784,  821,  858,  895,  932,  969, 1006, 1043,
 1080, 1122, 1164, 1206, 1248, 1290, 1332, 1374, 1416, 1458,
 1500, 1545, 1590, 1635, 1680, 1725, 1770, 1815, 1860, 1905,
 1950, 1995, 2040, 2085, 2130, 2175, 2220, 2265, 2310, 2355,
 2400, 2447, 2494, 2541, 2588, 2635, 2682, 2729, 2776, 2818,
 2860, 2903, 2946, 2988, 3030, 3071, 3112, 3152, 3192, 3232,
 3272, 3311, 3350, 3389, 3428, 3467, 3506, 3545, 3584, 3623,
 3662, 3701, 3740, 3779, 3818, 3857, 3896, 3935, 3974, 4013,
 4052, 4092, 4132, 4172, 4212, 4253, 4294, 4336, 4378, 4421,
 4464, 4506, 4548, 4595, 4642, 4689, 4736, 4783, 4830, 4877,
 4924, 4969, 5014, 5059, 5104, 5149, 5194, 5239, 5284, 5329,
 5374, 5419, 5464, 5509, 5554, 5599, 5644, 5689, 5734, 5779,
 5824, 5866, 5908, 5950, 5992, 6034, 6076, 6118, 6160, 6202,
 6244, 6281, 6318, 6355, 6392, 6429, 6466, 6503, 6540, 6577,
 6614, 6649, 6684, 6719, 6754, 6784, 6814, 6844, 6874, 6904,
 6934, 6964, 6994, 7024, 7054, 7079, 7104, 7129, 7154, 7179,
 7204, 7219, 7234, 7249, 7264, 7274, 7284, 7294, 7304, 7314
}

Definition at line 358 of file EEDetId.h.

Referenced by hashedIndex(), and unhashIndex().

const unsigned short EEDetId::kxf [static, private]
Initial value:
 {
  41,  51,  41,  51,  41,  51,  36,  51,  36,  51,
  26,  51,  26,  51,  26,  51,  21,  51,  21,  51,
  21,  51,  21,  51,  21,  51,  16,  51,  16,  51,
  14,  51,  14,  51,  14,  51,  14,  51,  14,  51,
   9,  51,   9,  51,   9,  51,   9,  51,   9,  51,
   6,  51,   6,  51,   6,  51,   6,  51,   6,  51,
   6,  51,   6,  51,   6,  51,   6,  51,   6,  51,
   4,  51,   4,  51,   4,  51,   4,  51,   4,  56,
   1,  58,   1,  59,   1,  60,   1,  61,   1,  61,
   1,  62,   1,  62,   1,  62,   1,  62,   1,  62,
   1,  62,   1,  62,   1,  62,   1,  62,   1,  62,
   1,  61,   1,  61,   1,  60,   1,  59,   1,  58,
   4,  56,   4,  51,   4,  51,   4,  51,   4,  51,
   6,  51,   6,  51,   6,  51,   6,  51,   6,  51,
   6,  51,   6,  51,   6,  51,   6,  51,   6,  51,
   9,  51,   9,  51,   9,  51,   9,  51,   9,  51,
  14,  51,  14,  51,  14,  51,  14,  51,  14,  51,
  16,  51,  16,  51,  21,  51,  21,  51,  21,  51,
  21,  51,  21,  51,  26,  51,  26,  51,  26,  51,
  36,  51,  36,  51,  41,  51,  41,  51,  41,  51
}

Definition at line 357 of file EEDetId.h.

Referenced by hashedIndex(), and unhashIndex().

const int EEDetId::nCols = 10 [static, private]

Definition at line 352 of file EEDetId.h.

Referenced by ix(), and iy().

const int EEDetId::nCrys = 5 [static, private]

Definition at line 353 of file EEDetId.h.

Referenced by ic(), and isc().

const int EEDetId::QuadColLimits = { 0, 8,17,27,36,45,54,62,70,76,79 } [static, private]

Definition at line 354 of file EEDetId.h.

Referenced by isc(), ix(), and iy().

const int EEDetId::SCCRYSTALMODE = 1 [static]

Definition at line 341 of file EEDetId.h.

Referenced by EEDetId(), and EcalEndcapNumberingScheme::getUnitID().

const int EEDetId::XYMODE = 0 [static]