Ticket #8739 (closed: fixed)

Opened 7 years ago

Last modified 5 years ago

[IDA] Add Temperature Parameter to ConvFit

Reported by: Samuel Jackson Owned by: Samuel Jackson
Priority: major Milestone: Release 3.2
Component: Indirect Inelastic Keywords:
Cc: Blocked By:
Blocking: #5121 Tester: Peter Parker

Description

Requested by Franz. He would like an option to be able to include a temperature parameter when running ConvFit. This will probably required further discussion with him first.

Attachments

osi101944_graphite002_red.nxs (269.7 KB) - added by Samuel Jackson 7 years ago.
File for testing.
osi101913_graphite002_res.nxs (236.9 KB) - added by Samuel Jackson 7 years ago.
File for testing.
test_convfit.py (1.3 KB) - added by Samuel Jackson 7 years ago.
Testing script

Change History

comment:1 Changed 7 years ago by Samuel Jackson

  • Milestone changed from Backlog to Release 3.2

comment:2 Changed 7 years ago by Nick Draper

  • Status changed from new to assigned

Bulk move of tickets out of triage (new) to assigned at the introduction of the triage state

comment:3 Changed 7 years ago by Samuel Jackson

  • Blocking 5121 added

(In #5121) There is a function I created in ticket #8739 that would be useful in this ticket. Verify the other one first, then use the code for that ticket here.

comment:4 Changed 7 years ago by Samuel Jackson

  • Status changed from assigned to inprogress

Refs #8739 Update ConvFit to match new parameters.

Changeset: 522b29e841e2ad0f359b725fb5347b66d19a3836

comment:5 Changed 7 years ago by Samuel Jackson

Refs #8739 Update reference results.

The fit is still the same, but the x-values have changed because we're now using ConvertSpectrumAxis.

Changeset: 6dee60b87f25cff941523851d5d95b724b89dfde

comment:6 Changed 7 years ago by Samuel Jackson

Merge branch 'feature/8739_temp_param_in_convfit' into develop

Refs #8739

Conflicts:

SystemTests/AnalysisTests/ISISIndirectInelastic.py

Changeset: 35fbe7c0610c7328eb3104bc1f9e976b75f4f962

comment:7 Changed 7 years ago by Samuel Jackson

Refs #8739 Add option to interface.

Changeset: ee3a17ca9d7851fff9ed5a5a8e1b0033075759be

comment:8 Changed 7 years ago by Samuel Jackson

Refs #8739 Connect enabling option with checkbox.

Changeset: 1f88b4d4b9e0bc30e85c0514ec5ee52fbe267b4c

comment:9 Changed 7 years ago by Samuel Jackson

Refs #8739 Add temp factor to single run.

Changeset: ee6f99a411f989c98f6084b7d912729724723338

comment:10 Changed 7 years ago by Samuel Jackson

Refs #8739 Add temp factor to sequential run.

Changeset: 29913d1eed91c92f8a513d2b5de8d6dff297b6e7

comment:11 Changed 7 years ago by Samuel Jackson

Refs #8739 Swap seq. ConvFit to use PlotPeakByLogValue.

This means that we now only have to create the function once, currently on the C++ side. The additional temperature parameter is simply included in the function string passed to PlotPeakByLogValue.

Changeset: 30e23532085b9a29db84b76e9f49a8c5caf58130

comment:12 Changed 7 years ago by Samuel Jackson

Refs #8739 Modified plotParameters to take a variable number of args.

This makes it a little easier to pass single parameters to the function. It also now checks if the axis is a text axis before searching.

Changeset: ef20ff466587e7d854a7b3e16e062dedbed3f2c4

comment:13 Changed 7 years ago by Samuel Jackson

Refs #8739 Update ConvFit interface class to change parameters passed.

Changeset: 919e807216e1341bf314f549e01cfbcf99c26fed

comment:14 Changed 7 years ago by Samuel Jackson

Refs #8739 Add option to plot EISF to interface.

Changeset: 70ef884d4c40793bea28e912b04ba1be581764d4

comment:15 Changed 7 years ago by Samuel Jackson

Merge branch 'feature/8739_temp_param_in_convfit' into develop

Refs #8739

Conflicts:

Code/Mantid/scripts/Inelastic/IndirectDataAnalysis.py

Changeset: 521c0d5b58726c0463ebd48d434880441c3e9661

comment:16 Changed 7 years ago by Samuel Jackson

To Tester

This ticket has quite a lot of supporting changes, so it needs to be tested thoroughly. This ticket has changed how the fit function is built to remove duplicate code and simplify how it is passed to ConvFit as well as how the sequential fitting is done and we should be careful not to break anything.

This will need merging in both the main repo and the system tests.

Testing ConvFit

  • Firstly check that the system tests for ConvFit are passing.
  • Secondly check that all of the different options for ConvFit are working correctly and don't cause errors or obviously bizarre fit results.
    • This should be check with both a single and sequential fit (with emphasis on sequential).
    • Check that running a single fit updates the parameters on the interface.
    • Check that fixing parameters works with both single and sequential.
    • Check that combinations on 1 lorentzian, 2 lorentzians, and a delta function all work.

Testing the temperature option

  • There's a new temperature parameter on the interface. When it's unchecked ConvFit should run the same as it always has.
  • When checked it should take a temperature in Kelvin and apply the following correction as a product with the Lorentzian:
    • (x*11.606/temp) / (1 - exp((x*11.606)/temp))
    • where 11.606 is the conversion factor from energy to kelvin
  • I'v supplied testing files suggested by Franz and a python script which will run ConvFit for you both with and without the correction.
  • This option doesn't appear to produce a large difference in output. Swapping to using Linear(x)/Log(y) axes shows a very small difference near top of the peak. I've double checked the implementation logic with Franz and he seems to think it's correct, but would like to play with it more.
Last edited 7 years ago by Samuel Jackson (previous) (diff)

comment:17 Changed 7 years ago by Samuel Jackson

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

comment:18 Changed 7 years ago by Samuel Jackson

  • Status changed from verify to reopened
  • Resolution fixed deleted

comment:19 Changed 7 years ago by Samuel Jackson

  • Status changed from reopened to inprogress

Refs #8739 Fix naming typo.

Changeset: 64d6c371b32c716e373509955ee72e44c9f7a3f2

comment:20 Changed 7 years ago by Samuel Jackson

Refs #8739 Fix Function creation.

Ties are still not working.

Changeset: d084ba1cf2f30a5f6f11a40156f74b9bc2b78802

comment:21 Changed 7 years ago by Samuel Jackson

Refs #8739 Fit parameters now updated on interface.

Changeset: 0a85efc518c3dbedf0bf5d732e0df18331f9a6ae

comment:22 Changed 7 years ago by Samuel Jackson

Refs #8739 Fix ties in ConvFit.

Changeset: ed5f886db02edf13ea617720c01e0b82a30759f2

comment:23 Changed 7 years ago by Samuel Jackson

Refs #8739 Remove debugging code.

The extra line was just inserted to view the name in the debugger.

Changeset: ee41469e4cea7a31cc1a53f4a58640f36fddbeb2

comment:24 Changed 7 years ago by Samuel Jackson

Refs #8739 Only tie centres if there are two functions.

Changeset: 8f0a52e71e8b5e917514996d1f8e668289240e44

comment:25 Changed 7 years ago by Samuel Jackson

Refs #8739 Change name and corresponding name in Bayes.

The naming conventions need to be consistent across both Quasi and ConvFit so the output can be passed to JumpFit.

Changeset: c53205362f543d3abf0ad1a975dcb970093bb8c0

comment:26 Changed 7 years ago by Samuel Jackson

Refs #8739 Update system tests to match.

Changeset: 77eea2a8c4a7bf24fcccc4f702cb871c5e7c3882

comment:27 Changed 7 years ago by Samuel Jackson

Refs #8739 Change output of QLines to be consistent.

Changeset: 95d0ca63415b0011e33ab294c9ed879e8787a4ac

comment:28 Changed 7 years ago by Samuel Jackson

Refs #8739 Update test workspace names to reflect changes.

Changeset: 98daba4c74ff5864d8279e11aae687fe162ab869

comment:29 Changed 7 years ago by Samuel Jackson

  • Blocked By 9174 added

comment:30 Changed 7 years ago by Samuel Jackson

  • Blocked By 9174 removed

comment:31 Changed 7 years ago by Samuel Jackson

Refs #8739 Add additional output options for PlotPeak.

Changeset: b56d8f1c08a1b0f12338093c6d9dd419e2c3963f

comment:32 Changed 7 years ago by Samuel Jackson

Refs #8739 Correct a couple of logging issues.

Changeset: 099d842adc90789509b373df3ac0e67cbc281f5a

comment:33 Changed 7 years ago by Samuel Jackson

Refs #8739 Correct output workspace names.

Changeset: 7054db06bff0509d9c7f6e91acfd8698c5be1a26

Changed 7 years ago by Samuel Jackson

File for testing.

Changed 7 years ago by Samuel Jackson

File for testing.

Changed 7 years ago by Samuel Jackson

Testing script

comment:34 Changed 7 years ago by Samuel Jackson

To Tester

See comment 16

comment:35 Changed 7 years ago by Samuel Jackson

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

comment:36 Changed 7 years ago by Peter Parker

  • Status changed from verify to verifying
  • Tester set to Peter Parker

comment:37 Changed 7 years ago by Peter Parker

  • Status changed from verifying to closed

Merge remote-tracking branch 'origin/feature/8739_temp_param_in_convfit'

Full changeset: dcf401b3e7accb82ee0e6e3416b5d0ae4f3953d7

comment:38 Changed 7 years ago by Peter Parker

Changes don't appear to have broken anything.

Running the script, plotting and then changing the axes to logarithmic did indeed show a subtle difference on correcting for temp. Not that I claim to understand it, of course ...

Code review revealed nothing of note, except that we've introduced some mixed tab/space indentation in one of the files. Open another ticket to fix that, or do it in an existing ConvFit ticket.

comment:39 Changed 7 years ago by Peter Parker

Merge remote-tracking branch 'origin/feature/8739_temp_param_in_convfit'

Full changeset: c6aad19d7408ee49ddbf64d6a988dcae32e04f94

comment:40 Changed 5 years ago by Stuart Campbell

This ticket has been transferred to github issue 9583

Note: See TracTickets for help on using tickets.