Skip to content
Snippets Groups Projects
Commit 2b070d90 authored by Wuttke, Joachim's avatar Wuttke, Joachim
Browse files

ItemizeSimulation: pass detector instead of simulation; decouple polarizers 1 and 2

parent fc93e06c
No related branches found
No related tags found
1 merge request!1267cleanup
...@@ -137,9 +137,8 @@ void setMaskContainer(MaskItems* destMaskItems, const IDetector& detector, doubl ...@@ -137,9 +137,8 @@ void setMaskContainer(MaskItems* destMaskItems, const IDetector& detector, doubl
} }
} }
void setDetectorMasks(DetectorItem* detector_item, const ISimulation2D& simulation) void setDetectorMasks(DetectorItem* detector_item, const IDetector& detector)
{ {
const IDetector& detector = simulation.detector();
if ((detector.detectorMask() && detector.detectorMask()->hasMasks()) if ((detector.detectorMask() && detector.detectorMask()->hasMasks())
|| detector.hasExplicitRegionOfInterest()) { || detector.hasExplicitRegionOfInterest()) {
const double scale = 1.0 / detector_item->axesToCoreUnitsFactor(); const double scale = 1.0 / detector_item->axesToCoreUnitsFactor();
...@@ -373,11 +372,8 @@ void setDetectorResolution(DetectorItem* detector_item, const IDetector& detecto ...@@ -373,11 +372,8 @@ void setDetectorResolution(DetectorItem* detector_item, const IDetector& detecto
ASSERT(0); ASSERT(0);
} }
void setPolarizerAnalyzer(Instrument2DItem* instrument_item, const ISimulation2D& simulation) void setPolarizer2(Instrument2DItem* instrument_item, const IDetector& detector)
{ {
instrument_item->setPolarization(simulation.beam().polVector());
const IDetector& detector = simulation.detector();
double total_transmission = detector.analyzer().totalTransmission(); double total_transmission = detector.analyzer().totalTransmission();
if (total_transmission <= 0.0) if (total_transmission <= 0.0)
return; return;
...@@ -389,16 +385,15 @@ void setPolarizerAnalyzer(Instrument2DItem* instrument_item, const ISimulation2D ...@@ -389,16 +385,15 @@ void setPolarizerAnalyzer(Instrument2DItem* instrument_item, const ISimulation2D
instrument_item->setAnalyzerTotalTransmission(total_transmission); instrument_item->setAnalyzerTotalTransmission(total_transmission);
} }
void updateDetector(Instrument2DItem* instrument_item, const ISimulation2D& simulation) void updateDetector(Instrument2DItem* instrument_item, const IDetector& detector)
{ {
const IDetector& detector = simulation.detector();
setDetectorGeometry(instrument_item, detector); setDetectorGeometry(instrument_item, detector);
auto* detector_item = instrument_item->detectorItem(); auto* detector_item = instrument_item->detectorItem();
setDetectorResolution(detector_item, detector); setDetectorResolution(detector_item, detector);
setDetectorMasks(detector_item, simulation); setDetectorMasks(detector_item, detector);
setPolarizerAnalyzer(instrument_item, simulation); setPolarizer2(instrument_item, detector);
} }
void setBackground(InstrumentItem* instrument_item, const ISimulation& simulation) void setBackground(InstrumentItem* instrument_item, const ISimulation& simulation)
...@@ -416,7 +411,8 @@ GISASInstrumentItem* createGISASInstrumentItem(const ScatteringSimulation& simul ...@@ -416,7 +411,8 @@ GISASInstrumentItem* createGISASInstrumentItem(const ScatteringSimulation& simul
{ {
auto* result = new GISASInstrumentItem(); auto* result = new GISASInstrumentItem();
setGISASBeamItem(result->beamItem(), simulation); setGISASBeamItem(result->beamItem(), simulation);
updateDetector(result, simulation); result->setPolarization(simulation.beam().polVector());
updateDetector(result, simulation.detector());
return result; return result;
} }
...@@ -425,7 +421,8 @@ OffspecInstrumentItem* createOffspecInstrumentItem(const OffspecSimulation& simu ...@@ -425,7 +421,8 @@ OffspecInstrumentItem* createOffspecInstrumentItem(const OffspecSimulation& simu
{ {
auto* result = new OffspecInstrumentItem(); auto* result = new OffspecInstrumentItem();
setOffspecBeamItem(result->beamItem(), simulation); setOffspecBeamItem(result->beamItem(), simulation);
updateDetector(result, simulation); result->setPolarization(simulation.beam().polVector());
updateDetector(result, simulation.detector());
const double factor = 1. / Units::deg; const double factor = 1. / Units::deg;
result->alphaAxis().setNbins(simulation.beamAxis()->size()); result->alphaAxis().setNbins(simulation.beamAxis()->size());
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment