CMS 3D CMS Logo

EcalHodoscopeNumberingScheme Class Reference

#include <Geometry/EcalTestBeam/interface/EcalHodoscopeNumberingScheme.h>

Inheritance diagram for EcalHodoscopeNumberingScheme:

EcalNumberingScheme CaloNumberingScheme

List of all members.

Public Member Functions

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


Detailed Description

Definition at line 10 of file EcalHodoscopeNumberingScheme.h.


Constructor & Destructor Documentation

EcalHodoscopeNumberingScheme::EcalHodoscopeNumberingScheme (  ) 

Definition at line 12 of file EcalHodoscopeNumberingScheme.cc.

00012                                                            : 
00013   EcalNumberingScheme() {
00014 
00015   
00016   edm::LogInfo("EcalTBGeom") << "Creating EcalHodoscopeNumberingScheme";
00017 }

EcalHodoscopeNumberingScheme::~EcalHodoscopeNumberingScheme (  ) 

Definition at line 19 of file EcalHodoscopeNumberingScheme.cc.

00019                                                             {
00020   edm::LogInfo("EcalTBGeom") << "Deleting EcalHodoscopeNumberingScheme";
00021 }


Member Function Documentation

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

Implements EcalNumberingScheme.

Definition at line 23 of file EcalHodoscopeNumberingScheme.cc.

References EcalBaseNumber::getCopyNumber(), EcalBaseNumber::getLevelName(), EcalBaseNumber::getLevels(), level, and LogDebug.

Referenced by EcalTBHodoscopeGeometryLoaderFromDDD::getDetIdForDDDNode().

00023                                                                                         {
00024   
00025   int level = baseNumber.getLevels();
00026   uint32_t intIndex = 0; 
00027   if (level > 0) {
00028 
00029     // depth index - plans and fibers
00030     if(baseNumber.getLevelName(0) == "FIBR") {
00031       uint32_t iFibr;
00032 
00033       if (baseNumber.getCopyNumber(0) > 32)
00034         iFibr = 2 * (baseNumber.getCopyNumber(0)-33);
00035       else 
00036         iFibr = 2*baseNumber.getCopyNumber(0) - 1;
00037 
00038       const uint32_t iPlane = baseNumber.getCopyNumber(1)-1;
00039 
00040       LogDebug("EcalTBGeom") << "Fibr/plane " << iFibr << " " << iPlane;
00041 
00042       intIndex = HodoscopeDetId( iPlane, iFibr).rawId() ;
00043 
00044       LogDebug("EcalTBGeom") << "Index for fiber volume " << baseNumber.getLevelName(0) << " in plane " << baseNumber.getLevelName(1) << " = " << intIndex;
00045 
00046     }
00047   }
00048 
00049   return intIndex;
00050 
00051 }


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