Ticket #6494 (closed: fixed)

Opened 8 years ago

Last modified 5 years ago

SumEventsByLogValue does not do what I expect it to do (and hangs when I try to do what I expectedfrom it)

Reported by: Alex Buts Owned by: Russell Taylor
Priority: minor Milestone: Release 3.0
Component: Framework Keywords:
Cc: Blocked By:
Blocking: Tester: Wenduo Zhou

Description (last modified by Russell Taylor) (diff)

from brief glance on the algorithm description and my understanding of the rocking curve technique (which may be well incomplete) I was thinking that SumEventsByLogValue is used to generate parametric plots (workspaces) E.g:

If I have a log value, which describes a scanning within some angle, the angle changed as sin(W*t) with time, and the source workspace, as usual, contains events against detectors, the algorithm would sort events according to time bins, for which each angle value was recorded. The result would be the function Events_of_(rotation angle) or (more physically meaningful after re-binning and coordinate transformation) Energy transfer_of_(rotation angle). This function may be non-unique if some particular energy transfers corresponds to different angles.

The re-binning option available in the algorithm works in similar way, but allows one to work with homogeneous functions only.

Following my expectations, I was trying to rebin LET event workspace LET00006278.nxs against log value total_counts which has 230 recoded integer values in the range from 0 to 106.

This operation hangs up Mantid.

Reading the algorithm description carefully I have found explicit warning against doing what I did, but attempt to do that should not hang Mantid and give better estimate of the time, left to complete the operation.

Needed: 1) Attempt to rebin data against integer logs with big number of measurements should give good estimate of the job ahead. Should be a possibility to cancel the wrong intended job

Desirable: 2) Rebinning against time intervals, associated with the log. (described above)

This is questionable ticket as I am not sure if many people think the similarly to myself as above.

Change History

comment:1 Changed 8 years ago by Alex Buts

  • Description modified (diff)

comment:2 Changed 7 years ago by Russell Taylor

  • Milestone changed from Release 2.5 to Release 2.6

Move the tickets I'm definitely not going to do this iteration so that I can better see the ones that I might.

comment:3 Changed 7 years ago by Nick Draper

  • Component changed from Mantid to Framework

comment:4 Changed 7 years ago by Nick Draper

  • Milestone changed from Release 2.6 to Backlog

Moved to the Backlog after the code freeze for R2.6

comment:5 Changed 7 years ago by Russell Taylor

  • Milestone changed from Backlog to Release 3.0

comment:6 Changed 7 years ago by Russell Taylor

  • Status changed from new to inprogress

Re #6494. Enable cancellation in case of erroneous input.

If the user inputs a log with a large range, print a warning and add progress reporting and a couple of bonus spots where the algorithm can be cancelled.

Changeset: 99c6830d05174a0eb94c0896802eb83a781b7b86

comment:7 Changed 7 years ago by Russell Taylor

Re #6494. Handle variable deletion in a better way.

Changeset: b3b4e58e0c53e1853ed7ceaf90fd28295979c8f3

comment:8 Changed 7 years ago by Russell Taylor

  • Status changed from inprogress to verify
  • Resolution set to fixed
  • Description modified (diff)

So I have dealt with Alex's "1)" above. "2)" will not be handled, though there is a possibility that an algorithm may come along later that will insert a scan_index log based on some input criteria such as this.

Tester: Try and run the algorithm with the inputs described above by Alex (the LET file is in the systemtests repository), i.e.:

ws = SumEventsByLogValue("LET00006278","total_counts")

The progress bar will move (extremely slowly) and the algorithm will be cancellable (it is possible that the cancellation may not be very responsive, but it's the best that can be achieved).

comment:9 Changed 7 years ago by Wenduo Zhou

  • Status changed from verify to verifying
  • Tester set to Wenduo Zhou

comment:10 Changed 7 years ago by Wenduo Zhou

  • Status changed from verifying to closed

I ran the same script before and after merging the commit in this ticket. Both improvements were observed. So ticket is closed.

comment:11 Changed 7 years ago by Russell Taylor

Re #6494. Enable cancellation in case of erroneous input.

If the user inputs a log with a large range, print a warning and add progress reporting and a couple of bonus spots where the algorithm can be cancelled.

Changeset: f956f09b2a65f38e44d86fb472808efa7aeadcf6

comment:12 Changed 7 years ago by Russell Taylor

Re #6494. Handle variable deletion in a better way.

Changeset: 1ef43e31dd48eb5a12dd5b6a92b4943c7fc4a9be

comment:13 Changed 5 years ago by Stuart Campbell

This ticket has been transferred to github issue 7340

Note: See TracTickets for help on using tickets.