CMS 3D CMS Logo

ESTBNumberingScheme Class Reference

#include <Geometry/EcalCommonData/interface/ESTBNumberingScheme.h>

Inheritance diagram for ESTBNumberingScheme:

EcalNumberingScheme CaloNumberingScheme

List of all members.

Public Member Functions

 ESTBNumberingScheme ()
virtual uint32_t getUnitID (const EcalBaseNumber &baseNumber) const
 ~ESTBNumberingScheme ()

Private Attributes

int iX [30]
int iY [30]


Detailed Description

Definition at line 6 of file ESTBNumberingScheme.h.


Constructor & Destructor Documentation

ESTBNumberingScheme::ESTBNumberingScheme (  ) 

Definition at line 6 of file ESTBNumberingScheme.cc.

References i, iX, and iY.

00006                                          : 
00007   EcalNumberingScheme() {
00008 
00009   int ix[30] = {3, 2, 4, 3, 2, 1, 4, 3, 2, 1, 4, 3, 2, 1, 1,
00010                 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4};
00011   int iy[30] = {4, 4, 3, 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 1,
00012                 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4};
00013 
00014   int i;
00015   for(i=0; i<30; ++i) {
00016     iX[i] = ix[i];
00017     iY[i] = iy[i];
00018   }
00019     
00020   edm::LogInfo("EcalGeom") << "Creating ESTBNumberingScheme";
00021 }

ESTBNumberingScheme::~ESTBNumberingScheme (  ) 

Definition at line 23 of file ESTBNumberingScheme.cc.

00023                                           {
00024   edm::LogInfo("EcalGeom") << "Deleting ESTBNumberingScheme";
00025 }


Member Function Documentation

uint32_t ESTBNumberingScheme::getUnitID ( const EcalBaseNumber baseNumber  )  const [virtual]

Implements EcalNumberingScheme.

Definition at line 27 of file ESTBNumberingScheme.cc.

References EcalBaseNumber::getCopyNumber(), EcalBaseNumber::getLevelName(), EcalBaseNumber::getLevels(), iX, iY, level, LogDebug, strip(), x, and y.

00027                                                                                {
00028   int level = baseNumber.getLevels();
00029   uint32_t intIndex = 0; 
00030   if (level > 0) {
00031 
00032     // depth index - silicon layer 1-st or 2-nd
00033     int layer = 0;
00034     if(baseNumber.getLevelName(0) == "SFSX") {
00035       layer = 1;
00036     } else if (baseNumber.getLevelName(0) == "SFSY") {
00037       layer = 2;
00038     } else {
00039       edm::LogWarning("EcalGeom") << "ESTBNumberingScheme: Wrong name"
00040                                  << " of Presh. Si. Strip : " 
00041                                  << baseNumber.getLevelName(0);
00042     }
00043 
00044     // Z index +Z = 1 ; -Z = 2
00045     int zside   = baseNumber.getCopyNumber("EREG");
00046     zside=2*(1-zside)+1;
00047     // wafer number
00048     int wafer = baseNumber.getCopyNumber(3);
00049     int x=0,y=0;
00050     // strip number inside wafer
00051     int strip = baseNumber.getCopyNumber(0);
00052 
00053     x = iX[wafer];
00054     y = iY[wafer];
00055     
00056     intIndex =  ESDetId(strip, x, y, layer, zside).rawId(); 
00057     
00058     LogDebug("EcalGeom") << "ESTBNumberingScheme : zside " << zside 
00059                         << " layer " << layer << " wafer " << wafer << " X " 
00060                         << x << " Y "<< y << " strip " << strip 
00061                         << " UnitID 0x" << std::hex << intIndex << std::dec;
00062     for (int ich = 0; ich < level; ich++) {
00063       LogDebug("EcalGeom") << "Name = " << baseNumber.getLevelName(ich) 
00064                           << " copy = " << baseNumber.getCopyNumber(ich);
00065     }
00066   }
00067 
00068   return intIndex;
00069 }


Member Data Documentation

int ESTBNumberingScheme::iX[30] [private]

Definition at line 16 of file ESTBNumberingScheme.h.

Referenced by ESTBNumberingScheme(), and getUnitID().

int ESTBNumberingScheme::iY[30] [private]

Definition at line 17 of file ESTBNumberingScheme.h.

Referenced by ESTBNumberingScheme(), and getUnitID().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:20:25 2009 for CMSSW by  doxygen 1.5.4