RawEvent.hh

Go to the documentation of this file.
00001 
00007 #ifndef RawEvent_INCLUDED
00008 #define RawEvent_INCLUDED
00009 
00010 #include <stdint.h>
00011 #include <vector>
00012 #include <boost/shared_ptr.hpp>
00013 
00017 class RawEvent 
00018 {
00019   
00020 public:
00022   RawEvent(bool increment_id_counter = true);
00024   RawEvent(uint32_t event_id, uint32_t timestamp, uint32_t run_id);
00026   ~RawEvent();
00027   
00029 
00033   struct datablock{
00034     uint32_t datasize;
00035     uint32_t type;
00036     std::vector<unsigned char> data;
00037     datablock(uint32_t Type, uint32_t Size=0) : datasize(Size), type(Type) 
00038     {data.resize(Size); }
00039   };
00043 public:
00044   enum datablock_type { CAEN_V172X=0 , MONTECARLO=1 };
00045   
00047   uint32_t GetDataSize() const { return _buffer_size; }
00048   
00050   size_t GetNumDataBlocks() const { return _datablocks.size(); }
00052   int AddDataBlock(uint32_t blocktype, uint32_t datasize=0);
00054   int RemoveDataBlock(size_t block_n);
00055   
00057   const datablock* GetDataBlock(size_t block_n) const;
00059   unsigned char* GetRawDataBlock(size_t block_n);
00060   
00062   uint32_t GetDataBlockSize(size_t block_n) const;
00064   int SetDataBlockSize(size_t block_n, uint32_t newsize);
00065   
00067   uint32_t GetDataBlockType(size_t block_n) const;
00069   int SetDataBlockType(size_t block_n, uint32_t newtype);
00070 
00071   
00073   uint32_t GetID() const { return _event_id;}
00075   void SetID(uint32_t evid) { _event_id = evid; }
00077   uint32_t GetTimestamp() const { return _timestamp; }
00079   void SetTimestamp(uint32_t stamp) { _timestamp = stamp; }
00081   uint32_t GetRunID() const { return _run_id; }
00083   void SetRunID(uint32_t runid) { _run_id = runid; }
00084   
00086   static const long GetTotalBufferSize(){ return _total_buffer_size;}
00088   static void SetEventCount(uint32_t count){ _event_count=count;}
00090   static uint32_t GetEventCount(){ return _event_count; }
00091   
00092  
00093 private:
00094   static const uint32_t _extra_buffer_space = 12;
00095   std::vector<datablock> _datablocks;
00096   
00097   uint32_t _event_id;
00098   uint32_t _timestamp;
00099   uint32_t _run_id;
00100   
00101   uint32_t _buffer_size;
00102   
00103   static long _total_buffer_size;
00104   static uint32_t _event_count;  
00105   //copy constructors not allowed
00106   RawEvent(const RawEvent& right);
00107   RawEvent& operator=(const RawEvent& right);
00108 };
00109 
00115 typedef boost::shared_ptr<RawEvent> RawEventPtr;
00116 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines

Generated on 20 Jun 2014 for daqman by  doxygen 1.6.1