gpp4 1.3.1

src/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: you can redistribute it and/or
00006      modify it under the terms of the GNU Lesser General Public
00007      License as published by the Free Software Foundation, either
00008      version 3 of the License, or (at your option) any later version.
00009 
00010      This library is distributed in the hope that it will be useful,
00011      but WITHOUT ANY WARRANTY; without even the implied warranty of
00012      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013      Lesser General Public License for more details.
00014 
00015      You should have received a copy of the GNU Lesser General Public
00016      License along with This library.  If not, see
00017      <http://www.gnu.org/licenses/>.
00018 */
00019 
00030 #ifndef __CMTZData__
00031 #define __CMTZData__
00032 
00033 #define MTZVERSN "MTZ:V1.1"         
00034 #define MTZ_MAJOR_VERSN 1      
00035 #define MTZ_MINOR_VERSN 1      
00036 #define CCP4_MTZDATA 20100630   
00040 #define SIZE1 20                    
00041 #define MTZRECORDLENGTH 80          
00042 #define MAXSPGNAMELENGTH 20         
00044 #define NBATCHWORDS 185       
00045 #define NBATCHINTEGERS 29     
00046 #define NBATCHREALS 156       
00048 #define MXTALS      100      
00049 #define MSETS      1000      
00050 #define MCOLUMNS  10000      
00053 typedef struct { char label[31];       
00054                  char type[3];         
00055                  int active;           
00056                  unsigned int source;  
00057                  float min;            
00058                  float max;            
00059                  float *ref;           
00060                  char colsource[37];   
00061                  char grpname[31];     
00062                  char grptype[5];      
00063                  int  grpposn;         
00064                } MTZCOL;
00065 
00067 typedef struct { int setid;            
00068                  char dname[65];       
00069                  float wavelength;     
00070                  int ncol;             
00071                  MTZCOL **col;         
00072                } MTZSET;
00073 
00075 typedef struct { int xtalid;           
00076                  char xname[65];       
00077                  char pname[65];       
00078                  float cell[6];        
00079                  float resmin;         
00080                  float resmax;         
00081                  int nset;             
00082                  MTZSET **set;         
00083                } MTZXTAL;
00084 
00086 typedef struct bathead { int num;              
00087                  char title[71];       
00088                  char gonlab[3][9];    
00089                  int iortyp;           
00091                  int lbcell[6];        
00092                  int misflg;           
00093                  int jumpax;           
00095                  int ncryst;           
00096                  int lcrflg;           
00098                  int ldtype;           
00100                  int jsaxs;            
00101                  int nbscal;           
00103                  int ngonax;           
00104                  int lbmflg;           
00107                  int ndet;             
00109                  int nbsetid;          
00110                  float cell[6];        
00111                  float umat[9];        
00113                  float phixyz[2][3];   
00115                  float crydat[12];     
00116                  float datum[3];       
00117                  float phistt;         
00118                  float phiend;         
00119                  float scanax[3];      
00120                  float time1;          
00121                  float time2;          
00122                  float bscale;         
00123                  float bbfac;          
00124                  float sdbscale;       
00125                  float sdbfac;         
00126                  float phirange;       
00127                  float e1[3];          
00129                  float e2[3];          
00131                  float e3[3];          
00133                  float source[3];      
00134                  float so[3];          
00135                  float alambd;         
00136                  float delamb;         
00137                  float delcor;         
00138                  float divhd;          
00139                  float divvd;          
00140                  float dx[2];          
00141                  float theta[2];       
00142                  float detlm[2][2][2]; 
00144                  struct bathead *next; 
00145                } MTZBAT;
00146 
00148 typedef struct { int spcgrp;           
00149                  char spcgrpname[MAXSPGNAMELENGTH+1];  
00150                  int nsym;             
00151                  float sym[192][4][4]; 
00153                  int nsymp;            
00154                  char symtyp;          
00155                  char pgname[11];      
00156                  char spg_confidence;  
00161                } SYMGRP;
00162 
00163 typedef union { char amnf[4]; 
00164                 float fmnf;
00165               } MNF;
00166 
00168 typedef struct { CCP4File *filein;     
00169                  CCP4File *fileout;    
00170                  char title[71];       
00171                  char *hist;           
00172                  int histlines;        
00173                  int nxtal;            
00174                  int ncol_read;        
00175                  int nref;             
00176                  int nref_filein;      
00177                  int refs_in_memory;   
00178                  int n_orig_bat;       
00179                  float resmax_out;     
00180                  float resmin_out;     
00181                  MNF mnf;              
00182                  SYMGRP mtzsymm;       
00183                  MTZXTAL **xtal;       
00184                  MTZBAT *batch;        
00185                  MTZCOL *order[5];     
00186                  char *xml;            
00187                  char *unknown_headers;
00188                  int n_unknown_headers;
00189                } MTZ;
00190 
00191 #endif