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 2.1 of the License, or (at your option) any later 00009 version. 00010 00011 This library is distributed in the hope that it will be useful, 00012 but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00014 Lesser General Public License for more details. 00015 00016 You should have received a copy of the GNU Lesser General Public 00017 License along with this library; if not, write to the Free 00018 Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 00019 Boston, MA 02110-1301 USA 00020 00021 */ 00022 00033 #ifndef __CMTZData__ 00034 #define __CMTZData__ 00035 00036 #define MTZVERSN "MTZ:V1.1" 00039 #define SIZE1 20 00040 #define MTZRECORDLENGTH 80 00041 #define MAXSPGNAMELENGTH 20 00043 #define NBATCHWORDS 185 00044 #define NBATCHINTEGERS 29 00045 #define NBATCHREALS 156 00047 #define MXTALS 100 00048 #define MSETS 1000 00049 #define MCOLUMNS 10000 00054 typedef struct { char label[31]; 00055 char type[3]; 00056 int active; 00057 unsigned int source; 00058 float min; 00059 float max; 00060 float *ref; 00061 } MTZCOL; 00062 00065 typedef struct { int setid; 00066 char dname[65]; 00067 float wavelength; 00068 int ncol; 00069 MTZCOL **col; 00070 } MTZSET; 00071 00074 typedef struct { int xtalid; 00075 char xname[65]; 00076 char pname[65]; 00077 float cell[6]; 00078 float resmin; 00079 float resmax; 00080 int nset; 00081 MTZSET **set; 00082 } MTZXTAL; 00083 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; 00149 typedef struct { int spcgrp; 00150 char spcgrpname[MAXSPGNAMELENGTH+1]; 00151 int nsym; 00152 float sym[192][4][4]; 00154 int nsymp; 00155 char symtyp; 00156 char pgname[11]; 00157 } SYMGRP; 00158 00161 typedef union { char amnf[4]; 00162 float fmnf; 00163 } MNF; 00164 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 } MTZ; 00187 00188 #endif 00189 00190 /* 00191 Local variables: 00192 mode: font-lock 00193 End: 00194 */