This is an email sent by H. J. Bernstein to Jon Wright, Andy hammersley and Claudio Ferraro on 18 January 2007 reporting on some of the work done in a meeting at ESRF in Grenoble from 14 to 20 January 2007.

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
=====================================================