From 03cdf77a878ec5a33080cfdfb7e2365a19c78e6a Mon Sep 17 00:00:00 2001
From: "Joachim Wuttke (o)" <j.wuttke@fz-juelich.de>
Date: Mon, 2 Aug 2021 17:12:33 +0200
Subject: [PATCH] use setPolFilters almost everywhere

---
 Examples/fit55_SpecularIntro/PolarizedSpinAsymmetryFit.py | 3 +--
 Examples/scatter2d/MagneticSpheres.py                     | 7 ++++---
 Examples/varia/BasicPolarizedReflectometry.py             | 3 +--
 Examples/varia/PolarizedNonperfectAnalyzerPolarizer.py    | 5 ++---
 Examples/varia/PolarizedSpinAsymmetry.py                  | 3 +--
 Examples/varia/PolarizedSpinFlip.py                       | 4 +---
 auto/Wrap/doxygenBase.i                                   | 6 +++---
 auto/Wrap/libBornAgainDevice_wrap.cpp                     | 2 +-
 8 files changed, 14 insertions(+), 19 deletions(-)

diff --git a/Examples/fit55_SpecularIntro/PolarizedSpinAsymmetryFit.py b/Examples/fit55_SpecularIntro/PolarizedSpinAsymmetryFit.py
index 7a97e3dd79d..eaa59e7dc96 100755
--- a/Examples/fit55_SpecularIntro/PolarizedSpinAsymmetryFit.py
+++ b/Examples/fit55_SpecularIntro/PolarizedSpinAsymmetryFit.py
@@ -81,8 +81,7 @@ def get_simulation(q_axis, parameters, polarizer_dir, analyzer_dir):
     distr = ba.RangedDistributionGaussian(n_samples, n_sig)
     scan.setAbsoluteQResolution(distr, parameters["q_res"])
 
-    simulation.beam().setPolarization(polarizer_dir)
-    simulation.detector().setAnalyzer(analyzer_dir, 1, 0.5)
+    simulation.instrument().setPolFilters(polarizer_dir, analyzer_dir, 1, 0.5)
 
     simulation.setScan(scan)
     return simulation
diff --git a/Examples/scatter2d/MagneticSpheres.py b/Examples/scatter2d/MagneticSpheres.py
index 5d43278af35..013cb38c296 100755
--- a/Examples/scatter2d/MagneticSpheres.py
+++ b/Examples/scatter2d/MagneticSpheres.py
@@ -48,12 +48,13 @@ def get_sample():
 
 def get_simulation(sample):
     beam = ba.Beam(1e12, 0.1*nm, ba.Direction(0.5*deg, 0))
-    polarizer_dir = kvector_t(0, 0, 1)
-    beam.setPolarization(polarizer_dir)
     detector = ba.SphericalDetector(200, 6*deg, 0, 3*deg)
     simulation = ba.GISASSimulation(beam, sample, detector)
+
+    polarizer_dir = kvector_t(0, 0, 1)
     analyzer_dir = kvector_t(0, 0, -1)
-    simulation.detector().setAnalyzer(analyzer_dir, 1, 0.5)
+    simulation.instrument().setPolFilters(polarizer_dir, analyzer_dir, 1, 0.5)
+
     return simulation
 
 
