CMS 3D CMS Logo

GEMeMap.h
Go to the documentation of this file.
1 #ifndef CondFormats_GEMObjects_GEMeMap_h
2 #define CondFormats_GEMObjects_GEMeMap_h
3 
5 #include <string>
6 #include <vector>
7 
8 class GEMROMapping;
9 
10 class GEMeMap {
11 public:
12  GEMeMap();
13  explicit GEMeMap(const std::string& version);
14 
15  virtual ~GEMeMap();
16 
17  const std::string& version() const;
18  void convert(GEMROMapping& romap);
19  void convertDummy(GEMROMapping& romap);
20 
21  struct GEMChamberMap {
22  std::vector<unsigned int> fedId;
23  std::vector<uint8_t> amcNum;
24  std::vector<uint8_t> gebId;
25  std::vector<int> gemNum;
26  std::vector<int> vfatVer;
27 
29  };
30 
31  struct GEMVFatMap {
32  std::vector<int> gemNum;
33  std::vector<uint16_t> vfatAdd;
34  std::vector<int> vfatType;
35  std::vector<int> iEta;
36  std::vector<int> localPhi;
37 
39  };
40  struct GEMStripMap {
41  std::vector<int> vfatType;
42  std::vector<int> vfatCh;
43  std::vector<int> vfatStrip;
44 
46  };
47 
48  std::vector<GEMChamberMap> theChamberMap_;
49  std::vector<GEMVFatMap> theVFatMap_;
50  std::vector<GEMStripMap> theStripMap_;
51 
52 private:
54 
56 
57 public:
58  // size of ID bits
59  static const int vfatVerV3_ = 3; // VFAT v3
60  static const int vfatTypeV3_ = 11; // VFAT v3
61  static const int chipIdBits_ = 12; // ID size from VFat
62  static const int chipIdMask_ = 0xfff; // chipId mask for 12 bits
63  static const int gebIdBits_ = 5; // ID size from GEB
64  static const int maxGEBs_ = 32; // 5 bits for GEB id
65  static const int maxAMCs_ = 16; // 4 bits for AMC no.
66  static const int maxVFatGE0_ = 12; // vFat per eta partition, not known yet for ME0
67  static const int maxVFatGE11_ = 3; // vFat per eta partition in GE11
68  static const int maxVFatGE21_ = 6; // vFat per eta partition in GE21
69  static const int maxChan_ = 128; // channels per vFat
70  static const int amcBX_ = 25; // amc BX to get strip bx
71  static const int maxEtaPartition_ = 8; // etaPartitions in chamber
72 };
73 #endif // GEMeMap_H
std::vector< GEMChamberMap > theChamberMap_
Definition: GEMeMap.h:48
std::string theVersion
Definition: GEMeMap.h:53
static const int maxEtaPartition_
Definition: GEMeMap.h:71
std::vector< int > gemNum
Definition: GEMeMap.h:32
std::vector< int > gemNum
Definition: GEMeMap.h:25
static const int maxVFatGE0_
Definition: GEMeMap.h:66
std::vector< int > vfatType
Definition: GEMeMap.h:41
static const int vfatVerV3_
Definition: GEMeMap.h:59
void convert(GEMROMapping &romap)
Definition: GEMeMap.cc:14
std::vector< unsigned int > fedId
Definition: GEMeMap.h:22
static const int maxChan_
Definition: GEMeMap.h:69
void convertDummy(GEMROMapping &romap)
Definition: GEMeMap.cc:75
std::vector< GEMStripMap > theStripMap_
Definition: GEMeMap.h:50
const std::string & version() const
Definition: GEMeMap.cc:12
static const int amcBX_
Definition: GEMeMap.h:70
std::vector< uint8_t > gebId
Definition: GEMeMap.h:24
std::vector< int > iEta
Definition: GEMeMap.h:35
GEMeMap()
Definition: GEMeMap.cc:6
std::vector< GEMVFatMap > theVFatMap_
Definition: GEMeMap.h:49
static const int maxAMCs_
Definition: GEMeMap.h:65
static const int maxGEBs_
Definition: GEMeMap.h:64
std::vector< int > localPhi
Definition: GEMeMap.h:36
std::vector< uint8_t > amcNum
Definition: GEMeMap.h:23
#define COND_SERIALIZABLE
Definition: Serializable.h:38
static const int chipIdMask_
Definition: GEMeMap.h:62
std::vector< int > vfatStrip
Definition: GEMeMap.h:43
virtual ~GEMeMap()
Definition: GEMeMap.cc:10
std::vector< int > vfatCh
Definition: GEMeMap.h:42
static const int maxVFatGE21_
Definition: GEMeMap.h:68
std::vector< uint16_t > vfatAdd
Definition: GEMeMap.h:33
static const int vfatTypeV3_
Definition: GEMeMap.h:60
static const int chipIdBits_
Definition: GEMeMap.h:61
static const int gebIdBits_
Definition: GEMeMap.h:63
std::vector< int > vfatType
Definition: GEMeMap.h:34
static const int maxVFatGE11_
Definition: GEMeMap.h:67
std::vector< int > vfatVer
Definition: GEMeMap.h:26