diff --git a/src/toolbox_scs/routines/XAS.py b/src/toolbox_scs/routines/XAS.py index e1e564dbc8413cdcd03aec4a50faad36e7021457..87b4c64f795850236a52c86316cbb27f8f042942 100644 --- a/src/toolbox_scs/routines/XAS.py +++ b/src/toolbox_scs/routines/XAS.py @@ -153,15 +153,18 @@ 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: - stacked = nrun.stack(dummy_=['trainId', 'pulseId']) + pId = 'pulseId' else: - stacked = nrun.stack(dummy_=['trainId', 'sa3_pId']) + pId = 'sa3_pId' + + Io = nrun[Iokey].values.flatten() + Iooffset + It = nrun[Itkey].values.flatten() - Io = stacked[Iokey].values + Iooffset - It = stacked[Itkey].values - nrj = stacked[nrjkey].values + if pId in nrun[nrjkey].dims: + nrj = nrun[nrjkey].values.flatten() + else: + nrj = np.repeat(nrun[nrjkey].values.flatten(), nrun.dims[pId]) names_list = ['nrj', 'Io', 'It'] rundata = np.vstack((nrj, Io, It))