tkelley at caltech.edu
Thu Sep 16 18:27:30 BST 2004
I recently tried to write a DTD specification for the ARCS spectrometer
at SNS. I had some questions as I went through the process, ranging from
simple confusion to language lawyering. Thanks for any help with any of
First some NXdetector questions:
There is ambiguity about how to describe a composite detector like a
linear PSD. Many of the fields in NXdetector, such as <id>, are
presented as arrays of length i.
1) Is <id> meant to be an array of the id's of the composite's children?
1.a.1) If so, where do I put the id for the detector itself?
1.a.2) Does this mean all the other property arrays like gas_pressure
are meant to implicitly define the children? Wasn't nexus supposed to
get us out of implicitly defining things and into explicitly defining them?
1.b) If no, where do I put the children's id's, and why do I need arrays?
On the other hand, are NXdetectors meant to be nested? This would make
the hierarchy clear and lovely, but then why have arrays for everything?
--Why is there no "Pixel" option in the <type> field? (Should I just use
"He3 gas cylinder"? Doesn't seem quite the same.)
-- What is <time_of_flight>? I would associate a TOF with a dataset, not
sure what it means in the context of a detector.
-- For <calibration_date>, type="ISO8601". Isn't ISO8601 a format, not a
type? Can I tell NXmalloc to allocate a buffer of ISO8601? Same for
type="NXnote" in <calibration_method>.
Some nexus DTDs specify type size ("NX_INT32") and some don't
("NX_FLOAT"). Wouldn't it be preferable to simply specify int or float
in the DTD and leave it to particular files to specify how many bits
were used? Anyway, should this be uniform?
More comments on other classes coming soon...
More information about the NeXus