[Nexus] NXdetector

Timothy Kelley tkelley at caltech.edu
Thu Sep 16 18:27:30 BST 2004

Hello nexus,

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?

More questions:
--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...

Tim Kelley

More information about the NeXus mailing list