Ticket #7445 (closed: fixed)

Opened 7 years ago

Last modified 5 years ago

ConvertToReflectometryQ producing MatrixWorkspaces

Reported by: Owen Arnold Owned by: Owen Arnold
Priority: critical Milestone: Release 2.6
Component: Reflectometry Keywords:
Cc: Blocked By:
Blocking: Tester: Gesner Passos

Description (last modified by Owen Arnold) (diff)

This is a request from Tim Charlton to provide additional features around the ConvertToReflectometryQ functionality. The ConvertToReflectometryQ Algorithm is correctly working and producing multidimensional outputs with Q components correctly resolved and plotted along each axis. However, there are two problems that would be solved by providing flexibility of the output workspace type.

  • The reflectometry group users are much happier working with Matrix Workspaces, and there is some frustration when other workspace types are thrown into the mix.
  • MDWorkspace algorithms only support centre point binning, where-as fractional binning would be possible (via Rebin2D) if the output workspaces were of type Workspace2D.

I'll implement this as additional functionality to ConvertToReflectometryQ, as this is what Tim originally requested. I didn't think that it would be possible, to do this at first, without making the algorithm really clunky, but most of the functionality can go in the various ReflectometryTransform types, and the output workspace can be made to be of type IMDWorkspace (so handling both Matrix and MDWorkpspaces as outputs).

Important to have this implemented before the end of iteration 2.6!

Attachments

ConvertToReflectometryQTest.py (4.0 KB) - added by Owen Arnold 7 years ago.

Change History

comment:1 Changed 7 years ago by Owen Arnold

  • Status changed from new to accepted

comment:2 Changed 7 years ago by Owen Arnold

refs #7445. Rename execution method to executeMD.

Also enable tests that seem to have been disabled, or removed in CMake.

Changeset: cf8b27f8d1b918c122a1afbe0b927a0843ebb00b

comment:3 Changed 7 years ago by Owen Arnold

refs #7445. Hide MD Specific features of transforms.

Make it so that the same transform types make sense for md and non-md transformations. This means moving some details concerned with the output type out of the constructors.

Changeset: eb9a71aa5e3000e1b74e5c61460ede5d57610f8d

comment:4 Changed 7 years ago by Owen Arnold

refs #7445. Rename base class.

Changeset: ed730d800c516fbabd264c6e6ebc270ee41defb7

comment:5 Changed 7 years ago by Owen Arnold

refs #7445. Rename base class files.

Changeset: 459859d75abf2daa2cb9fd1668dd251708073131

comment:6 Changed 7 years ago by Owen Arnold

refs #7445. Create QxQz Matrix WS Transform.

Add unit tests to cover the new case. Ensure that the experiment info is copied across, and add new property that allows the user to select what output type they want. The output type defaults to the existing MDWorkspace return as this will ensure backwards compatibility.

Changeset: 1a91541aa4106734200ebe66e49213424ef500bb

comment:7 Changed 7 years ago by Owen Arnold

refs #7445. Enable properties based on output type.

Box controller properties only apply to MDWorkspaces.

Changeset: 0649f2309db9c4b1c9eddf520d5a42c17ad7e739

comment:8 Changed 7 years ago by Owen Arnold

refs #7445. Fix error in linear transformation from q to index.

Changeset: fcd227ab3bc268646606b3ac4c039e2a65bcbdb9

comment:9 Changed 7 years ago by Owen Arnold

refs #7445. Make it possible to specify number of bins.

Changeset: d12495863b78944cb77eef454335e1313cb7dc39

comment:10 Changed 7 years ago by Owen Arnold

refs #7445. Extract axis production to separate methods.

These can then be moved to the base class and used by all Reflectometry transforms.

Changeset: 93cec18ea3918d281e4f7d1316114431aba713ff

comment:11 Changed 7 years ago by Owen Arnold

refs #7445. Make axis functions free functions.

No need for these to access any of the encapsulated member fields or functions.

Changeset: 7ffdca8e24d0223483cdd399b6d62adcd0b76640

comment:12 Changed 7 years ago by Owen Arnold

refs #7445. Implement conversion to ki, kf.

Changeset: 34f04d3867365c0e4bf899327cee3ea76006358a

comment:13 Changed 7 years ago by Owen Arnold

refs #7445. Implement conversion to diff and sum P.

Changeset: ce6a28209b6959dbfdc488e47e8eb24ea37783a7

comment:14 Changed 7 years ago by Owen Arnold

refs #7445. Fix warnings by via win build.

Changeset: 9d3f0c88137a39d3491b02527fdc5d5dff7557f3

comment:15 Changed 7 years ago by Owen Arnold

  • Description modified (diff)

comment:16 Changed 7 years ago by Owen Arnold

Tester: I know the MDWorkspace options are producing the right results, so I can expect to see the same colour fill plot if I compare the new 2D workspaces against the MD workspaces outputs, all other things being equal. I have created the attached script for you, which will do this. Each of the comparision options compares the outputs via running the algorithm in MD-mode (and then rebinning via BinMD to a regular histo workspace) and the 2D workspace ouput.

A visual inspection of the generated plots should demonstrate that the new outputs are as close to the original md outputs as is practically possible.

Changed 7 years ago by Owen Arnold

comment:17 Changed 7 years ago by Owen Arnold

refs #7445. Fix GCC warnings.

Changeset: ca62d439a3875e0af77a539ce8af876a10406876

comment:18 Changed 7 years ago by Owen Arnold

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

comment:19 Changed 7 years ago by Owen Arnold

refs #7445. Fix GCC Errors.

Changeset: 21e7602aaa727745a767fa70d8cf0d9f5997ed08

comment:20 Changed 7 years ago by Gesner Passos

Merge remote-tracking branch 'origin/feature/7445_reflectometry_q'

comment:21 Changed 7 years ago by Gesner Passos

  • Status changed from verify to verifying
  • Tester set to Gesner Passos

comment:22 Changed 7 years ago by Gesner Passos

  • Status changed from verifying to closed

It works correctly. Thanks for the script for testing :)

comment:23 Changed 5 years ago by Stuart Campbell

This ticket has been transferred to github issue 8291

Note: See TracTickets for help on using tickets.