00001 #ifndef St_TpcPadCorrectionC_h
00002 #define St_TpcPadCorrectionC_h
00003
00004 #include "TChair.h"
00005 #include "tables/St_TpcPadCorrection_Table.h"
00006 #include "TF1.h"
00007
00008 class St_TpcPadCorrectionC : public TChair {
00009 public:
00010 static St_TpcPadCorrectionC* instance();
00011 TpcPadCorrection_st *Struct(Int_t i = 0) const {return ((St_TpcPadCorrection*) Table())->GetTable()+i;}
00012 UInt_t getNumRows() const {return GetNRows();}
00013 Char_t* HistName(Int_t i = 0) const {return Struct(i)->HistName;}
00014 Char_t* Type(Int_t i = 0) const {return Struct(i)->Type;}
00015 Short_t npads(Int_t i = 0) const {return Struct(i)->npads;}
00016 Short_t InOut(Int_t i = 0) const {return Struct(i)->InOut;}
00017 Short_t N(Int_t i = 0) const {return Struct(i)->N;}
00018 Short_t R(Int_t i = 0) const {return Struct(i)->R;}
00019 const Double_t*params(Int_t i = 0) const {return &Struct(i)->a0;}
00020 Double_t a0(Int_t i = 0) const {return Struct(i)->a0;}
00021 Double_t a1(Int_t i = 0) const {return Struct(i)->a1;}
00022 Double_t a2(Int_t i = 0) const {return Struct(i)->a2;}
00023 Double_t a3(Int_t i = 0) const {return Struct(i)->a3;}
00024 Double_t a4(Int_t i = 0) const {return Struct(i)->a4;}
00025 Double_t a5(Int_t i = 0) const {return Struct(i)->a5;}
00026 Double_t a6(Int_t i = 0) const {return Struct(i)->a6;}
00027 Double_t a7(Int_t i = 0) const {return Struct(i)->a7;}
00028 Double_t a8(Int_t i = 0) const {return Struct(i)->a8;}
00029 Double_t a9(Int_t i = 0) const {return Struct(i)->a9;}
00030 Double_t prob(Int_t i = 0) const {return Struct(i)->prob;}
00031
00032 Double_t GetCorrection(Double_t pad, Int_t io=1, Int_t np = 1, Int_t MuOrSigma = 0) {
00033 if (! fFunc) return 0;
00034 if ((io < 1 || io > 2) ||
00035 (np < 1 || np > 7) ||
00036 (MuOrSigma < 0 || MuOrSigma > 1)) return 0;
00037 Int_t indx = 2*(7*(io-1) + np-1)+MuOrSigma;
00038 if (! fFunc[indx]) return 0;
00039 Int_t ip = TMath::Nint(pad);
00040 Double_t px = pad - ip;
00041 return fFunc[indx]->Eval(px);
00042 }
00043 protected:
00044 St_TpcPadCorrectionC(St_TpcPadCorrection *table=0);
00045 virtual ~St_TpcPadCorrectionC();
00046 private:
00047 static St_TpcPadCorrectionC* fgInstance;
00048 TF1** fFunc;
00049 ClassDefChair(St_TpcPadCorrection, TpcPadCorrection_st )
00050 ClassDef(St_TpcPadCorrectionC,1)
00051 };
00052 #endif