diff --git a/xgm.py b/xgm.py
index 37587213b984e88a34a1dfdbb387336df7e7b206..bac031752f24f06c6f0a714b7baef6ccd71214db 100644
--- a/xgm.py
+++ b/xgm.py
@@ -839,10 +839,11 @@ def checkTimApdWindow(data, mcp=1, use_apd=True, intstart=None, intstop=None):
     tid = data['npulses_sase3'].where(data['npulses_sase3'] == npulses_max,
                                       drop=True).trainId.values
     if 'MCP{}raw'.format(mcp) not in data:
-        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))
+        print('no raw data for MCP{}. Loading average trace from MCP{}'.format(mcp, mcp))
+        trace = data.attrs['run'].get_array(
+                'SCS_UTC1_ADQ/ADC/1:network',
+                'digitizers.channel_1_{}.raw.samples'.format(mcpToChannel[mcp])
+                ).sel({'trainId':tid}).mean(dim='trainId')
     else:
         trace = data['MCP{}raw'.format(mcp)].sel({'trainId':tid}).mean(dim='trainId')
     if use_apd: