diff --git a/src/toolbox_scs/routines/XAS.py b/src/toolbox_scs/routines/XAS.py
index 63c34c206188fc770cd9fa1f635186d62d41ca72..696bda9190a6de5b28afb650d8bdbadd22250030 100644
--- a/src/toolbox_scs/routines/XAS.py
+++ b/src/toolbox_scs/routines/XAS.py
@@ -9,6 +9,7 @@
     Copyright (2017-2019) Loïc Le Guyader <loic.le.guyader@xfel.eu>
 """
 
+from toolbox_scs.base.knife_edge import arrays_to1d
 import numpy as np
 import matplotlib.gridspec as gridspec
 import matplotlib.pyplot as plt
@@ -153,18 +154,8 @@ def xas(nrun, bins=None, Iokey='SCS_SA3', Itkey='MCP3peaks', nrjkey='nrj',
                 muIo: the mean of the Io
                 counts: the number of events in each bin
     """
-    if 'pulseId' in nrun:
-        pId = 'pulseId'
-    else:
-        pId = 'sa3_pId'
-
     Io = nrun[Iokey].values.flatten() + Iooffset
-    It = nrun[Itkey].values.flatten()
-
-    if pId in nrun[nrjkey].dims:
-        nrj = nrun[nrjkey].values.flatten()
-    else:
-        nrj = np.repeat(nrun[nrjkey].values.flatten(), nrun.dims[pId])
+    nrj, It = arrays_to1d(nrun[nrjkey].values, nrun[Itkey].values)
 
     names_list = ['nrj', 'Io', 'It']
     rundata = np.vstack((nrj, Io, It))