Main Page   Compound List   File List   Compound Members   File Members   Related Pages  

mtzdata.h

Go to the documentation of this file.
00001 /*
00002      mtzdata.h: Definition of MTZ data structure.
00003      Copyright (C) 2001  CCLRC, Martyn Winn
00004 
00005      This library is free software and is distributed under the terms and
00006      conditions of the CCP4 licence agreement as `Part 0' (Annex 2)
00007      software, which is version 2.1 of the GNU Lesser General Public
00008      Licence (LGPL) with the following additional clause:
00009 
00010         `You may also combine or link a "work that uses the Library" to
00011         produce a work containing portions of the Library, and distribute
00012         that work under terms of your choice, provided that you give
00013         prominent notice with each copy of the work that the specified
00014         version of the Library is used in it, and that you include or
00015         provide public access to the complete corresponding
00016         machine-readable source code for the Library including whatever
00017         changes were used in the work. (i.e. If you make changes to the
00018         Library you must distribute those, but you do not need to
00019         distribute source or object code to those portions of the work
00020         not covered by this licence.)'
00021 
00022      Note that this clause grants an additional right and does not impose
00023      any additional restriction, and so does not affect compatibility
00024      with the GNU General Public Licence (GPL). If you wish to negotiate
00025      other terms, please contact the maintainer.
00026 
00027      You can redistribute it and/or modify the library under the terms of
00028      the GNU Lesser General Public License as published by the Free Software
00029      Foundation; either version 2.1 of the License, or (at your option) any
00030      later version.
00031 
00032      This library is distributed in the hope that it will be useful, but
00033      WITHOUT ANY WARRANTY; without even the implied warranty of
00034      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00035      Lesser General Public License for more details.
00036 
00037      You should have received a copy of the CCP4 licence and/or GNU
00038      Lesser General Public License along with this library; if not, write
00039      to the CCP4 Secretary, Daresbury Laboratory, Warrington WA4 4AD, UK.
00040      The GNU Lesser General Public can also be obtained by writing to the
00041      Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
00042      MA 02111-1307 USA
00043 */
00044 
00055 #ifndef __CMTZData__
00056 #define __CMTZData__
00057 
00058 #define MTZVERSN "MTZ:V1.1"         
00061 #define SIZE1 20                    
00062 #define MTZRECORDLENGTH 80          
00063 #define MAXSPGNAMELENGTH 20         
00065 #define NBATCHWORDS 185       
00066 #define NBATCHINTEGERS 29     
00067 #define NBATCHREALS 156       
00069 #define MXTALS      100      
00070 #define MSETS      1000      
00071 #define MCOLUMNS  10000      
00074 typedef struct { char label[31];       
00075                  char type[3];         
00076                  int active;           
00077                  unsigned int source;  
00078                  float min;            
00079                  float max;            
00080                  float *ref;           
00081                } MTZCOL;
00082 
00084 typedef struct { int setid;            
00085                  char dname[65];       
00086                  float wavelength;     
00087                  int ncol;             
00088                  MTZCOL **col;         
00089                } MTZSET;
00090 
00092 typedef struct { int xtalid;           
00093                  char xname[65];       
00094                  char pname[65];       
00095                  float cell[6];        
00096                  float resmin;         
00097                  float resmax;         
00098                  int nset;             
00099                  MTZSET **set;         
00100                } MTZXTAL;
00101 
00103 typedef struct bathead { int num;              
00104                  char title[71];       
00105                  char gonlab[3][9];    
00106                  int iortyp;           
00108                  int lbcell[6];        
00109                  int misflg;           
00110                  int jumpax;           
00112                  int ncryst;           
00113                  int lcrflg;           
00115                  int ldtype;           
00117                  int jsaxs;            
00118                  int nbscal;           
00120                  int ngonax;           
00121                  int lbmflg;           
00124                  int ndet;             
00126                  int nbsetid;          
00127                  float cell[6];        
00128                  float umat[9];        
00130                  float phixyz[2][3];   
00132                  float crydat[12];     
00133                  float datum[3];       
00134                  float phistt;         
00135                  float phiend;         
00136                  float scanax[3];      
00137                  float time1;          
00138                  float time2;          
00139                  float bscale;         
00140                  float bbfac;          
00141                  float sdbscale;       
00142                  float sdbfac;         
00143                  float phirange;       
00144                  float e1[3];          
00146                  float e2[3];          
00148                  float e3[3];          
00150                  float source[3];      
00151                  float so[3];          
00152                  float alambd;         
00153                  float delamb;         
00154                  float delcor;         
00155                  float divhd;          
00156                  float divvd;          
00157                  float dx[2];          
00158                  float theta[2];       
00159                  float detlm[2][2][2]; 
00161                  struct bathead *next; 
00162                } MTZBAT;
00163 
00165 typedef struct { int spcgrp;           
00166                  char spcgrpname[MAXSPGNAMELENGTH+1];  
00167                  int nsym;             
00168                  float sym[192][4][4]; 
00170                  int nsymp;            
00171                  char symtyp;          
00172                  char pgname[11];      
00173                } SYMGRP;
00174 
00175 typedef union { char amnf[4]; 
00176                 float fmnf;
00177               } MNF;
00178 
00180 typedef struct { CCP4File *filein;     
00181                  CCP4File *fileout;    
00182                  char title[71];       
00183                  char *hist;           
00184                  int histlines;        
00185                  int nxtal;            
00186                  int ncol_read;        
00187                  int nref;             
00188                  int nref_filein;      
00189                  int refs_in_memory;   
00190                  int n_orig_bat;       
00191                  float resmax_out;     
00192                  float resmin_out;     
00193                  MNF mnf;              
00194                  SYMGRP mtzsymm;       
00195                  MTZXTAL **xtal;       
00196                  MTZBAT *batch;        
00197                  MTZCOL *order[5];     
00198                } MTZ;
00199 
00200 #endif