File indexing completed on 2024-04-06 12:02:12
0001 #ifndef CondFormats_GEMObjects_GEMeMap_h
0002 #define CondFormats_GEMObjects_GEMeMap_h
0003
0004 #include "CondFormats/Serialization/interface/Serializable.h"
0005 #include <string>
0006 #include <vector>
0007
0008 class GEMROMapping;
0009
0010 class GEMeMap {
0011 public:
0012 GEMeMap();
0013 explicit GEMeMap(const std::string& version);
0014
0015 virtual ~GEMeMap();
0016
0017 const std::string& version() const;
0018 void convert(GEMROMapping& romap);
0019 void convertDummy(GEMROMapping& romap);
0020
0021 struct GEMChamberMap {
0022 std::vector<unsigned int> fedId;
0023 std::vector<uint8_t> amcNum;
0024 std::vector<uint8_t> gebId;
0025 std::vector<int> gemNum;
0026 std::vector<int> vfatVer;
0027
0028 COND_SERIALIZABLE;
0029 };
0030
0031 struct GEMVFatMap {
0032 std::vector<int> gemNum;
0033 std::vector<uint16_t> vfatAdd;
0034 std::vector<int> vfatType;
0035 std::vector<int> iEta;
0036 std::vector<int> localPhi;
0037
0038 COND_SERIALIZABLE;
0039 };
0040 struct GEMStripMap {
0041 std::vector<int> vfatType;
0042 std::vector<int> vfatCh;
0043 std::vector<int> vfatStrip;
0044
0045 COND_SERIALIZABLE;
0046 };
0047
0048 std::vector<GEMChamberMap> theChamberMap_;
0049 std::vector<GEMVFatMap> theVFatMap_;
0050 std::vector<GEMStripMap> theStripMap_;
0051
0052 private:
0053 std::string theVersion;
0054
0055 COND_SERIALIZABLE;
0056
0057 public:
0058
0059 static const int vfatVerV3_ = 3;
0060 static const int vfatTypeV3_ = 11;
0061 static const int chipIdMask_ = 0xfff;
0062 static const int maxGEBs_ = 24;
0063 static const int maxGEB1_ = 12;
0064 static const int maxGEB2_ = 12;
0065 static const int maxAMCs_ = 15;
0066 static const int maxVFatGE0_ = 12;
0067 static const int maxVFatGE11_ = 3;
0068 static const int maxVFatGE21_ = 6;
0069 static const int maxiEtaIdGE0_ = 8;
0070 static const int maxiEtaIdGE11_ = 8;
0071 static const int maxiEtaIdGE21_ = 16;
0072 static const int maxChan_ = 128;
0073 };
0074 #endif