Ticket #5439 (closed: invalid)

Opened 8 years ago

Last modified 5 years ago

NeXus geometry generation from Mantid IDFs

Reported by: Marie Yao Owned by: Marie Yao
Priority: major Milestone:
Component: Mantid Keywords:
Cc: campbellsi@…, petersonpf@…, kohlja@…, hartmansm@… Blocked By:
Blocking: Tester:

Description

According to the current STS design, moving forward we will generate geometry information for SNS NeXus files using Mantid based on:

  1. IDFs (special geometry packets in data stream defined by the ADARA network protocol), and
  2. Motor values (variable value packets in data stream defined by the ADARA network protocol).

Let's start with an algorithm (such as OutputRunGeometry.cpp) in DataHandling category, which will feature:

  • Inputs:
  1. An event NeXus file name with full path. This will be the output file of the NeXus Generator.
  2. An IDF file name with full path (optional, mainly for early testing) .
  • Outputs: eventually we'd like to write the following information (as generated by the current TS) back to the input event NeXus file:
  1. For each detector bank:
  1. x_pixel_offset
  2. y_pixel_offset
  3. distance
  4. polar_angle
  5. azimuthal_angle
  6. origin (orientation/value; shape/description, shape, size; translation/distance)
  1. For other instrument components:
  1. NXmoderator: distance
  2. NXaperture: origin (orientation/value; shape/description, shape, size; translation/distance)
  3. NXchopper: distance
  4. NXattenuator: distance
  5. NXcrystal: origin (orientation/value; shape/description, shape, size; translation/distance)
  6. NXmonitor: distance
  1. Other related information:
  1. NXsource: name, type, probe, frequency
  2. NXpolarizer
  3. NXmoderator: temperature, type, poison_depth, poison_material, coupling_material.
  4. NXcrystal: type, wavelength
  5. NXmonitor: data, mode, time_of_flight

Note: for now we have histogrammed beam monitor data, moving forward we expect event mode beam monitor data.

We still need to decide what we want to do as motor values will get updated during a run. Do we want to wait until we get all required motor values and then generate and append the geometry information (assuming NeXus generator will put motor values to /entry/DASlogs)? What do we do if the instrument geometry got changed during a run (e.g. multiple S2 updates for HYS)? And so forth.

Change History

comment:1 Changed 8 years ago by Stuart Campbell

  • Status changed from new to assigned
  • Owner changed from Marie Yao to Stuart Campbell

comment:2 Changed 8 years ago by Stuart Campbell

  • Status changed from assigned to accepted

comment:3 Changed 8 years ago by Stuart Campbell

refs #5439. Initial skeleton of algorithm.

Not functional yet, just committing for safety. Not in CMake. Reads instrument name from NeXus file, then determines IDF. Runs LoadEmptyInstrument().

Changeset: bc9dddc757f8534e7b90fc8e19ce58db18f35761

comment:4 Changed 8 years ago by Stuart Campbell

refs #5439. Comment out unit test.

Changeset: d152c01711fc6f4b6b83dee8ad326624650b086c

comment:5 Changed 8 years ago by Stuart Campbell

refs #5439. Add into CMake

Changeset: 766fd5979f4216b2e95dc6e0cf2d507554d528ab

comment:6 Changed 8 years ago by Stuart Campbell

refs #5439. Comment out section.

Changeset: 753296d1cf6a32e9890ec5bd141ce0f47c71bfaf

comment:7 Changed 8 years ago by Stuart Campbell

refs #5439. Really comment out what I meant to.

Changeset: cff07a3a7456ad648e38e79cda25505b3da8d13e

comment:8 Changed 8 years ago by Stuart Campbell

refs #5439. Initial skeleton of algorithm.

Not functional yet, just committing for safety. Not in CMake. Reads instrument name from NeXus file, then determines IDF. Runs LoadEmptyInstrument().

Changeset: bc9dddc757f8534e7b90fc8e19ce58db18f35761

comment:9 Changed 8 years ago by Stuart Campbell

refs #5439. Comment out unit test.

Changeset: d152c01711fc6f4b6b83dee8ad326624650b086c

comment:10 Changed 8 years ago by Stuart Campbell

refs #5439. Comment out section.

Changeset: 753296d1cf6a32e9890ec5bd141ce0f47c71bfaf

comment:11 Changed 8 years ago by Stuart Campbell

refs #5439. Really comment out what I meant to.

