CMS 3D CMS Logo

HGCalWaferIndex.cc
Go to the documentation of this file.
2 
3 const int kHGCalWaferUOffset = 0;
4 const int kHGCalWaferUMask = 0x1F;
5 const int kHGCalWaferUSignOffset = 5;
6 const int kHGCalWaferUSignMask = 0x1;
7 const int kHGCalWaferVOffset = 6;
8 const int kHGCalWaferVMask = 0x1F;
9 const int kHGCalWaferVSignOffset = 11;
10 const int kHGCalWaferVSignMask = 0x1;
11 const int kHGCalLayerOffset = 12;
12 const int kHGCalLayerMask = 0x1F;
13 
14 int32_t HGCalWaferIndex::waferIndex(int32_t layer, int32_t waferU,
15  int32_t waferV) {
16  int waferUabs(std::abs(waferU)), waferVabs(std::abs(waferV));
17  int waferUsign = (waferU >= 0) ? 0 : 1;
18  int waferVsign = (waferV >= 0) ? 0 : 1;
19  int32_t id(0);
20  id |= (((waferUabs & kHGCalWaferUMask) << kHGCalWaferUOffset) |
21  ((waferUsign& kHGCalWaferUSignMask) << kHGCalWaferUSignOffset) |
22  ((waferVabs & kHGCalWaferVMask) << kHGCalWaferVOffset) |
23  ((waferVsign& kHGCalWaferVSignMask) << kHGCalWaferVSignOffset) |
24  ((layer & kHGCalLayerMask) << kHGCalLayerOffset));
25  return id;
26 }
27 
28 int HGCalWaferIndex::waferLayer(const int32_t id) {
29  return (id>>kHGCalLayerOffset)&kHGCalLayerMask;
30 }
31 
32 int HGCalWaferIndex::waferU(const int32_t id) {
33  int32_t iu = (id>>kHGCalWaferUOffset)&kHGCalWaferUMask;
34  return (((id>>kHGCalWaferUSignOffset) & kHGCalWaferUSignMask) ? -iu : iu);
35 }
36 
37 int HGCalWaferIndex::waferV(const int32_t id) {
38  int32_t iv = (id>>kHGCalWaferVOffset)&kHGCalWaferVMask;
39  return (((id>>kHGCalWaferVSignOffset) & kHGCalWaferVSignMask) ? -iv : iv);
40 }
const int kHGCalWaferVMask
const int kHGCalWaferUSignMask
const int kHGCalWaferVSignOffset
static int32_t waferV(const int32_t index)
const int kHGCalWaferUMask
static int32_t waferIndex(int32_t layer, int32_t waferU, int32_t waferV)
const int kHGCalLayerMask
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
static int32_t waferU(const int32_t index)
const int kHGCalWaferVSignMask
static int32_t waferLayer(const int32_t index)
const int kHGCalLayerOffset
const int kHGCalWaferUOffset
const int kHGCalWaferUSignOffset
const int kHGCalWaferVOffset