diff --git a/Examples/varia/BasicPolarizedReflectometry.py b/Examples/varia/BasicPolarizedReflectometry.py
index 6e9c2787272..fdb0e248f16 100755
--- a/Examples/varia/BasicPolarizedReflectometry.py
+++ b/Examples/varia/BasicPolarizedReflectometry.py
@@ -56,8 +56,7 @@ def run_simulation(polarizer_dir=ba.kvector_t(0, 1, 0),
     simulation = get_simulation(sample)
 
     # adding polarization and analyzer operator
-    simulation.beam().setPolarization(polarizer_dir)
-    simulation.detector().setAnalyzer(analyzer_dir, 1, 0.5)
+    simulation.instrument().setPolFilters(polarizer_dir, analyzer_dir, 1, 0.5)
 
     simulation.runSimulation()
     return simulation.result()
diff --git a/Examples/varia/PolarizedNonperfectAnalyzerPolarizer.py b/Examples/varia/PolarizedNonperfectAnalyzerPolarizer.py
index be01dcda29d..9be3c67dfcd 100755
--- a/Examples/varia/PolarizedNonperfectAnalyzerPolarizer.py
+++ b/Examples/varia/PolarizedNonperfectAnalyzerPolarizer.py
@@ -81,9 +81,8 @@ def run_simulation(*,
     sample = get_sample()
     simulation = get_simulation(sample)
 
-    simulation.beam().setPolarization(polarizer_dir*polarizer_efficiency)
-    simulation.detector().setAnalyzer(analyzer_dir,
-                                                analyzer_efficiency, 0.5)
+    simulation.instrument().setPolFilters(polarizer_dir*polarizer_efficiency, analyzer_dir,
+                                          analyzer_efficiency, 0.5)
 
     simulation.setBackground(ba.ConstantBackground(1e-7))
 
diff --git a/Examples/varia/PolarizedSpinAsymmetry.py b/Examples/varia/PolarizedSpinAsymmetry.py
index 1ad373cc870..8168ffd12a4 100755
--- a/Examples/varia/PolarizedSpinAsymmetry.py
+++ b/Examples/varia/PolarizedSpinAsymmetry.py
@@ -80,8 +80,7 @@ def get_simulation(q_axis, parameters, polarizer_dir, analyzer_dir):
     distr = ba.RangedDistributionGaussian(n_samples, n_sig)
     scan.setAbsoluteQResolution(distr, parameters["q_res"])
 
-    simulation.beam().setPolarization(polarizer_dir)
-    simulation.detector().setAnalyzer(analyzer_dir, 1, 0.5)
+    simulation.instrument().setPolFilters(polarizer_dir, analyzer_dir, 1, 0.5)
 
     simulation.setScan(scan)
     return simulation
diff --git a/Examples/varia/PolarizedSpinFlip.py b/Examples/varia/PolarizedSpinFlip.py
index 32e58dfbdb2..29b936156a7 100755
--- a/Examples/varia/PolarizedSpinFlip.py
+++ b/Examples/varia/PolarizedSpinFlip.py
@@ -55,9 +55,7 @@ def run_simulation(polarizer_dir=ba.kvector_t(0, 1, 0),
     sample = get_sample()
     simulation = get_simulation(sample)
 
-    # adding polarization and analyzer operator
-    simulation.beam().setPolarization(polarizer_dir)
-    simulation.detector().setAnalyzer(analyzer_dir, 1, 0.5)
+    simulation.instrument().setPolFilters(polarizer_dir, analyzer_dir, 1, 0.5)
 
     simulation.runSimulation()
     return simulation.result()
diff --git a/auto/Wrap/doxygenBase.i b/auto/Wrap/doxygenBase.i
index a191df24154..1bb99222f8a 100644
--- a/auto/Wrap/doxygenBase.i
+++ b/auto/Wrap/doxygenBase.i
@@ -876,7 +876,7 @@ Clips this axis to the given values.
 
 Convenience class for handling polarization density matrix and polarization analyzer operator
 
-C++ includes: PolarizerPair.h
+C++ includes: PolMatrices.h
 ";
 
 %feature("docstring")  PolMatrices::PolMatrices "PolMatrices::PolMatrices()
@@ -1772,10 +1772,10 @@ Checks if value is contained in bin: value in [m_lower, m_upper)
 // File: IElement_8h.xml
 
 
-// File: PolarizerPair_8cpp.xml
+// File: PolMatrices_8cpp.xml
 
 
-// File: PolarizerPair_8h.xml
+// File: PolMatrices_8h.xml
 
 
 // File: Bessel_8cpp.xml
diff --git a/auto/Wrap/libBornAgainDevice_wrap.cpp b/auto/Wrap/libBornAgainDevice_wrap.cpp
index 6d21f9740f1..5855aa29240 100644
--- a/auto/Wrap/libBornAgainDevice_wrap.cpp
+++ b/auto/Wrap/libBornAgainDevice_wrap.cpp
@@ -6704,7 +6704,7 @@ SWIGINTERN std::vector< std::pair< double,double > >::iterator std_vector_Sl_std
 SWIGINTERN std::vector< std::pair< double,double > >::iterator std_vector_Sl_std_pair_Sl_double_Sc_double_Sg__Sg__insert__SWIG_0(std::vector< std::pair< double,double > > *self,std::vector< std::pair< double,double > >::iterator pos,std::vector< std::pair< double,double > >::value_type const &x){ return self->insert(pos, x); }
 SWIGINTERN void std_vector_Sl_std_pair_Sl_double_Sc_double_Sg__Sg__insert__SWIG_1(std::vector< std::pair< double,double > > *self,std::vector< std::pair< double,double > >::iterator pos,std::vector< std::pair< double,double > >::size_type n,std::vector< std::pair< double,double > >::value_type const &x){ self->insert(pos, n, x); }
 
-#include "Base/Element/PolarizerPair.h"
+#include "Base/Element/PolMatrices.h"
 #include "Param/Distrib/ParameterDistribution.h"
 #include "Device/Beam/Beam.h"
 #include "Device/Beam/FootprintGauss.h"
-- 
GitLab