00001 #ifndef StripId_H
00002 #define StripId_H
00003
00004 #include "TObject.h"
00005
00019 class StripId : public TObject
00020 {
00021 private:
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039 enum {
00040 TKR_K_STRIP = 11,
00041 TKR_V_STRIP = 0,
00042 TKR_M_STRIP = ((1 << TKR_K_STRIP) - 1),
00043 TKR_K_CTRL = 1,
00044 TKR_V_CTRL = (TKR_K_STRIP + TKR_V_STRIP),
00045 TKR_M_CTRL = ((1 << TKR_K_CTRL) - 1),
00046 TKR_K_TOWER = 4,
00047 TKR_V_TOWER = (TKR_K_CTRL + TKR_V_CTRL),
00048 TKR_M_TOWER = ((1 << TKR_K_TOWER) - 1)
00049 };
00051 UShort_t m_tag;
00053 UChar_t m_cable;
00054 public:
00055 enum {
00056 STRIP_CTRL_LEFT = 0,
00057 STRIP_CTRL_RIGHT = 1
00058 };
00059
00060 StripId();
00061 virtual ~StripId() { };
00062
00064 UShort_t getTag() const { return m_tag; };
00066 UShort_t getId() const { return (m_tag >> TKR_V_STRIP) & TKR_M_STRIP; };
00068 UChar_t getCable() const { return m_cable; };
00070 UShort_t getController() const { return (m_tag >> TKR_V_CTRL) & TKR_M_CTRL; };
00072 UShort_t getTower() const { return (m_tag >> TKR_V_TOWER) & TKR_M_TOWER; };
00073
00074 Bool_t setTag(UShort_t tagVal) { m_tag = tagVal; return kTRUE; };
00075 Bool_t setStrip(UShort_t stripVal);
00076 Bool_t setCable(UChar_t cableVal, UChar_t cntrl=0);
00077 Bool_t setController(UShort_t ctrlVal);
00078 Bool_t setTower(UShort_t towerVal);
00079
00080 Int_t Compare(TObject *obj);
00081 Bool_t IsSortable() const;
00082
00083 ClassDef(StripId,4)
00084 };
00085
00086 #endif // !defined StripId_H