diff --git a/src/toolbox_scs/detectors/hrixs.py b/src/toolbox_scs/detectors/hrixs.py
index 6282d85f15c4bd1d9721fc1e1793a48d12a3f825..daf5e84bceef0ef1b0804299f0a4cab0e667e001 100644
--- a/src/toolbox_scs/detectors/hrixs.py
+++ b/src/toolbox_scs/detectors/hrixs.py
@@ -341,9 +341,11 @@ class hRIXS:
         self.CURVE_B, self.CURVE_A, *_ = args
         return self.CURVE_A, self.CURVE_B
 
-    def centroid(self, data, bins=None):
+    def centroid(self, data, bins=None, return_hits=False):
         if bins is None:
             bins = self.BINS
+        hit_x = []
+        hit_y = []
         ret = np.zeros((len(data["hRIXS_det"]), bins))
         for image, r in zip(data["hRIXS_det"], ret):
             c = centroid(
@@ -353,7 +355,13 @@ class hRIXS:
                 curvature=(self.CURVE_A, self.CURVE_B))
             if not len(c):
                 continue
+
             rc = np.array(c)
+            
+            if return_hits:
+                hit_x.append(rc[:,0])
+                hit_y.append(rc[:,1])
+
             hy, hx = np.histogram(
                 rc[:, 0], bins=bins,
                 range=(0, self.Y_RANGE.stop - self.Y_RANGE.start))
@@ -362,7 +370,10 @@ class hRIXS:
         data = data.assign_coords(
             energy=np.linspace(self.Y_RANGE.start, self.Y_RANGE.stop, bins)
             * self.ENERGY_SLOPE + self.ENERGY_INTERCEPT)
-        return data.assign(spectrum=(("trainId", "energy"), ret))
+        if return_hits:
+            return data.assign(xhits=(("trainId"), hit_x), yhits=(("trainId"), hit_y))
+        else:
+            return data.assign(spectrum=(("trainId", "energy"), ret))
 
     def integrate(self, data):
         bins = self.Y_RANGE.stop - self.Y_RANGE.start