Changeset: cff07a3a7456ad648e38e79cda25505b3da8d13e

comment:12 Changed 8 years ago by Stuart Campbell

refs #5439. Initial skeleton of algorithm.

Not functional yet, just committing for safety. Not in CMake. Reads instrument name from NeXus file, then determines IDF. Runs LoadEmptyInstrument().

Changeset: bc9dddc757f8534e7b90fc8e19ce58db18f35761

comment:13 Changed 8 years ago by Stuart Campbell

refs #5439. Comment out unit test.

Changeset: d152c01711fc6f4b6b83dee8ad326624650b086c

comment:14 Changed 8 years ago by Stuart Campbell

refs #5439. Comment out section.

Changeset: 753296d1cf6a32e9890ec5bd141ce0f47c71bfaf

comment:15 Changed 8 years ago by Stuart Campbell

refs #5439. Really comment out what I meant to.

Changeset: cff07a3a7456ad648e38e79cda25505b3da8d13e

comment:16 Changed 8 years ago by Stuart Campbell

Refs #5439. minor changes.

Loop over all detectors and check for existance of NXdetector parameter. Will print basic geometry in debug.

Changeset: c4edd902be531533d65387d70dbb41c864507b3c

comment:17 Changed 8 years ago by Stuart Campbell

Refs #5439. minor changes.

Loop over all detectors and check for existance of NXdetector parameter. Will print basic geometry in debug.

Changeset: c4edd902be531533d65387d70dbb41c864507b3c

comment:18 Changed 8 years ago by Stuart Campbell

refs #5439. Further developments

Added option to copy file before modifying - mainly for testing Writes Monitor distance Writes Detector information:

pixel_id distance polar_angle azimuthal_angle

these are all given the suffix '_new' for the moment to avoid conflicts with existing elements.

Timing: for CNCS - 0.78 sec to generate and append.

Changeset: c1167877709d02f2f8a16eb544c33b2c114e523d

comment:19 Changed 8 years ago by Stuart Campbell

refs #5439. Further developments

Added option to copy file before modifying - mainly for testing Writes Monitor distance Writes Detector information:

pixel_id distance polar_angle azimuthal_angle

these are all given the suffix '_new' for the moment to avoid conflicts with existing elements.

Timing: for CNCS - 0.78 sec to generate and append.

Changeset: c1167877709d02f2f8a16eb544c33b2c114e523d

comment:20 Changed 8 years ago by Stuart Campbell

refs #5439. Exposed in Mantid. Added Error checking.

The algorithm is now registered within Mantid. Added some error checking on file access permissions. Added warning statement that this is only a prototype.

Changeset: f46082d6d42adbfd4e7de501f1b35b2dafed87e4

comment:21 Changed 8 years ago by Stuart Campbell

  • Status changed from accepted to assigned
  • Owner changed from Stuart Campbell to Marie Yao

Handing back to Marie.

comment:22 Changed 8 years ago by Stuart Campbell

refs #5439. Initial skeleton of algorithm.

Not functional yet, just committing for safety. Not in CMake. Reads instrument name from NeXus file, then determines IDF. Runs LoadEmptyInstrument().

Changeset: bc9dddc757f8534e7b90fc8e19ce58db18f35761

comment:23 Changed 8 years ago by Stuart Campbell

refs #5439. Comment out unit test.

Changeset: d152c01711fc6f4b6b83dee8ad326624650b086c

comment:24 Changed 8 years ago by Stuart Campbell

refs #5439. Comment out section.

Changeset: 753296d1cf6a32e9890ec5bd141ce0f47c71bfaf

comment:25 Changed 8 years ago by Stuart Campbell

refs #5439. Really comment out what I meant to.

Changeset: cff07a3a7456ad648e38e79cda25505b3da8d13e

comment:26 Changed 8 years ago by Stuart Campbell

Refs #5439. minor changes.

Loop over all detectors and check for existance of NXdetector parameter. Will print basic geometry in debug.

Changeset: c4edd902be531533d65387d70dbb41c864507b3c

comment:27 Changed 8 years ago by Stuart Campbell

refs #5439. Further developments

Added option to copy file before modifying - mainly for testing Writes Monitor distance Writes Detector information:

pixel_id distance polar_angle azimuthal_angle

these are all given the suffix '_new' for the moment to avoid conflicts with existing elements.

Timing: for CNCS - 0.78 sec to generate and append.

