Loading reduce_PG3_live_post_proc.py +104 −76 Original line number Diff line number Diff line Loading @@ -73,6 +73,7 @@ else: strip_v_bt = input_config["Params"]["PostProc"]["StripVPeaksBkgType"] # <----- Config: Live post processing parameters try: accum_prtc = simpleapi.mtd[str(input)].run().getProtonCharge() if accum_prtc > 0.: mantid.logger.information(f"Accumulated proton charge: {accum_prtc}") Loading @@ -81,18 +82,19 @@ else: OutputWorkspace=output, RecalculatePCharge=True ) except: raise Exception("Failed in proton charge normalization.") simpleapi.LoadNexus( Filename="/SNS/PG3/shared/livereduce/tmp/proc_tmp.nxs", OutputWorkspace="pproc_in" ) try: simpleapi.PDLoadCharacterizations( Filename=char_backgrounds + ',' + char_inplane, OutputWorkspace='characterizations' ) simpleapi.PDDetermineCharacterizations( InputWorkspace="pproc_in", Characterizations='characterizations', Loading @@ -101,8 +103,10 @@ else: manager = mantid.PropertyManagerDataService.retrieve( '__pd_reduction_properties' ) mantid.logger.information("In post processing ...") except: raise Exception("Failed in characterization determination.") mantid.logger.information("In post processing ...") def getRunId(manager, key): value = manager[key].value[0] Loading @@ -111,7 +115,6 @@ else: else: return 'PG3_' + str(value) def smooth(wksp): simpleapi.ConvertUnits(InputWorkspace=wksp, OutputWorkspace=wksp, Target='TOF', EMode='Elastic') Loading @@ -124,7 +127,6 @@ else: simpleapi.ConvertUnits(InputWorkspace=wksp, OutputWorkspace=wksp, Target='dSpacing', EMode='Elastic') processingParams = {'CalibrationWorkspace': 'PG3_cal', 'GroupingWorkspace': 'PG3_group', 'MaskWorkspace': 'PG3_mask', Loading Loading @@ -171,22 +173,30 @@ else: ) if can is not None: try: simpleapi.RebinToWorkspace( WorkspaceToRebin=can, WorkspaceToMatch=output, OutputWorkspace=can ) except: # noqa raise Exception("Failed in rebinning.") simpleapi.SaveNexus( InputWorkspace=can, Filename=f"/SNS/PG3/shared/livereduce/tmp/can_{can}_final.nxs") simpleapi.SaveNexus( InputWorkspace=output, Filename=f"/SNS/PG3/shared/livereduce/tmp/live_check.nxs") try: simpleapi.Minus( LHSWorkspace=output, RHSWorkspace=can, OutputWorkspace=output ) except: # noqa raise Exception("Failed in background subtraction.") van = getRunId(manager, 'vanadium') if van is not None and not simpleapi.mtd.doesExist(van): Loading Loading @@ -240,6 +250,8 @@ else: ) mantid.logger.information("subtracting vanadium background") try: simpleapi.RebinToWorkspace( WorkspaceToRebin=vanback, WorkspaceToMatch=van, Loading @@ -251,9 +263,12 @@ else: OutputWorkspace=van, ClearRHSWorkspace=True ) except: # noqa raise Exception("Failed in bkg subtraction for vanadium.") simpleapi.DeleteWorkspace(Workspace=vanback) try: simpleapi.ConvertUnits( InputWorkspace=van, OutputWorkspace=van, Loading @@ -268,21 +283,31 @@ else: PeakPositionTolerance=strip_v_pp_tol ) smooth(van) except: # noqa raise Exception("Failed in preparing vanadium normalization.") if van is not None: try: simpleapi.RebinToWorkspace( WorkspaceToRebin=van, WorkspaceToMatch=output, OutputWorkspace=van ) except: # noqa raise Exception("Failed in rebinning vanadium.") simpleapi.SaveNexus( InputWorkspace=van, Filename=f"/SNS/PG3/shared/livereduce/tmp/van_{van}_final.nxs") try: simpleapi.Divide( LHSWorkspace=output, RHSWorkspace=van, OutputWorkspace=output ) except: # noqa raise Exception("Failed in vanadium normalization.") div = simpleapi.SavePlot1D( InputWorkspace=output, Loading @@ -297,7 +322,10 @@ else: except ImportError: from finddata import publish_plot try: request = publish_plot('PG3', runNumber, files={'file': div}) except: # noqa raise Exception("Failed in data plot publishing.") mantid.logger.information("post returned %d" % request.status_code) mantid.logger.information("resulting document:") Loading reduce_PG3_live_proc.py +53 −44 Original line number Diff line number Diff line Loading @@ -74,10 +74,13 @@ else: mantid.logger.information('Number events = %d' % input.getNumberEvents()) try: simpleapi.PDLoadCharacterizations( Filename=char_backgrounds + ',' + char_inplane, OutputWorkspace='characterizations' ) except: # noqa raise Exception("Characterization determination failed.") simpleapi.SaveNexus( InputWorkspace=input, Loading @@ -88,6 +91,7 @@ else: OutputWorkspace="proc_in" ) try: simpleapi.PDDetermineCharacterizations( InputWorkspace="proc_in", Characterizations='characterizations', Loading @@ -96,7 +100,10 @@ else: manager = mantid.PropertyManagerDataService.retrieve( '__pd_reduction_properties' ) except: # noqa raise Exception("Characterization determination failed.") try: simpleapi.Rebin(InputWorkspace=input, OutputWorkspace=input, Params=(manager['tof_min'].value, Loading Loading @@ -126,3 +133,5 @@ else: InputWorkspace=output, OutputWorkspace=output, Params=f"{d_min_v + 0.01}, 0.001, {d_max_v}") except: raise Exception("Failed in align and focus.") Loading
reduce_PG3_live_post_proc.py +104 −76 Original line number Diff line number Diff line Loading @@ -73,6 +73,7 @@ else: strip_v_bt = input_config["Params"]["PostProc"]["StripVPeaksBkgType"] # <----- Config: Live post processing parameters try: accum_prtc = simpleapi.mtd[str(input)].run().getProtonCharge() if accum_prtc > 0.: mantid.logger.information(f"Accumulated proton charge: {accum_prtc}") Loading @@ -81,18 +82,19 @@ else: OutputWorkspace=output, RecalculatePCharge=True ) except: raise Exception("Failed in proton charge normalization.") simpleapi.LoadNexus( Filename="/SNS/PG3/shared/livereduce/tmp/proc_tmp.nxs", OutputWorkspace="pproc_in" ) try: simpleapi.PDLoadCharacterizations( Filename=char_backgrounds + ',' + char_inplane, OutputWorkspace='characterizations' ) simpleapi.PDDetermineCharacterizations( InputWorkspace="pproc_in", Characterizations='characterizations', Loading @@ -101,8 +103,10 @@ else: manager = mantid.PropertyManagerDataService.retrieve( '__pd_reduction_properties' ) mantid.logger.information("In post processing ...") except: raise Exception("Failed in characterization determination.") mantid.logger.information("In post processing ...") def getRunId(manager, key): value = manager[key].value[0] Loading @@ -111,7 +115,6 @@ else: else: return 'PG3_' + str(value) def smooth(wksp): simpleapi.ConvertUnits(InputWorkspace=wksp, OutputWorkspace=wksp, Target='TOF', EMode='Elastic') Loading @@ -124,7 +127,6 @@ else: simpleapi.ConvertUnits(InputWorkspace=wksp, OutputWorkspace=wksp, Target='dSpacing', EMode='Elastic') processingParams = {'CalibrationWorkspace': 'PG3_cal', 'GroupingWorkspace': 'PG3_group', 'MaskWorkspace': 'PG3_mask', Loading Loading @@ -171,22 +173,30 @@ else: ) if can is not None: try: simpleapi.RebinToWorkspace( WorkspaceToRebin=can, WorkspaceToMatch=output, OutputWorkspace=can ) except: # noqa raise Exception("Failed in rebinning.") simpleapi.SaveNexus( InputWorkspace=can, Filename=f"/SNS/PG3/shared/livereduce/tmp/can_{can}_final.nxs") simpleapi.SaveNexus( InputWorkspace=output, Filename=f"/SNS/PG3/shared/livereduce/tmp/live_check.nxs") try: simpleapi.Minus( LHSWorkspace=output, RHSWorkspace=can, OutputWorkspace=output ) except: # noqa raise Exception("Failed in background subtraction.") van = getRunId(manager, 'vanadium') if van is not None and not simpleapi.mtd.doesExist(van): Loading Loading @@ -240,6 +250,8 @@ else: ) mantid.logger.information("subtracting vanadium background") try: simpleapi.RebinToWorkspace( WorkspaceToRebin=vanback, WorkspaceToMatch=van, Loading @@ -251,9 +263,12 @@ else: OutputWorkspace=van, ClearRHSWorkspace=True ) except: # noqa raise Exception("Failed in bkg subtraction for vanadium.") simpleapi.DeleteWorkspace(Workspace=vanback) try: simpleapi.ConvertUnits( InputWorkspace=van, OutputWorkspace=van, Loading @@ -268,21 +283,31 @@ else: PeakPositionTolerance=strip_v_pp_tol ) smooth(van) except: # noqa raise Exception("Failed in preparing vanadium normalization.") if van is not None: try: simpleapi.RebinToWorkspace( WorkspaceToRebin=van, WorkspaceToMatch=output, OutputWorkspace=van ) except: # noqa raise Exception("Failed in rebinning vanadium.") simpleapi.SaveNexus( InputWorkspace=van, Filename=f"/SNS/PG3/shared/livereduce/tmp/van_{van}_final.nxs") try: simpleapi.Divide( LHSWorkspace=output, RHSWorkspace=van, OutputWorkspace=output ) except: # noqa raise Exception("Failed in vanadium normalization.") div = simpleapi.SavePlot1D( InputWorkspace=output, Loading @@ -297,7 +322,10 @@ else: except ImportError: from finddata import publish_plot try: request = publish_plot('PG3', runNumber, files={'file': div}) except: # noqa raise Exception("Failed in data plot publishing.") mantid.logger.information("post returned %d" % request.status_code) mantid.logger.information("resulting document:") Loading
reduce_PG3_live_proc.py +53 −44 Original line number Diff line number Diff line Loading @@ -74,10 +74,13 @@ else: mantid.logger.information('Number events = %d' % input.getNumberEvents()) try: simpleapi.PDLoadCharacterizations( Filename=char_backgrounds + ',' + char_inplane, OutputWorkspace='characterizations' ) except: # noqa raise Exception("Characterization determination failed.") simpleapi.SaveNexus( InputWorkspace=input, Loading @@ -88,6 +91,7 @@ else: OutputWorkspace="proc_in" ) try: simpleapi.PDDetermineCharacterizations( InputWorkspace="proc_in", Characterizations='characterizations', Loading @@ -96,7 +100,10 @@ else: manager = mantid.PropertyManagerDataService.retrieve( '__pd_reduction_properties' ) except: # noqa raise Exception("Characterization determination failed.") try: simpleapi.Rebin(InputWorkspace=input, OutputWorkspace=input, Params=(manager['tof_min'].value, Loading Loading @@ -126,3 +133,5 @@ else: InputWorkspace=output, OutputWorkspace=output, Params=f"{d_min_v + 0.01}, 0.001, {d_max_v}") except: raise Exception("Failed in align and focus.")