diff --git a/GUI/Models/DetectorItems.cpp b/GUI/Models/DetectorItems.cpp
index fb29855af38b70020fda08880898d2caa37afcdf..7d2cef6973adfef1726f2c369cc7238e8af8ab78 100644
--- a/GUI/Models/DetectorItems.cpp
+++ b/GUI/Models/DetectorItems.cpp
@@ -103,6 +103,16 @@ SessionItem* DetectorItem::resolutionFunctionItem() const
     return getItem(P_RESOLUTION_FUNCTION);
 }
 
+void DetectorItem::setAnalyserDirection(const kvector_t& direction)
+{
+    item<VectorItem>(P_ANALYZER_DIRECTION)->setVector(direction);
+}
+
+SessionItem* DetectorItem::analyserDirectionItem() const
+{
+    return getItem(P_ANALYZER_DIRECTION);
+}
+
 void DetectorItem::register_resolution_function()
 {
     auto item = addGroupProperty(P_RESOLUTION_FUNCTION, "Resolution function group");
diff --git a/GUI/Models/DetectorItems.h b/GUI/Models/DetectorItems.h
index 7f3f858d841f96dc051b807219c923ebd446ae4f..6c469b819737c22df7bf8374445e95fa5d429718 100644
--- a/GUI/Models/DetectorItems.h
+++ b/GUI/Models/DetectorItems.h
@@ -16,6 +16,7 @@
 #define BORNAGAIN_GUI_MODELS_DETECTORITEMS_H
 
 #include "GUI/Models/SessionItem.h"
+#include "Base/Vector/Vectors3D.h"
 
 class MaskContainerItem;
 class IDetector2D;
@@ -26,9 +27,9 @@ class BA_CORE_API_ DetectorItem : public SessionItem {
 private:
     static const QString T_MASKS;
     static const QString P_RESOLUTION_FUNCTION;
+    static const QString P_ANALYZER_DIRECTION;
 
 public:
-    static const QString P_ANALYZER_DIRECTION;
     static const QString P_ANALYZER_EFFICIENCY;
     static const QString P_ANALYZER_TOTAL_TRANSMISSION;
     explicit DetectorItem(const QString& modelType);
@@ -60,6 +61,9 @@ public:
     SessionItem* setResolutionFunctionType(const QString& model_type);
     SessionItem* resolutionFunctionItem() const;
 
+    void setAnalyserDirection(const kvector_t& directorion);
+    SessionItem* analyserDirectionItem() const;
+
 protected:
     void register_resolution_function();
     void update_resolution_function_tooltips();
diff --git a/GUI/Models/TransformFromDomain.cpp b/GUI/Models/TransformFromDomain.cpp
index da51896711a59f73f31debd9ccf18d0b0081c25e..af9b29ef6a4f0d34e5c0223889f86b3ce1bfd303 100644
--- a/GUI/Models/TransformFromDomain.cpp
+++ b/GUI/Models/TransformFromDomain.cpp
@@ -350,7 +350,7 @@ void TransformFromDomain::setDetectorProperties(DetectorItem* detector_item,
 
     kvector_t analyzer_dir = detector.detectionProperties().analyzerDirection();
     double efficiency = detector.detectionProperties().analyzerEfficiency();
-    detector_item->item<VectorItem>(DetectorItem::P_ANALYZER_DIRECTION)->setVector(analyzer_dir);
+    detector_item->setAnalyserDirection(analyzer_dir);
     detector_item->setItemValue(DetectorItem::P_ANALYZER_EFFICIENCY, efficiency);
     detector_item->setItemValue(DetectorItem::P_ANALYZER_TOTAL_TRANSMISSION, total_transmission);
 }
diff --git a/GUI/Views/InstrumentWidgets/PolarizationAnalysisEditor.cpp b/GUI/Views/InstrumentWidgets/PolarizationAnalysisEditor.cpp
index 16b40e0909fca630d865c3acd3a256b94710b34e..c0d4d800727a0c502c23eb1a826c08a457e57300 100644
--- a/GUI/Views/InstrumentWidgets/PolarizationAnalysisEditor.cpp
+++ b/GUI/Views/InstrumentWidgets/PolarizationAnalysisEditor.cpp
@@ -98,7 +98,7 @@ void PolarizationAnalysisEditor::updateAnalyserEditor()
 {
     m_analyserDirectionEditor->clearEditor();
     m_analyserPropertiesEditor->clearEditor();
-    m_analyserDirectionEditor->addItem(detectorItem()->getItem(DetectorItem::P_ANALYZER_DIRECTION));
+    m_analyserDirectionEditor->addItem(detectorItem()->analyserDirectionItem());
     m_analyserPropertiesEditor->addItem(
         detectorItem()->getItem(DetectorItem::P_ANALYZER_EFFICIENCY));
     m_analyserPropertiesEditor->addItem(