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     \verbatim
00026      _______________________________________________
00027     |15|  |  |12|11|10|  |  |  |  |  |  |  |  |  |00|
00028     |__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|
00029     |   Tower   |CT|        Strip Number            |
00030     |___________|__|________________________________|
00031     \endverbatim
00032 
00033     ***** NOTES: *****
00034 
00035     (1) CT == Controller (right(1) or left (0))
00036     (2) CTRL, TOWER fields not used in '99/2000 beamtest - all were right controllers
00037     (3) Valid strip numbers: [0,1599] for full layers
00038     (4) CTRL field is used in the 2001 balloon, still only one tower
00039 
00040     */
00041     enum {
00042         TKR_K_STRIP = 11,
00043         TKR_V_STRIP = 0,
00044         TKR_M_STRIP = ((1 << TKR_K_STRIP) - 1),
00045         TKR_K_CTRL = 1,
00046         TKR_V_CTRL = (TKR_K_STRIP + TKR_V_STRIP),
00047         TKR_M_CTRL = ((1 << TKR_K_CTRL) - 1),
00048         TKR_K_TOWER = 4,
00049         TKR_V_TOWER = (TKR_K_CTRL + TKR_V_CTRL),
00050         TKR_M_TOWER = ((1 << TKR_K_TOWER) - 1)
00051     };
00053     UShort_t m_tag;
00055     UChar_t m_cable; 
00056 public:
00057     enum {
00058         STRIP_CTRL_LEFT = 0,
00059         STRIP_CTRL_RIGHT = 1
00060     };
00061 
00062     StripId();
00063     virtual ~StripId() { };
00064 
00066     UShort_t getTag()   const { return m_tag; };
00068     UShort_t getId()    const { return (m_tag >> TKR_V_STRIP) & TKR_M_STRIP; };
00070     UChar_t  getCable() const { return m_cable; };
00072     UShort_t getController()  const { return (m_tag >> TKR_V_CTRL) & TKR_M_CTRL; };
00074     UShort_t getTower() const { return (m_tag >> TKR_V_TOWER) & TKR_M_TOWER; };
00075 
00076     Bool_t setTag(UShort_t tagVal) { m_tag = tagVal; return kTRUE; };
00077     Bool_t setStrip(UShort_t stripVal);
00078     Bool_t setCable(UChar_t cableVal, UChar_t cntrl=0);
00079     Bool_t setController(UShort_t ctrlVal);
00080     Bool_t setTower(UShort_t towerVal);
00081 
00082     Int_t Compare(TObject *obj);
00083     Bool_t IsSortable() const;
00084 
00085     ClassDef(StripId,4)     // Information on a single Si Strip
00086 };
00087 
00088 #endif // !defined StripId_H

Generated at Wed Nov 21 12:22:45 2001 by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000