#include <Geometry/EcalTestBeam/interface/EcalHodoscopeNumberingScheme.h>
Public Member Functions | |
EcalHodoscopeNumberingScheme () | |
virtual uint32_t | getUnitID (const EcalBaseNumber &baseNumber) const |
~EcalHodoscopeNumberingScheme () |
Definition at line 10 of file EcalHodoscopeNumberingScheme.h.
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 }
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 }