diff --git a/xgm.py b/xgm.py index 5f8b0d12fc98b18d8d57197afd411bcd6d9042a8..195550c916cdbcfb40371dceeb7e6507539434eb 100644 --- a/xgm.py +++ b/xgm.py @@ -788,7 +788,7 @@ def checkTimApdWindow(data, mcp=1, use_apd=True, intstart=None, intstop=None): def matchXgmTimPulseId(data, use_apd=True, intstart=None, intstop=None, bkgstart=None, bkgstop=None, t_offset=None, - npulses=None): + npulses=None, sase3First=True, stride=1): ''' Function to match XGM pulse Id with TIM pulse Id. Inputs: data: xarray Dataset containing XGM and TIM data @@ -800,18 +800,24 @@ def matchXgmTimPulseId(data, use_apd=True, intstart=None, intstop=None, bkgstart: trace index of background start bkgstop: trace index of background stop t_offset: index separation between two pulses - npulses: number of pulses to compute + npulses: number of pulses to compute. Needed if no bunch + pattern info is available + sase3First: bool, needed if bunch pattern is missing. + stride: int, used to select pulses in the TIM APD array if + no bunch pattern info is available. Output: xr DataSet containing XGM and TIM signals with the share dimension 'pId'. Raw traces, raw XGM and raw APD are dropped. ''' - res = selectSASEinXGM(data, xgm='SCS_XGM').rename({'XGMbunchId':'pId'}).rename('SCS_XGM') + res = selectSASEinXGM(data, xgm='SCS_XGM', npulses=npulses, + sase3First=sase3First).rename({'XGMbunchId':'pId'}).rename('SCS_XGM') dropList = ['SCS_XGM'] mergeList = [res] if 'SA3_XGM' in data: - res2 = selectSASEinXGM(data, xgm='SA3_XGM').rename({'XGMbunchId':'pId'}).rename('SA3_XGM') + res2 = selectSASEinXGM(data, xgm='SA3_XGM', npulses=npulses, + sase3First=sase3First).rename({'XGMbunchId':'pId'}).rename('SA3_XGM') dropList.append('SA3_XGM') mergeList.append(res2) @@ -819,8 +825,8 @@ def matchXgmTimPulseId(data, use_apd=True, intstart=None, intstop=None, 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, intstop=intstop,bkgstart=bkgstart, bkgstop=bkgstop, - t_offset=t_offset, - npulses=npulses).rename('MCP{}apd'.format(mcp)) + t_offset=t_offset, npulses=npulses, + stride=stride).rename('MCP{}apd'.format(mcp)) if use_apd: MCPapd = MCPapd.rename({'apdId':'pId'}) else: