Skip to content
Snippets Groups Projects
Commit 1714539f authored by Gemma Guest's avatar Gemma Guest
Browse files

Make transmission overlap range optional

The range is not set in the model if the user enters invalid values

Re #22263
parent be0e6391
No related branches found
No related tags found
No related merge requests found
...@@ -62,14 +62,17 @@ PolarizationCorrections ExperimentPresenter::polarizationCorrectionsFromView() { ...@@ -62,14 +62,17 @@ PolarizationCorrections ExperimentPresenter::polarizationCorrectionsFromView() {
return PolarizationCorrections(cRho, cAlpha, cAp, cPp); return PolarizationCorrections(cRho, cAlpha, cAp, cPp);
} }
RangeInLambda ExperimentPresenter::transmissionRunRangeFromView() { boost::optional<RangeInLambda>
ExperimentPresenter::transmissionRunRangeFromView() {
auto const range = RangeInLambda(m_view->getTransmissionStartOverlap(), auto const range = RangeInLambda(m_view->getTransmissionStartOverlap(),
m_view->getTransmissionEndOverlap()); m_view->getTransmissionEndOverlap());
if (range.isValid()) if (range.isValid()) {
m_view->showTransmissionRangeValid(); m_view->showTransmissionRangeValid();
else return range;
m_view->showTransmissionRangeInvalid(); }
return range;
m_view->showTransmissionRangeInvalid();
return boost::none;
} }
std::map<std::string, std::string> std::map<std::string, std::string>
......
...@@ -79,7 +79,7 @@ public: ...@@ -79,7 +79,7 @@ public:
private: private:
ExperimentValidationResult validateExperimentFromView(); ExperimentValidationResult validateExperimentFromView();
PolarizationCorrections polarizationCorrectionsFromView(); PolarizationCorrections polarizationCorrectionsFromView();
RangeInLambda transmissionRunRangeFromView(); boost::optional<RangeInLambda> transmissionRunRangeFromView();
std::map<std::string, std::string> stitchParametersFromView(); std::map<std::string, std::string> stitchParametersFromView();
ExperimentValidationResult updateModelFromView(); ExperimentValidationResult updateModelFromView();
......
...@@ -26,15 +26,13 @@ private: ...@@ -26,15 +26,13 @@ private:
Experiment makeModel() { Experiment makeModel() {
// TODO get defaults from algorithm // TODO get defaults from algorithm
auto polarizationCorrections = PolarizationCorrections(0.0, 0.0, 0.0, 0.0); auto polarizationCorrections = PolarizationCorrections(0.0, 0.0, 0.0, 0.0);
auto transmissionRunRange = RangeInLambda(0.0, 0.0);
auto stitchParameters = std::map<std::string, std::string>(); auto stitchParameters = std::map<std::string, std::string>();
auto perThetaDefaults = std::vector<PerThetaDefaults>( auto perThetaDefaults = std::vector<PerThetaDefaults>(
{PerThetaDefaults(boost::none, std::pair<std::string, std::string>(), {PerThetaDefaults(boost::none, std::pair<std::string, std::string>(),
boost::none, boost::none, ProcessingInstructions())}); boost::none, boost::none, ProcessingInstructions())});
return Experiment(AnalysisMode::PointDetector, ReductionType::Normal, return Experiment(AnalysisMode::PointDetector, ReductionType::Normal,
SummationType::SumInLambda, SummationType::SumInLambda,
std::move(polarizationCorrections), std::move(polarizationCorrections), boost::none,
std::move(transmissionRunRange),
std::move(stitchParameters), std::move(perThetaDefaults)); std::move(stitchParameters), std::move(perThetaDefaults));
} }
}; };
......
...@@ -8,7 +8,7 @@ namespace CustomInterfaces { ...@@ -8,7 +8,7 @@ namespace CustomInterfaces {
Experiment::Experiment(AnalysisMode analysisMode, ReductionType reductionType, Experiment::Experiment(AnalysisMode analysisMode, ReductionType reductionType,
SummationType summationType, SummationType summationType,
PolarizationCorrections polarizationCorrections, PolarizationCorrections polarizationCorrections,
RangeInLambda transmissionRunRange, boost::optional<RangeInLambda> transmissionRunRange,
std::map<std::string, std::string> stitchParameters, std::map<std::string, std::string> stitchParameters,
std::vector<PerThetaDefaults> perThetaDefaults) std::vector<PerThetaDefaults> perThetaDefaults)
: m_analysisMode(analysisMode), m_reductionType(reductionType), : m_analysisMode(analysisMode), m_reductionType(reductionType),
...@@ -25,9 +25,7 @@ PolarizationCorrections const &Experiment::polarizationCorrections() const { ...@@ -25,9 +25,7 @@ PolarizationCorrections const &Experiment::polarizationCorrections() const {
return m_polarizationCorrections; return m_polarizationCorrections;
} }
bool Experiment::isValid() const { return m_transmissionRunRange.isValid(); } boost::optional<RangeInLambda> Experiment::transmissionRunRange() const {
RangeInLambda const &Experiment::transmissionRunRange() const {
return m_transmissionRunRange; return m_transmissionRunRange;
} }
......
...@@ -41,16 +41,15 @@ public: ...@@ -41,16 +41,15 @@ public:
Experiment(AnalysisMode analysisMode, ReductionType reductionType, Experiment(AnalysisMode analysisMode, ReductionType reductionType,
SummationType summationType, SummationType summationType,
PolarizationCorrections polarizationCorrections, PolarizationCorrections polarizationCorrections,
RangeInLambda transmissionRunRange, boost::optional<RangeInLambda> transmissionRunRange,
std::map<std::string, std::string> stitchParameters, std::map<std::string, std::string> stitchParameters,
std::vector<PerThetaDefaults> perThetaDefaults); std::vector<PerThetaDefaults> perThetaDefaults);
bool isValid() const;
AnalysisMode analysisMode() const; AnalysisMode analysisMode() const;
ReductionType reductionType() const; ReductionType reductionType() const;
SummationType summationType() const; SummationType summationType() const;
PolarizationCorrections const &polarizationCorrections() const; PolarizationCorrections const &polarizationCorrections() const;
RangeInLambda const &transmissionRunRange() const; boost::optional<RangeInLambda> transmissionRunRange() const;
std::map<std::string, std::string> stitchParameters() const; std::map<std::string, std::string> stitchParameters() const;
std::vector<PerThetaDefaults> const &perThetaDefaults() const; std::vector<PerThetaDefaults> const &perThetaDefaults() const;
...@@ -63,7 +62,7 @@ private: ...@@ -63,7 +62,7 @@ private:
SummationType m_summationType; SummationType m_summationType;
PolarizationCorrections m_polarizationCorrections; PolarizationCorrections m_polarizationCorrections;
RangeInLambda m_transmissionRunRange; boost::optional<RangeInLambda> m_transmissionRunRange;
std::map<std::string, std::string> m_stitchParameters; std::map<std::string, std::string> m_stitchParameters;
std::vector<PerThetaDefaults> m_perThetaDefaults; std::vector<PerThetaDefaults> m_perThetaDefaults;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment