This project is mirrored from https://github.com/mantidproject/mantid.git. Pull mirroring updated .
  1. 31 Mar, 2021 1 commit
  2. 30 Mar, 2021 1 commit
    • DannyHindson's avatar
      Enhance conversions between dSpacing and TOF in ConvertUnits (#30163) · dccf0867
      DannyHindson authored
      * Changes to dSpacing to TOF in ConvertUnits
      
      Changes to the Unit class and ConvertUnits algorithm to allow
      diffractometer constants (DIFA, DIFC, TZERO) stored in the instrument map
      to be used in conversions between d spacing and TOF and v.v.
      
      Rather than add 3 more parameters to lots of methods provided by the Unit
      class I have changed some of the methods to take a std:map containing the
      optional parameters relevant to only some units. I have included efixed
      and delta in this new map
      
      New diffractometerConstants method added to SpectrumInfo and DetectorInfo
      to allow retrieval for a particular spectrum including averaging across
      detectors. Also manages situations where some of the three constants are
      missing.
      
      New algorithm created called ApplyDiffCal to read the diffractometer
      constants from a diffraction calibration table workspace and write them
      into the instrument parameter map
      
      Add diffractometer constants to the Show Detectors screen for elastic
      workspaces
      
      Remove the Diffraction.cpp unit and replace with calls to dSpacing unit class
      
      Add ability to write difa, difc, tzero into a reduced instrument
      geometry as part of EditInstrumentGeometry
      
      * Fix unit tests using old unit conversion logic
      
      * Add overload to spectrumInfo::diffractometerConstants
      
      Add overload that doesn't require the 2nd warning dets parameter
      
      * Remove unused variable declarations
      
      * Replace costly call to spectrumInfo() with spectrumInfo object
      
      * Correct incorrect capitalisation in unit name
      
      * Fix bug in CreateDetectorTable
      
      The exception handler in populateTable assumed the column counter
      was always at 1. Reset the column counter to 0 by calling colValues.row
      and then fill in default values.
      Also add if statement to manage diff constants for monitors which
      was the specific exception that caused me to find problem with general
      exception handler
      
      * Update HRPD system test ref files to accommodate new unit conversion
      
      Update HRPD system test reference files to accommodate changes to the
      unit conversions between TOF and dSpacing. As part of this I have updated
      the reference file HRPD66031_splined. This is used as an input to the two
      system tests that run a focus and it should match the output of the create
      vanadium tests but it had got out of sync over the last couple of years
      eg changes to Bragg peak stripping didn't result in an update to
      HRPD66031_splined. So some changes in HRPD66031_splined that aren't purely
      from the unit conversion logic change
      
      * Make EnggFitPeaks use ConvertUnits for focussed ws
      
      * Update engineering diffraction system test ref files
      
      * Update calls to convertSingleFromTOF in spectrum viewer code
      
      * Remove unused variable in spectrum viewer code
      
      * Backout change to Qt4 unit because it causes cppcheck problem
      
      * Various changes
      
      The ParameterMap::diff method has been updated to take an extra
      parameter representing a tolerance to be used when comparing double
      values between two parameter maps
      The overloaded == operator has been modified to call diff with a
      zero tolerance to avoid duplicating code
      CompareWorkspaces also updated to pass the value of CheckAllData
      into diff so diff can stop after first change rather than going
      through the whole map
      The diff logic has also been speeded up to cope with larger parameter
      maps now that diff constants stored (esp for GEM)
      Various updates to doc test and system test files
      Shorten UnitConversionParameters enum class name
      Remove use of EMPTY_DBL() from ConvertUnits::getDetectorValues in
      preparation for moving into ExperimentInfo class and also fix
      RemoveSpectraTest unit test that relied on this
      
      * Refactor code to retrieve unit related quantities from workspace
      
      * Improve performance of getDetectorValues
      
      * Delete Kernel Diffraction code files
      
      * Delete Kernel Diffraction code files
      
      * Performance improvements to diff constant lookup
      
      * Delete Kernel Diffraction code files
      
      * Performance improvements to diff constant lookup
      
      Restrict diff constant lookup to elastic conversions to or
      from d spacing
      Just look up diff constants on the specified detector rather
      than recursive look through all parents (slow if workspace
      doesn't have any diff constants in the pmap at all)
      Make the main loop in ConvertUnits parallel (as was the case
      in AlignDetectors)
      
      * Replace std::map with std::unordered_map for better performance
      
      * Remove some duplicated code to fetch detector values
      
      * Readd blank line to avoid showing up in diff
      
      * Readd blank line to avoid showing up in diff
      
      * Fix clang format
      
      * Reinstate Efixed from property logic
      
      * Fix failing unit tests
      
      Also defer more decisions on whether missing detector values are
      a problem to the code inside the Unit class rather than
      experimentInfo::getDetectorValues
      
      * Remove default (empty) value for extra params argument
      
      This will force users to supply the diff constants for dSpacing
      conversions rather than assuming supplying L2 and twoTheta is sufficient
      
      * Move all detectors parameters into the map
      
      * Fix Doxygen warnings
      
      * Fix compilation error and expose new unit conv signature to python
      
      * Various changes
      
      Update new case using Unit::Initialize from merge
      Reinstate dropped getEFixedForIndirect method
      Remove one of the duplicates for the WISH Powder system tests
      Also replace duplicate code to retrieve detector info with a call to
      getDetectorValues instead
      Move getDetectorValues into API::SpectrumInfo
      
      * Fix compilation error in common widgets
      
      * Fix bug in SaveGDA relating to d to TOF spacing conversion
      
      difa and difc were back to front. Rather than swap here I've
      changed the code to call the official unit conversion logic
      in the dSpacing unit class
      
      * Make momentum transfer (q) unit conversion use diff constants
      
      Had to make minor adjustment to dSpacing::singleFromTOF to avoid
      rounding problem on conversion max\min
      Also changed qsquared over since this also used v similar formula
      Removed epsilon from the check ranges call in unit tests for qsquared
      because doesn't seem to be needed any more
      
      * Couples of changes
      
      Modify method of calculating average difc for a spectrum if there's no
      calibration present (to avoid changing behaviour for most instruments)
      Remove changes to EditInstrumentGeometry to attach diff constants
      because can do this using ApplyDiffCal after EditInstrumentGeometry has
      been run
      
      * Fix clang format issue
      
      * Fix compilation error on Windows
      
      * Fix failing tests and compilation error
      
      * Fix compilation error from missing include
      
      * Extra way of initialising dSpacing and MomentumTransfer
      
      Enable initialising dSpacing and MomentumTransfer using L2 and two theta
      as an alternative to supplying the diff constants. This might be more
      user friendly and it also moves the difc formula into the Unit class
      
      Add utility functions to manage extra params map
      
      * Add feature to ApplyDiffCal to clear calibration
      
      * Various changes
      
      Update some more unit tests to cope with changes MomentumTransfer unit
      to make it use the diff constants
      Improve validation on the L2\ttheta params in dSpacing unit
      Allow negative DIFCs in conversions to TOF -
      do this by setting up validation on to FromTOF direction only
      Revert some files now that I'm doing more "input" averaging in DIFC
      calculation on spectra with more than one detector
      
      * Fix failing docs tests
      
      * Rework MomentumTransfer to depend on difc only
      
      * Fix linux compilation error
      
      * Reinstate validation on MomentumTransfer unit class
      
      * Revert some more tests files now that average difc calc reverted
      
      * Revert change to remove local difc calculation so can do in separate PR
      
      * Revert some more enginx system test files
      
      * Revert some WISH system test files
      
      * Revert SNS Powder Reduction ref file
      
      * Revert another SNS ref file
      
      * Update reference file
      
      The changes are due to the StripVanadiumPeaks step in the SNSPowderReduction
      algorithm. This algorithm seems v sensitive to even tiny changes in the input
      workspace. The input workspace has some v small changes in at the ~15 decimal
      place level as a result of this PR which updates the TOF\dSpacing unit conversion.
      This causes the fits on some of the V peaks to behave differently and result
      in the output having some much bigger differences on a 5-10% level
      There is a composite function fit used in StripVanadiumPeaks (in FitPeak to be
      precise) that seems a bit unstable and v sensitive to the input data
      
      * Revert conversion from dSpacing to TOF to happen without calibration for ISIS Powder
      
      * Update reference file
      
      The changes are due to the StripVanadiumPeaks step. This algorithm seems very
      sensitive to even tiny changes in the input workspace. The workspace that is
      input to this step has some v small changes in at the ~15 decimal place level
      as a result of this PR which updates the TOF\dSpacing unit conversion. This
      causes the fits on some of the V peaks to behave differently and result in the
      output having some much bigger differences on a 5-10% level. There is a
      composite function fit used in StripVanadiumPeaks (in FitPeak to be precise)
      that seems a bit unstable and v sensitive to the input data
      
      * Temporary fix to get Polaris FocusTest to pass
      
      The Polaris FocusTest currently has a couple of problems:
      1) the sample empty run it uses looks wrong. 98532 is a V sample run
      2) the POLARIS00098532_splined workspace seems to have been generatedthe
      using some wrong\old crop ranges. This results in the normalization process
      dividing by zero which generates infinities in the output of the test. There
      are also some v large values (not quite double max) that get output which makes
      setting an absolute tolerance difficult
      
      * Update various ISIS Powder system test files to include masked spectra
      
      * Two changes
      
      Turn off caching in the SNSPowderRedux.PG3Analysis system test so the result of
      the system test doesn't depend on the previous job that ran on Jenkins
      Load the calibration in from a GSAS file in addition to the other instrument
      geometry information so any subsequent unit conversions in Mantid work properly
      
      * Widen tolerance so that Polaris focus system test passes
      
      * Turn off caching in SNSPowderRedux system test
      
      * Make it possible to override calibration to use on focused datasets
      dccf0867
  3. 23 Mar, 2021 2 commits
  4. 12 Mar, 2021 1 commit
    • Danny Hindson's avatar
      Resolve confusing variable names · 485dfc38
      Danny Hindson authored
      The difc and difa diffractometer constants were read into variables
      called difa and difc respectively. This "mistake" was then corrected
      in the formula where the unit conversion occurs but it was a bit
      obscure. Wanted to tidy this up before a bigger rework of the
      dSpacing unit conversions
      485dfc38
  5. 16 Feb, 2021 1 commit
  6. 12 Feb, 2021 3 commits
  7. 31 Jan, 2021 1 commit
  8. 28 Jan, 2021 1 commit
  9. 27 Jan, 2021 1 commit
  10. 25 Jan, 2021 1 commit
  11. 22 Jan, 2021 1 commit
  12. 19 Jan, 2021 1 commit
  13. 18 Jan, 2021 1 commit
    • Mathieu Tillet's avatar
      Move all of D11B at once when loading · 84656aea
      Mathieu Tillet authored
      Instead of moving each part separately, move all of the components by
      moving the parent, thus making sure the distance between the panels will
      stay constant.
      This requires to use the relativePosition flag, because the high level
      parent cannot be moved to absolute position.
      84656aea
  14. 15 Jan, 2021 1 commit
  15. 22 Dec, 2020 1 commit
  16. 21 Dec, 2020 1 commit
  17. 18 Dec, 2020 1 commit
    • Mathieu Tillet's avatar
      Remove pixel size for ILL SANS · f6210da5
      Mathieu Tillet authored
      When loading SANS instruments, storing the pixel size in the log data is
      now redundant with the parameter file and so is removed.
      f6210da5
  18. 16 Dec, 2020 1 commit
  19. 15 Dec, 2020 3 commits
  20. 07 Dec, 2020 6 commits
  21. 11 Nov, 2020 1 commit
  22. 06 Nov, 2020 1 commit
  23. 05 Nov, 2020 1 commit
  24. 27 Oct, 2020 1 commit
  25. 26 Oct, 2020 2 commits
  26. 22 Oct, 2020 1 commit
  27. 20 Oct, 2020 2 commits
  28. 14 Oct, 2020 1 commit