CMS 3D CMS Logo

GEMELMap.cc
Go to the documentation of this file.
4 
6  theVersion("") {}
7 
9  theVersion(version) {}
10 
12 
14  return theVersion;
15 }
16 
17 void GEMELMap::convert(GEMROmap & romap) {
18 
19  for (auto imap : theVFatMap_){
20  for (unsigned int ix=0;ix<imap.vfatId.size();ix++){
22  ec.vfatId = imap.vfatId[ix] & chipIdMask_;
23  ec.gebId = imap.gebId[ix];
24  ec.amcId = imap.amcId[ix];
25 
26  int st = std::abs(imap.z_direction[ix]);
28  dc.gemDetId = GEMDetId(imap.z_direction[ix], 1, st, imap.depth[ix], imap.sec[ix], imap.iEta[ix]);
29  dc.vfatType = imap.vfatType[ix];
30  dc.iPhi = imap.iPhi[ix];
31 
32  romap.add(ec,dc);
33  romap.add(dc,ec);
34  }
35  }
36 
37  for (auto imap : theStripMap_){
38  for (unsigned int ix=0;ix<imap.vfatType.size();ix++){
40  cMap.vfatType = imap.vfatType[ix];
41  cMap.chNum = imap.vfatCh[ix];
42 
43  GEMROmap::stripNum sMap;
44  sMap.vfatType = imap.vfatType[ix];
45  sMap.stNum = imap.vfatStrip[ix];
46 
47  romap.add(cMap, sMap);
48  romap.add(sMap, cMap);
49  }
50  }
51 }
52 
54  // 12 bits for vfat, 5 bits for geb, 8 bit long GLIB serial number
55  uint16_t amcId = 1; //amc
56  uint16_t gebId = 0;
57 
58  for (int re = -1; re <= 1; re = re+2) {
59  for (int st = GEMDetId::minStationId; st<=GEMDetId::maxStationId; ++st) {
60  int maxVFat = maxVFatGE11_;
61  if (st == 2) maxVFat = maxVFatGE21_;
62  if (st == 0) maxVFat = maxVFatGE0_;
63 
64  for (int ch = 1; ch<=GEMDetId::maxChamberId; ++ch) {
65  for (int ly = 1; ly<=GEMDetId::maxLayerId; ++ly) {
66  // 1 geb per chamber
67  gebId++;
68  uint16_t chipId = 0;
69  for (int roll = 1; roll<=GEMDetId::maxRollId; ++roll) {
70 
71  GEMDetId gemId(re, 1, st, ly, ch, roll);
72 
73  for (int nphi = 1; nphi <= maxVFat; ++nphi){
74  chipId++;
75 
77  ec.vfatId = chipId;
78  ec.gebId = gebId;
79  ec.amcId = amcId;
80 
82  dc.gemDetId = gemId;
83  dc.vfatType = 1;
84  dc.iPhi = nphi;
85 
86  romap.add(ec,dc);
87  romap.add(dc,ec);
88  }
89  }
90  // 5 bits for geb
91  if (gebId == maxGEBs_){
92  // 24 gebs per amc
93  gebId = 0;
94  amcId++;
95  }
96  }
97  }
98  }
99  }
100 
101  for (int i = 0; i < maxChan_; ++i){
102  // only 1 vfat type for dummy map
104  cMap.vfatType = 1;
105  cMap.chNum = i;
106 
107  GEMROmap::stripNum sMap;
108  sMap.vfatType = 1;
109  sMap.stNum = i+1;
110 
111  romap.add(cMap, sMap);
112  romap.add(sMap, cMap);
113  }
114 }
virtual ~GEMELMap()
Definition: GEMELMap.cc:11
const std::string & version() const
Definition: GEMELMap.cc:13
static const int maxRollId
Definition: GEMDetId.h:111
static const int maxChamberId
Definition: GEMDetId.h:104
static const int maxVFatGE0_
Definition: GEMELMap.h:58
void add(eCoord e, dCoord d)
Definition: GEMROmap.h:77
static const int maxVFatGE21_
Definition: GEMELMap.h:60
uint16_t gebId
Definition: GEMROmap.h:11
static const int chipIdMask_
Definition: GEMELMap.h:55
static const int maxLayerId
Definition: GEMDetId.h:108
static const int maxChan_
Definition: GEMELMap.h:61
std::vector< GEMVFatMap > theVFatMap_
Definition: GEMELMap.h:44
GEMDetId gemDetId
Definition: GEMROmap.h:30
void convertDummy(GEMROmap &romap)
Definition: GEMELMap.cc:53
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
static const int maxStationId
Definition: GEMDetId.h:101
static const int maxGEBs_
Definition: GEMELMap.h:57
static const int minStationId
Definition: GEMDetId.h:100
static const int maxVFatGE11_
Definition: GEMELMap.h:59
uint16_t vfatId
Definition: GEMROmap.h:12
std::string theVersion
Definition: GEMELMap.h:48
uint16_t amcId
Definition: GEMROmap.h:10
GEMELMap()
Definition: GEMELMap.cc:5
std::vector< GEMStripMap > theStripMap_
Definition: GEMELMap.h:45
void convert(GEMROmap &romap)
Definition: GEMELMap.cc:17