00001 #ifndef L1Trigger_RPCPattern_h 00002 #define L1Trigger_RPCPattern_h 00003 //----------------------------------------------------------------------------- 00010 #include <vector> 00011 #include <string> 00012 //----------------------------------------------------------------------------- 00013 00014 class RPCPattern { 00015 public: 00016 00017 //needed types 00023 class RPCLogicalStrip { 00024 friend class RPCPattern; 00025 private: 00027 unsigned char m_StripFrom; 00029 unsigned char m_StripTo; 00030 }; 00031 00032 typedef std::vector<RPCPattern> RPCPatVec; 00033 00034 struct TQuality { 00035 unsigned char m_FiredPlanes; 00036 char m_QualityTabNumber; 00037 char m_QualityValue; 00038 char m_logsector; 00039 char m_logsegment; 00040 signed char m_tower; 00041 }; 00042 00043 typedef std::vector<TQuality> TQualityVec; 00044 00045 00046 00047 // use namespace? 00048 // Moved/duplicated from RPCConst 00049 // enum TPatternType {PAT_TYPE_T, PAT_TYPE_E}; 00050 typedef char TPatternType; 00051 static const TPatternType PAT_TYPE_T = 0; 00052 static const TPatternType PAT_TYPE_E = 1; 00053 static const int m_LOGPLANES_COUNT = 6; 00054 static const int m_FIRST_PLANE = 0; 00055 static const int m_LAST_PLANE = 5; 00056 static const int m_NOT_CONECTED = 99; 00057 00058 00060 RPCPattern(); 00061 RPCPattern(int tower, int sector, int segment); 00062 00063 void setStripFrom(int logPlane, int stripFrom); 00064 00065 void setStripTo(int logPlane, int stripTo); 00066 00068 int getStripFrom(int logPlane) const; 00069 00071 int getStripTo(int logPlane) const; 00072 00073 int getTower() const; 00074 int getLogSector() const; 00075 int getLogSegment() const; 00076 00077 int getCode() const; 00078 00079 int getSign() const; 00080 00081 int getNumber() const; 00082 00083 TPatternType getPatternType() const; 00084 00085 int getRefGroup() const; 00086 00087 int getQualityTabNumber() const; 00088 00089 void setCoords(int tower, int sector, int segment); 00090 00091 void setCode(int a); 00092 00093 void setSign(int a); 00094 00095 void setNumber(int a); 00096 00097 void setPatternType(TPatternType patternType); 00098 00099 void setRefGroup(int refGroup); 00100 00101 void setQualityTabNumber(int qualityTabNumber); 00102 00103 private: 00105 RPCLogicalStrip m_Strips[m_LOGPLANES_COUNT]; 00106 00107 // coordinates 00108 char m_Tower; 00109 char m_LogSector; 00110 char m_LogSegment; 00111 00113 char m_Sign; 00114 00116 char m_Code; 00117 00121 TPatternType m_PatternType; 00122 00124 char m_RefGroup; 00125 00128 char m_QualityTabNumber; 00129 00131 short m_Number; 00132 00133 00134 }; 00135 00136 #endif