#ifndef MBSFILE_H #define MBSFILE_H #ifdef __CINT__ struct s_filhe; struct s_bufhe; struct s_evt_channel; struct s_ve10_1; struct s_ves10_1; #else extern "C" { #include "f_evt.h" #include "s_filhe_swap.h" #include "s_bufhe_swap.h" } #endif #include "TObject.h" #include "TString.h" class MbsFile : public TObject { public: MbsFile(const char* name, Int_t* status); ~MbsFile(); Int_t* OpenFile(Int_t* status); // uses f_evt_get_open opens an event stream from specified channel Int_t CloseFile(); // uses f_evt_get_close closes event stream of specified channel void PrintFileHeader(s_filhe* FH); // print something from file header?????? Int_t GetEvent(); // uses f_evt_get_event returnes address of event Int_t GetNrSubEvent();// uses f_evt_get_subevent get number of subevent Int_t GetMbsEventNo(){ return fCurrentMbsEventNo; }; Int_t GetMbsRunNo() { return fCurrentMbsRunNo; }; Int_t* GetSubEvent(Int_t NrSubEvt, Int_t *sebuflenght,Short_t *setype,Short_t *sesubtype,Char_t *sesubcrate); // uses f_evt_get_subevent get subevent pointer void PrintSubEvent(s_ves10_1* SEH,Int_t* ED); void PrintFileHeader(); // print something from file header?????? void PrintBufferHeader(); // print something from Buffer header?????? void PrintEventHeader(); // print something from Event header?????? private: Int_t GetRunNumberFromFileName( TString A_string ); TString fName; s_evt_channel* fxInputChannel; //! /** Event channel structure used by event source. paolo*/ s_ves10_1* fxSubEvent; //!/**GSI VME Subevent header paolo*/ s_ve10_1* fxEvent; //!/**GSI VME Event header paolo*/ s_filhe* fxInfoHeader; //! /**File header paolo*/ s_bufhe * fxBuffer; //! /**GSI Buffer header paolo*/ Int_t* fxEventData; //! /**event data pointer paolo*/ ULong_t fuEventCounter; //! /**Current event index counter paolo*/ /** Points to the current gsi buffer structure filled by the event source. */ /** Reference to header info delivered by source. */ Bool_t fbIsOpen; /** switches buildmbs event mode: if true, data buffer is copied * to own buffer of subevent. If false (default), mbs subevent uses * reference to external data buffer of eventapi. */ Bool_t fbDataCopyMode; /** Indicates if first event should be extracted */ Bool_t fbFirstEvent; /** Index of first event to process. */ ULong_t fuStartEvent; /** Index of last event to process. */ ULong_t fuStopEvent; /** Number of events to skip from file in between two read events */ ULong_t fuEventInterval; /** Timeout in seconds for mbs getevent. If -1, no timeout (default) */ Int_t fiTimeout; /** Current MBS event number */ Int_t fCurrentMbsEventNo; /** Current MBS run number */ Int_t fCurrentMbsRunNo; ClassDef(MbsFile, 1) }; #endif //MBSFILE_H