00001 //$id$ 00002 // 00003 //$log$ 00004 /* 00005 * 2003/08/30 Zhengyun You Peking University 00006 * 00007 * 2004/09/09 Zhengyun You Peking University 00008 * transplanted to Gaudi framework 00009 */ 00010 00011 #ifndef MUC_SOFT_ID_H 00012 #define MUC_SOFT_ID_H 00013 00031 class MucSoftID 00032 { 00033 public: 00034 00036 static const int m_kPart = 3; 00037 00039 static const int m_kSegInPartMax = 8; 00041 static const int m_kSegInPart[m_kPart]; 00042 00044 static const int m_kGapInSegMax = 9; 00046 static const int m_kGapInPart[m_kPart]; 00047 00049 static const int m_kStripInGapMax = 96; 00051 static const int m_kStripInGap[m_kPart][m_kGapInSegMax]; 00052 00054 static const int m_kSegTotal; 00056 static const int m_kGapTotal; 00058 static const int m_kStripTotal; 00059 00061 static const int m_kHitInGapMax; 00063 static const int m_kHitTotalMax; 00064 00066 MucSoftID(const int part = -1, 00067 const int seg = -1, 00068 const int gap = -1, 00069 const int strip = -1); 00070 00072 MucSoftID& operator=(const MucSoftID& orig); 00073 00075 MucSoftID(const MucSoftID& orig); 00076 00078 ~MucSoftID() 00079 { }; 00080 00082 bool operator == (const MucSoftID& id) const; 00083 00085 int GetPart() const { return m_Part; } 00086 00088 int GetSeg() const { return m_Seg; } 00089 00091 int GetGap() const { return m_Gap; } 00092 00094 int GetStrip() const { return m_Strip; } 00095 00097 void SetID(const int part = -1, 00098 const int seg = -1, 00099 const int gap = -1, 00100 const int strip = -1); 00101 00102 private: 00103 int m_Part; 00104 int m_Seg; 00105 int m_Gap; 00106 int m_Strip; 00107 }; 00108 00110 size_t GapHash(const MucSoftID& id); 00111 00113 size_t StripHash(const MucSoftID& id); 00114 00116 ostream& operator << (ostream& s, const MucSoftID& id); 00117 00118 #endif /* MUC_SOFT_ID_H */