Ticket #9632 (closed: fixed)

Opened 6 years ago

Last modified 5 years ago

tube.calibrate() python function no longer works

Reported by: Karl Palmen Owned by: Karl Palmen
Priority: blocker Milestone: Release 3.2
Component: Framework Keywords:
Cc: nick.draper@…, anders.markvardsen@…, peter.parker@… Blocked By:
Blocking: #9729 Tester: Roman Tolchenov

Description

The function tube.calibrate() does not work in the example script mantid/scripts/Calibration/Examples/TubeCalibDemoMerlin.py

The error is:

ArgumentError: Python argument types in
    MatrixWorkspace.getDetector(MatrixWorkspace, list)
did not match C++ signature:
    getDetector(class Mantid::API::MatrixWorkspace {lvalue} self, unsigned __int64 workspaceIndex)
  at line 230 in 'C:/Mantid2/mantid/Code/Mantid/scripts/Calibration/Examples/TubeCalibDemoMerlin.py'
  caused by line 104 in 'C:/Mantid2/mantid/Code/Mantid/scripts/Calibration/Examples/TubeCalibDemoMerlin.py'
  caused by line 399 in 'C:/Mantid2/mantid/Code/Mantid/scripts/Calibration\tube.py'

It did work in release 3.1.0

This is a blocker, because a scientist (Rob Dalgliesh) is relying on this function to do calibration.

Change History

comment:1 Changed 6 years ago by Karl Palmen

  • Status changed from new to assigned
  • Cc nick.draper@…, anders.markvardsen@… added
  • Owner set to Karl Palmen

comment:2 Changed 6 years ago by Karl Palmen

I see the code in tube.py that causes the problem could possibly be replaced by a call of tubeSpecification.getLength( tubeIndex ).

comment:3 Changed 6 years ago by Karl Palmen

  • Status changed from assigned to inprogress

comment:4 Changed 6 years ago by Karl Palmen

Failure now in line 427 of tube.py rather than line 399 owing to some comments added by Martyn Gigg for documentation.

comment:5 Changed 6 years ago by Karl Palmen

Call relevant methods of TubeSpec re #9632

to obtain tube length and number of detectors, rather than getting the list of spectra for the tube and working from that.

Signed-off-by: Karl Palmen <karl.palmen@…>

Changeset: 69f3b3f242ac3dbd0a55717ce824db3bfc8cec53

comment:6 Changed 6 years ago by Karl Palmen

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

To test run the example script mantid/scripts/Calibration/Examples/TubeCalibDemoMerlin.py or similar script that calls tube.calibrate().

comment:7 Changed 6 years ago by Karl Palmen

  • Blocking 9729 added

comment:8 Changed 6 years ago by Vickie Lynch

  • Status changed from verify to verifying
  • Tester set to Vickie Lynch

Will test with MER06399.raw from systemtests.

comment:9 Changed 6 years ago by Vickie Lynch

  • Status changed from verifying to verify
  • Tester Vickie Lynch deleted

This file does not work for calibration: We have 4 detectors per workspace index. 1 is required. cannot obtain range of workspace indices for this tube in this workspace Calibrating tube 1 of 24 MERLIN/door9/tube_1_1 Unable to get any workspace indices (spectra) for this tube. Tube MERLIN/door9/tube_1_1 not calibrated.

comment:10 Changed 6 years ago by Peter Parker

  • Cc peter.parker@… added

comment:11 Changed 6 years ago by Roman Tolchenov

  • Status changed from verify to verifying
  • Tester set to Roman Tolchenov

comment:12 Changed 6 years ago by Roman Tolchenov

  • Status changed from verifying to closed

Merge remote-tracking branch 'origin/bugfix/9632_fix_tube_calibration'

Full changeset: 4bca72bba12f59d27253e1fd396725def9919c43

comment:13 Changed 5 years ago by Stuart Campbell

This ticket has been transferred to github issue 10475

Note: See TracTickets for help on using tickets.