Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:02:12

0001 #ifndef CondFormats_GEMObjects_GEMELMap_h
0002 #define CondFormats_GEMObjects_GEMELMap_h
0003 
0004 #include "CondFormats/Serialization/interface/Serializable.h"
0005 #include <string>
0006 #include <vector>
0007 
0008 class GEMROmap;
0009 
0010 class GEMELMap {
0011 public:
0012   GEMELMap();
0013   explicit GEMELMap(const std::string& version);
0014 
0015   virtual ~GEMELMap();
0016 
0017   const std::string& version() const;
0018   void convert(GEMROmap& romap);
0019   void convertDummy(GEMROmap& romap);
0020 
0021   struct GEMVFatMap {
0022     int VFATmapTypeId;
0023     std::vector<int> vfat_position;
0024     std::vector<int> z_direction;
0025     std::vector<int> iEta;
0026     std::vector<int> iPhi;
0027     std::vector<int> depth;
0028     std::vector<int> vfatType;
0029     std::vector<uint16_t> vfatId;
0030     std::vector<uint16_t> amcId;
0031     std::vector<uint16_t> gebId;
0032     std::vector<int> sec;
0033 
0034     COND_SERIALIZABLE;
0035   };
0036   struct GEMStripMap {
0037     std::vector<int> vfatType;
0038     std::vector<int> vfatCh;
0039     std::vector<int> vfatStrip;
0040 
0041     COND_SERIALIZABLE;
0042   };
0043 
0044   std::vector<GEMVFatMap> theVFatMap_;
0045   std::vector<GEMStripMap> theStripMap_;
0046 
0047 private:
0048   std::string theVersion;
0049 
0050   COND_SERIALIZABLE;
0051 
0052 public:
0053   // size of ID bits
0054   static const int chipIdBits_ = 12;     // ID size from VFat
0055   static const int chipIdMask_ = 0xfff;  // chipId mask for 12 bits
0056   static const int gebIdBits_ = 5;       // ID size from GEB
0057   static const int maxGEBs_ = 24;        // 24 gebs per amc
0058   static const int maxVFatGE0_ = 12;     // vFat per eta partition, not known yet for ME0
0059   static const int maxVFatGE11_ = 3;     // vFat per eta partition in GE11
0060   static const int maxVFatGE21_ = 6;     // vFat per eta partition in GE21
0061   static const int maxChan_ = 128;       // channels per vFat
0062   static const int amcBX_ = 25;          // amc BX to get strip bx
0063 };
0064 #endif  // GEMELMap_H