/** * Handles setting default spectra range when an instrument configuration is *selected. * * @param instrumentName Name of selected instrument * @param analyserName Name of selected analyser (should always be *"diffraction") * @param reflectionName Name of diffraction mode selected */ void IndirectDiffractionReduction::instrumentSelected( const QString &instrumentName, const QString &analyserName, const QString &reflectionName) { UNUSED_ARG(analyserName); // Set the search instrument for runs m_uiForm.rfSampleFiles->setInstrumentOverride(instrumentName); m_uiForm.rfCanFiles->setInstrumentOverride(instrumentName); MatrixWorkspace_sptr instWorkspace = loadInstrument( instrumentName.toStdString(), reflectionName.toStdString()); Instrument_const_sptr instrument = instWorkspace->getInstrument(); // Get default spectra range double specMin = instrument->getNumberParameter("spectra-min")[0]; double specMax = instrument->getNumberParameter("spectra-max")[0]; m_uiForm.spSpecMin->setValue(static_cast<int>(specMin)); m_uiForm.spSpecMax->setValue(static_cast<int>(specMax)); // Determine whether we need vanadium input std::vector<std::string> correctionVector = instrument->getStringParameter("Workflow.Diffraction.Correction"); bool vanadiumNeeded = false; if (correctionVector.size() > 0) vanadiumNeeded = (correctionVector[0] == "Vanadium"); if (vanadiumNeeded) m_uiForm.swVanadium->setCurrentIndex(0); else m_uiForm.swVanadium->setCurrentIndex(1); // Hide options that the current instrument config cannot process if (instrumentName == "OSIRIS" && reflectionName == "diffonly") { // Disable individual grouping m_uiForm.ckIndividualGrouping->setToolTip( "OSIRIS cannot group detectors individually in diffonly mode"); m_uiForm.ckIndividualGrouping->setEnabled(false); m_uiForm.ckIndividualGrouping->setChecked(false); // Disable sum files m_uiForm.ckSumFiles->setToolTip("OSIRIS cannot sum files in diffonly mode"); m_uiForm.ckSumFiles->setEnabled(false); m_uiForm.ckSumFiles->setChecked(false); } else { // Re-enable sum files m_uiForm.ckSumFiles->setToolTip(""); m_uiForm.ckSumFiles->setEnabled(true); m_uiForm.ckSumFiles->setChecked(true); // Re-enable individual grouping m_uiForm.ckIndividualGrouping->setToolTip(""); m_uiForm.ckIndividualGrouping->setEnabled(true); // Re-enable spectra range m_uiForm.spSpecMin->setEnabled(true); m_uiForm.spSpecMax->setEnabled(true); } }