fdhwlib  2.0.25
/home/kopmann/git-mirror/fdhwlib/fdhwlib/FEdata/tsevent.h
Go to the documentation of this file.
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