Changeset 18630 for trunk/FACT++/src


Ignore:
Timestamp:
09/18/16 19:10:43 (8 years ago)
Author:
tbretz
Message:
Distribute run and event number with the EVENT_DATA service
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/FACT++/src/EventBuilderWrapper.h

    r18617 r18630  
    9292    DimDescribedService fDimIncomplete;
    9393
     94    struct EventData
     95    {
     96        uint32_t runNum;
     97        uint32_t evNum;
     98        float data[4*1440];
     99    }  __attribute__((__packed__));
     100
    94101    Queue<pair<Time,GUI_STAT>>                      fQueueStatistics1;
    95102    Queue<tuple<Time,bool,FAD::EventHeader>>        fQueueProcHeader;
     
    98105    Queue<pair<Time,array<uint16_t,2>>>             fQueueRoi;
    99106    Queue<vector<char>>                             fQueueRawData;
    100     Queue<tuple<Time,uint32_t,array<float,1440*4>>> fQueueEventData;
     107    Queue<tuple<Time,uint32_t,EventData/*array<float,1440*4>*/>> fQueueEventData;
    101108    Queue<tuple<Time, array<uint32_t,40>, array<int16_t,160>>> fQueueTempRefClk;
    102109
     
    107114
    108115    array<uint16_t,2> fVecRoi;
    109     pair<float,array<float, 1440*4>> fMaxEvent; // Maximum event from applyCalib
     116    pair<float,EventData/*array<float, 1440*4>*/> fMaxEvent; // Maximum event from applyCalib
    110117
    111118protected:
     
    240247                                                           "|start_tm[int16]:start sample of time marker channels"
    241248                                                           "|adc[int16]:adc data"),
    242         fDimEventData   ("FAD_CONTROL/EVENT_DATA",         "F:1440;F:1440;F:1440;F:1440", "|avg:|rms:|max:|pos"),
     249        fDimEventData   ("FAD_CONTROL/EVENT_DATA",         "I:1;I:1;F:1440;F:1440;F:1440;F:1440", "|run:|evt:|avg:|rms:|max:|pos"),
    243250        fDimFeedbackData("FAD_CONTROL/FEEDBACK_DATA",      "F:1440", ""),
    244251        fDimFwVersion   ("FAD_CONTROL/FIRMWARE_VERSION",   "F:42",
     
    297304        fQueueTempRefClk( std::bind(&EventBuilderWrapper::UpdateDimTempRefClk,  this, placeholders::_1)),
    298305        fNightAsInt(0), fRunInProgress(-1),
    299         fMaxEvent(make_pair(-FLT_MAX, array<float,1440*4>()))
     306        fMaxEvent(make_pair(-FLT_MAX, EventData()/*array<float,1440*4>()*/))
    300307    {
    301308        if (This)
     
    965972    }
    966973
    967     bool UpdateDimEventData(const tuple<Time,uint32_t,array<float, 1440*4>> &tup)
     974    bool UpdateDimEventData(const tuple<Time,uint32_t,EventData/*array<float, 1440*4>*/> &tup)
    968975    {
    969976        fDimEventData.setQuality(get<1>(tup));
     
    10321039
    10331040            // If this is a cosmic event
    1034             array<float, 1440*4> stats; // Mean, RMS, Max, Pos
    1035             const float max = DrsCalibrate::GetPixelStats(stats.data(), vec.data(), roi, 15, 5);
     1041            EventData edat;
     1042            edat.runNum = evt.runNum;
     1043            edat.evNum  = evt.evNum;
     1044            //array<float, 1440*4> stats; // Mean, RMS, Max, Pos
     1045            const float max = DrsCalibrate::GetPixelStats(edat.data, vec.data(), roi, 15, 5);
    10361046            if (evt.trgTyp==0 && max>fMaxEvent.first)
    1037                 fMaxEvent = make_pair(max, stats);
     1047                fMaxEvent = make_pair(max, edat);
    10381048
    10391049            // ------------------ Update dim service (statistics) ---------------------
     
    10411051            if (fQueueEventData.empty() && now>fLastDimEventData+boost::posix_time::milliseconds(4999))
    10421052            {
    1043                 fQueueEventData.emplace(evt.time, evt.trgTyp, evt.trgTyp==0 ? fMaxEvent.second : stats);
     1053                edat.evNum  = evt.evNum;
     1054                edat.runNum = evt.runNum;
     1055
     1056                fQueueEventData.emplace(evt.time, evt.trgTyp, evt.trgTyp==0 ? fMaxEvent.second : edat);
    10441057                if (evt.trgTyp==0)
    10451058                    fMaxEvent.first = -FLT_MAX;
Note: See TracChangeset for help on using the changeset viewer.