diff --git a/Device/Beam/Beam.cpp b/Device/Beam/Beam.cpp
index c209398408ab731b53d44fe3f1abcb004a37db89..7b3f1cc30b2087271b2fdccb538eac71b0cf5dd3 100644
--- a/Device/Beam/Beam.cpp
+++ b/Device/Beam/Beam.cpp
@@ -153,15 +153,14 @@ R3 Beam::getBlochVector() const
 
 SpinMatrix Beam::getPolarization() const
 {
-    SpinMatrix result;
     double x = m_bloch_vector.x();
     double y = m_bloch_vector.y();
     double z = m_bloch_vector.z();
-    result(0, 0) = (1.0 + z) / 2.0;
-    result(0, 1) = complex_t(x, -y) / 2.0;
-    result(1, 0) = complex_t(x, y) / 2.0;
-    result(1, 1) = (1.0 - z) / 2.0;
-    return result;
+    return MakeSpinMatrix(
+        (1.0 + z) / 2.0,
+        complex_t(x, -y) / 2.0,
+        complex_t(x, y) / 2.0,
+        (1.0 - z) / 2.0);
 }
 
 std::vector<const INode*> Beam::nodeChildren() const