Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

StripId.h

Go to the documentation of this file.
00001 #ifndef StripId_H
00002 #define StripId_H
00003 
00004 #include "TObject.h"
00005 
00019 class StripId : public TObject  
00020 {
00021 private:
00022     /*
00023     StripId tag word layout
00024     (defined in following enum):
00025      _______________________________________________
00026     |15|  |  |12|11|10|  |  |  |  |  |  |  |  |  |00|
00027     |__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|
00028     |   Tower   |CT|        Strip Number            |
00029     |___________|__|________________________________|
00030 
00031     ***** NOTES: *****
00032 
00033     (1) CT == Controller (right(1) or left (0))
00034     (2) CTRL, TOWER fields not used in '99/2000 beamtest - all were right controllers
00035     (3) Valid strip numbers: [0,1599] for full layers
00036     (4) CTRL field is used in the 2001 balloon, still only one tower
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)     // Information on a single Si Strip
00084 };
00085 
00086 #endif // !defined StripId_H

Generated at Wed Nov 14 20:41:47 2001 by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000