ó
ÿ™xTc           @   s›   d  d l  m Z d  d l m Z d  d l m Z d  d l m Z d e f d „  ƒ  YZ e	 d k r— d  d l
 Z
 x& e
 j d	 D] Z e j e ƒ GHq| Wn  d S(
   iÿÿÿÿ(   t   division(   t   FormatCBFMiniPilatus(   t   ParallaxCorrectedPxMmStrategy(   t   determine_pilatus_maskt   FormatCBFMiniPilatusDLS6MSN100c           B   s/   e  Z d  Z e d „  ƒ Z d „  Z d „  Z RS(   sG   A class for reading mini CBF format Pilatus images for 6M SN 100 @ DLS.c         C   sU   t  j |  ƒ } x? | j d ƒ D]. } d | k r d | k r d | k r t Sq Wt S(   sc   Check to see if this looks like an Pilatus mini CBF format image,
    i.e. we can make sense of it.s   
s
   # Detectort   PILATUSs   S/N 60-0100 Diamond(   R   t   get_cbf_headert   splitt   Truet   False(   t
   image_filet   headert   record(    (    sY   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/dxtbx/format/FormatCBFMiniPilatusDLS6MSN100.pyt
   understand   s    c         C   s)   |  j  | ƒ s t ‚ t j |  | ƒ d S(   sc   Initialise the image structure from the given file, including a
    proper model of the experiment.N(   R   t   AssertionErrorR   t   __init__(   t   selfR
   (    (    sY   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/dxtbx/format/FormatCBFMiniPilatusDLS6MSN100.pyR   "   s    c         C   sk  i< d dœ 6d d� 6d dž 6d dŸ 6d	 d  6d d¡ 6d d¢ 6d d£ 6d d¤ 6d d¥ 6d d¦ 6d d§ 6d d¨ 6d d© 6d dª 6d d« 6d d¬ 6d d­ 6d d® 6d d¯ 6d d° 6d d± 6d d² 6d d³ 6d d´ 6d dµ 6d! d¶ 6d" d· 6d# d¸ 6d$ d¹ 6d% dº 6d' d» 6d( d¼ 6d) d½ 6d* d¾ 6d+ d¿ 6d- dÀ 6d. dÁ 6d/ dÂ 6d0 dÃ 6d1 dÄ 6d3 dÅ 6d4 dÆ 6d5 dÇ 6d6 dÈ 6d7 dÉ 6d9 dÊ 6d: dË 6d; dÌ 6d< dÍ 6d= dÎ 6d? dÏ 6d@ dÐ 6dA dÑ 6dB dÒ 6dC dÓ 6dE dÔ 6dF dÕ 6dG dÖ 6dH d× 6} i< dI dØ 6dJ dÙ 6dK dÚ 6dL dÛ 6dM dÜ 6dN dÝ 6dO dÞ 6dP dß 6dQ dà 6dR dá 6dS dâ 6dT dã 6dU dä 6dV då 6dW dæ 6dX dç 6dY dè 6dZ dé 6d[ dê 6d\ dë 6d] dì 6d^ dí 6d_ dî 6d` dï 6da dð 6db dñ 6dc dò 6dd dó 6de dô 6df dõ 6dg dö 6dh d÷ 6di dø 6dj dù 6dk dú 6dl dû 6dm dü 6dn dý 6do dþ 6dp dÿ 6dq d 6dr d6ds d6dt d6du d6dv d6dw d6dx d6dy d6dz d	6d{ d
6d| d6d} d6d~ d6d d6d€ d6d� d6d‚ d6dƒ d6d„ d6} t  |  j d… j ƒ  d ƒ } |  j d† j d‡ dˆ ƒ j d‰ dˆ ƒ j dŠ dˆ ƒ j ƒ  d  } t t  | ƒ \ } } t  |  j d‹ j ƒ  d ƒ } |  j dŒ j d� dˆ ƒ j dŽ dˆ ƒ j ƒ  } t t  | ƒ \ }	 }
 t  |  j d� j ƒ  d ƒ d� } t |  j d‘ ƒ } t |  j d’ ƒ } t |  j d“ j ƒ  d ƒ } d” } d” d• l m } | j d– ƒ } | j	 | ƒ d— } | } |  j
 j d˜ | d� | |	 d� | |
 d� f d™ dš d› |	 d› |
 f | | f | | f g  t | | ƒ ƒ
 } x: t | ƒ D], \ } } } } | d j | | | | ƒ q7W| S(  sV   Detector model, allowing for small offsets in the positions of 60
    detector modulesg¼z�Þ¿i    gÞÉ§Ç¶À?i   gPQõ+�§?i   gkE›ãÜ&Ü¿i   gTqãósØ¿i   gãÂ��,`¶?gÎ dËòÏ?g„fÚþ•Ç?gY§Ê÷ŒDÄ?g1™*•Ô™?gªðgx³Ç¿géµÙX‰y†¿g%è/ôˆÑÁ¿gq©;Ò?geÞªëPMÜ¿gFAðøö®Ç¿g»ïûË?g¤‹¦³·?gÝAìL¡óÖ?g™ðKý¼©Ò¿gREñ*k›Â?g\ ¥Kã?g*ãßg\Ù?g¤p=
×£Ú?gŠ}"O²?gyè»[Y¢Ï?i   g�Dh×§?gW@ÜÕÏ?gPÆø0{Ù¦¿g½ÅÃ{Ù¿gn¢–æVˆà?i   g2Ì	ÚäðÖ?gæCV¸±?g2<ö³XŠ¸?gùJ %vmÅ¿g†è8hØ¿i   gèÞÃ%Ç�Ö¿gŸwcAaPÖ?g…bÙÌ!™?g9ïÿã„	Õ?gN¶�;PÃ?i   g¾úxè»[Ï?gRf`Xº¿gµý++MJÅ?gÐ€z3j¾Ø?gÖ�wGÆj£?i	   g$ð‡ŸÿÔ?g¹Ù•–‘Î?g‘`ª™µê?gœ‰éB¬þ¨¿gýÛe¿îtå¿i
   gÿæÅ‰¯vÓ¿gÉuSÊk%Ð?g÷_˜L¬¿g �\7¥¼Ö¿g�@gÒ¦êÙ¿i   g˜üOþî•¿g'ÙêrJÀä?g46<½Ñ¿gX«vMÈæ¿g�+J	Áªß¿gVœj-ÌBË¿g3O®)�Ùµ?g´CV·Ö?gÜ·Z'.Gâ?gUŠ�CýÚ¿g?T1³¯?gøùïÁk—Î?gÆÛJ¯ÍÆÂ?g·îæ©Ú?g¾-XªÔ¿g¯%äƒžÍÌ¿gðÃAB”/ ?g%ZòxZ~¨¿gô2Šå–VÛ?gþÒ¢>É×¿gå`6†­?g‹ÀXßÀä–?g6:ç§8°?gN|µ£8GÃ?g6èKo.¢?g®ë�ZaÑ¿gk¶ò’ÿÉ?gEh×¿¿¿g×øLöÏ·?gËfI-”Î¿gø4'/2Ç¿g5`�ôi½¿gA›>éD’?gP7Pà�|Š¿g2°Žã‡JÅ¿gjøÖ�wÑ¿gí�V`ÈêÈ¿g¼W­Lø­¿g²¹jž#òÙ¿gŒƒKÇœgÔ¿gŠæ,òëÓ¿gz‰±L¿DÊ¿gÛÛ-É»Ò¿gŒØ'€bÞ¿g‚SHÞ9¤¿g‘&Þž´Î¿gë¨j‚¨ûÕ¿gþ_uäHgÝ¿gðLh’XRÛ¿g`<ƒ†þ	È¿giŽ¬ü2Ò?gš
ñH¼<ã¿g“Œœ…=íÝ¿gf/ÛNÛâ¿g‡Ýw�ýœ?gøÃÏÙ¿gU¦˜ƒ £Ý¿gd=µúêÖ¿g˜0š•íCÒ¿gÞå"¾“?gé��ÁŠSØ¿gamŒ�ðÎ¿g½Â‚ûã¿g`” ¿Ð£é¿t   Detector_distancet   Beam_xyt   (t    t   )t   ,t
   Wavelengtht
   Pixel_sizet   mt   xt   Silicong     @�@s   X-Binary-Size-Fastest-Dimensions   X-Binary-Size-Second-Dimensiont   Count_cutoffiÿÿÿÿ(   t   attenuation_coefficientt   Sig      $@t   PADs   +xs   -yiè  (   i    i    (   i    i   (   i    i   (   i    i   (   i    i   (   i   i    (   i   i   (   i   i   (   i   i   (   i   i   (   i   i    (   i   i   (   i   i   (   i   i   (   i   i   (   i   i    (   i   i   (   i   i   (   i   i   (   i   i   (   i   i    (   i   i   (   i   i   (   i   i   (   i   i   (   i   i    (   i   i   (   i   i   (   i   i   (   i   i   (   i   i    (   i   i   (   i   i   (   i   i   (   i   i   (   i   i    (   i   i   (   i   i   (   i   i   (   i   i   (   i   i    (   i   i   (   i   i   (   i   i   (   i   i   (   i	   i    (   i	   i   (   i	   i   (   i	   i   (   i	   i   (   i
   i    (   i
   i   (   i
   i   (   i
   i   (   i
   i   (   i   i    (   i   i   (   i   i   (   i   i   (   i   i   (   i    i    (   i    i   (   i    i   (   i    i   (   i    i   (   i   i    (   i   i   (   i   i   (   i   i   (   i   i   (   i   i    (   i   i   (   i   i   (   i   i   (   i   i   (   i   i    (   i   i   (   i   i   (   i   i   (   i   i   (   i   i    (   i   i   (   i   i   (   i   i   (   i   i   (   i   i    (   i   i   (   i   i   (   i   i   (   i   i   (   i   i    (   i   i   (   i   i   (   i   i   (   i   i   (   i   i    (   i   i   (   i   i   (   i   i   (   i   i   (   i   i    (   i   i   (   i   i   (   i   i   (   i   i   (   i	   i    (   i	   i   (   i	   i   (   i	   i   (   i	   i   (   i
   i    (   i
   i   (   i
   i   (   i
   i   (   i
   i   (   i   i    (   i   i   (   i   i   (   i   i   (   i   i   (   t   floatt   _cif_header_dictionaryR   t   replacet   mapt   intt   cctbx.eltbxR   t	   get_tablet   mu_at_angstromt   _detector_factoryt   simpleR   R   t   add_mask(   R   R   t   yt   distancet   beam_xyt   beam_xt   beam_yt
   wavelengtht   pixel_xyt   pixel_xt   pixel_yt	   thicknesst   nxt   nyt   overloadt	   underloadR   t   tablet   mut   t0t   detectort   f0t   s0t   f1t   s1(    (    sY   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/dxtbx/format/FormatCBFMiniPilatusDLS6MSN100.pyt	   _detector/   s”    	.	(   t   __name__t
   __module__t   __doc__t   staticmethodR   R   RA   (    (    (    sY   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/dxtbx/format/FormatCBFMiniPilatusDLS6MSN100.pyR      s   	t   __main__Ni   (   t
   __future__R    t!   dxtbx.format.FormatCBFMiniPilatusR   t   dxtbx.modelR   t!   dxtbx.format.FormatPilatusHelpersR   R   RB   t   syst   argvt   argR   (    (    (    sY   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/dxtbx/format/FormatCBFMiniPilatusDLS6MSN100.pyt   <module>   s   ‡