// Author: David Lawrence July 14, 2006 // // // DEventSourceET // /// Implements JEventSource for HDDM files #ifndef _JEVENT_SOURCEHDDM_H_ #define _JEVENT_SOURCEHDDM_H_ #include #include using namespace std; #include #include #include #include #include #ifdef CODA #include #endif // CODA #include "DADC.h" #include "DTDC.h" #include "DTrigger.h" #include "DEPICS.h" class DEventSourceET:public JEventSource { public: DEventSourceET(const char* source_name); virtual ~DEventSourceET(); virtual const char* className(void){return static_className();} static const char* static_className(void){return "DEventSourceET";} jerror_t GetEvent(JEvent &event); void FreeEvent(JEvent &event); jerror_t GetObjects(JEvent &event, JFactory_base *factory); enum{ SOURCE_TYPE_FILE, SOURCE_TYPE_ET }; private: int source_type; unsigned long runnumber; int handle; // for files #ifdef CODA et_sys_id sys_id; // for ET et_att_id att_id; // for ET et_stat_id sta_id; // for ET #endif //CODA bool OpenFile(string filename); bool OpenET(string source_name); jerror_t ReadETEvent(char* buff); unsigned long Extract_EventNumber(const char *buff); unsigned long Extract_RunNumber(const char *buff); pthread_mutex_t buffer_mutex; unsigned int buff_size; vector in_use_buffers; vector unused_buffers; jerror_t Extract_DTrigger(const char *buff, JFactory *fac); jerror_t Extract_DADC(const char *buff, JFactory *fac); jerror_t Extract_DTDC(const char *buff, JFactory *fac); jerror_t Extract_DTDC_tage(const char *buff, JFactory *fac); jerror_t Extract_DTDC_tagt(const char *buff, JFactory *fac); jerror_t DEventSourceET::Extract_DEPICS(const char *buff, JFactory *fac); jerror_t Extract_v792(int roc_id, int adc_slot, const unsigned long* &iptr, vector &data); jerror_t Extract_f1tdc(int roc_id, int tdc_slot, const unsigned long* &iptr, vector &data); }; #endif //_JEVENT_SOURCEHDDM_H_