diff --git a/lisainstrument/containers.py b/lisainstrument/containers.py
index bd08ee24481252c82d8f812e5c4c5f897b184670..434a14ee5abc42a5eda194039ba0a68e4b3caada 100644
--- a/lisainstrument/containers.py
+++ b/lisainstrument/containers.py
@@ -93,6 +93,13 @@ class ForEachObject(abc.ABC):
         """Return dictionary items."""
         return self.dict.items()
 
+    def __eq__(self, other):
+        if isinstance(other, self.__class__):
+            return self.dict == other.dict
+        if isinstance(other, dict):
+            return self.dict == other
+        return numpy.all([self[index] == other for index in self.indices()])
+
     def __repr__(self):
         return repr(self.dict)
 
diff --git a/lisainstrument/instrument.py b/lisainstrument/instrument.py
index d41cb06856cad2c6c7e2478cf83ae24deacf1975..29174445bad4738912de829cc998f1f8870353ad 100644
--- a/lisainstrument/instrument.py
+++ b/lisainstrument/instrument.py
@@ -762,17 +762,19 @@ class Instrument:
             )
 
         ## Clock noise
-        # TODO: better optimize when clock_freqlindrifts and clock_freqquaddrifts == 0
 
         logging.info("Generating clock noise time series")
-        t = self.physics_t
-        self.clock_noise_offsets = ForEachSC(lambda sc:
-            self.clock_freqoffsets[sc] + self.clock_freqlindrifts[sc] * t + self.clock_freqquaddrifts[sc] * t**2
-        )
 
-        for sc in self.SCS:
-            if self.physics_size and numpy.all(self.clock_noise_offsets[sc] == self.clock_noise_offsets[sc][0]):
-                self.clock_noise_offsets[sc] = self.clock_noise_offsets[sc][0]
+        if self.clock_freqlindrifts == self.clock_freqquaddrifts == 0:
+            # Optimize to use a scalar if we only have a constant frequency offset
+            self.clock_noise_offsets = ForEachSC(lambda sc:
+                self.clock_freqoffsets[sc]
+            )
+        else:
+            t = self.physics_t
+            self.clock_noise_offsets = ForEachSC(lambda sc:
+                self.clock_freqoffsets[sc] + self.clock_freqlindrifts[sc] * t + self.clock_freqquaddrifts[sc] * t**2
+            )
 
 
         logging.info("Generating clock noise fluctuations time series")