Ignore:
Timestamp:
07/29/11 15:50:31 (13 years ago)
Author:
tbretz
Message:
Added a nother check to help debugging whether the FITS header description matches the EVENT structure
File:
1 edited

Legend:

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

    r11700 r11703  
    615615        }
    616616
    617         h->NroiTM = 0;
    618 
    619617        vector<string> colNames;
    620618        vector<string> dataTypes;
     
    623621        AddColumnEntry(colNames, dataTypes, 1,                'I', "TriggerType");
    624622        AddColumnEntry(colNames, dataTypes, 1,                'J', "NumBoards");
    625         AddColumnEntry(colNames, dataTypes, 1,                'J', "Errors");
    626623        AddColumnEntry(colNames, dataTypes, 1,                'J', "reserved");
    627624        AddColumnEntry(colNames, dataTypes, 1,                'J', "SoftTrig");
    628625        AddColumnEntry(colNames, dataTypes, 2,                'J', "PCTime");
    629         AddColumnEntry(colNames, dataTypes, h->NBoard,        'J', "BoardTime");
    630         AddColumnEntry(colNames, dataTypes, h->NPix,          'I', "StartCellData");
    631         AddColumnEntry(colNames, dataTypes, h->NTm,           'I', "StartCellTimeMarker");
    632         AddColumnEntry(colNames, dataTypes, h->NPix*h->Nroi,  'I', "Data");
    633         AddColumnEntry(colNames, dataTypes, h->NTm*h->NroiTM, 'I', "TimeMarker");
     626        AddColumnEntry(colNames, dataTypes, NBOARDS/*h->NBoard*/, 'J', "BoardTime");
     627        AddColumnEntry(colNames, dataTypes, NPIX   /*h->NPix*/,   'I', "StartCellData");
     628        AddColumnEntry(colNames, dataTypes, NTMARK /*h->NTm*/,    'I', "StartCellTimeMarker");
     629        AddColumnEntry(colNames, dataTypes, h->NPix*h->Nroi,      'I', "Data");
     630        AddColumnEntry(colNames, dataTypes, h->NTm*h->NroiTM,     'I', "TimeMarker");
    634631
    635632        // Write length of physical pipeline (1024)
    636633
    637         /*
    638         ostringstream fmt;
    639         fmt << "I:1";   // uint32_t EventNum
    640         fmt << ";S:1";  // uint16_t TriggerType
    641         fmt << ";I:5";  // uint32_t NumBoards, reserved, SoftTrig, PCTime, PCUsec
    642         fmt << ";I:" << h->NBoard;       // uint32_t BoardTime[NBOARDS]
    643         fmt << ";S:" << h->NPix+h->NTm;  // int16_t StartPix[NPIX], StartTM[NTMARK]
    644         fmt << ";S:" << h->NPix*h->Nroi + h->NTm*h->NroiTM; // int16_t Adc_Data[]
    645         */
    646634        fConv = new Converter(Converter::ToFormat(dataTypes));
     635
     636        const size_t sz = (h->NPix*h->Nroi + h->NTm*h->NroiTM)*2;
     637        if (fConv->GetSize()-sz+4!=sizeof(EVENT))
     638        {
     639            ostringstream str;
     640            str << "The EVENT structure size (" << sizeof(EVENT) << ") doesn't match the described FITS row (";
     641            str << fConv->GetSize()-sz+4 << ")";
     642            Error(str);
     643            return false;
     644        }
    647645
    648646        //actually create the table
Note: See TracChangeset for help on using the changeset viewer.