From 468d9f433db62ca6adb18cc3afef6a4e8ea56ab5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lo=C3=AFc=20Le=20Guyader?= <loic.le.guyader@xfel.eu>
Date: Tue, 30 Apr 2019 09:08:21 +0200
Subject: [PATCH] Fix crash of matchXgmTimPulseId when SA3_XGM was not loaded

---
 xgm.py | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/xgm.py b/xgm.py
index 5d4e7d9..78bd136 100644
--- a/xgm.py
+++ b/xgm.py
@@ -771,9 +771,14 @@ def matchXgmTimPulseId(data, use_apd=True, intstart=None, intstop=None,
             dimension 'pId'. Raw traces, raw XGM and raw APD are dropped.
     '''
     res = selectSASEinXGM(data, xgm='SCS_XGM').rename({'XGMbunchId':'pId'}).rename('SCS_XGM')
-    res2 = selectSASEinXGM(data, xgm='SA3_XGM').rename({'XGMbunchId':'pId'}).rename('SA3_XGM')
-    dropList = ['SCS_XGM','SA3_XGM']
-    mergeList = [res, res2]
+    dropList = ['SCS_XGM']
+    mergeList = [res]
+
+    if 'SA3_XGM' in data: 
+        res2 = selectSASEinXGM(data, xgm='SA3_XGM').rename({'XGMbunchId':'pId'}).rename('SA3_XGM')
+        dropList.append('SA3_XGM')
+        mergeList.append(res2)
+
     for mcp in range(1,5):
         if 'MCP{}apd'.format(mcp) in data or 'MCP{}raw'.format(mcp) in data:
             MCPapd = getTIMapd(data, mcp=mcp, use_apd=use_apd, intstart=intstart,
-- 
GitLab