Delivered-To: yaya-bernstein-plus-sons:com-yaya at bernstein-plus-sons dot com Date: Thu, 18 Jan 2007 17:28:02 -0500 (EST) From: "Herbert J. Bernstein" <yaya at bernstein-plus-sons dot com> X-X-Sender: yaya at epsilon.pair dot com To: wright at esrf dot fr, hammersl at esrf dot fr, ferrero atesrf dot fr cc: sweet at bnl dot gov Subject: Status of stuff X-Status: A X-Keywords: Dear Colleagues, First, let me say thank you for a very productive and enjoyable visit. I apologize for my cold and the constraints imposed by my diet, but for me, with such interesting work and such fine colleagues, this was a minor inconvenience. Let me summarize where I believe things stand. Please add to or correct anything I say here. 1. Improved handling of beam centers. After very useful discussions with Andy and Jon, it became clear that the major problem with the use of the CBFlib beam centering protocol was that you needed a center taken against reference axis settings in addition to the existing code which works against current axis settings. While the problem could be addressed by adjusting the relevant angles to 0 while computing the beam center, it proved both simple and effective to add code in the library to simulate that action and to even extend it to allow for more general reference settings in each file. The code has been written and after testing by Andy and more discussion with Andy and Jon, readjusted to preserve translation axis displacements even no reference setting is provided. After further testing by Andy, the result now seems to be within 1/2 pixel of expected results. We will test further tomorow, but it is clear that any final adjustment can be taken care of by email. 2. Monitors. Neither mmCIF nor has clearly identified tags for beam monitors. Below my signature you will find what I suggest as additions to handle monitors. It is simple, and, if you like it, I will add the usual get/set routines to CBFlib. If you think it helpful, I can also add a ".details" tag for comments on the type of monitor, or we could even add a special list of types. 3. Documentation of the orientation matrix to add clarity about the relationship of CBFlib axes. While this is actually an mmCIF issue, there is not harm in adding details in the imgCIF dictionary. When I get home, I will set down and write up something for your review and comments. 4. Andy has a copy of the revised CBFlib to this point. I will try to upload the very latest version to blondie.dowling dot edu before I leave, and that is also the location to look for changes over the next few weeks. I hope to post a consolidated draft version CBFlib_0.7.7 with both these changes and the SLS changes by the end of next week. The SLS changes will provide two compression types not previously working in CBFlib and usefull additions to the MIME header of a binary section giving details on the sizes of the dimension. 5. Windows compatibility issues. My thanks to Andy for pointing out the conflicts between CBFlib and the Window Visual Studio compiler. All but one minor issue now seem to be resolved. That last issue is non-fatal, but I will investigate further. 5. The talk. It was great fun for me. I hope you and your colleagues found it useful. Thank you again for your hospitality and for helping to defray some of the costs. Regards, Herbert # category DIFFRN_DATA_FRAME_MONITORS # # _diffrn_data_frame_monitors.frame_id # _diffrn_data_frame_monitors.detector_element_id # _diffrn_data_frame_monitors.gross_counts # _diffrn_data_frame_monitors.count_rate ############################## # DIFFRN_DATA_FRAME_MONITORS # ############################## save_DIFFRN_DATA_FRAME_MONITORS _category.description ; Data items in the DIFFRN_DATA_FRAME_MONITORS category describe the monitor data obtained from detectors collecting beam intensities and other monitoring information during the data collection for a frame. The monitor detector element may be the same as or different from the detector element collecting image data for the frame. More than one detector element may be listed for the same frame. ; _category.id diffrn_data_frame_monitors _category.mandatory_code no loop_ _category_key.name '_diffrn_data_frame_monitors.frame_id' '_diffrn_data_frame_monitors.detector_element_id' loop_ _category_group.id 'inclusive_group' 'diffrn_group' loop_ _category_examples.detail _category_examples.case # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; Example 1 - The frame monitored by a beam monitor showing a complete beam failure ; ; loop_ _diffrn_data_frame_monitors.frame_id _diffrn_data_frame_monitors.detector_element_id _diffrn_data_frame_monitors.count_rate frame_1 beam_monitor 0 ; # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - save_ save__diffrn_data_frame_monitors.frame_id _item_description.description ; This item is a pointer to _diffrn_data_frame.id in the DIFFRN_DATA_FRAME category. ; _item.name '_diffrn_data_frame_monitors.frame_id' _item.category_id _diffrn_data_frame_monitors _item.mandatory_code yes _item_type.code code save_ save__diffrn_data_frame_monitors.detector_element_id _item_description.description ; This item is a pointer to _diffrn_detector_element.id in the DIFFRN_DETECTOR_ELEMENT category. ; _item.name '_diffrn_data_frame_monitors.detector_element_id' _item.category_id diffrn_data_frame_monitors _item.mandatory_code yes _item_type.code code save_ save__diffrn_data_frame_monitors.gross_counts _item_description.description ; The value of _diffrn_data_frame_monitors.gross_counts reports the gross counts detected during the time of data collection for the frame. For a working monitor, either _diffrn_data_frame_monitors.gross_counts or _diffrn_data_frame_monitors.count_rate should be reported. ; _item.name '_diffrn_data_frame_monitors.gross_counts' _item.category_id _diffrn_data_frame_monitors _item.mandatory_code no _item_type.code float loop_ _item_range.maximum _item_range.minimum . 0.0 _item_units.code 'counts' save_ save__diffrn_data_frame_monitors.count_rate _item_description.description ; The value of _diffrn_data_frame_monitors.count_rate reports the average counts per second detected during the time of data collection for the frame. For a working monitor, either _diffrn_data_frame_monitors.gross_counts or _diffrn_data_frame_monitors.count_rate should be reported. ; _item.name '_diffrn_data_frame_monitors.count_rate' _item.category_id _diffrn_data_frame_monitors _item.mandatory_code no _item_type.code float loop_ _item_range.maximum _item_range.minimum . 0.0 _item_units.code 'counts_per_second' save_ ===================================================== Herbert J. Bernstein, Professor of Computer Science Dowling College, Kramer Science Center, KSC 121 Idle Hour Blvd, Oakdale, NY, 11769 +1-631-244-3035 yaya at dowling dot edu =====================================================