scipp / scipp/ess

Run esssans workflow on polarized ISIS data

Open
#420 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

esspolarization
Dominant language
Python
Stars
1
Forks
3
Avg merge
2d 11h
Merged PRs (30d)
17

Description

Executive summary

We need to read in the 4-period (4 spin channel) ISIS data into the esssans workflow to test at which point of the unpolarized workflow we can insert the polarization workflow. Subsequently, testfunctions from the esspolarization workflow shall be tested on the polarized data inserted into esssans

Context and background knowledge

Johannes has rewritten codes in the esssans workflow such that instead of one single SampleRun file now the 4-period polarization data can be inserted. For that, we do not call iofq[SampleRun], but e.g. iofq['++' / '+-' / '-+' / '--']. He has written it into the issue "fix-add-monitors"

Inputs

As example file for a "sample run" for the esssans workflow I take the polarized data ZOOM00022717.nxs. All other files are taken over from the example set for esssans. According to the ISIS ZOOM beamline scientist, the 'ZOOM00022717.nxs' data is to bea read out on monitor 5, as it is a 'SANS' mode data. ('TRANS' mode data instead would be read out on monitor 4). Also, according to Simon, pl[ReturnEvents] now has to be set to True to take the data in eventmode. Data is read in via mantid and locally saved files.

  • IMPORTANT: to try functions from the previous esssans workflow (e.g. plot(iofq.items())), pl[ReturnEvents] has to be set back to False
Methodology

Use esssans, but divide data into keys of ['++' / '+-' / '-+' / '--']

Outputs

Some functions, e.g. iofq['++' / '+-' / '-+' / '--'] work, but others, e.g. isis.plot_flat_detector_xy(results[MaskedData['++']]) not - which. syntax to use?

Which interfaces are required?

Jupyter notebook

Test cases

testdata ZOOM00022717.nxs from Diego Alba Venero, saved locally

Comments

Open questions:

  • Why does the down-incoming spin channel obtain lower Q than the up-incoming spin channel?
  • Why does the flat_detector_xy on the Sample run look isis.plot_flat_detector_xy(results[MaskedData[SampleRun]]) look so weird? Maybe becuase it is made out of 4 periods with 4 spin channels? Why doesisis.plot_flat_detector_xy(results['++']) or isis.plot_flat_detector_xy(results[MaskedData['++']]) not work and what would be the correct syntax / how should I insert it?
  • Same question: Why does pl.compute(IofQ['++']) not work?
  • Maybe here we have to think about at which point of the workflow to insert the polarization data and where to insert the polarization workflow before the final histogramming!!

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the esssans workflow and the locally saved ZOOM00022717.nxs test data in a Jupyter notebook, using the four spin-channel keys and the stated monitor and ReturnEvents settings. Compare the functions that work with those that fail, including plot_flat_detector_xy and compute, and consult the fix-add-monitors issue. Done means the polarization data runs through the workflow and the insertion point for esspolarization, along with correct syntax for the affected functions, is established.

Written by the indexing model from the issue text.

Assessment

Tech stack
jupyter-notebook, python
Domain
data
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.