Ticket #8506 (closed: fixed)
[Muon] Update LoadMuonNexus to return dead times as a table.
Reported by: | Arturs Bekasovs | Owned by: | Arturs Bekasovs |
---|---|---|---|
Priority: | major | Milestone: | Release 3.1 |
Component: | Muon | Keywords: | |
Cc: | Blocked By: | ||
Blocking: | #8494 | Tester: | Karl Palmen |
Description (last modified by Arturs Bekasovs) (diff)
Both MuonAnalysis interface and PlotAsymmetryLogValue algorithm are currently doing it internally and should be refactored to use the new algorithm. To make it easier, LoadMuonNexus should be updated to return dead times as a table. Single table should be returned for single period data. Group of tables might be returned for multi-period data. In both cases, it will allow us to pass the result directly to ApplyDeadTimeCorr.
Change History
comment:2 Changed 7 years ago by Arturs Bekasovs
- Description modified (diff)
- Summary changed from [Muon] MuonLoadCorrected algorithm to [Muon] Update LoadMuonNexus to return dead times as a table.
comment:3 Changed 7 years ago by Arturs Bekasovs
- Status changed from new to inprogress
Refs #8506. Changed property type, simple test for it.
Changeset: 55466cf4f94b11fdfb8c1706f0af6fd1e1a3d6f3
comment:4 Changed 7 years ago by Arturs Bekasovs
Refs #8506. Creating single table.
Changeset: 3ac4a46dce7d1ef72589e94c6b2514e7abbc725c
comment:5 Changed 7 years ago by Arturs Bekasovs
Refs #8506. Multi-period dead times.
Changeset: 0648adc166a5f82c6eb38fbab5ccd0c8ffdc0f94
comment:6 Changed 7 years ago by Arturs Bekasovs
Refs #8506. Fix build servers.
Skip some tests for now, fix ambiguous NeXus namespace.
Changeset: bf07d2edd96e783dd6f540ed06a7c77fd10c3e4f
comment:7 Changed 7 years ago by Arturs Bekasovs
Refs #8506. Attempt to fix namespace issues on Windows.
Changeset: 148053bb04cd83d95cb256e2f00d2a3842512226
comment:8 Changed 7 years ago by Arturs Bekasovs
- Description modified (diff)
- Summary changed from [Muon] Update LoadMuonNexus to return dead times as a table. to [Muon] MuonLoadCorrected algorithm
comment:9 Changed 7 years ago by Arturs Bekasovs
Refs #8506. Updated PlotAsymmetryByLogValue.
So it uses new functionality and doesn't convert the vector to table itself.
Changeset: 42de2f8250610775cae2d29b13bf15c271a4185f
comment:10 Changed 7 years ago by Arturs Bekasovs
Refs #8506. Renamed property name.
This makes it more consistent with how the same property is named in ApplyDeadTimeCorr.
Changeset: 7d41fe440cb4b31041c1e156529b74fd76e26127
comment:11 Changed 7 years ago by Arturs Bekasovs
Refs #8506. New files.
Changeset: 0de0b86a57cc653530a30a18586f05d28f51f9e8
comment:12 Changed 7 years ago by Arturs Bekasovs
Refs #8506. Initial version - no correction applied.
Changeset: 80a4803b8d6dba7c3069a12a5dd51171d208cac9
comment:13 Changed 7 years ago by Arturs Bekasovs
Refs #8506. Applying correction from data.
Changeset: 80ca087e3ca7889a774e6ec921bc41edef3e991f
comment:14 Changed 7 years ago by Arturs Bekasovs
Refs #8506. Correction from specified file.
Changeset: c6c739652f79436fa044c44d9fe7003421f732b9
comment:15 Changed 7 years ago by Arturs Bekasovs
Refs #8506. Multi-period tests.
Changeset: 664f827c23437a4387f92cb2c6c22f3dc7475878
comment:16 Changed 7 years ago by Arturs Bekasovs
Refs #8506. Update the work.
Some of the commit were taken from another branch created before LoadMuonNexus was updated, so it had to be updated to use new functionality.
Plus skip test for not implemented functionality so that I can checkbuild.
Changeset: c9c7d32461f89cbe5ee786374c0b25d0781e7941
comment:17 Changed 7 years ago by Arturs Bekasovs
- Description modified (diff)
- Summary changed from [Muon] MuonLoadCorrected algorithm to [Muon] Update LoadMuonNexus to return dead times as a table.
Rethought again. MuonApplyDtc is basically just replicating checkGroup/processGroups functionality of the Algorithm. I couldn't create such an algorithm for every time I will need to process multi-period Muon data, so a general solution should be found.
The reason why I can't use checkGroup/processGroup functionality is that my workspaces are not in the ADS. That's a fundamental problem with WorkspaceProperties and I would not dare solving it now.
The temporary solution I've came up with is creating ScopedWorkspace class, which would allow me to add something to the ADS and remove it automatically when going out of scope. This should be exception and error safe.
comment:18 Changed 7 years ago by Arturs Bekasovs
Refs #8506. Implemented multi-period handling.
Changeset: bec50773da8808638ac64bd7479cdaa676d4d114
comment:19 Changed 7 years ago by Arturs Bekasovs
Refs #8506. Better property option name.
Changeset: 60ccf5ad46e9dd0de4c1cd852e60dbdd088d0c75
comment:20 Changed 7 years ago by Arturs Bekasovs
Refs #8506. Using new algorithm in PlotAsymmetryByLogValue.
Changeset: b1717fbc403d9c680604c8dc24a0458cbece89c4
comment:21 Changed 7 years ago by Arturs Bekasovs
Refs #8506. Renamed algorithm.
It was decided to move loading part out of it.
Changeset: 425cbef497cd6b97ebc83d51a5912c6cd86b93a3
comment:22 Changed 7 years ago by Arturs Bekasovs
Refs #8506. Removed the workflow algorithm.
Changeset: 8e399b3059cbbbb6e615d50828edb09ef64f10bb
comment:23 Changed 7 years ago by Arturs Bekasovs
Refs #8506. Files for new ScopedWorkspace class.
Changeset: 7025158bb78bc310aa74b2d611416fe12510a9a4
comment:24 Changed 7 years ago by Arturs Bekasovs
Refs #8506. ScopedWorkspace: unique name generation.
Changeset: 70735aa327360212bf54f94b2ab771f5b2a8d5df
comment:25 Changed 7 years ago by Arturs Bekasovs
Refs #8506. ScopedWorkspace: removing from ADS when destructed.
Changeset: ce74929f7c63b77d0951005d65a785d7600bbdb0
comment:26 Changed 7 years ago by Arturs Bekasovs
Refs #8506. ScopedWorkspace: work correctly with groups.
Changeset: 6cbb276fab6fabcf177167278596a207e857bc19
comment:27 Changed 7 years ago by Arturs Bekasovs
Refs #8506. ScopedWorkspace: exception test.
Changeset: d0c7236c0c77d9785a3500dfc727bd65befb6790
comment:28 Changed 7 years ago by Arturs Bekasovs
Refs #8506. ScopedWorkspace: workspace constructor.
Changeset: 1428880f060bc3a2d54b73d517e5eba4dbd76c58
comment:29 Changed 7 years ago by Arturs Bekasovs
Refs #8506. ScopedWorkspace: retrieve() method.
Plus made non copyable/assignable.
Changeset: c9141833138ddcfa80cfc3216efec69665ca7122
comment:30 Changed 7 years ago by Arturs Bekasovs
Refs #8506. ScopedWorkspace: set() method.
Changeset: 019b34e16e6b003456215978a898e12c8aaa4500
comment:31 Changed 7 years ago by Arturs Bekasovs
Refs #8506. ScopedWorkspace: remove srand call.
No need, we don't really care about the seed.
Changeset: 2ac07b6729f3d5cc27ffc3a409427a2836ef6d02
comment:32 Changed 7 years ago by Arturs Bekasovs
Refs #8506. Update PlotAsymmetryByLogValue.
Is using scoped workspaces now so it doesn't care whether workspaces are groups or not.
Changeset: f271e78ec4b0c0dc635cc2899a1a9648375a5a4e
comment:33 Changed 7 years ago by Arturs Bekasovs
Refs #8506. ScopedWorkspace: not allow creating if already in ADS.
Changeset: bc00fb824ba380c628bfffbf108b01e2e9b13262
comment:34 Changed 7 years ago by Arturs Bekasovs
Refs #8506. ScopedWorkspace: boolean operator.
Changeset: 00f0f78baa83f3b3fe9b140a78c76ee97a8eaf9e
comment:35 Changed 7 years ago by Arturs Bekasovs
Refs #8506. Refactor MuonAnalysis.
Dead time table is now just passed to ApplyDeadTimeCorr (with a little help from ScopedWorkspace).
Changeset: 4a5ad3695337666ce463541b085adcca4539259e
comment:36 Changed 7 years ago by Arturs Bekasovs
Refs #8506. ScopedWorkspace: documentation.
Changeset: 3096975d4547d37eb3e32ee0dadda20784032562
comment:37 Changed 7 years ago by Arturs Bekasovs
Tester:
Code review note: please don't use earlier commit history as it is rather confusing - stuff was added and later removed. You'd be better with cumulative set of changes as can be viewed here: https://github.com/mantidproject/mantid/compare/feature;8506_muon_load_corr_alg#files_bucket
What was done and should be verified:
- LoadMuonNexus algorithm should return dead times as a table workspace. Test it with both single period and multi-period data. Check that tests were updated accordingly.
- MuonAnalysis code was refactored and should now basically just pass table workspace with dead times to ApplyDeadTimeCorr algorithm. None of the calculations should be performed in that regard. Check that dead time is applied for both single-period and multi-period data. (Be aware of problem as described in #8433 which basically means when errors happens during dead time correction for multi-period data, the original data might get corrupted).
- PlotAsymmetryByLogValue algorithm was updated to not do any dead time calculations itself as well. This functionality is covered by tests, so check that they are sensible.
- ScopedWorkspace was added. Please make sure you understand (and agree with!) its purpose and how it is used in MuonAnalysis in PlotAsymmetryByLogValue.
comment:38 Changed 7 years ago by Arturs Bekasovs
Refs #8506. MuonAnalysis: better error handling.
Changeset: 2d8de9a3b5e1214fea26307826503ad12431acc8
comment:39 Changed 7 years ago by Arturs Bekasovs
- Status changed from inprogress to verify
- Resolution set to fixed
comment:40 Changed 7 years ago by Karl Palmen
- Status changed from verify to verifying
- Tester set to Karl Palmen
comment:41 Changed 7 years ago by Karl Palmen
- Status changed from verifying to closed
Merge remote-tracking branch 'origin/feature/8506_muon_load_corr_alg'
Full changeset: 610b6ccbb947bdd31df3b024d5623128bd20cda3
comment:42 Changed 5 years ago by Stuart Campbell
This ticket has been transferred to github issue 9350