Ticket #9079 (closed: fixed)

Opened 7 years ago

Last modified 5 years ago

PerformIndexOperations

Reported by: Nick Draper Owned by: Harry Jeffery
Priority: major Milestone: Release 3.5
Component: Framework Keywords:
Cc: Blocked By: #9072
Blocking: Tester: Roman Tolchenov

Description

Split from ticket #9072

A couple of other comments on the algorithm:

I found the name gave me no sense of what the algorithm does. Is there a better name? Or is it too late anyway? It's not obvious to me what this algorithm does that GroupDetectors doesn't.

Change History

comment:1 Changed 7 years ago by Russell Taylor

Comments from Owen:

The name could be changed. Better name suggestions welcome as I don't think it's being used in it's own right, but It is part of release 3.1. The algorithm does not require a mapping file and has a syntax that is compatible with MultiFile loading. Allows both cropping and summing. More information on allowed operations see http://www.mantidproject.org/PerformIndexOperations. Algorithm is used by CreateTransmissionWorkspace and ReflectometryReductionOne.

comment:2 Changed 7 years ago by Russell Taylor

GroupDetectors can be given lists of spectra instead of a mapping file, and these could be changed to accept a broader syntax. The algorithm has the option to keep or discard the ungrouped spectra (equivalent to cropping). However, it is true that it cannot do multiple groupings in one shot at present without the use of a mapping file.

comment:3 Changed 7 years ago by Owen Arnold

I'm not that familiar with GroupDetectors, but I think that if we can modify that algorithm to allow the "ProcessingInstructions" from PerformIndexOperations or appropriately named equivalent property to be provided instead of the mapping file then that would work as a solution. We could then deprecate PerformIndexOperations and replace the existing usage in ReflectometryReductionOne and CreateTransmissionWorkspace. I would be keen that the existing syntax for PeformIndexOperations listed here http://www.mantidproject.org/PerformIndexOperations#Description is preserved, as that matches the Multifile loading syntax that users are used to. The reflectometry group at ISIS have a strong opinion about this. Any thoughts?

comment:4 Changed 7 years ago by Nick Draper

I'm all for improving GroupDetectors if we can do it in a backwardly compatible way.

I think we could just adjust the inputs of spectra, workspace index (and maybe even detector_ids) to accept this syntax.

The one drawback would be that they could no longer be lists of integers, but would have to be strings.

comment:5 Changed 7 years ago by Nick Draper

  • Status changed from new to assigned

comment:6 Changed 6 years ago by Owen Arnold

I'm trying to think of a good solution here and have come to the following conclusions.

  • We should initially use PerformIndexOperations as a child algorithm in GroupDetectors, as the refactoring steps will be significant.
  • PerformIndexOperations works on workspace indexes, but there is in principle no reason why I couldn't adapt PerformIndexOperations to take spectrum numbers and convert them into workspace indexes for processing. To that end, handling detector numbers could be achieved in a similar way.
  • There doesn't seem to be a good way to use the same input properties and detect whether the user wants to use the new MultiFile type syntax or the existing syntax. In places they outright clash. For example: entering a WorkspaceIndexList comma separated means group the indexes provided. In the new syntax, this separator is an instruction to keep those indexes unmodified. We could either (a) Have a property which could be used to specify the interpretation method, which would default to the current one, or (b) Have separate input properties for the IndexOperation inputs.

comment:7 Changed 6 years ago by Nick Draper

  • Milestone changed from Release 3.2 to Backlog

Moved to Backlog at the code freeze of release 3.2

comment:8 Changed 6 years ago by Owen Arnold

  • Owner changed from Owen Arnold to Harry Jeffery

comment:9 Changed 6 years ago by Harry Jeffery

  • Milestone changed from Backlog to Release 3.3

comment:10 Changed 6 years ago by Harry Jeffery

  • Status changed from assigned to inprogress

comment:11 Changed 6 years ago by Harry Jeffery

  • Status changed from inprogress to assigned
  • Milestone changed from Release 3.3 to Release 3.4

