Ticket #5439 (closed: invalid)
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:
- IDFs (special geometry packets in data stream defined by the ADARA network protocol), and
- 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:
- An event NeXus file name with full path. This will be the output file of the NeXus Generator.
- 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:
- For each detector bank:
- x_pixel_offset
- y_pixel_offset
- distance
- polar_angle
- azimuthal_angle
- origin (orientation/value; shape/description, shape, size; translation/distance)
- For other instrument components:
- NXmoderator: distance
- NXaperture: origin (orientation/value; shape/description, shape, size; translation/distance)
- NXchopper: distance
- NXattenuator: distance
- NXcrystal: origin (orientation/value; shape/description, shape, size; translation/distance)
- NXmonitor: distance
- Other related information:
- NXsource: name, type, probe, frequency
- NXpolarizer
- NXmoderator: temperature, type, poison_depth, poison_material, coupling_material.
- NXcrystal: type, wavelength
- 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: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: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:46 Changed 5 years ago by Stuart Campbell
This ticket has been transferred to github issue 6285