00001 #ifndef St_tpcRDOMasksC_h
00002 #define St_tpcRDOMasksC_h
00003
00004 #include "TChair.h"
00005 #include "tables/St_tpcRDOMasks_Table.h"
00006
00007 class St_tpcRDOMasksC : public TChair {
00008 public:
00009 static St_tpcRDOMasksC* instance();
00010 tpcRDOMasks_st *Struct(Int_t i = 0) {return ((St_tpcRDOMasks*) Table())->GetTable()+i;}
00011 UInt_t getNumRows() {return GetNRows();}
00012 UInt_t runNumber(Int_t i = 0) {return Struct(i)->runNumber;}
00013 UInt_t sector(Int_t i = 0) {return Struct(i)->sector;}
00014 UInt_t mask(Int_t i = 0) {return Struct(i)->mask;}
00015 UInt_t getSectorMask(UInt_t sector);
00016 static UInt_t rdoForPadrow(Int_t row) {
00017 UInt_t rdo = 0;
00018 if (row > 0 && row <= 8) rdo = 1;
00019 else if (row > 8 && row <= 13) rdo = 2;
00020 else if (row >13 && row <= 21) rdo = 3;
00021 else if (row >21 && row <= 29) rdo = 4;
00022 else if (row >29 && row <= 37) rdo = 5;
00023 else if (row >37 && row <= 45) rdo = 6;
00024 return rdo;
00025 }
00026 Bool_t isOn(UInt_t sector,UInt_t rdo) {
00027 if(sector < 1 || sector > 24 || rdo < 1 || rdo > 6) return 0;
00028 UInt_t MASK = getSectorMask(sector);
00029 MASK = MASK >> (rdo - 1);
00030 MASK &= 0x00000001;
00031 return MASK;
00032 }
00033 Bool_t isRowOn(UInt_t sector, UInt_t row) {return isOn(sector, rdoForPadrow(row));}
00034 protected:
00035 St_tpcRDOMasksC(St_tpcRDOMasks *table=0) : TChair(table) {}
00036 virtual ~St_tpcRDOMasksC() {fgInstance = 0;}
00037 private:
00038 static St_tpcRDOMasksC* fgInstance;
00039 ClassDefChair(St_tpcRDOMasks, tpcRDOMasks_st )
00040 ClassDef(St_tpcRDOMasksC,1)
00041 };
00042 #endif