diff --git a/slsDetectorGui/include/qDrawPlot.h b/slsDetectorGui/include/qDrawPlot.h index a8071818b..54a4a2542 100644 --- a/slsDetectorGui/include/qDrawPlot.h +++ b/slsDetectorGui/include/qDrawPlot.h @@ -602,6 +602,9 @@ bool gainPlotEnable; /** gain data enable, enabled if gain data to be extracted from normal data */ bool gainDataEnable; +const static int npixelsx_jctb = 400; +int npixelsy_jctb; + signals: void UpdatingPlotFinished(); void InterpolateSignal(bool); diff --git a/slsDetectorGui/src/qDetectorMain.cpp b/slsDetectorGui/src/qDetectorMain.cpp index f33af996a..2d3d7b0c7 100644 --- a/slsDetectorGui/src/qDetectorMain.cpp +++ b/slsDetectorGui/src/qDetectorMain.cpp @@ -278,6 +278,7 @@ void qDetectorMain::SetUpDetector(const string fName){ case slsDetectorDefs::PROPIX: case slsDetectorDefs::MOENCH: case slsDetectorDefs::JUNGFRAU: + case slsDetectorDefs::JUNGFRAUCTB: actionLoadTrimbits->setText("Load Settings"); actionSaveTrimbits->setText("Save Settings"); break; default: diff --git a/slsDetectorGui/src/qDrawPlot.cpp b/slsDetectorGui/src/qDrawPlot.cpp index 30351813e..13d8b9e0e 100644 --- a/slsDetectorGui/src/qDrawPlot.cpp +++ b/slsDetectorGui/src/qDrawPlot.cpp @@ -67,12 +67,17 @@ void qDrawPlot::SetupWidgetWindow(){ // Depending on whether the detector is 1d or 2d detType = myDet->getDetectorsType(); switch(detType){ - case slsDetectorDefs::MYTHEN: originally2D = false; break; - case slsDetectorDefs::EIGER: originally2D = true; break; - case slsDetectorDefs::GOTTHARD: originally2D = false; break; - case slsDetectorDefs::PROPIX: originally2D = true; break; - case slsDetectorDefs::MOENCH: originally2D = true; break; - case slsDetectorDefs::JUNGFRAU: originally2D = true; break; + case slsDetectorDefs::MYTHEN: + case slsDetectorDefs::GOTTHARD: + originally2D = false; + break; + case slsDetectorDefs::EIGER: + case slsDetectorDefs::PROPIX: + case slsDetectorDefs::MOENCH: + case slsDetectorDefs::JUNGFRAU: + case slsDetectorDefs::JUNGFRAUCTB: + originally2D = true; + break; default: cout << "ERROR: Detector Type is Generic" << endl; exit(-1); @@ -115,9 +120,14 @@ void qDrawPlot::SetupWidgetWindow(){ plot_in_scope = 0; nPixelsX = myDet->getTotalNumberOfChannelsInclGapPixels(slsDetectorDefs::X); - cout<<"nPixelsX:"<getTotalNumberOfChannelsInclGapPixels(slsDetectorDefs::Y); + if (detType == slsDetectorDefs::JUNGFRAUCTB) { + npixelsy_jctb = (myDet->setTimer(slsDetectorDefs::SAMPLES_JCTB, -1) * 2)/25; + nPixelsX = npixelsx_jctb; + nPixelsY = npixelsy_jctb; + } + + cout<<"nPixelsX:"<getTotalNumberOfChannelsInclGapPixels(slsDetectorDefs::X); nPixelsY = myDet->getTotalNumberOfChannelsInclGapPixels(slsDetectorDefs::Y); + if (detType == slsDetectorDefs::JUNGFRAUCTB) { + npixelsy_jctb = (myDet->setTimer(slsDetectorDefs::SAMPLES_JCTB, -1) * 2)/25; + nPixelsX = npixelsx_jctb; + nPixelsY = npixelsy_jctb; + } + //cannot do this in between measurements , so update instantly if(scanArgument==qDefs::Level0){ //no need to check if numsteps=0,cuz otherwise this mode wont be set in plot tab @@ -2206,7 +2222,7 @@ void qDrawPlot::toDoublePixelData(double* dest, char* source,int size, int datab break; case 16: - if (detType == slsDetectorDefs::JUNGFRAU) { + if (detType == slsDetectorDefs::JUNGFRAU || detType == slsDetectorDefs::JUNGFRAUCTB) { // show gain plot if(gaindest!=NULL) { diff --git a/slsDetectorGui/src/qTabActions.cpp b/slsDetectorGui/src/qTabActions.cpp index ebc0ee140..37a8f7693 100644 --- a/slsDetectorGui/src/qTabActions.cpp +++ b/slsDetectorGui/src/qTabActions.cpp @@ -185,6 +185,7 @@ void qTabActions::SetupWidgetWindow(){ (detType == slsDetectorDefs::AGIPD) || (detType == slsDetectorDefs::PROPIX) || (detType == slsDetectorDefs::JUNGFRAU) || + (detType == slsDetectorDefs::JUNGFRAUCTB) || (detType == slsDetectorDefs::MOENCH)) { lblName[NumPositions]->setEnabled(false); btnExpand[NumPositions]->setEnabled(false); diff --git a/slsDetectorGui/src/qTabAdvanced.cpp b/slsDetectorGui/src/qTabAdvanced.cpp index da0e271e1..80db7259c 100644 --- a/slsDetectorGui/src/qTabAdvanced.cpp +++ b/slsDetectorGui/src/qTabAdvanced.cpp @@ -112,6 +112,7 @@ void qTabAdvanced::SetupWidgetWindow(){ boxRxr->setEnabled(true); break; case slsDetectorDefs::JUNGFRAU: + case slsDetectorDefs::JUNGFRAUCTB: isEnergy = false; isAngular = false; lblIP->setEnabled(true); diff --git a/slsDetectorGui/src/qTabDataOutput.cpp b/slsDetectorGui/src/qTabDataOutput.cpp index f8969d938..eb81cf40c 100644 --- a/slsDetectorGui/src/qTabDataOutput.cpp +++ b/slsDetectorGui/src/qTabDataOutput.cpp @@ -895,6 +895,7 @@ void qTabDataOutput::SetupFileFormat(){ case slsDetectorDefs::PROPIX: case slsDetectorDefs::GOTTHARD: case slsDetectorDefs::JUNGFRAU: + case slsDetectorDefs::JUNGFRAUCTB: item[(int)slsReceiverDefs::BINARY]->setEnabled(true); item[(int)slsReceiverDefs::ASCII]->setEnabled(false); item[(int)slsReceiverDefs::HDF5]->setEnabled(true); diff --git a/slsDetectorGui/src/qTabDebugging.cpp b/slsDetectorGui/src/qTabDebugging.cpp index 45b737144..46b861052 100644 --- a/slsDetectorGui/src/qTabDebugging.cpp +++ b/slsDetectorGui/src/qTabDebugging.cpp @@ -74,6 +74,7 @@ void qTabDebugging::SetupWidgetWindow(){ chkModuleFirmware->setEnabled(false); break; case slsDetectorDefs::JUNGFRAU: + case slsDetectorDefs::JUNGFRAUCTB: case slsDetectorDefs::PROPIX: case slsDetectorDefs::GOTTHARD: lblDetector->setText("Module:"); @@ -343,7 +344,7 @@ void qTabDebugging::GetInfo(){ case slsDetectorDefs::JUNGFRAU: - + case slsDetectorDefs::JUNGFRAUCTB: //display widget formLayout->addWidget(new QLabel("Module:"),0,0); formLayout->addItem(new QSpacerItem(15,20,QSizePolicy::Fixed,QSizePolicy::Fixed),0,1); @@ -355,7 +356,10 @@ void qTabDebugging::GetInfo(){ formLayout->addWidget(new QLabel("Module Software Version:"),3,0); formLayout->addWidget(lblDetectorSoftware,3,2); //tree widget - treeDet->setHeaderLabel("JungFrau Detector"); + if (detType == slsDetectorDefs::JUNGFRAU) + treeDet->setHeaderLabel("JungFrau Detector"); + else + treeDet->setHeaderLabel("JungFrauCTB Detector"); //gets det names for (int i=0;icount();i++) items.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("Module (%1)").arg(comboDetector->itemText(i))))); @@ -470,6 +474,7 @@ void qTabDebugging::SetParameters(QTreeWidgetItem *item){ case slsDetectorDefs::JUNGFRAU: + case slsDetectorDefs::JUNGFRAUCTB: case slsDetectorDefs::PROPIX: case slsDetectorDefs::MOENCH: case slsDetectorDefs::GOTTHARD: @@ -519,6 +524,7 @@ void qTabDebugging::TestDetector(){ break; case slsDetectorDefs::EIGER: Detector = "Half Module"; break; case slsDetectorDefs::JUNGFRAU: + case slsDetectorDefs::JUNGFRAUCTB: case slsDetectorDefs::MOENCH: case slsDetectorDefs::PROPIX: case slsDetectorDefs::GOTTHARD: Detector = "Module"; break; diff --git a/slsDetectorGui/src/qTabDeveloper.cpp b/slsDetectorGui/src/qTabDeveloper.cpp index 655e3d950..0cd29f667 100644 --- a/slsDetectorGui/src/qTabDeveloper.cpp +++ b/slsDetectorGui/src/qTabDeveloper.cpp @@ -148,6 +148,7 @@ void qTabDeveloper::SetupWidgetWindow() { case slsDetectorDefs::JUNGFRAU: + case slsDetectorDefs::JUNGFRAUCTB: NUM_DAC_WIDGETS = 8; NUM_ADC_WIDGETS = 1; dacNames.push_back("v vb comp:"); @@ -474,6 +475,8 @@ slsDetectorDefs::dacIndex qTabDeveloper::getSLSIndex(int index){ } break; case slsDetectorDefs::JUNGFRAU: + case slsDetectorDefs::JUNGFRAUCTB: + switch(index){ case 0: case 1: @@ -522,7 +525,7 @@ void qTabDeveloper::RefreshAdcs(){ for(int i=0;igetADC(getSLSIndex(i+NUM_DAC_WIDGETS),-1); if(value == -1) spinAdcs[i]->setValue(value); @@ -537,7 +540,7 @@ void qTabDeveloper::RefreshAdcs(){ } //specific detector else{ - if(detType == slsDetectorDefs::EIGER || detType == slsDetectorDefs::JUNGFRAU) + if(detType == slsDetectorDefs::EIGER || detType == slsDetectorDefs::JUNGFRAU || detType == slsDetectorDefs::JUNGFRAUCTB) spinAdcs[i]->setValue((double)det->getADC(getSLSIndex(i+NUM_DAC_WIDGETS))/1000.00); else spinAdcs[i]->setValue((double)det->getADC(getSLSIndex(i+NUM_DAC_WIDGETS))); diff --git a/slsDetectorGui/src/qTabMeasurement.cpp b/slsDetectorGui/src/qTabMeasurement.cpp index 33046ab71..2c58ee276 100644 --- a/slsDetectorGui/src/qTabMeasurement.cpp +++ b/slsDetectorGui/src/qTabMeasurement.cpp @@ -74,7 +74,7 @@ void qTabMeasurement::SetupWidgetWindow(){ comboDelayUnit->setCurrentIndex((int)unit); } //gates - if ((detType == slsDetectorDefs::EIGER) || (detType == slsDetectorDefs::JUNGFRAU)) { + if ((detType == slsDetectorDefs::EIGER) || (detType == slsDetectorDefs::JUNGFRAU) || (detType == slsDetectorDefs::JUNGFRAUCTB)) { lblNumGates->setEnabled(false); spinNumGates->setEnabled(false); } else @@ -160,6 +160,7 @@ void qTabMeasurement::SetupTimingMode(){ case slsDetectorDefs::PROPIX: case slsDetectorDefs::GOTTHARD: case slsDetectorDefs::JUNGFRAU: + case slsDetectorDefs::JUNGFRAUCTB: item[(int)Trigger_Exp_Series]->setEnabled(true); item[(int)Trigger_Readout]->setEnabled(false); item[(int)Gated]->setEnabled(false); @@ -292,7 +293,7 @@ void qTabMeasurement::Initialization(){ } //Number of Gates - if ((detType != slsDetectorDefs::EIGER) && (detType != slsDetectorDefs::JUNGFRAU)) + if ((detType != slsDetectorDefs::EIGER) && (detType != slsDetectorDefs::JUNGFRAU) && (detType != slsDetectorDefs::JUNGFRAUCTB)) connect(spinNumGates,SIGNAL(valueChanged(int)), this, SLOT(setNumGates(int))); //Number of Probes @@ -803,7 +804,7 @@ void qTabMeasurement::Refresh(){ disconnect(spinDelay, SIGNAL(valueChanged(double)), this, SLOT(setDelay())); disconnect(comboDelayUnit, SIGNAL(currentIndexChanged(int)), this, SLOT(setDelay())); } - if ((detType != slsDetectorDefs::EIGER) && (detType != slsDetectorDefs::JUNGFRAU)) + if ((detType != slsDetectorDefs::EIGER) && (detType != slsDetectorDefs::JUNGFRAU) && (detType != slsDetectorDefs::JUNGFRAUCTB)) disconnect(spinNumGates, SIGNAL(valueChanged(int)), this, SLOT(setNumGates(int))); #ifdef VERBOSE @@ -847,7 +848,7 @@ void qTabMeasurement::Refresh(){ comboDelayUnit->setCurrentIndex((int)unit); } //gates - if ((detType == slsDetectorDefs::EIGER) || (detType == slsDetectorDefs::JUNGFRAU)) { + if ((detType == slsDetectorDefs::EIGER) || (detType == slsDetectorDefs::JUNGFRAU) || (detType == slsDetectorDefs::JUNGFRAUCTB)) { lblNumGates->setEnabled(false); spinNumGates->setEnabled(false); } else { @@ -889,7 +890,7 @@ void qTabMeasurement::Refresh(){ connect(spinDelay, SIGNAL(valueChanged(double)), this, SLOT(setDelay())); connect(comboDelayUnit, SIGNAL(currentIndexChanged(int)), this, SLOT(setDelay())); } - if ((detType != slsDetectorDefs::EIGER) && (detType != slsDetectorDefs::JUNGFRAU)) + if ((detType != slsDetectorDefs::EIGER) && (detType != slsDetectorDefs::JUNGFRAU) && (detType != slsDetectorDefs::JUNGFRAUCTB)) connect(spinNumGates, SIGNAL(valueChanged(int)), this, SLOT(setNumGates(int))); //timing mode - will also check if exptime>acq period and also enableprobes() diff --git a/slsDetectorGui/src/qTabPlot.cpp b/slsDetectorGui/src/qTabPlot.cpp index b4e10c518..9280d2fa0 100644 --- a/slsDetectorGui/src/qTabPlot.cpp +++ b/slsDetectorGui/src/qTabPlot.cpp @@ -185,6 +185,7 @@ void qTabPlot::SetupWidgetWindow(){ isOriginallyOneD = false; break; case slsDetectorDefs::JUNGFRAU: + case slsDetectorDefs::JUNGFRAUCTB: isOriginallyOneD = false; chkGainPlot->setEnabled(true); break; @@ -1109,6 +1110,7 @@ void qTabPlot::EnableScanBox(){ if((myDet->getDetectorsType() == slsDetectorDefs::GOTTHARD) || (myDet->getDetectorsType() == slsDetectorDefs::PROPIX) || (myDet->getDetectorsType() == slsDetectorDefs::JUNGFRAU) || + (myDet->getDetectorsType() == slsDetectorDefs::JUNGFRAUCTB) || (myDet->getDetectorsType() == slsDetectorDefs::MOENCH)){ pagePedestal->setEnabled(true); pagePedestal_2->setEnabled(true); diff --git a/slsDetectorGui/src/qTabSettings.cpp b/slsDetectorGui/src/qTabSettings.cpp index 0f31610ce..4a4dcea3d 100644 --- a/slsDetectorGui/src/qTabSettings.cpp +++ b/slsDetectorGui/src/qTabSettings.cpp @@ -104,6 +104,7 @@ void qTabSettings::SetupDetectorSettings(){ int sett = (int)myDet->getSettings();cout<<"sett:"< slsDetectorDefs::UNDEFINED) sett = Uninitialized; else if(sett == slsDetectorDefs::UNDEFINED) sett = Undefined; else if(sett == slsDetectorDefs::UNINITIALIZED) sett = Uninitialized; // To be able to index items on a combo box @@ -166,6 +167,7 @@ void qTabSettings::SetupDetectorSettings(){ item[(int)VeryLowGain]->setEnabled(false); break; case slsDetectorDefs::JUNGFRAU: + case slsDetectorDefs::JUNGFRAUCTB: item[(int)Standard]->setEnabled(false); item[(int)Fast]->setEnabled(false); item[(int)HighGain]->setEnabled(false); @@ -224,6 +226,7 @@ void qTabSettings::setSettings(int index){ disconnect(comboSettings, SIGNAL(currentIndexChanged(int)), this, SLOT(setSettings(int))); int sett = (int)myDet->getSettings(); if(sett==-1) sett = Undefined; + if(detType == slsDetectorDefs::JUNGFRAUCTB && sett > slsDetectorDefs::UNDEFINED) sett = Uninitialized; else if(sett == slsDetectorDefs::UNDEFINED) sett = Undefined; else if(sett == slsDetectorDefs::UNINITIALIZED) sett = Uninitialized; comboSettings->setCurrentIndex(sett); @@ -341,6 +344,7 @@ void qTabSettings::Refresh(){ #endif int sett = (int)myDet->getSettings(); if(sett==-1) sett = Undefined;//slsDetectorDefs::UNDEFINED; + if(detType == slsDetectorDefs::JUNGFRAUCTB && sett > slsDetectorDefs::UNDEFINED) sett = Uninitialized; else if(sett == slsDetectorDefs::UNDEFINED) sett = Undefined; else if(sett == slsDetectorDefs::UNINITIALIZED) sett = Uninitialized; comboSettings->setCurrentIndex(sett);