Changeset 11753


Ignore:
Timestamp:
08/03/11 14:21:39 (13 years ago)
Author:
lyard
Message:
added display of calibrated data
Location:
trunk/FACT++/gui/RawEventsViewer
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/FACT++/gui/RawEventsViewer/RawEventsViewer.cc

    r11740 r11753  
    514514    float yRange = bboxMax[1] - bboxMin[1];
    515515    glColor3f(1.0,1.0,1.0);
     516    float divideMe = (float)(VALUES_SPAN-1);
     517    float plusMe = VALUES_SPAN/2;
     518    if (drawCalibrationLoaded && calibrationLoaded)
     519    {
     520        divideMe /=2;
     521        plusMe /=2;
     522    }
    516523    for (int i=0;i<nRoi-1;i++)
    517524    {
    518525#ifdef LOAD_RAW
    519526        glVertex2f(bboxMin[0] + xRange*i/(float)nRoi,
    520                    bboxMin[1] + yRange*(eventsData[eventNum][selectedPixel][i]+(VALUES_SPAN/2)) /(float)(VALUES_SPAN-1));
     527                   bboxMin[1] + yRange*(eventsData[eventNum][selectedPixel][i]+plusMe) /divideMe);
    521528        glVertex2f(bboxMin[0] + xRange*(i+1)/(float)nRoi,
    522                    bboxMin[1] + yRange*(eventsData[eventNum][selectedPixel][i+1]+(VALUES_SPAN/2)) /(float)(VALUES_SPAN-1));
     529                   bboxMin[1] + yRange*(eventsData[eventNum][selectedPixel][i+1]+plusMe) /divideMe);
    523530#else
     531
    524532        glVertex2f(bboxMin[0] + xRange*i/(float)nRoi,
    525                    bboxMin[1] + yRange*(eventData[nRoi*selectedPixel + i]+(VALUES_SPAN/2)) /(float)(VALUES_SPAN-1));
     533                   bboxMin[1] + yRange*(eventData[nRoi*selectedPixel + i]+plusMe) /divideMe);
    526534        glVertex2f(bboxMin[0] + xRange*(i+1)/(float)nRoi,
    527                    bboxMin[1] + yRange*(eventData[nRoi*selectedPixel + i+1]+(VALUES_SPAN/2)) /(float)(VALUES_SPAN-1));
     535                   bboxMin[1] + yRange*(eventData[nRoi*selectedPixel + i+1]+plusMe) /divideMe);
    528536#endif
    529537    }
     
    659667    for (int i=0;i<1440;i++)
    660668        updateNeighbors(i);
     669
     670    calibrationLoaded = false;
     671    drawCalibrationLoaded = false;
     672
    661673}
    662674/************************************************************
     
    936948    if (!inputFile->SetPtrAddress("Data", eventData)){
    937949        cout << "Missing column " << "Data" << " Aborting load..." << endl;
    938         nRoi = nRows = 0;}
     950        nRoi = nRows = 0;return;}
    939951    if (!inputFile->SetPtrAddress("EventNum", &eventNum)){
    940952        cout << "Missing column " << "EventNum" << " Aborting load..." << endl;
    941         nRoi = nRows = 0;}
     953        nRoi = nRows = 0;return;}
    942954    if (!inputFile->SetPtrAddress("TriggerType", &triggerType)){
    943955        cout << "Missing column " << "TriggerType" << " Aborting load..." << endl;
    944         nRoi = nRows = 0;}
     956        nRoi = nRows = 0;return;}
    945957    if (!inputFile->SetPtrAddress("SoftTrig", &softTrig)){
    946958        cout << "Missing column " << "SoftTrig" << " Aborting load..." << endl;
    947         nRoi = nRows = 0;}
     959        nRoi = nRows = 0;return;}
    948960    if (!inputFile->SetPtrAddress("PCTime", &pcTime)){
    949961        cout << "Missing column " << "PCTime" << " Aborting load..." << endl;
    950         nRoi = nRows = 0;}
     962        nRoi = nRows = 0;return;}
    951963    if (!inputFile->SetPtrAddress("BoardTime", boardTime)){
    952964        cout << "Missing column " << "BoardTime" << " Aborting load..." << endl;
    953         nRoi = nRows = 0;}
     965        nRoi = nRows = 0;return;}
    954966    if (!inputFile->SetPtrAddress("StartCellData", startPix)){
    955967        cout << "Missing column " << "StartCellData" << " Aborting load..." << endl;
    956         nRoi = nRows = 0;}
     968        nRoi = nRows = 0;return;}
    957969    if (!inputFile->SetPtrAddress("StartCellTimeMarker", startTM)){
    958970        cout << "Missing column " << "StartCellTimeMarker" << " Aborting load..." << endl;
    959         nRoi = nRows = 0;}
     971        nRoi = nRows = 0;return;}
    960972    int backupStep = eventStep;
    961973    rowNum = -1;
     
    966978    emit signalCurrentPixel(selectedPixel);
    967979}
    968 
     980void RawDataViewer::openCalibFile(string& file)
     981{
     982    calibrationLoaded = false;
     983    calibInputFile = new fits(file);
     984    if (!*calibInputFile)
     985    {
     986        delete calibInputFile;
     987        calibInputFile = NULL;
     988        return;
     989    }
     990
     991    if (!calibInputFile->SetPtrAddress("BaselineMean", baseLineMean)){
     992        cout << "Missing column " << "BaseLineMean" << " Aborting load..." << endl;
     993        return;}
     994    if (!calibInputFile->SetPtrAddress("GainMean", gainMean)){
     995        cout << "Missing column " << "GainMean" << " Aborting load..." << endl;
     996        return;}
     997    if (!calibInputFile->SetPtrAddress("TriggerOffsetMean", triggerOffsetMean)){
     998        cout << "Missing column " << "TriggerOffsetMean" << " Aborting load..." << endl;
     999        return;}
     1000
     1001    calibInputFile->GetNextRow();
     1002
     1003    delete calibInputFile;
     1004
     1005    calibrationLoaded = true;
     1006    emit newFileLoaded();
     1007    if (drawCalibrationLoaded)
     1008        updateGL();
     1009}
    9691010/************************************************************
    9701011 * PLUS EVENT
     
    10091050#endif
    10101051
     1052    if (drawCalibrationLoaded)
     1053    {
     1054        for (int i=0;i<1440;i++)
     1055            for (int j=0;j<nRoi;j++)
     1056            {
     1057                eventData[i*1024+j] /= 2;
     1058                eventData[i*1024+j] -= (baseLineMean[i*1024+j]+triggerOffsetMean[i*1024+j]);
     1059                eventData[i*1024+j] /= gainMean[i*1024+j];
     1060            }
     1061    }
    10111062    updateGL();
    10121063    emit signalCurrentEvent(eventNum);
    10131064    emit signalCurrentPixel(selectedPixel);
    1014 
    10151065}
    10161066/************************************************************
     
    10651115    patchID = 1;
    10661116    rescaleWholeCamera = true;
     1117    currentFile = "none";
     1118    currentCalibFile = "none";
    10671119}
    10681120void UIConnector::slicesPlusPlus()
     
    10731125{
    10741126    viewer->previousSlice();
     1127}
     1128void UIConnector::drawCalibratedDataChanged(int state)
     1129{
     1130     if (state)
     1131    {
     1132        if (viewer->calibrationLoaded)
     1133        {
     1134            viewer->drawCalibrationLoaded = true;
     1135            for (int i=0;i<1440;i++)
     1136                for (int j=0;j<viewer->nRoi;j++)
     1137                {
     1138                    viewer->eventData[i*1024+j] /= 2;
     1139                    viewer->eventData[i*1024+j] -= (viewer->baseLineMean[i*1024+j]+viewer->triggerOffsetMean[i*1024+j]);
     1140                    viewer->eventData[i*1024+j] /= viewer->gainMean[i*1024+j];
     1141                }
     1142            viewer->updateGL();
     1143        }
     1144        else
     1145        {
     1146            drawCalibrationCheckBox->setChecked(false);
     1147        }
     1148    }
     1149    else
     1150    {
     1151        viewer->drawCalibrationLoaded = false;
     1152        if (viewer->calibrationLoaded)
     1153        {
     1154            for (int i=0;i<1440;i++)
     1155                for (int j=0;j<viewer->nRoi;j++)
     1156                {
     1157                    viewer->eventData[i*1024+j] *= viewer->gainMean[i*1024+j];
     1158                    viewer->eventData[i*1024+j] += (viewer->baseLineMean[i*1024+j]+viewer->triggerOffsetMean[i*1024+j]);
     1159                    viewer->eventData[i*1024+j] *= 2;
     1160               }
     1161            viewer->updateGL();
     1162        }
     1163
     1164    }
     1165
    10751166}
    10761167/************************************************************
     
    13061397    dialog.exec();
    13071398}
     1399void UIConnector::loadNewCalibFileClicked()
     1400{
     1401    QFileDialog dialog;
     1402    dialog.setFileMode(QFileDialog::ExistingFile);
     1403    dialog.open(this, SLOT(calibFileSelected(QString)));
     1404    dialog.setVisible(true);
     1405    dialog.exec();
     1406}
    13081407/************************************************************
    13091408 * FILE SELECTED. return of the file open dialog handler
     
    13151414        viewer->openFile(currentFile);
    13161415}
     1416void UIConnector::calibFileSelected(QString file)
     1417{
     1418    currentCalibFile = file.toStdString();
     1419    if (currentCalibFile != "")
     1420        viewer->openCalibFile(currentCalibFile);
     1421}
    13171422/************************************************************
    13181423 * NEW FILE LOADED. update of the UI after a new file has been loaded
     
    13221427    ostringstream str;
    13231428    str << "File loaded: " << currentFile << "\n";
     1429    str << "Calibration file loaded: " << currentCalibFile << "\n";
    13241430//    fileLoadedLabel->setText(QString(str.str().c_str()));
    13251431//    str.str("");
     
    21232229    connector.range3 = myUi.colorRange3;
    21242230    connector.range4 = myUi.colorRange4;
     2231    connector.drawCalibrationCheckBox = myUi.calibratedCheckBox;
    21252232
    21262233    connector.initHistograms();
     
    21622269                     &connector, SLOT(newFileLoaded()));
    21632270
     2271    QObject::connect(myUi.calibratedCheckBox, SIGNAL(stateChanged(int)),
     2272                     &connector, SLOT(drawCalibratedDataChanged(int)));
    21642273    QObject::connect(myUi.loadNewFileButton, SIGNAL(clicked()),
    21652274                     &connector, SLOT(loadNewFileClicked()));
     2275    QObject::connect(myUi.loadDRSCalibButton, SIGNAL(clicked()),
     2276                     &connector, SLOT(loadNewCalibFileClicked()));
    21662277
    21672278    QObject::connect(myUi.colorRange0, SIGNAL(valueChanged(double)),
  • trunk/FACT++/gui/RawEventsViewer/RawEventsViewer.h

    r11740 r11753  
    2727#include <QtGui/QDoubleSpinBox>
    2828#include <QtGui/QRadioButton>
     29#include <QtGui/QCheckBox>
    2930#include <iostream>
    3031#include <GL/gl.h>
     
    7980    RawDataViewer(QWidget *parent = 0);
    8081    ~RawDataViewer();
    81     void openFile(string& filename);
     82    void openFile(string& file);
     83    void openCalibFile(string& file);
    8284
    8385public Q_SLOTS:
     
    169171    vector<edge> patchesIndices[160];
    170172    fits* inputFile;
     173    fits* calibInputFile;
     174    float baseLineMean[1440*1024];
     175    float gainMean[1440*1024];
     176    float triggerOffsetMean[1440*1024];
     177    bool calibrationLoaded;
     178    bool drawCalibrationLoaded;
    171179
    172180    QPoint lastPos;
     
    191199public Q_SLOTS:
    192200    void loadNewFileClicked();
     201    void loadNewCalibFileClicked();
    193202    void fileSelected(QString file);
     203    void calibFileSelected(QString file);
    194204    void drawPatchesCheckChange(int state);
    195205    void drawImpulseCheckChange(int state);
     
    233243    void slicesPlusPlus();
    234244    void slicesMinusMinus();
     245    void drawCalibratedDataChanged(int state);
    235246
    236247Q_SIGNALS:
     
    247258    QTimer timer;
    248259    string currentFile;
     260    string currentCalibFile;
    249261    int crateID;
    250262    int boardID;
     
    301313    QDoubleSpinBox* range4;
    302314
     315    QCheckBox*  drawCalibrationCheckBox;
     316
    303317    void initHistograms();
    304318
  • trunk/FACT++/gui/RawEventsViewer/viewer.ui

    r11740 r11753  
    221221          <property name="text">
    222222           <string>File loaded: none
     223Calibration file loaded: none
    223224Run number:
    224225Number of Events:
     
    243244</string>
    244245          </property>
     246          <property name="wordWrap">
     247           <bool>true</bool>
     248          </property>
    245249         </widget>
    246250        </item>
     
    476480       </widget>
    477481      </item>
    478       <item row="0" column="8">
    479        <widget class="QPushButton" name="loadNewFileButton">
    480         <property name="toolTip">
    481          <string>Load a new fits file</string>
    482         </property>
    483         <property name="text">
    484          <string>Load New File</string>
    485         </property>
    486        </widget>
    487       </item>
    488482      <item row="1" column="5">
    489483       <widget class="QDoubleSpinBox" name="redValue2">
     
    847841        </item>
    848842       </layout>
     843      </item>
     844      <item row="0" column="8">
     845       <layout class="QHBoxLayout" name="horizontalLayout_8">
     846        <item>
     847         <widget class="QPushButton" name="loadNewFileButton">
     848          <property name="toolTip">
     849           <string>Load a new fits file</string>
     850          </property>
     851          <property name="text">
     852           <string>Load Data</string>
     853          </property>
     854         </widget>
     855        </item>
     856        <item>
     857         <widget class="QPushButton" name="loadDRSCalibButton">
     858          <property name="text">
     859           <string>Load DRS calib.</string>
     860          </property>
     861         </widget>
     862        </item>
     863       </layout>
     864      </item>
     865      <item row="0" column="1">
     866       <widget class="QCheckBox" name="calibratedCheckBox">
     867        <property name="layoutDirection">
     868         <enum>Qt::RightToLeft</enum>
     869        </property>
     870        <property name="text">
     871         <string>Calibrated data</string>
     872        </property>
     873       </widget>
    849874      </item>
    850875     </layout>
Note: See TracChangeset for help on using the changeset viewer.