CMS 3D CMS Logo

GEMROmap.h
Go to the documentation of this file.
1 #ifndef CondFormats_GEMObjects_GEMROmap_h
2 #define CondFormats_GEMObjects_GEMROmap_h
4 #include <map>
5 
6 class GEMROmap {
7 public:
8  struct eCoord {
9  uint16_t amcId;
10  uint16_t gebId;
11  uint16_t vfatId;
12  bool operator<(const eCoord& r) const {
13  if (amcId == r.amcId) {
14  if (gebId == r.gebId) {
15  return vfatId < r.vfatId;
16  } else {
17  return gebId < r.gebId;
18  }
19  } else {
20  return amcId < r.amcId;
21  }
22  }
23  };
24 
25  struct dCoord {
26  int vfatType;
28  int iPhi;
29  bool operator<(const dCoord& r) const {
30  if (vfatType == r.vfatType) {
31  if (gemDetId == r.gemDetId) {
32  return iPhi < r.iPhi;
33  } else {
34  return gemDetId < r.gemDetId;
35  }
36  } else {
37  return vfatType < r.vfatType;
38  }
39  }
40  };
41 
42  struct channelNum {
43  int vfatType;
44  int chNum;
45  bool operator<(const channelNum& c) const {
46  if (vfatType == c.vfatType)
47  return chNum < c.chNum;
48  else
49  return vfatType < c.vfatType;
50  }
51  };
52 
53  struct stripNum {
54  int vfatType;
55  int stNum;
56  bool operator<(const stripNum& s) const {
57  if (vfatType == s.vfatType)
58  return stNum < s.stNum;
59  else
60  return vfatType < s.vfatType;
61  }
62  };
63 
64  GEMROmap(){};
65 
66  bool isValidChipID(const eCoord& r) const { return roMapED_.find(r) != roMapED_.end(); }
67  const dCoord& hitPosition(const eCoord& r) const { return roMapED_.at(r); }
68  const eCoord& hitPosition(const dCoord& r) const { return roMapDE_.at(r); }
69 
70  void add(eCoord e, dCoord d) { roMapED_[e] = d; }
71  void add(dCoord d, eCoord e) { roMapDE_[d] = e; }
72 
73  const std::map<eCoord, dCoord>* getRoMap() const { return &roMapED_; }
74 
75  void add(channelNum c, stripNum s) { chStMap_[c] = s; }
76  void add(stripNum s, channelNum c) { stChMap_[s] = c; }
77 
78  const channelNum& hitPosition(const stripNum& s) const { return stChMap_.at(s); }
79  const stripNum& hitPosition(const channelNum& c) const { return chStMap_.at(c); }
80 
81 private:
82  std::map<eCoord, dCoord> roMapED_;
83  std::map<dCoord, eCoord> roMapDE_;
84 
85  std::map<channelNum, stripNum> chStMap_;
86  std::map<stripNum, channelNum> stChMap_;
87 };
88 #endif
GEMROmap::roMapDE_
std::map< dCoord, eCoord > roMapDE_
Definition: GEMROmap.h:83
GEMROmap::stripNum::vfatType
int vfatType
Definition: GEMROmap.h:54
GEMROmap::getRoMap
const std::map< eCoord, dCoord > * getRoMap() const
Definition: GEMROmap.h:73
GEMROmap::eCoord::operator<
bool operator<(const eCoord &r) const
Definition: GEMROmap.h:12
GEMROmap::hitPosition
const channelNum & hitPosition(const stripNum &s) const
Definition: GEMROmap.h:78
GEMROmap::stChMap_
std::map< stripNum, channelNum > stChMap_
Definition: GEMROmap.h:86
GEMROmap::stripNum
Definition: GEMROmap.h:53
GEMROmap::dCoord::gemDetId
GEMDetId gemDetId
Definition: GEMROmap.h:27
GEMROmap::isValidChipID
bool isValidChipID(const eCoord &r) const
Definition: GEMROmap.h:66
GEMROmap::dCoord::iPhi
int iPhi
Definition: GEMROmap.h:28
alignCSCRings.s
s
Definition: alignCSCRings.py:92
GEMROmap::dCoord::vfatType
int vfatType
Definition: GEMROmap.h:26
GEMROmap
Definition: GEMROmap.h:6
GEMROmap::dCoord
Definition: GEMROmap.h:25
GEMROmap::hitPosition
const stripNum & hitPosition(const channelNum &c) const
Definition: GEMROmap.h:79
GEMROmap::hitPosition
const eCoord & hitPosition(const dCoord &r) const
Definition: GEMROmap.h:68
GEMROmap::eCoord::amcId
uint16_t amcId
Definition: GEMROmap.h:9
GEMROmap::stripNum::operator<
bool operator<(const stripNum &s) const
Definition: GEMROmap.h:56
GEMROmap::channelNum::chNum
int chNum
Definition: GEMROmap.h:44
GEMDetId
Definition: GEMDetId.h:18
GEMROmap::GEMROmap
GEMROmap()
Definition: GEMROmap.h:64
alignCSCRings.r
r
Definition: alignCSCRings.py:93
GEMDetId.h
GEMROmap::channelNum::vfatType
int vfatType
Definition: GEMROmap.h:43
GEMROmap::roMapED_
std::map< eCoord, dCoord > roMapED_
Definition: GEMROmap.h:82
GEMROmap::stripNum::stNum
int stNum
Definition: GEMROmap.h:55
GEMROmap::channelNum
Definition: GEMROmap.h:42
GEMROmap::dCoord::operator<
bool operator<(const dCoord &r) const
Definition: GEMROmap.h:29
GEMROmap::chStMap_
std::map< channelNum, stripNum > chStMap_
Definition: GEMROmap.h:85
GEMROmap::add
void add(stripNum s, channelNum c)
Definition: GEMROmap.h:76
GEMROmap::channelNum::operator<
bool operator<(const channelNum &c) const
Definition: GEMROmap.h:45
ztail.d
d
Definition: ztail.py:151
GEMROmap::hitPosition
const dCoord & hitPosition(const eCoord &r) const
Definition: GEMROmap.h:67
c
auto & c
Definition: CAHitNtupletGeneratorKernelsImpl.h:56
GEMROmap::add
void add(eCoord e, dCoord d)
Definition: GEMROmap.h:70
GEMROmap::add
void add(channelNum c, stripNum s)
Definition: GEMROmap.h:75
GEMROmap::add
void add(dCoord d, eCoord e)
Definition: GEMROmap.h:71
GEMROmap::eCoord
Definition: GEMROmap.h:8
GEMROmap::eCoord::vfatId
uint16_t vfatId
Definition: GEMROmap.h:11
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
GEMROmap::eCoord::gebId
uint16_t gebId
Definition: GEMROmap.h:10