Skip to content
Snippets Groups Projects
Commit e962eb30 authored by Laurent Mercadier's avatar Laurent Mercadier
Browse files

Fix cleanXGMdata() when bunch pattern is missing

parent 76960bcb
No related branches found
No related tags found
1 merge request!82Xgm no bunch pattern
...@@ -29,12 +29,13 @@ def cleanXGMdata(data, npulses=None, sase3First=True): ...@@ -29,12 +29,13 @@ def cleanXGMdata(data, npulses=None, sase3First=True):
''' '''
dropList = [] dropList = []
mergeList = [] mergeList = []
dedicated = False load_sa1 = True
if 'sase3' in data: if 'sase3' in data:
if np.all(data['npulses_sase1'].where(data['npulses_sase3'] !=0, if np.all(data['npulses_sase1'].where(data['npulses_sase3'] !=0,
drop=True) == 0): drop=True) == 0):
dedicated = True load_sa1 = False
print('Dedicated trains, skip loading SASE 1 data.') print('Dedicated trains, skip loading SASE 1 data.')
npulses_sa1 = None
#pulse-resolved signals from XGMs #pulse-resolved signals from XGMs
keys = ["XTD10_XGM", "XTD10_SA3", "XTD10_SA1", keys = ["XTD10_XGM", "XTD10_SA3", "XTD10_SA1",
"XTD10_XGM_sigma", "XTD10_SA3_sigma", "XTD10_SA1_sigma", "XTD10_XGM_sigma", "XTD10_SA3_sigma", "XTD10_SA1_sigma",
...@@ -43,26 +44,37 @@ def cleanXGMdata(data, npulses=None, sase3First=True): ...@@ -43,26 +44,37 @@ def cleanXGMdata(data, npulses=None, sase3First=True):
if ("SCS_SA3" not in data and "SCS_XGM" in data): if ("SCS_SA3" not in data and "SCS_XGM" in data):
#no SASE-resolved arrays available #no SASE-resolved arrays available
if not 'sase3' in data:
npulses_xgm = data['SCS_XGM'].where(data['SCS_XGM'], drop=True).shape[1]
npulses_sa1 = npulses_xgm - npulses
if npulses_sa1<=0:
load_sa1 = False
sa3 = selectSASEinXGM(data, xgm='SCS_XGM', sase='sase3', npulses=npulses, sa3 = selectSASEinXGM(data, xgm='SCS_XGM', sase='sase3', npulses=npulses,
sase3First=sase3First).rename({'XGMbunchId':'sa3_pId'}) sase3First=sase3First).rename({'XGMbunchId':'sa3_pId'}).rename("SCS_SA3")
mergeList.append(sa3) mergeList.append(sa3)
if not dedicated: if load_sa1:
sa1 = selectSASEinXGM(data, xgm='SCS_XGM', sase='sase1', sa1 = selectSASEinXGM(data, xgm='SCS_XGM', sase='sase1',
npulses=npulses, sase3First=sase3First).rename( npulses=npulses_sa1, sase3First=sase3First).rename(
{'XGMbunchId':'sa1_pId'}) {'XGMbunchId':'sa1_pId'}).rename("SCS_SA1")
mergeList.append(sa1) mergeList.append(sa1)
dropList.append('SCS_XGM') dropList.append('SCS_XGM')
keys.remove('SCS_XGM') keys.remove('SCS_XGM')
load_sa1 = True
if ("XTD10_SA3" not in data and "XTD10_XGM" in data): if ("XTD10_SA3" not in data and "XTD10_XGM" in data):
#no SASE-resolved arrays available #no SASE-resolved arrays available
if not 'sase3' in data:
npulses_xgm = data['XTD10_XGM'].where(data['XTD10_XGM'], drop=True).shape[1]
npulses_sa1 = npulses_xgm - npulses
if npulses_sa1<=0:
load_sa1 = False
sa3 = selectSASEinXGM(data, xgm='XTD10_XGM', sase='sase3', npulses=npulses, sa3 = selectSASEinXGM(data, xgm='XTD10_XGM', sase='sase3', npulses=npulses,
sase3First=sase3First).rename({'XGMbunchId':'sa3_pId'}) sase3First=sase3First).rename({'XGMbunchId':'sa3_pId'}).rename("XTD10_SA3")
mergeList.append(sa3) mergeList.append(sa3)
if not dedicated: if load_sa1:
sa1 = selectSASEinXGM(data, xgm='XTD10_XGM', sase='sase1', sa1 = selectSASEinXGM(data, xgm='XTD10_XGM', sase='sase1',
npulses=npulses, sase3First=sase3First).rename( npulses=npulses_sa1, sase3First=sase3First).rename(
{'XGMbunchId':'sa1_pId'}) {'XGMbunchId':'sa1_pId'}).rename("XTD10_SA1")
mergeList.append(sa1) mergeList.append(sa1)
dropList.append('XTD10_XGM') dropList.append('XTD10_XGM')
keys.remove('XTD10_XGM') keys.remove('XTD10_XGM')
...@@ -74,7 +86,7 @@ def cleanXGMdata(data, npulses=None, sase3First=True): ...@@ -74,7 +86,7 @@ def cleanXGMdata(data, npulses=None, sase3First=True):
sase = 'sa3_' sase = 'sa3_'
elif "sa1" in key.lower(): elif "sa1" in key.lower():
sase = 'sa1_' sase = 'sa1_'
if dedicated: if not load_sa1:
dropList.append(key) dropList.append(key)
continue continue
else: else:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment