fdhwlib
2.0.25
|
00001 /*************************************************************************** 00002 tsevent.h - description 00003 00004 begin : Sat Jun 2 2001 00005 copyright : (C) 2001 by A Kopmann 00006 email : kopmann@hpe.fzk.de 00007 status : 00008 test : 00009 history : 00010 ***************************************************************************/ 00011 00012 00013 #ifndef TSEVENT_H 00014 #define TSEVENT_H 00015 00016 #include <cstdio> 00017 00018 #include <FEdata/tsdef.h> 00019 00020 #include <Hw/fltpulse.h> 00021 #include <Hw/SltTime.h> 00022 #include <Hw/SltPattern.h> 00023 00024 00025 // HJMs DAQ data structure 00026 #ifdef USE_DAQ_FORMAT 00027 //#include <MiEvent.hh> 00028 class TMirrorEvent; 00029 class TEyeEvent; 00030 #endif 00031 00032 00033 #include <FEdata/tsadcdata.h> 00034 00035 00036 class Subrack; 00037 00038 00054 class TsEvent { 00055 public: 00056 TsEvent(); 00057 virtual ~TsEvent(); 00058 00064 void setNextPageDelay(int delay); 00065 00071 void setEyeNumber(int nr); 00072 00079 void setMirrorNumber(int nr); 00080 00081 int getMirrorNumber(); 00082 00083 bool isMirrorPresent(int nr); 00084 00091 void setEventNumber(int nr); 00092 00097 void setAdcRange(int startBin, int endBin); 00098 00099 00101 void getTimeStamp(SltTime *t); 00102 00103 00104 int loadAMFormat(FILE *m_DataRunFile, int m_iChannelsToRead); 00105 00106 int copyToAMFormat(FILE *m_DataRunFile); 00107 00108 00110 void displayHeader(FILE *fout,int mode=0); 00111 00112 00130 void display(FILE *fout, int entry, SltTime *tFirst=0, int nEv=0, int firstBin=0, int nBins=1000, int mode=0); 00131 00132 00133 00135 void displayTriggerData(FILE *fout); 00136 00137 00138 00144 void dump(FILE *fout); 00145 00146 void dumpSltData(FILE *fout); 00147 00148 void dumpAdcData(FILE *fout); 00149 00150 00151 00152 #ifdef USE_DAQ_FORMAT 00153 #ifdef USE_DAQ_MIRRORFORMAT 00154 void copyToDaq(TMirrorEvent *ev); 00155 #endif 00156 #ifdef USE_DAQ_FORMAT 00157 void copyToDaq(TEyeEvent *ev); 00158 #endif 00159 00161 #ifdef USE_DAQ_MIRRORFORMAT 00162 virtual int loadDaqFormat(TMirrorEvent *ev); 00163 #endif 00164 #ifdef USE_DAQ_FORMAT 00165 virtual int loadDaqFormat(TEyeEvent *ev); 00166 #endif 00167 #endif 00168 00170 int loadHwFormat(Subrack *s, int page); 00171 00180 int loadHwFormatPixelData(Subrack *s, int page); 00181 00182 // Analysis functions 00183 00185 void analyse(int firstBin=0, int nBins=1000); 00186 00187 //private: 00191 int m_iEventNumber; 00192 00196 int m_iTriggerNumber; 00197 00198 int m_iEyeNumber; 00199 int m_iMirrorNumber; 00200 00202 unsigned long m_iMirrorStatus; 00203 00205 unsigned long m_lSecCount; 00209 unsigned long m_lSubSecCount; 00211 unsigned long m_lTrigger; 00213 unsigned int m_iPageNumber; 00216 int m_iNextPageDelay; 00217 00218 unsigned int m_iSltEvent[100][20]; 00219 00220 00222 unsigned char m_iMultiplicity[1000]; 00223 00224 00227 int m_iNumPixel; 00228 00231 int m_iStartBin; 00232 00234 int m_iEndBin; 00235 00237 int m_iFltAddr; 00238 00241 TsAdcData *pixelList; 00242 00246 SltTime m_tReleasedTime; 00247 00250 int m_iAnalysedEvents; 00251 00254 float m_fSltRateStamp; 00255 00258 float m_fSltRateTime; 00259 00261 SltTime tLast; 00262 00263 00264 // Analysed data 00265 00267 float pulsePos[20][24]; 00268 00270 float pulseHeight[20][24]; 00271 00273 float pulseIntegral[20][24]; 00274 00276 float pedestal[20][24]; 00277 00278 00279 SltPattern pat; 00280 00281 FltPulse pulse; 00282 00283 00284 }; 00285 00286 #endif