Changeset 11607 for trunk/FACT++/src


Ignore:
Timestamp:
07/26/11 12:42:13 (13 years ago)
Author:
tbretz
Message:
Enable sending at least the roi checked by the event builder by DIM; Removed the other event checks for the time being
File:
1 edited

Legend:

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

    r11605 r11607  
    801801    DimDescribedService fDimPrescaler;
    802802    DimDescribedService fDimRefClock;
     803    DimDescribedService fDimRoi;
    803804    DimDescribedService fDimStatistics1;
    804805    DimDescribedService fDimStatistics2;
     
    841842        fFileFormat(kNone), fMaxRun(0), fLastOpened(0), fLastClosed(0),
    842843        fDimWriteStats  ("FAD_CONTROL", imp),
    843         fDimRuns        ("FAD_CONTROL/RUNS",             "I:5;C", ""),
    844         fDimEvents      ("FAD_CONTROL/EVENTS",           "I:4", ""),
    845         fDimEventData   ("FAD_CONTROL/EVENT_DATA",       "S:1;I:1;S:1;I:1;I:2;I:40;S:1440;S:160;S", ""),
    846         fDimFwVersion   ("FAD_CONTROL/FIRMWARE_VERSION", "F:42", ""),
    847         fDimRunNumber   ("FAD_CONTROL/RUN_NUMBER",       "I:42", ""),
    848         fDimStatus      ("FAD_CONTROL/STATUS",           "S:42", ""),
    849         fDimDNA         ("FAD_CONTROL/DNA",              "X:40", ""),
    850         fDimTemperature ("FAD_CONTROL/TEMPERATURE",      "F:82", ""),
    851         fDimPrescaler   ("FAD_CONTROL/PRESCALER",        "S:42", ""),
    852         fDimRefClock    ("FAD_CONTROL/REFERENCE_CLOCK",  "I:42", ""),
    853         fDimStatistics1 ("FAD_CONTROL/STATISTICS1",      "I:3;I:5;X:4;I:3;I:3;I:40;I:1;I:2;C:40;I:40;I:40;X:40", ""),
    854         fDimStatistics2 ("FAD_CONTROL/STATISTICS2",      "I:1;I:280;X:40;I:40;I:4;I:4;I:2;I:2;I:3;C:40",  ""),
     844        fDimRuns        ("FAD_CONTROL/RUNS",               "I:5;C", ""),
     845        fDimEvents      ("FAD_CONTROL/EVENTS",             "I:4", ""),
     846        fDimEventData   ("FAD_CONTROL/EVENT_DATA",         "S:1;I:1;S:1;I:1;I:2;I:40;S:1440;S:160;S", ""),
     847        fDimFwVersion   ("FAD_CONTROL/FIRMWARE_VERSION",   "F:42", ""),
     848        fDimRunNumber   ("FAD_CONTROL/RUN_NUMBER",         "I:42", ""),
     849        fDimStatus      ("FAD_CONTROL/STATUS",             "S:42", ""),
     850        fDimDNA         ("FAD_CONTROL/DNA",                "X:40", ""),
     851        fDimTemperature ("FAD_CONTROL/TEMPERATURE",        "F:82", ""),
     852        fDimPrescaler   ("FAD_CONTROL/PRESCALER",          "S:42", ""),
     853        fDimRefClock    ("FAD_CONTROL/REFERENCE_CLOCK",    "I:42", ""),
     854        fDimRoi         ("FAD_CONTROL/REGION_OF_INTEREST", "S:2",  ""),
     855        fDimStatistics1 ("FAD_CONTROL/STATISTICS1",        "I:3;I:5;X:4;I:3;I:3;I:40;I:1;I:2;C:40;I:40;I:40;X:40", ""),
     856        fDimStatistics2 ("FAD_CONTROL/STATISTICS2",        "I:1;I:280;X:40;I:40;I:4;I:4;I:2;I:2;I:3;C:40",  ""),
    855857        fDebugStream(false), fDebugRead(false), fDebugLog(false)
    856858    {
     
    13551357    }
    13561358
     1359    array<uint16_t,2> fVecRoi;
     1360
    13571361    int eventCheck(PEVNT_HEADER *fadhd, EVENT *event)
    13581362    {
     
    13681372         geloescht (nicht an die write-routine weitergeleitet [mind. im Prinzip]
    13691373         */
     1374
     1375        const array<uint16_t,2> roi = {{ event->Roi, event->RoiTM }};
     1376
     1377        if (roi!=fVecRoi)
     1378            Update(fDimRoi, roi);
    13701379
    13711380        const FAD::EventHeader *beg = reinterpret_cast<FAD::EventHeader*>(fadhd);
     
    13851394                //   * fTriggerGeneratorPrescaler
    13861395                //   * fDac
    1387                 // inconsistent
     1396            // inconsistent
     1397
     1398            // FIXME: Produce some output, only once per run or
     1399            //        minute
     1400
     1401            /*
    13881402            if (*ptr != *beg)
    13891403                return -1;
     
    13941408                return -1;
    13951409            if (ptr->fVersion     != beg->fVersion)
    1396                 return -1;
     1410            return -1;
     1411            */
    13971412        }
    13981413
     
    15641579    array<FAD::EventHeader, 40> fVecHeader;
    15651580
    1566     template<typename T>
    1567     array<T, 42> Compare(const FAD::EventHeader *h, const T *t)
    1568     {
    1569         const int offset = reinterpret_cast<const char *>(t) - reinterpret_cast<const char *>(h);
     1581    template<typename T, class S>
     1582    array<T, 42> Compare(const S *vec, const T *t)
     1583    {
     1584        const int offset = reinterpret_cast<const char *>(t) - reinterpret_cast<const char *>(vec);
    15701585
    15711586        const T *min = NULL;
     
    15731588        const T *max = NULL;
    15741589
    1575         array<T, 42> vec;
     1590        array<T, 42> arr;
    15761591
    15771592        bool rc = true;
    15781593        for (int i=0; i<40; i++)
    15791594        {
    1580             const char *base = reinterpret_cast<const char*>(&fVecHeader[i]);
     1595            const char *base = reinterpret_cast<const char*>(vec+i);
    15811596            const T *ref = reinterpret_cast<const T*>(base+offset);
    15821597
    1583             vec[i] = *ref;
     1598            arr[i] = *ref;
    15841599
    15851600            if (gi_NumConnect[i]!=7)
    15861601            {
    1587                 vec[i] = 0;
     1602                arr[i] = 0;
    15881603                continue;
    15891604            }
     
    16061621        }
    16071622
    1608         vec[40] = val ? *min : 1;
    1609         vec[41] = val ? *max : 0;
    1610 
    1611         return vec;
     1623        arr[40] = val ? *min : 1;
     1624        arr[41] = val ? *max : 0;
     1625
     1626        return arr;
    16121627    }
    16131628
     
    16921707        if (old.fVersion != h.fVersion || changed)
    16931708        {
    1694             const array<uint16_t,42> ver = Compare(&h, &h.fVersion);
     1709            const array<uint16_t,42> ver = Compare(&fVecHeader[0], &fVecHeader[0].fVersion);
    16951710
    16961711            array<float,42> data;
     
    17061721        if (old.fRunNumber != h.fRunNumber || changed)
    17071722        {
    1708             const array<uint32_t,42> run = Compare(&h, &h.fRunNumber);
     1723            const array<uint32_t,42> run = Compare(&fVecHeader[0], &fVecHeader[0].fRunNumber);
    17091724            fDimRunNumber.Update(run);
    17101725        }
     
    17121727        if (old.fTriggerGeneratorPrescaler != h.fTriggerGeneratorPrescaler || changed)
    17131728        {
    1714             const array<uint16_t,42> pre = Compare(&h, &h.fTriggerGeneratorPrescaler);
     1729            const array<uint16_t,42> pre = Compare(&fVecHeader[0], &fVecHeader[0].fTriggerGeneratorPrescaler);
    17151730            fDimPrescaler.Update(pre);
    17161731        }
     
    17181733        if (old.fDNA != h.fDNA || changed)
    17191734        {
    1720             const array<uint64_t,42> dna = Compare(&h, &h.fDNA);
     1735            const array<uint64_t,42> dna = Compare(&fVecHeader[0], &fVecHeader[0].fDNA);
    17211736            Update(fDimDNA, dna, 40);
    17221737        }
     
    17241739        if (old.fStatus != h.fStatus || changed)
    17251740        {
    1726             const array<uint16_t,42> sts = CompareBits(&h, &h.fStatus);
     1741            const array<uint16_t,42> sts = CompareBits(&fVecHeader[0], &fVecHeader[0].fStatus);
    17271742            Update(fDimStatus, sts);
    17281743        }
     
    17391754            // --- RefClock
    17401755
    1741             const array<uint32_t,42> clk = Compare(&h, &h.fFreqRefClock);
     1756            const array<uint32_t,42> clk = Compare(&fVecHeader[0], &fVecHeader[0].fFreqRefClock);
    17421757            Update(fDimRefClock, clk);
    17431758
     
    17461761            const array<int16_t,42> tmp[4] =
    17471762            {
    1748                 Compare(&h, &h.fTempDrs[0]),    // 0-39:val, 40:min, 41:max
    1749                 Compare(&h, &h.fTempDrs[1]),    // 0-39:val, 40:min, 41:max
    1750                 Compare(&h, &h.fTempDrs[2]),    // 0-39:val, 40:min, 41:max
    1751                 Compare(&h, &h.fTempDrs[3])     // 0-39:val, 40:min, 41:max
     1763                Compare(&fVecHeader[0], &fVecHeader[0].fTempDrs[0]),    // 0-39:val, 40:min, 41:max
     1764                Compare(&fVecHeader[0], &fVecHeader[0].fTempDrs[1]),    // 0-39:val, 40:min, 41:max
     1765                Compare(&fVecHeader[0], &fVecHeader[0].fTempDrs[2]),    // 0-39:val, 40:min, 41:max
     1766                Compare(&fVecHeader[0], &fVecHeader[0].fTempDrs[3])     // 0-39:val, 40:min, 41:max
    17521767            };
    17531768
Note: See TracChangeset for help on using the changeset viewer.