00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #ifndef STBTOFINLCORR_H
00032 #define STBTOFINLCORR_H
00033
00034 #include "StObject.h"
00035 #include "StMaker.h"
00036 #include <assert.h>
00037 #include "Stypes.h"
00038 #include "TDataSet.h"
00039 #include "TDataSetIter.h"
00040 #include "TObjectSet.h"
00041 #include <string>
00042 #include "StEnumerations.h"
00043
00048 class StBTofINLCorr{
00049 private:
00050 static const Int_t mNTray = 120;
00051 static const Int_t mNTDIGOnTray = 8;
00052 static const Int_t mNGLOBALCHANMAX = 192;
00053
00054 static const Int_t mNTDIGMAX = 1200;
00055 static const Int_t mNChanOnTDIG = 24;
00056 static const Int_t mNChanMAX = 1024;
00057 static const Int_t mNBoardIdMAX = 4800;
00058
00059 static const Int_t mEastVpdTrayId = 122;
00060 static const Int_t mWestVpdTrayId = 121;
00061
00062 Int_t mTdigOnTray[mNTray][mNTDIGOnTray];
00063 Int_t mTdigOnEastVpd[mNTDIGOnTray];
00064 Int_t mTdigOnWestVpd[mNTDIGOnTray];
00065
00066 Int_t mBoardId[mNTDIGMAX];
00067 Int_t mBoardId2Index[mNBoardIdMAX];
00068 Short_t mINLCorr[mNTDIGMAX][mNChanOnTDIG][mNChanMAX];
00069
00070 Int_t mNValidBoards;
00071
00072 public:
00073 StBTofINLCorr();
00074 ~StBTofINLCorr();
00075
00076 void init();
00077 void init(StMaker *maker);
00079 void initFromDbase(StMaker *maker);
00080 void Reset();
00081
00083 float getTrayINLCorr(int trayId, int globalTdcChan, int bin);
00085 float getVpdINLCorr(StBeamDirection eastwest, int globalTdcChan, int bin);
00087 float getTdigINLCorr(int tdigId, int tdcChannel, int bin);
00088
00089
00090 };
00091
00092 #endif