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 
9  struct eCoord{
10  uint16_t amcId;
11  uint16_t gebId;
12  uint16_t vfatId;
13  bool operator < (const eCoord& r) const{
14  if (amcId == r.amcId){
15  if ( gebId == r.gebId){
16  return vfatId < r.vfatId;
17  }
18  else{
19  return gebId < r.gebId;
20  }
21  }
22  else{
23  return amcId < r.amcId;
24  }
25  }
26  };
27 
28  struct dCoord{
29  int vfatType;
31  int iPhi;
32  bool operator < (const dCoord& r) const{
33  if (vfatType == r.vfatType){
34  if (gemDetId == r.gemDetId){
35  return iPhi < r.iPhi;
36  }
37  else{
38  return gemDetId < r.gemDetId;
39  }
40  }
41  else{
42  return vfatType < r.vfatType;
43  }
44  }
45  };
46 
47  struct channelNum{
48  int vfatType;
49  int chNum;
50  bool operator < (const channelNum& c) const{
51  if (vfatType == c.vfatType)
52  return chNum < c.chNum;
53  else
54  return vfatType < c.vfatType;
55  }
56  };
57 
58  struct stripNum{
59  int vfatType;
60  int stNum;
61  bool operator < (const stripNum& s) const{
62  if (vfatType == s.vfatType)
63  return stNum < s.stNum;
64  else
65  return vfatType < s.vfatType;
66  }
67  };
68 
69  GEMROmap(){};
70 
71  bool isValidChipID(const eCoord& r) const {
72  return roMapED_.find(r) != roMapED_.end();
73  }
74  const dCoord& hitPosition(const eCoord& r) const {return roMapED_.at(r);}
75  const eCoord& hitPosition(const dCoord& r) const {return roMapDE_.at(r);}
76 
77  void add(eCoord e,dCoord d) {roMapED_[e]=d;}
78  void add(dCoord d,eCoord e) {roMapDE_[d]=e;}
79 
80  const std::map<eCoord, dCoord> * getRoMap() const {return &roMapED_;}
81 
84 
85  const channelNum& hitPosition(const stripNum& s) const {return stChMap_.at(s);}
86  const stripNum& hitPosition(const channelNum& c) const {return chStMap_.at(c);}
87 
88  private:
89  std::map<eCoord,dCoord> roMapED_;
90  std::map<dCoord,eCoord> roMapDE_;
91 
92  std::map<channelNum, stripNum> chStMap_;
93  std::map<stripNum, channelNum> stChMap_;
94 
95 };
96 #endif
const dCoord & hitPosition(const eCoord &r) const
Definition: GEMROmap.h:74
GEMROmap()
Definition: GEMROmap.h:69
void add(stripNum s, channelNum c)
Definition: GEMROmap.h:83
std::map< dCoord, eCoord > roMapDE_
Definition: GEMROmap.h:90
void add(eCoord e, dCoord d)
Definition: GEMROmap.h:77
uint16_t gebId
Definition: GEMROmap.h:11
std::map< eCoord, dCoord > roMapED_
Definition: GEMROmap.h:89
const std::map< eCoord, dCoord > * getRoMap() const
Definition: GEMROmap.h:80
void add(dCoord d, eCoord e)
Definition: GEMROmap.h:78
const eCoord & hitPosition(const dCoord &r) const
Definition: GEMROmap.h:75
GEMDetId gemDetId
Definition: GEMROmap.h:30
std::map< stripNum, channelNum > stChMap_
Definition: GEMROmap.h:93
const stripNum & hitPosition(const channelNum &c) const
Definition: GEMROmap.h:86
void add(channelNum c, stripNum s)
Definition: GEMROmap.h:82
uint16_t vfatId
Definition: GEMROmap.h:12
bool operator<(const eCoord &r) const
Definition: GEMROmap.h:13
uint16_t amcId
Definition: GEMROmap.h:10
const channelNum & hitPosition(const stripNum &s) const
Definition: GEMROmap.h:85
std::map< channelNum, stripNum > chStMap_
Definition: GEMROmap.h:92
bool isValidChipID(const eCoord &r) const
Definition: GEMROmap.h:71