Ticket #6314 (closed: fixed)

Opened 8 years ago

Last modified 5 years ago

Enhancements to rocking curve algorithm

Reported by: Russell Taylor Owned by: Russell Taylor
Priority: critical Milestone: Release 2.4
Component: Mantid Keywords: ADARA
Cc: Blocked By: #6349
Blocking: #6371 Tester: Alex Buts

Description

Following on from #6150, which provided a quick initial implementation, further development of the SumEventsByLogValue algorithm is required. This will be quite a change in that the output will become a table workspace containing the total counts as a function of log value, but also containing the average value of other time-series logs as a function of the requested log value - either for any input log or specifically for the (monotonically increasing) scan_index log.

Another requirement is the ability to carry out some kind of normalisation (e.g. by monitor, time or proton charge) or the retention of the information required so that one can be done later.

Change History

comment:1 Changed 8 years ago by Russell Taylor

  • Status changed from new to accepted

comment:2 Changed 8 years ago by Russell Taylor

Re #6314. Add protection against an empty log being used as input.

Done via the introduction of a validateInputs method and tests.

Changeset: c402c477b5d0b45d5f04d919635cbe1be122e974

comment:3 Changed 8 years ago by Russell Taylor

Re #6314. Change integer logs to output results in a TableWorkspace.

Can alternatively have them in a (histogram) Workspace2D if binning parameters are given (i.e. treating them the same as double TSPs).

Changeset: a5ec419aa738f5ec67a5718af98fe9c236b76d9b

comment:4 Changed 8 years ago by Russell Taylor

Re #6314. Add a method to calculate the time-averaged value of a log

...in a given range of time(s). This is needed for the SumEventsByLogValue algorithm.

Changeset: a3c1b823bf71ea160b570ad7f7b8e01fb5f3fde0

comment:5 Changed 8 years ago by Russell Taylor

Re #6314. Add columns for normalisation & other logs.

Columns for nomalisation are: monitor counts, proton charge & time. Columns will also be added to give the average value of other time-series logs for each step.

Changeset: 234552b1cbf5a362dc037967166dcade323b4d93

comment:6 Changed 8 years ago by Russell Taylor

Re #6314. Fix Windows builds.

Changeset: d7325746d60f4e321c93fea6611da21b7bc3cb2f

comment:7 Changed 8 years ago by Russell Taylor

Re #6314. Add protection against an empty log being used as input.

Done via the introduction of a validateInputs method and tests.

Changeset: cb5b85e2b9f607021be7dbb651b50b27aa1b3034

comment:8 Changed 8 years ago by Russell Taylor

Re #6314. Change integer logs to output results in a TableWorkspace.

Can alternatively have them in a (histogram) Workspace2D if binning parameters are given (i.e. treating them the same as double TSPs).

Changeset: 7b646e2419d7d9b21b13c737653d2c9b7419761e

comment:9 Changed 8 years ago by Russell Taylor

Re #6314. Add a method to calculate the time-averaged value of a log

...in a given range of time(s). This is needed for the SumEventsByLogValue algorithm.

Changeset: fff6fc0f1970e72041434d054c80706ce35bf676

comment:10 Changed 8 years ago by Russell Taylor

Re #6314. Add columns for normalisation & other logs.

Columns for nomalisation are: monitor counts, proton charge & time. Columns will also be added to give the average value of other time-series logs for each step.

Changeset: b4a15de6148f6fb0e15e7ec5392364cbdbc16294

comment:11 Changed 8 years ago by Russell Taylor

Re #6314. Fix Windows builds.

Changeset: 58e14f1ef7a96bb28766a17ddebb9f3c1f69de60

comment:12 Changed 8 years ago by Russell Taylor

  • Blocked By 6349 added

comment:13 Changed 8 years ago by Russell Taylor

Re #6314. Add a method to calculate the time-averaged value of a log

...in a given range of time(s). This is needed for the SumEventsByLogValue algorithm.

Changeset: a3c1b823bf71ea160b570ad7f7b8e01fb5f3fde0

comment:14 Changed 8 years ago by Russell Taylor

Re #6314. Add columns for normalisation & other logs.

Columns for nomalisation are: monitor counts, proton charge & time. Columns will also be added to give the average value of other time-series logs for each step.

Changeset: 234552b1cbf5a362dc037967166dcade323b4d93

comment:15 Changed 8 years ago by Russell Taylor

Re #6314. Fix Windows builds.

Changeset: d7325746d60f4e321c93fea6611da21b7bc3cb2f

comment:16 Changed 8 years ago by Russell Taylor

Re #6314. Make performance test take longer.

Changeset: e5e3fbced45a401e5864e2f6936c15fb651482ca

comment:17 Changed 8 years ago by Russell Taylor

Re #6314. Add a performance test for CropWorkspace (for events).

Changeset: f71ed34162d559124ac8946e0d7ead8403ef1f16

comment:18 Changed 8 years ago by Russell Taylor

Re #6314. Documentation added.

Changeset: b8c338cb9a7dbc16631b8d147e098fc725388de3

comment:19 Changed 8 years ago by Russell Taylor

