Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Advanced Options for Single Crystal Elastic mode of DNS Reduction GUI #1

Conversation

koshchii
Copy link
Owner

@koshchii koshchii commented Sep 3, 2024

Description of work

This PR contains advanced data reduction options selection capabilities for the Single Cristal Elastic mode of DNS Reduction GUI. Complete integration of the Single Cristal Elastic mode into the DNS Reduction GUI will be implemented in several steps (in order to ensure reasonable PR sizes and reduce the workload for the reviewers), and this PR represents the 5th step of the integration process.

Summary of work

To test:

  • Download test data: Single_Crystal_Elastic.zip
  • Open the reduction GUI [Interfaces->Direct->DNS Reduction]
  • Make sure that the "Single Crystal Elastic" mode opens by default. Otherwise switch to this mode, by selecting Tools -> Change Mode -> Single Crystal Elastic
  • Make sure that the corresponding documentation is up-to-date (run cmake --build . --target docs-html in build folder to create docs)
  • Browse to the directory where the test data are located using the "Paths" tab of the GUI
  • Load and select the sample data for reduction using the "Data" tab
  • Click on the "Options" tab and and make sure that various option selection fields work as expected, and the selected options are then applied to the data once the data reduction script is generated using the "Script Generator" tab
  • Reduce the data and generate a data reduction script using the "Script Generator" tab
  • Open the "Plotting" tab and make sure that the images are generated. Advanced plotting functionality is not implemented at this stage and will be activated in a follow-up PR.

This does not require release notes because this PR contains limited functionality for data reduction. Release notes for the Single Cristal Elastic mode will be included in a subsequent PR, once all components for implementing the data reduction workflow are uploaded.


Reviewer

Please comment on the points listed below (full description).
Your comments will be used as part of the gatekeeper process, so please comment clearly on what you have checked during your review. If changes are made to the PR during the review process then your final comment will be the most important for gatekeepers. In this comment you should make it clear why any earlier review is still valid, or confirm that all requested changes have been addressed.

Code Review

  • Is the code of an acceptable quality?
  • Does the code conform to the coding standards?
  • Are the unit tests small and test the class in isolation?
  • If there is GUI work does it follow the GUI standards?
  • If there are changes in the release notes then do they describe the changes appropriately?
  • Do the release notes conform to the release notes guide?

Functional Tests

  • Do changes function as described? Add comments below that describe the tests performed?
  • Do the changes handle unexpected situations, e.g. bad input?
  • Has the relevant (user and developer) documentation been added/updated?

Does everything look good? Mark the review as Approve. A member of @mantidproject/gatekeepers will take care of it.

Gatekeeper

If you need to request changes to a PR then please add a comment and set the review status to "Request changes". This will stop the PR from showing up in the list for other gatekeepers.

rbauststfc and others added 30 commits August 20, 2024 16:43
Add link to NXevent_data in LoadEventNexus algorithm docs
The algorithm uses private member variables that need to be cleared to
prevent previously calculated values being returned if an instance of
the algorithm is run twice. In addition, the algorithm provides some
optional diagnostic output properties that we provide default values for. If the algorithm is being run as a child
then these can incorrectly remain populated with previous values if we do not clear them when they are not required. It seems that setting the property value to it's current value (to deliberately retain any edits the user has made to that) is sufficient to clear the associated output workspace.
…iagnostics-unable-to-load-file

Fix error in ISIS Diagnostics tab of Indirect Reduction
This code was supposed to return the last time if none of the times
are after 1991, but the index was one greater than it should be if
no suitable times were found.

Co-authored-by: Jonathan Haigh <[email protected]>
…_tooltips

Fix ISIS SANS Event Binning Tooltips
The previous statement for introducing 'Hmag' into the function
string never actually happened because it was inserted into the else
part of the self.MAGNETISATION check. The logic was the following:

if MAGNETISATION:
  do something
else:
  # everything here is NOT MAGNETISATION
  if MAGNETISATION:
    out += 'Hmag'    # never happened

I changed the if statement to MAGNETICMOMENT,
so that if not MAGNETISATION, but if MAGNETICMOMENT,
then 'Hmag' gets added to the function string.

I assume this was the intended behaviour, which is also
supported by the previous comments in the code.
…_ornlnext

Pull changes from main into ornl-next
- Added Validation to ensure all input workspaces have units of wavelength
- Apply Suggested Chnanges from PR
rboston628 and others added 28 commits September 3, 2024 10:47
cleanup and or statement
A few things needed fixing to remove compilation errors and
warnings:
- requires is now a keyword so we can't use it as a variable name
- The function in Plot.cpp that used std::move to return generated
a warning for an unnecessary move
- The accumulate functions in MultiFileNameParser.cpp didn't
compile unless they returned by value
- Ambiguous overload for == operator (bool == Mantid::API::Boolean)
in FindClusterFacesTest
- Ambiguous == in EventListTest
- Stricter class template checking meant remove <T> in
TableWorkspaceTest
- std::result_of has been deprecated and replaced by std::invoke_result
These warnings appeared when using C++ 20 with gcc. Two
appeared erroneous, I fixed three, one was due to a
known problem with boost::export.
- constexpr char* is now constexpr const char*
- Made HKL namespace explicit to avoid ambiguity
- shared_ptr::unique no longer exists, use_count==1 is
closest equivalent
- Stricter rules around templated classes resulted in the
need to make equality comparisons clearer for the compiler
- Changed some char* to std::string in a couple of methods
Equality operators defined to compare the base type to a derived type
can now cause warnings in C++ 20. The compiler complained that the
comparison is not reversible, i.e. a==b and b==a
These were generating clang warnings on MacOS
…-compare-workspaces

Fix relative comparison in `CompareWorkspaces`
…theta-with-numeric-axis

Fix BayesQuasi when sample workspace has numeric axis
…BUsingMinMaxD

Remove FindUBUsingMinMaxD algorithm
Abins: support "high precision" GAUSSIAN frequency calculations
…l-next

Fix relative comparison in `CompareWorkspaces` - `ornl-next`
…l-next

Update to C++ 20 standard - ornl-next
…enblas_explanation

Add libopenblas v0.3.28 notes to build configs
…rystal_elastic_upload_main_skeleton_part_1

Main skeleton for Single Crystal Elastic mode of DNS Reduction GUI
@koshchii koshchii force-pushed the dns_gui_single_crystal_elastic_upload_main_skeleton_part_2 branch from f21eb2e to 2ede503 Compare September 4, 2024 09:20
@koshchii koshchii closed this Sep 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.