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
00032
00033
00034 #ifndef TPCV2P0_READER_HH
00035 #define TPCV2P0_READER_HH
00036 #include "StDaqLib/GENERIC/EventReader.hh"
00037
00038
00039 #define TPC_ROWS_PER_SECTOR 45
00040
00041 static const unsigned char tpcRowLen[TPC_ROWS_PER_SECTOR] = {
00042 88,96,104,112,118,126,134,142,150,158,166,174,182,98,100,102,104,106,
00043 106,108,110,112,112,114,116,118,120,122,122,124,126,128,128,130,132,134,
00044 136,138,138,140,142,144,144,144,144} ;
00045
00046
00047
00048 #ifdef classname
00049 #undef classname
00050 #endif
00051 #define classname(x) x ## V2P0
00052
00053
00054
00055 struct classname(Bank_TPCP);
00056 struct classname(Bank_TPCSECP);
00057 struct classname(Bank_TPCRBP);
00058 struct classname(Bank_TPCMZP);
00059
00060 class TPCV2P0_PADK_SR ;
00061
00062 struct classname(Bank_TPCADCD) ;
00063 struct classname(Bank_TPCSEQD) ;
00064 struct classname(Bank_TPCADCX) ;
00065 struct classname(Bank_TPCPADK) ;
00066 struct classname(Bank_TPCCPPR) ;
00067 struct classname(Bank_TPCADCR) ;
00068 struct classname(Bank_TPCCFGR) ;
00069 struct classname(Bank_TPCPEDR) ;
00070 struct classname(Bank_TPCRMSR) ;
00071 struct classname(Bank_TPCGAINR) ;
00072 struct classname(Bank_TPCBADR) ;
00073 struct classname(Bank_TPCMZCLD) ;
00074
00075
00076 class TPCV2P0_Reader : public DetectorReader
00077 {
00078 friend class EventReader;
00079 friend class TPCV2P0_ZS_SR;
00080 friend class TPCV2P0_ADCR_SR;
00081 friend class TPCV2P0_PEDR_SR;
00082 friend class TPCV2P0_PRMS_SR;
00083 friend class TPCV2P0_G_SR;
00084 friend class TPCV2P0_CPP_SR;
00085 friend class TPCV2P0_BC_SR;
00086 friend class TPCV2P0_CR_SR;
00087 friend class TPCV2P0_PADK_SR;
00088
00089 public:
00090 ZeroSuppressedReader *getZeroSuppressedReader(int sector);
00091 ADCRawReader *getADCRawReader(int sector);
00092 PedestalReader *getPedestalReader(int sector);
00093 PedestalRMSReader *getPedestalRMSReader(int sector);
00094 GainReader *getGainReader(int sector);
00095 CPPReader *getCPPReader(int sector);
00096 BadChannelReader *getBadChannelReader(int sector);
00097 ConfigReader *getConfigReader(int sector);
00098
00099 TPCV2P0_Reader(EventReader *er, classname(Bank_TPCP) *ptpc);
00100 ~TPCV2P0_Reader();
00101
00102 int MemUsed();
00103
00104 protected:
00105
00106
00107
00108 EventReader *ercpy;
00109
00110
00111 Bank_DATAP *pBankDATAP;
00112 classname(Bank_TPCP) *pBankTPCP;
00113 classname(Bank_TPCSECP) *getBankTPCSECP(int hypersector);
00114 classname(Bank_TPCRBP) *getBankTPCRBP(int interleaved_rb, classname(Bank_TPCSECP) *pBank_TPCSECP);
00115 classname(Bank_TPCMZP) *getBankTPCMZP(int mz, classname(Bank_TPCRBP) *pBank_TPCRBP);
00116 classname(Bank_TPCMZP) *getBankTPCMZP(int sector, int rb, int mz);
00117 classname(Bank_TPCMZCLD) *getBankTPCMZCLD(int sector, int rb, int mz);
00118
00119 TPCV2P0_PADK_SR *getPADKReader(int sector);
00120 TPCV2P0_PADK_SR *padk[24];
00121
00122
00123 classname(Bank_TPCADCD) *getBankTPCADCD(int sector, int rb, int mz);
00124 classname(Bank_TPCSEQD) *getBankTPCSEQD(int sector, int rb, int mz);
00125 classname(Bank_TPCADCX) *getBankTPCADCX(int sector, int rb, int mz);
00126 classname(Bank_TPCPADK) *getBankTPCPADK(int sector, int rb, int mz);
00127 classname(Bank_TPCCPPR) *getBankTPCCPPR(int sector, int rb, int mz);
00128 classname(Bank_TPCADCR) *getBankTPCADCR(int sector, int rb, int mz);
00129 classname(Bank_TPCCFGR) *getBankTPCCFGR(int sector, int rb, int mz);
00130 classname(Bank_TPCPEDR) *getBankTPCPEDR(int sector, int rb, int mz);
00131 classname(Bank_TPCRMSR) *getBankTPCRMSR(int sector, int rb, int mz);
00132 classname(Bank_TPCGAINR) *getBankTPCGAINR(int sector, int rb, int mz);
00133 classname(Bank_TPCBADR) *getBankTPCBADR(int sector, int rb, int mz);
00134
00135
00136
00137
00138 int InformBuffers(ZeroSuppressedReader *, int sector) { return FALSE; };
00139 int InformBuffers(ADCRawReader *,int sector) { return FALSE; };
00140 int InformBuffers(PedestalReader *,int sector) { return FALSE; };
00141 int InformBuffers(PedestalRMSReader *,int sector) { return FALSE; };
00142 int InformBuffers(GainReader *,int sector) { return FALSE; };
00143 int InformBuffers(CPPReader *,int sector) { return FALSE; };
00144 int InformBuffers(BadChannelReader *,int sector) { return FALSE; };
00145 int InformBuffers(ConfigReader *,int sector) { return FALSE; };
00146
00147 int AttachBuffers(ZeroSuppressedReader *, int sector) { return FALSE; };
00148 int AttachBuffers(ADCRawReader *, int sector) { return FALSE; };
00149 int AttachBuffers(PedestalReader *, int sector) { return FALSE; };
00150 int AttachBuffers(PedestalRMSReader *, int sector) { return FALSE; };
00151 int AttachBuffers(GainReader *, int sector) { return FALSE; };
00152 int AttachBuffers(CPPReader *, int sector) { return FALSE; };
00153 int AttachBuffers(BadChannelReader *, int sector) { return FALSE; };
00154 int AttachBuffers(ConfigReader *, int sector) { return FALSE; };
00155 };
00156
00157 #endif