Re #6314. Add a workflow algorithm to generate a rocking curve.

Works off of the scan_index log variable that is present in the ADARA stream. Uses SumEventsByLogValue underneath and also adds the possibility to mask pixels and narrow the X range.

Changeset: e9ada7264b750e2fc9ed76196b955e286e9d792b

comment:20 Changed 8 years ago by Russell Taylor

Re #6314. Try to fix test on Windows & Ubuntu.

Changeset: 185ac2e423f159a363f6427e29a80ec44065b7e4

comment:21 Changed 8 years ago by Russell Taylor

Re #6314. Fix unit test on Ubuntu.

Because nothing from Algorithms was explicitly used in any test (only via the child algorithm mechanism), the library wasn't being linked to which led to complaints that the FilterByXValue child algorithm wasn't registered. I added some dummy code to force the linking.

Changeset: d2f68fb3d815a0c91bd1d17839588285639ec842

comment:22 Changed 8 years ago by Russell Taylor

Re #6314. Use binary, not linear, search in EventList::maskTofHelper.

Changeset: d8c39456744c64cb7a3108cef5ebb30388628e5c

comment:23 Changed 8 years ago by Russell Taylor

  • Blocked By 6369 added

comment:24 Changed 8 years ago by Russell Taylor

  • Blocked By 6369 removed

comment:25 Changed 8 years ago by Russell Taylor

  • Blocking 6371 added

comment:26 Changed 8 years ago by Russell Taylor

Re #6314. Make performance test take longer.

Changeset: c23d38ad5831477035b2490299d3a747f15db3ba

comment:27 Changed 8 years ago by Russell Taylor

Re #6314. Add a performance test for CropWorkspace (for events).

Changeset: 14c3be93440c0ee45cbbf0ac51213ae3d920440e

comment:28 Changed 8 years ago by Russell Taylor

Re #6314. Documentation added.

Changeset: 527891b7e4d97b1348fa294eff4041d4301bcde0

comment:29 Changed 8 years ago by Russell Taylor

Re #6314. Add a workflow algorithm to generate a rocking curve.

Works off of the scan_index log variable that is present in the ADARA stream. Uses SumEventsByLogValue underneath and also adds the possibility to mask pixels and narrow the X range.

Changeset: 69b19a5d0a1ad2896d3950f282209dfe4e3dc8fc

comment:30 Changed 8 years ago by Russell Taylor

Re #6314. Try to fix test on Windows & Ubuntu.

Changeset: b9e4b421fafc02e82c1c3202f3ddcb7ed034a4ed

comment:31 Changed 8 years ago by Russell Taylor

Re #6314. Fix unit test on Ubuntu.

Because nothing from Algorithms was explicitly used in any test (only via the child algorithm mechanism), the library wasn't being linked to which led to complaints that the FilterByXValue child algorithm wasn't registered. I added some dummy code to force the linking.

Changeset: caea696d89bd3b95108befda2974bfdafdaef518

comment:32 Changed 8 years ago by Russell Taylor

Re #6314. Use binary, not linear, search in EventList::maskTofHelper.

Changeset: e30e6fe3f7c25a97dfbb7c2ece5e27a266b37a29

comment:33 Changed 8 years ago by Russell Taylor

Re #6314. Parallelize & add progress reporting.

Changeset: 9bda6e0515e21dd3859cd2efea4dd6260d526185

comment:34 Changed 8 years ago by Russell Taylor

Re #6314. Restrict to workspaces holding unweighted events.

Changeset: 7cfcf296537dbbecaa44b3f83150128694f5425e

comment:35 Changed 8 years ago by Russell Taylor

Re #6314. Documentation.

Changeset: 6950ced3545459172a9943fb5330a5538e0995f3

comment:36 Changed 8 years ago by Russell Taylor

Re #6314. Doxygen documentation.

Changeset: f7ab74b1f383c79c2facee0df758ab14cd2f8968

comment:37 Changed 8 years ago by Russell Taylor

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

Tester: The algorithms to look at are SumEventsByLogValue and RockingCurve and they're relatively simple to use so the wiki documentation should suffice for directions. The former can be used with many data files, but for the latter you'll probably need to use HYSA_2934 from the system tests repo. I'm going to add a system test for it, but need to fix CheckWorkspacesMatch to work with table workspaces first.

The bit about normalisation in the description has been fulfilled by including columns in the table. These will then be manipulated by the Rocking Curve custom interface (which isn't included in the menus in this release).

There are a few TODOs in the source code - these will be addressed in the next iteration.

comment:38 Changed 8 years ago by Alex Buts

  • Status changed from verify to verifying
  • Tester set to Alex Buts

comment:39 Changed 8 years ago by Alex Buts

  • Status changed from verifying to closed

The SumEventsBylogValue work though not as I expected it to work. This is probably what it should do but I have expressed my expectation in low priority ticket #6494 (In case somebody else have similar expectations)

Rocking curve is much work in progress but what I was able to test works fine too. Of course, more tests for this algorithm are needed and planned.

comment:40 Changed 5 years ago by Stuart Campbell

This ticket has been transferred to github issue 7160

Note: See TracTickets for help on using tickets.