diff --git a/Sim/Export/SimulationToPython.cpp b/Sim/Export/SimulationToPython.cpp
index 574955c704de99b0097201fb15a422d2cfb05fbb..5d132c4c645d5a29a9ac03acc94e98f58dd4964e 100644
--- a/Sim/Export/SimulationToPython.cpp
+++ b/Sim/Export/SimulationToPython.cpp
@@ -250,7 +250,7 @@ std::string defineDetectorPolarizationAnalysis(const ISimulation* simulation)
                << Py::Fmt::printDouble(analyzer_direction.x()) << ", "
                << Py::Fmt::printDouble(analyzer_direction.y()) << ", "
                << Py::Fmt::printDouble(analyzer_direction.z()) << ")\n";
-        result << indent() << "simulation.detector().setAnalyzer(" << direction_name << ", "
+        result << indent() << "simulation.setAnalyzer(" << direction_name << ", "
                << Py::Fmt::printDouble(analyzer_efficiency) << ", "
                << Py::Fmt::printDouble(analyzer_total_transmission) << ")\n";
     }
diff --git a/Tests/Functional/Suite/MakeSimulations.cpp b/Tests/Functional/Suite/MakeSimulations.cpp
index 69c3268d63dac5f444a8a8bcfc8c3c0d09adbf91..cd9c81d26f5b7fb6a4ed2d3a9529b1be72a90b9f 100644
--- a/Tests/Functional/Suite/MakeSimulations.cpp
+++ b/Tests/Functional/Suite/MakeSimulations.cpp
@@ -91,9 +91,9 @@ test::makeSimulation::MiniZPolarizedGISAS(const MultiLayer& sample, const std::s
     const auto zCase = ZPolarizationCases.at(polCase);
     Beam beam(1.0, 1 * angstrom, Direction(0.2 * deg, 0));
     SphericalDetector det(25, -2 * deg, 2 * deg, 25, 0, 2 * deg);
-    det.setAnalyzer(zCase.second, 1., .5);
     auto sim = std::make_unique<ScatteringSimulation>(beam, sample, det);
     sim->setPolarization(zCase.first);
+    sim->setAnalyzer(zCase.second, 1., .5);
     return sim;
 }
 
@@ -113,7 +113,7 @@ std::unique_ptr<ScatteringSimulation> test::makeSimulation::SpinflipGISAS(const
 {
     std::unique_ptr<ScatteringSimulation> result = BasicGISAS(sample);
     result->setPolarization(zplus);
-    result->detector().setAnalyzer(zplus, -1.0, 0.5);
+    result->setAnalyzer(zplus, -1.0, 0.5);
     return result;
 }
 
@@ -206,7 +206,7 @@ std::unique_ptr<ScatteringSimulation> test::makeSimulation::MaxiGISAS00(const Mu
 {
     std::unique_ptr<ScatteringSimulation> result = MaxiGISAS(sample);
     result->setPolarization(zplus);
-    result->detector().setAnalyzer(zplus, 1.0, 0.5);
+    result->setAnalyzer(zplus, 1.0, 0.5);
     return result;
 }
 
@@ -393,8 +393,7 @@ test::makeSimulation::BasicYPolarizedSpecular(const MultiLayer& sample, const st
     const auto yCase = YPolarizationCases.at(polCase);
     auto simulation = BasicSpecular(sample, vsQ);
     simulation->setPolarization(yCase.first);
-    simulation->detector().setAnalyzer(yCase.second, 1.0, 0.5);
-    simulation->setSample(sample);
+    simulation->setAnalyzer(yCase.second, 1.0, 0.5);
     return simulation;
 }