Ticket #8656 (closed: fixed)

Opened 7 years ago

Last modified 5 years ago

Use ProcessWorkspaceIndexes algorithm

Reported by: Owen Arnold Owned by: Owen Arnold
Priority: critical Milestone: Release 3.1
Component: Reflectometry Keywords:
Cc: Blocked By: #8644
Blocking: #8645 Tester: Karl Palmen

Description

Ticket #8644 provides a neat solution to some of the internals of:

  • CreateTransmissionWorkspace
  • CreateTransmissionWorkspaceAuto
  • ReflectometryReductionOne
  • ReflectometryReductionOneAuto

All of which accept a WorkspaceIndexList. Hooking ProcessWorkspaceIndexes into this property will give much more power because users can effectively dynamically select grouping of detectors. It will also work much better for Multidetector runs processed via ReflectometryReductionOne because the RegionOfInterest will not need to be explicitly specified.

Attachments

benchmark.py (1.7 KB) - added by Owen Arnold 7 years ago.
reproduce_benchmark.py (2.7 KB) - added by Owen Arnold 7 years ago.

Change History

comment:1 Changed 7 years ago by Owen Arnold

  • Status changed from new to inprogress

refs #8656. Replace WorkspaceIndexList usage

Changeset: 0f441620d4261bb0cc1a3aa4c5d5b95b7780c9cb

comment:2 Changed 7 years ago by Owen Arnold

refs #8656. Remove region of interest.

The region of interest can now be fully provided via the ProcessingInstructions because the idea is just to sum the spectra across the range provided. The region of the direct beam is now optional since the user may not want to perform this normalisation. The multi detector and point detector processing now only differ by one optional step. This means that we can now perform transmission corrections on multi detector runs, which we couldn't do before.

Changeset: 5a93f2f5d066685acade70f13eee9ef84549eb76

comment:3 Changed 7 years ago by Owen Arnold

Last edited 7 years ago by Owen Arnold (previous) (diff)

comment:4 Changed 7 years ago by Owen Arnold

refs #8656. component names should not be mandatory.

Change the code around so that you only need to provide component names if you are definitely not providing an input theta, or requiring point detector calibration. Some other minor fixes have been included here.

The analysis has been tested against a line-detector run and seems to work well now.

Changeset: 2ba251d649b431deee8d6c229cd47c7cc711509a

Changed 7 years ago by Owen Arnold

Changed 7 years ago by Owen Arnold

comment:5 Changed 7 years ago by Owen Arnold

Tester:

1) Check that the point detector analysis modes are still working.

Tester: Running the following should produce identical plot to those before these changes (see http://trac.mantidproject.org/mantid/ticket/8371#comment:50 for comparision script)

from mantid.simpleapi import *
from isis_reflectometry import quick
reload(quick)

class ReflectometryQuick(object):
  
    def runTest(self):
        defaultInstKey = 'default.instrument'
        defaultInstrument = config[defaultInstKey]
        
        config[defaultInstKey] = 'INTER'
        LoadISISNexus(Filename='13463', OutputWorkspace='13463')
        LoadISISNexus(Filename='13464', OutputWorkspace='13464')
        LoadISISNexus(Filename='13460', OutputWorkspace='13460')
    
        transmissionRuns = '13463,13464'
        #transmissionRuns = '13463'
        runNo = '13460'
        incidentAngle = 0.7
        quick.quick(runNo, trans=transmissionRuns) 
        
        defaults =quick.get_defaults(mtd['13460'])
        print defaults

        config[defaultInstKey] = defaultInstrument
        
        # new is in lambda! later it will be in IvsQ
        new_IvsQ, new_IvsLam, thetaOut = ReflectometryReductionOne(InputWorkspace='13460',
                                                                                                                WavelengthMin=1.0, 
                                                                                                                WavelengthMax=17.0, 
                                                                                                                WavelengthStep=0.05, 
                                                                                                                MonitorBackgroundWavelengthMin=15.0, 
                                                                                                                MonitorBackgroundWavelengthMax=17.0, 
                                                                                                                I0MonitorIndex=2, 
                                                                                                                MonitorIntegrationWavelengthMin=4.0, 
                                                                                                                MonitorIntegrationWavelengthMax=10.0, 
                                                                                                                ProcessingInstructions="3,4", 
                                                                                                                Params=[1.5, 0.02, 17], 
                                                                                                                StartOverlap=10.0, 
                                                                                                                EndOverlap=12.0, 
                                                                                                                FirstTransmissionRun='13463', 
                                                                                                                SecondTransmissionRun='13464')
        plotSpectrum([new_IvsLam], [0])
        plotSpectrum([new_IvsQ], [0])
        
test = ReflectometryQuick()
test.runTest()

2)

Check the multidetector modes are now working. Run the benchmark.py and reproduce_benchmark.py. reproduce_benchmark.py should produce the same 2D plot as benchmark.py. Note that the intensites will be slightly different, but the key feature being a high intensity line at Qx = 0 should appear on both.

comment:6 Changed 7 years ago by Owen Arnold

  • Status changed from inprogress to verify
  • Resolution set to fixed

comment:7 Changed 7 years ago by Owen Arnold

  • Blocking 8645 added

comment:8 Changed 7 years ago by Karl Palmen

  • Status changed from verify to verifying
  • Tester set to Karl Palmen

comment:9 Changed 7 years ago by Karl Palmen

  • Status changed from verifying to closed

Part 2 works well and the first script of part 1 worked. After discussion with Owen, the full part 1 was decided unnecessary to test.

comment:10 Changed 7 years ago by Karl Palmen

Merge remote-tracking branch 'origin/feature/8656_remove_workspaceindexlist'

Full changeset: 2638b28eb5192418b93b5c5a182c7bffc100d2c4

comment:11 Changed 5 years ago by Stuart Campbell

This ticket has been transferred to github issue 9500

Note: See TracTickets for help on using tickets.