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 = 18;
12 const int kHGCalLayerMask = 0x1F;
13 const int kHGCalWaferCopyOffset = 0;
14 const int kHGCalWaferCopyMask = 0x7FFFF;
15 const int kHGCalLayerOldMask = 0x1000000;
16 
17 int32_t HGCalWaferIndex::waferIndex(int32_t layer, int32_t waferU, int32_t waferV, bool old) {
18  int32_t id(0);
19  if (old) {
22  } else {
23  int waferUabs(std::abs(waferU)), waferVabs(std::abs(waferV));
24  int waferUsign = (waferU >= 0) ? 0 : 1;
25  int waferVsign = (waferV >= 0) ? 0 : 1;
26  id |= (((waferUabs & kHGCalWaferUMask) << kHGCalWaferUOffset) |
27  ((waferUsign & kHGCalWaferUSignMask) << kHGCalWaferUSignOffset) |
28  ((waferVabs & kHGCalWaferVMask) << kHGCalWaferVOffset) |
29  ((waferVsign & kHGCalWaferVSignMask) << kHGCalWaferVSignOffset) |
30  ((layer & kHGCalLayerMask) << kHGCalLayerOffset));
31  }
32  return id;
33 }
34 
35 int HGCalWaferIndex::waferLayer(const int32_t id) { return (id >> kHGCalLayerOffset) & kHGCalLayerMask; }
36 
37 int HGCalWaferIndex::waferU(const int32_t id) {
38  int32_t iu = (id >> kHGCalWaferUOffset) & kHGCalWaferUMask;
39  return (((id >> kHGCalWaferUSignOffset) & kHGCalWaferUSignMask) ? -iu : iu);
40 }
41 
42 int HGCalWaferIndex::waferV(const int32_t id) {
43  int32_t iv = (id >> kHGCalWaferVOffset) & kHGCalWaferVMask;
44  return (((id >> kHGCalWaferVSignOffset) & kHGCalWaferVSignMask) ? -iv : iv);
45 }
46 
47 int HGCalWaferIndex::waferCopy(const int32_t id) { return (id >> kHGCalWaferCopyOffset) & kHGCalWaferCopyMask; }
48 
49 bool HGCalWaferIndex::waferFormat(const int32_t id) { return ((id & kHGCalLayerOldMask) == 0); }
HGCalWaferIndex::waferV
static int32_t waferV(const int32_t index)
Definition: HGCalWaferIndex.cc:42
kHGCalWaferUSignMask
const int kHGCalWaferUSignMask
Definition: HGCalWaferIndex.cc:6
kHGCalLayerMask
const int kHGCalLayerMask
Definition: HGCalWaferIndex.cc:12
kHGCalLayerOldMask
const int kHGCalLayerOldMask
Definition: HGCalWaferIndex.cc:15
kHGCalWaferCopyOffset
const int kHGCalWaferCopyOffset
Definition: HGCalWaferIndex.cc:13
kHGCalWaferUMask
const int kHGCalWaferUMask
Definition: HGCalWaferIndex.cc:4
kHGCalWaferVSignMask
const int kHGCalWaferVSignMask
Definition: HGCalWaferIndex.cc:10
kHGCalWaferVMask
const int kHGCalWaferVMask
Definition: HGCalWaferIndex.cc:8
HGCalWaferIndex.h
HGCalWaferIndex::waferU
static int32_t waferU(const int32_t index)
Definition: HGCalWaferIndex.cc:37
kHGCalWaferUOffset
const int kHGCalWaferUOffset
Definition: HGCalWaferIndex.cc:3
HGCalWaferIndex::waferFormat
static bool waferFormat(const int32_t index)
Definition: HGCalWaferIndex.cc:49
HGCalWaferIndex::waferCopy
static int32_t waferCopy(const int32_t index)
Definition: HGCalWaferIndex.cc:47
kHGCalWaferVSignOffset
const int kHGCalWaferVSignOffset
Definition: HGCalWaferIndex.cc:9
triggerObjects_cff.id
id
Definition: triggerObjects_cff.py:31
HGCalWaferIndex::waferIndex
static int32_t waferIndex(int32_t layer, int32_t waferU, int32_t waferV, bool old=false)
Definition: HGCalWaferIndex.cc:17
kHGCalWaferCopyMask
const int kHGCalWaferCopyMask
Definition: HGCalWaferIndex.cc:14
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
kHGCalWaferUSignOffset
const int kHGCalWaferUSignOffset
Definition: HGCalWaferIndex.cc:5
HGCalWaferIndex::waferLayer
static int32_t waferLayer(const int32_t index)
Definition: HGCalWaferIndex.cc:35
kHGCalLayerOffset
const int kHGCalLayerOffset
Definition: HGCalWaferIndex.cc:11
kHGCalWaferVOffset
const int kHGCalWaferVOffset
Definition: HGCalWaferIndex.cc:7