ó
y™xTc           @   s¬   d  d l  m Z d  d l Z d  d l Z d  d l m Z d  d l m Z d d d „  ƒ  YZ i d d 6d	 d
 6d d 6d d 6Z	 i d d 6d d 6d d 6d d 6Z
 d „  Z d S(   iÿÿÿÿ(   t   divisionN(   t   Cameras(   t   ADSC910_at_BioCARSt
   EndStationc           B   s>   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   sE   i  |  _  d |  j  d <t d |  j  d <|  j d ƒ |  j d ƒ d  S(   Ns   #detector-take defaults
t   mosflm_detectort   ALSt   mosflm_beamlinei   s   ROTATION HORIZ ANTI(   t   most	   beamlinest   set_camera_conventiont   set_rotation_axis(   t   self(    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/detectors/context/endstation.pyt   __init__   s
    	c         C   s   t  | ƒ |  _ d  S(   N(   R   t   cam_con(   R   t   number(    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/detectors/context/endstation.pyR	      s    c         C   s   |  j  S(   N(   R   (   R   (    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/detectors/context/endstation.pyt   camera_convention   s    c         C   s>   t  | ƒ t  d ƒ k r1 t | |  _ | |  _ n	 | |  _ d  S(   Nt   string(   t   typet   rotation_lookupt   rot_axit   rot_axi_string(   R   t   axis(    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/detectors/context/endstation.pyR
      s    c         C   s   |  j  S(   N(   R   (   R   (    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/detectors/context/endstation.pyt   rotation_axis   s    c         C   s   |  j  S(   N(   R   (   R   (    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/detectors/context/endstation.pyt   mosflm   s    (   t   __name__t
   __module__R   R	   R   R
   R   R   (    (    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/detectors/context/endstation.pyR      s   					sL   #beam
SYNCHROTRON POLARIZATION 0.9
DIVERGENCE 0.100 0.020
DISPERSION 0.0001
R   s?   #beam
SYNCHROTRON POLAR 0.9
DIVERGENCE 0.11 0.001
DISPER 0.001
t
   Australians<   #beam
SYNCHROTRON POLAR 0.89
DIVE 0.030 0.010
DISPER 0.0025
t   CHESSs   #beam
t   RAXISi    i   s   ROTATION HORIZ ANTIs   ROTATION HORIZ CLOCKs   ROTATION VERT ANTIs   ROTATION VERT CLOCKc      	   C   s[  t  ƒ  } | j d ƒ | j d ƒ |  j d k rN | j d ƒ d G| j GHn  |  j d k rm | j d ƒ n  |  j d k r› |  j dL k r› | j d ƒ n  |  j d k rå |  j d k rå t |  ƒ rÕ | j d ƒ qå | j d ƒ n  |  j d k r|  j dM k r| j d ƒ n  |  j d k r2| j d ƒ n  |  j d k r¬|  j dN k r¬|  j d } t j	 t j
 | ƒ ƒ } t j	 t j
 d ƒ ƒ } | | k  r¬| j d ƒ q¬n  |  j d k r�|  j dO k r�| j j ƒ  j d ƒ d k r�|  j j d ƒ r�|  j d d k r�| j d ƒ |  j j d ƒ r�|  j d d k r�|  j d } d d l m } | j | | j ƒ  dP | t j d ƒ ƒ q�n  |  j d  k rË|  j d! k rËd" | j d# <| j d ƒ qËn  |  j d$ k r†|  j |  j d% k rFi |  j |  j d& 6|  j |  j d' 6} | d' | d& d( | d) <d* | | j d# <n  |  j d+ dQ k r†| j d ƒ d. | j d# <d/ | j d0 <q†n  |  j d k r¼| j d k r¼|  j |  j }	 t t |  j |	 ƒ t |  j ƒ ƒ }
 t t |  j |	 ƒ t |  j ƒ ƒ } i | j d1 6t j |
 |
 | | ƒ d2 6|
 d3 6| d4 6|	 d5 d6 6|	 d5 d7 6} |  j dR k rjd8 | d9 <n
 d: | d9 <d; | | j d# <|  j dS k r¨t d< | j d0 <q¼t d= | j d0 <n  |  j d k r|  j d k rt |  ƒ r| j d# d> | j d# <qn  |  j dT k r¼d? | j d# <|  j j ƒ  j d@ ƒ d k rY| j d# dA | j d# <n  |  j j dB ƒ r¨|  j  dC j ƒ  j dD ƒ d k r¨| j d# dE | j d# <n  t d | j d0 <n  |  j dU k rÛdG | j d# <n  |  j dV k rúdI | j d# <n  |  j dW k rd? | j d# <n  | j d# dK i |  j |  j d& 6|  j |  j d' 6| j d# <| S(X   Ni   s   ROTATION HORIZ ANTIs   Bruker Proteus CCDs   ROTATION VERT ANTIs   BRUKER rotationR   s   ROTATION VERT CLOCKt   ADSCi–  iž  i¹  iÀ  iÉ  i×  iœ  i   s   ROTATION HORIZ CLOCKiŽ  i’  t   RigakuSaturnt   DATEs   Fri Oct 01 00:00:00 2004s   pringle-sheni    t   AXISt   phit   OMEGAg        iÿÿÿÿ(   t   rotate_vector_aroundg     €f@t
   MacSciencei¸  s   DETECTOR DIP2030
R   t   MARCCDi   t   szt   pixi   t   scans&  #MARCCD detector
LIMITS XMIN 0 XMAX xmax_tag YMIN 0 YMAX ymax_tag xscan %(scan)d yscan %(scan)d
SIZE %(sz)d %(sz)d HEADER 1 byte 4096
PIXEL %(pix)f
NULLPIX 0
#4Kx4K MarCCD format is unknown to MOSFLM, which apparently defaults
#the nullpix to 10.  This is a problem for weak-background images.
t   DETECTOR_SNi   i(   sÊ   
# Specific implementation for Spring8 BL41XU Mar MX225HE
DETECTOR MARCCD
DETECTOR REVERSEPHI
SIZE 3072 3072
PIXEL 0.07324 0.07324
LIMITS RMIN 2 RMAX 159.1 XMAX 159.1 YMAX 112.5 XSCAN 159.1 YSCAN 159.1
sN   GAIN 0.37
POLARISATION 0.99
DIVE 0.0001 0.00001
DISPER 0.0001
!offset 0.0 0.0
R   t   rotationt   rmaxt   xmaxt   ymaxg       @t   xscant   yscang{®GázÔ?t   gaing333333Ó?sº   #detector
SCANNER %(rotation)s FAST horizontal ORIGIN UR RECT TYPE ADSC
LIMITS RMIN 5 RMAX %(rmax).1f XMAX %(xmax).1f YMAX %(ymax).1f XSCAN %(xscan).1f YSCAN %(yscan).1f
GAIN %(gain).3f
R   R   s   #BIOCARS 14-BM-C S/N=910s   #detector
ADCOFFSet 5
s   dr. r-axis ivs   DETECTOR RAXISIVt   headt   Devices   r-axis2s   detector raxist   CBFs   #detector cbfs
   Pilatus-6Ms   #detector Pilatus-6Mt   MARIPs$   
#UIS_PIXEL %(pix)f
#UIS_SIZE %(sz)d(   i–  iž  i¹  iÀ  iÉ  i×  iœ  i   (   i’  (   i¹  (   iž  (   i    i   i    (   i   i(   (   iÉ  i   (   iÉ  i   (   R   (   R3   (   s
   Pilatus-6M(   R4   (!   R   R	   R
   t
   vendortypeR   t   serial_numberR   t
   parameterst   timet   mktimet   strptimet   goniometer_rotationt   lowert   findt   has_keyt   iotbx.detectorsR#   R   t   matht   pit   size1R   t   bint
   pixel_sizeR   t   maxt   abst   beamxt   beamyt   sqrtR   t   __dict__R1   (   t   imageobjectt   phil_paramst
   endstationt   record_datet
   record_tset
   cutoff_441t   omegaR#   R7   t   mmsizet   maxxt   maxy(    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/detectors/context/endstation.pyt   EndStation_from_ImageObjectC   sÆ    		%% 


"

(    (   i    i   i    (   i    iÿÿÿÿi    (   iÿÿÿÿi    i    (   i   i    i    (   t
   __future__R    R@   R8   t)   iotbx.detectors.context.camera_conventionR   t'   iotbx.detectors.context.config_detectorR   R   R   R   RU   (    (    (    sP   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/detectors/context/endstation.pyt   <module>   s   

