diff --git a/xgm.py b/xgm.py
index 9b62b14a332b21be5e3a4daf3388657f7c0fd935..2018e6a95a7f96b6076ee531cedaed77cf78f812 100644
--- a/xgm.py
+++ b/xgm.py
@@ -739,14 +739,14 @@ def checkTimApdWindow(data, mcp=1, use_apd=True, intstart=None, intstop=None):
     apdChannels={1:3, 2:2, 3:1, 4:0}
     npulses_max = data['npulses_sase3'].max().values
     tid = data['npulses_sase3'].where(data['npulses_sase3'] == npulses_max,
-                                      drop=True)[0].trainId.values
+                                      drop=True).trainId.values
     if 'MCP{}raw'.format(mcp) not in data:
-        tid, data_from_train = data.attrs['run'].train_from_id(tid)
+        ntid, data_from_train = data.attrs['run'].train_from_id(tid[0])
         trace = data_from_train['SCS_UTC1_ADQ/ADC/1:network']['digitizers.channel_1_'
                                 +'{}.raw.samples'.format(mcpToChannel[mcp])]
         print('no raw data for MCP{}. Loading trace from MCP{}'.format(mcp, mcp))
     else:
-        trace = data['MCP{}raw'.format(mcp)].sel(trainId=tid).T
+        trace = data['MCP{}raw'.format(mcp)].sel({'trainId':tid}).mean(dim='trainId')
     if use_apd:
         pulseStart = data.attrs['run'].get_array(
             'SCS_UTC1_ADQ/ADC/1',