CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
EcalHodoscopeNumberingScheme.cc
Go to the documentation of this file.
1 // File: EcalHodoscopeNumberingScheme.cc
3 // Description: Numbering scheme for TB H4 hodoscope detector
5 
8 
9 #include <iostream>
10 
13 
14  edm::LogInfo("EcalTBGeom") << "Creating EcalHodoscopeNumberingScheme";
15 }
16 
18  edm::LogInfo("EcalTBGeom") << "Deleting EcalHodoscopeNumberingScheme";
19 }
20 
21 uint32_t EcalHodoscopeNumberingScheme::getUnitID(const EcalBaseNumber& baseNumber) const {
22 
23  int level = baseNumber.getLevels();
24  uint32_t intIndex = 0;
25  if (level > 0) {
26 
27  // depth index - plans and fibers
28  if(baseNumber.getLevelName(0) == "FIBR") {
29  uint32_t iFibr;
30 
31  if (baseNumber.getCopyNumber(0) > 32)
32  iFibr = 2 * (baseNumber.getCopyNumber(0)-33);
33  else
34  iFibr = 2*baseNumber.getCopyNumber(0) - 1;
35 
36  const uint32_t iPlane = baseNumber.getCopyNumber(1)-1;
37 
38  LogDebug("EcalTBGeom") << "Fibr/plane " << iFibr << " " << iPlane;
39 
40  intIndex = HodoscopeDetId( iPlane, iFibr).rawId() ;
41 
42  LogDebug("EcalTBGeom") << "Index for fiber volume " << baseNumber.getLevelName(0) << " in plane " << baseNumber.getLevelName(1) << " = " << intIndex;
43 
44  }
45  }
46 
47  return intIndex;
48 
49 }
50 
#define LogDebug(id)
std::string const & getLevelName(int level) const
int getCopyNumber(int level) const
uint32_t rawId() const
get the raw id
Definition: DetId.h:45
virtual uint32_t getUnitID(const EcalBaseNumber &baseNumber) const
tuple level
Definition: testEve_cfg.py:34
int getLevels() const