Index: trunk/FACT++/src/EventBuilderWrapper.h
===================================================================
--- trunk/FACT++/src/EventBuilderWrapper.h	(revision 18629)
+++ trunk/FACT++/src/EventBuilderWrapper.h	(revision 18630)
@@ -92,4 +92,11 @@
     DimDescribedService fDimIncomplete;
 
+    struct EventData
+    {
+        uint32_t runNum;
+        uint32_t evNum;
+        float data[4*1440];
+    }  __attribute__((__packed__));
+
     Queue<pair<Time,GUI_STAT>>                      fQueueStatistics1;
     Queue<tuple<Time,bool,FAD::EventHeader>>        fQueueProcHeader;
@@ -98,5 +105,5 @@
     Queue<pair<Time,array<uint16_t,2>>>             fQueueRoi;
     Queue<vector<char>>                             fQueueRawData;
-    Queue<tuple<Time,uint32_t,array<float,1440*4>>> fQueueEventData;
+    Queue<tuple<Time,uint32_t,EventData/*array<float,1440*4>*/>> fQueueEventData;
     Queue<tuple<Time, array<uint32_t,40>, array<int16_t,160>>> fQueueTempRefClk;
 
@@ -107,5 +114,5 @@
 
     array<uint16_t,2> fVecRoi;
-    pair<float,array<float, 1440*4>> fMaxEvent; // Maximum event from applyCalib
+    pair<float,EventData/*array<float, 1440*4>*/> fMaxEvent; // Maximum event from applyCalib
 
 protected:
@@ -240,5 +247,5 @@
                                                            "|start_tm[int16]:start sample of time marker channels"
                                                            "|adc[int16]:adc data"),
-        fDimEventData   ("FAD_CONTROL/EVENT_DATA",         "F:1440;F:1440;F:1440;F:1440", "|avg:|rms:|max:|pos"),
+        fDimEventData   ("FAD_CONTROL/EVENT_DATA",         "I:1;I:1;F:1440;F:1440;F:1440;F:1440", "|run:|evt:|avg:|rms:|max:|pos"),
         fDimFeedbackData("FAD_CONTROL/FEEDBACK_DATA",      "F:1440", ""),
         fDimFwVersion   ("FAD_CONTROL/FIRMWARE_VERSION",   "F:42",
@@ -297,5 +304,5 @@
         fQueueTempRefClk( std::bind(&EventBuilderWrapper::UpdateDimTempRefClk,  this, placeholders::_1)),
         fNightAsInt(0), fRunInProgress(-1),
-        fMaxEvent(make_pair(-FLT_MAX, array<float,1440*4>()))
+        fMaxEvent(make_pair(-FLT_MAX, EventData()/*array<float,1440*4>()*/))
     {
         if (This)
@@ -965,5 +972,5 @@
     }
 
-    bool UpdateDimEventData(const tuple<Time,uint32_t,array<float, 1440*4>> &tup)
+    bool UpdateDimEventData(const tuple<Time,uint32_t,EventData/*array<float, 1440*4>*/> &tup)
     {
         fDimEventData.setQuality(get<1>(tup));
@@ -1032,8 +1039,11 @@
 
             // If this is a cosmic event
-            array<float, 1440*4> stats; // Mean, RMS, Max, Pos
-            const float max = DrsCalibrate::GetPixelStats(stats.data(), vec.data(), roi, 15, 5);
+            EventData edat;
+            edat.runNum = evt.runNum;
+            edat.evNum  = evt.evNum;
+            //array<float, 1440*4> stats; // Mean, RMS, Max, Pos
+            const float max = DrsCalibrate::GetPixelStats(edat.data, vec.data(), roi, 15, 5);
             if (evt.trgTyp==0 && max>fMaxEvent.first)
-                fMaxEvent = make_pair(max, stats);
+                fMaxEvent = make_pair(max, edat);
 
             // ------------------ Update dim service (statistics) ---------------------
@@ -1041,5 +1051,8 @@
             if (fQueueEventData.empty() && now>fLastDimEventData+boost::posix_time::milliseconds(4999))
             {
-                fQueueEventData.emplace(evt.time, evt.trgTyp, evt.trgTyp==0 ? fMaxEvent.second : stats);
+                edat.evNum  = evt.evNum;
+                edat.runNum = evt.runNum;
+
+                fQueueEventData.emplace(evt.time, evt.trgTyp, evt.trgTyp==0 ? fMaxEvent.second : edat);
                 if (evt.trgTyp==0)
                     fMaxEvent.first = -FLT_MAX;