Changeset: c1167877709d02f2f8a16eb544c33b2c114e523d

comment:28 Changed 8 years ago by Stuart Campbell

refs #5439. Exposed in Mantid. Added Error checking.

The algorithm is now registered within Mantid. Added some error checking on file access permissions. Added warning statement that this is only a prototype.

Changeset: f46082d6d42adbfd4e7de501f1b35b2dafed87e4

comment:29 Changed 8 years ago by Marie Yao

Refs #5439. Throwing an error if fails to get instrument name.

Changeset: b1fb8619eb4b78a139bbe8ca93dc55fd8b42ced8

comment:30 Changed 8 years ago by Marie Yao

Refs #5439. Modified to call LoadInstrument as a sub-algorithm.

Changeset: c24734cb9a26c24fd2b84772f0fb2a8e97066605

comment:31 Changed 8 years ago by Marie Yao

Refs #5439. Minor changes.

Changeset: 59d9af45c6818e0ca1d34584298d520d0eb6defa

comment:32 Changed 8 years ago by Marie Yao

Refs #5439. Removed zero padding in the bank names

(e.g. bank01 to bank1) in HYSPEC IDF to be consistent with NeXus files. Changeset: bbf1c5c2f544a8f42caaef6f11f20005456d2c6f

comment:33 Changed 8 years ago by Marie Yao

Refs #5439. Load NeXus logs for HYSPEC (HYSPECA) and SNAP.

Changeset: ba7a24a23da8d12613592b7adabfc3a7574820ae

comment:34 Changed 8 years ago by Marie Yao

Refs #5439. Use HYS_11088_event.nxs to test motors.

Changeset: cee13bbd9dce5dbd30881ab5e2a2aef9ab9be57b

comment:35 Changed 8 years ago by Marie Yao

Refs #5439. Added and used HYS_11092_event.nxs for unit test.

The smallest HYS event NeXus file with monitors is /SNS/HYS/IPTS-7964/0/12467/NeXus/HYS_12467_event.nxs, 4.1M.

Changeset: b4fcd07ed1ad76ea9aefb69155c79916048cc042

comment:36 Changed 8 years ago by Marie Yao

Refs #5439. Throwing an error if fails to get instrument name.

Changeset: b1fb8619eb4b78a139bbe8ca93dc55fd8b42ced8

comment:37 Changed 8 years ago by Marie Yao

Refs #5439. Modified to call LoadInstrument as a sub-algorithm.

Changeset: c24734cb9a26c24fd2b84772f0fb2a8e97066605

comment:38 Changed 8 years ago by Marie Yao

Refs #5439. Minor changes.

Changeset: 59d9af45c6818e0ca1d34584298d520d0eb6defa

comment:39 Changed 8 years ago by Marie Yao

Refs #5439. Removed zero padding in the bank names

(e.g. bank01 to bank1) in HYSPEC IDF to be consistent with NeXus files. Changeset: bbf1c5c2f544a8f42caaef6f11f20005456d2c6f

comment:40 Changed 8 years ago by Marie Yao

Refs #5439. Load NeXus logs for HYSPEC (HYSPECA) and SNAP.

Changeset: ba7a24a23da8d12613592b7adabfc3a7574820ae

comment:41 Changed 8 years ago by Marie Yao

Refs #5439. Use HYS_11088_event.nxs to test motors.

Changeset: cee13bbd9dce5dbd30881ab5e2a2aef9ab9be57b

comment:42 Changed 8 years ago by Marie Yao

Refs #5439. Added and used HYS_11092_event.nxs for unit test.

The smallest HYS event NeXus file with monitors is /SNS/HYS/IPTS-7964/0/12467/NeXus/HYS_12467_event.nxs, 4.1M.

Changeset: b4fcd07ed1ad76ea9aefb69155c79916048cc042

comment:43 Changed 7 years ago by Nick Draper

  • Status changed from assigned to new

comment:44 Changed 7 years ago by Nick Draper

  • Status changed from new to closed
  • Resolution set to invalid

Closing old ongoing tickets as none are valid anymore, create new instance tickets for work as required

comment:45 Changed 7 years ago by Nick Draper

  • Milestone Ongoing deleted

Milestone Ongoing deleted

comment:46 Changed 5 years ago by Stuart Campbell

This ticket has been transferred to github issue 6285

Note: See TracTickets for help on using tickets.