From 4bb48d58687e9822aaaa9cc79d5c5b079dc5332c Mon Sep 17 00:00:00 2001 From: Gennady Pospelov <g.pospelov@fz-juelich.de> Date: Wed, 17 Jan 2018 12:00:35 +0100 Subject: [PATCH] Alpha axis introduced for OffSpecInstrumentItem --- GUI/coregui/Models/DomainSimulationBuilder.cpp | 7 +++++++ GUI/coregui/Models/InstrumentItems.cpp | 12 ++++++++++++ GUI/coregui/Models/InstrumentItems.h | 2 ++ 3 files changed, 21 insertions(+) diff --git a/GUI/coregui/Models/DomainSimulationBuilder.cpp b/GUI/coregui/Models/DomainSimulationBuilder.cpp index f5c17d3b16a..d347cdfa630 100644 --- a/GUI/coregui/Models/DomainSimulationBuilder.cpp +++ b/GUI/coregui/Models/DomainSimulationBuilder.cpp @@ -26,6 +26,8 @@ #include "SimulationOptionsItem.h" #include "OffSpecSimulation.h" #include "TransformToDomain.h" +#include "AxesItems.h" +#include "Units.h" //! Creates domain simulation from sample and instrument items. std::unique_ptr<Simulation> DomainSimulationBuilder::createSimulation(const MultiLayerItem* sampleItem, @@ -64,6 +66,11 @@ std::unique_ptr<Simulation> DomainSimulationBuilder::createSimulation(const Mult offspec->setSample(*P_multilayer); offspec->setInstrument(*P_instrument); + auto beamItem = offspecInstrument->beamItem(); + auto axisItem = dynamic_cast<BasicAxisItem*>(offspecInstrument->getItem(OffSpecInstrumentItem::P_ALPHA_AXIS)); + offspec->setBeamParameters(beamItem->getWavelength(), *axisItem->createAxis(Units::degree), beamItem->getAzimuthalAngle()); + + // TODO Take care about distributions // TransformToDomain::addDistributionParametersToSimulation(*gisasInstrument->beamItem(), gisas.get()); // Simulation options diff --git a/GUI/coregui/Models/InstrumentItems.cpp b/GUI/coregui/Models/InstrumentItems.cpp index 0266c6674b1..d30c582b298 100644 --- a/GUI/coregui/Models/InstrumentItems.cpp +++ b/GUI/coregui/Models/InstrumentItems.cpp @@ -24,6 +24,7 @@ #include "ParameterTranslators.h" #include "Instrument.h" #include "IDetector2D.h" +#include "AxesItems.h" namespace { const QString background_group_label = "Type"; @@ -134,8 +135,19 @@ GISASInstrumentItem::GISASInstrumentItem() { } +const QString OffSpecInstrumentItem::P_ALPHA_AXIS = "Alpha axis"; + OffSpecInstrumentItem::OffSpecInstrumentItem() : Instrument2DItem(Constants::OffSpecInstrumentType) { + auto item = addGroupProperty(P_ALPHA_AXIS, Constants::BasicAxisType); + item->setToolTip("Incoming alpha range [deg]"); + item->getItem(BasicAxisItem::P_TITLE)->setVisible(false); + item->getItem(BasicAxisItem::P_NBINS)->setToolTip("Number of points in scan"); + item->getItem(BasicAxisItem::P_MIN)->setToolTip("Starting value [deg]"); + item->getItem(BasicAxisItem::P_MAX)->setToolTip("Ending value [deg]"); + + item->setItemValue(BasicAxisItem::P_MIN, 0.0); + item->setItemValue(BasicAxisItem::P_MAX, 10.0); } diff --git a/GUI/coregui/Models/InstrumentItems.h b/GUI/coregui/Models/InstrumentItems.h index 2544976ccb8..db29bac05cb 100644 --- a/GUI/coregui/Models/InstrumentItems.h +++ b/GUI/coregui/Models/InstrumentItems.h @@ -72,6 +72,8 @@ public: class BA_CORE_API_ OffSpecInstrumentItem : public Instrument2DItem { public: + static const QString P_ALPHA_AXIS; + OffSpecInstrumentItem(); }; -- GitLab