comment:12 Changed 5 years ago by Harry Jeffery

  • Status changed from assigned to inprogress
  • Milestone changed from Release 3.4 to Release 3.5

comment:13 Changed 5 years ago by Harry Jeffery

Refs #9079 Clang Format PerformIndexOperations

Changeset: 020f39e8f15fda7a590d818f86fc0cf6b9b4810d

comment:14 Changed 5 years ago by Harry Jeffery

Refs #9079 GroupDetectors2::readFile should take an istream

It takes an std::ifstream currently. This is an overspecialisation. An istream will be more flexible.

Changeset: 56d996745b7b0dad2547702a0563fe5160787eec

comment:15 Changed 5 years ago by Harry Jeffery

Refs #9079 Correct spectrum numbering in GroupDetectors

Changeset: 14bb74ac29b3c928dbe826efe8f8017452e02780

comment:16 Changed 5 years ago by Harry Jeffery

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

This is being verified as pull request #634.

comment:17 Changed 5 years ago by Harry Jeffery

Refs #9079 Fix whitespace handling

Changeset: 01c89b6302de5738a2d00585f1552162fb2182e0

comment:18 Changed 5 years ago by Harry Jeffery

Refs #9079 Update unit tests

Changeset: 1c6e68350c8ddcee5a97cb4ade6fee384978bbf0

comment:19 Changed 5 years ago by Harry Jeffery

Refs #9079 Remove incorrect conversion

Changeset: 648734287988dc42da80e9697cdf66de03449056

comment:20 Changed 5 years ago by Harry Jeffery

Refs #9079 Make new behaviour optional (and non-default)

Changeset: 6462c5398feaf9c9648f122f4409c5134991d9b4

comment:21 Changed 5 years ago by Harry Jeffery

Refs #9079 Update documentation

Changeset: 2c5e47d740b86e8da3451a57f6942e248dab3e76

comment:22 Changed 5 years ago by Harry Jeffery

Refs #9079 Cheer up doxygen

Changeset: 753b9dc89b4734de67d0e7d72bdf2a7230209310

comment:23 Changed 5 years ago by Harry Jeffery

Refs #9079 Don't use positional arguments in ViewBOA

The reliance on positional arguments breaks code when new options are added, such as now.

Changeset: 3530c87fb24730d230adf2d9d2d6b57b7ce07b3a

comment:24 Changed 5 years ago by Nick Draper

  • Milestone changed from Release 3.5 to Release 3.4

comment:25 Changed 5 years ago by Nick Draper

  • Milestone changed from Release 3.4 to Release 3.5

comment:26 Changed 5 years ago by Harry Jeffery

Refs #9079 Support ProcessingInstructions syntax

Changeset: 1cf886cafc72ec784a645e2ab82bc737643eb86b

comment:27 Changed 5 years ago by Harry Jeffery

Refs #9079 Update GroupDetectors-v2 documentation

Changeset: 77109aaea36f0719161df29b61727177a1eb6bae

comment:28 Changed 5 years ago by Harry Jeffery

Refs #9079 Validate GroupingPattern

Changeset: a049107257968e0dfd140aff91c1a135c66031c0

comment:29 Changed 5 years ago by Harry Jeffery

Refs #9079 Remove excess includes

Changeset: 5f3c6d9bacfbcbcccbaf18a599ea68c572e13f48

comment:30 Changed 5 years ago by Roman Tolchenov

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

comment:31 Changed 5 years ago by Roman Tolchenov

  • Status changed from verifying to closed

Merge pull request #634 from mantidproject/9079_deprecate_performindexoperations

Merge PerformIndexOperations with GroupDetectors

Full changeset: 95d63fd9898ceeb13fbb1546eadfaec56823e9bb

comment:32 Changed 5 years ago by Stuart Campbell

This ticket has been transferred to github issue 9922

Note: See TracTickets for help on using tickets.