COMCIFS / instrument-geometry-info

A collection of layouts for specific beamlines and instruments
0 stars 3 forks source link

imgCIF of _b4_1_master.h5 #42

Open kroon-lab opened 1 year ago

kroon-lab commented 1 year ago

I used creator to generate an imgCIF from _b4_1master.h5. In addition to my mail of 03-02-2023 I have some comments: loop _axis.id _axis.type _axis.equipment _axis.depends_on _axis.vector[1] _axis.vector[2] _axis.vector[3] _axis.offset[1] _axis.offset[2] _axis.offset[3] chi rotation goniometer detx -0.0046 0.0372 -0.9993 0 0 0
omega rotation goniometer . 1 0 0 0 0 0
two_theta rotation goniometer . 1 0 0 0 0 0
phi rotation goniometer chi 1 -0.0037 0.002 0 0 0
detx translation detector dety -1 0 0 -166.87357 172.49715 0
dety translation detector trans 0 1 0 0 0 0
trans translation detector omega 0 0 -1 0 0 -287.22243

==> chi should depend on omega ==> in the publication (he4557) _axis.equipment for two_theta was detector, not goniometer ==> trans should depend on two_theta ==> detx should depend on trans ==> dety depends on detx ==> detx vector should be [1 0 0] ==> dety vector should be [0 -1 0]

loop_ _array_structure_list_axis.axis_id _array_structure_list_axis.axis_set_id _array_structure_list_axis.displacement _array_structure_list_axis.displacement_increment array_x 1 0.0375 0.075
array_y 2 0.0375 0.075

==> _array_structure_list_axis.axis.id is a pointer to _axis.id above. So I think that array_x should be detx, and likewise for array_y

loop_ _diffrn_detector_axis.axis_id _diffrn_detector_axis.detector_id det_z det1

==> again _diffrn_detector_axis.axis.id is a pointer to axis.id, and thus should be trans loop _diffrn_scan_axis.scan_id _diffrn_scan_axis.axis_id _diffrn_scan_axis.displacement_start _diffrn_scan_axis.displacement_increment _diffrn_scan_axis.displacement_range _diffrn_scan_axis.angle_start _diffrn_scan_axis.angle_increment _diffrn_scan_axis.angle_range SCAN1 chi . . . 0.0 0 0
SCAN1 omega . . . 0.0 0.1 360.0
SCAN1 phi . . . 0.0 0 0
SCAN1 detx . . . 0.0 0 0
SCAN1 dety . . . 0.0 0 0
SCAN1 trans 287.2224260231453 0 0 . . .

==> only omega is scanned. Leave the other _axis.id out?? I don't mind if they stay in, but normally we use only one scan-axis

The construction with _diffrn_scan_axis and _diifrn_scanframe is different from the one we published (he5447) but seems OK to me. loop _diffrn_data_frame.id _diffrn_data_frame.detector_element_id _diffrn_data_frame.array_id _diffrn_data_frame.binary_id frm1 ELEMENT01 IMAGE01 1
frm2 ELEMENT01 IMAGE01 2
==> I have a question to @jamesrhester : _diffraction_data_frame.id should be a pointer to _array_structure.id but that data name is never given. Is that a problem?

==> Then, _diffrn_data_frame.array_id is also a pointer to _array_structure.id, so should be the same as _diffraction_data_frame.id ? Now they are IMAGE01 and frm1 respectively. ==> I cannot find _array_data.id in the dictionary?

@jamesrhester can you please look if the construction with pointers to data is complete, not redundant and does not contain unnecessary data items

julianhoersch commented 1 year ago

To disentangle this a bit I've created two new issues to answer your points

45 and #46