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" 00037 #define MTZ_MAJOR_VERSN 1 00038 #define MTZ_MINOR_VERSN 1 00041 #define SIZE1 20 00042 #define MTZRECORDLENGTH 80 00043 #define MAXSPGNAMELENGTH 20 00045 #define NBATCHWORDS 185 00046 #define NBATCHINTEGERS 29 00047 #define NBATCHREALS 156 00049 #define MXTALS 100 00050 #define MSETS 1000 00051 #define MCOLUMNS 10000 00056 typedef struct { char label[31]; 00057 char type[3]; 00058 int active; 00059 unsigned int source; 00060 float min; 00061 float max; 00062 float *ref; 00063 } MTZCOL; 00064 00067 typedef struct { int setid; 00068 char dname[65]; 00069 float wavelength; 00070 int ncol; 00071 MTZCOL **col; 00072 } MTZSET; 00073 00076 typedef struct { int xtalid; 00077 char xname[65]; 00078 char pname[65]; 00079 float cell[6]; 00080 float resmin; 00081 float resmax; 00082 int nset; 00083 MTZSET **set; 00084 } MTZXTAL; 00085 00088 typedef struct bathead { int num; 00089 char title[71]; 00090 char gonlab[3][9]; 00091 int iortyp; 00093 int lbcell[6]; 00094 int misflg; 00095 int jumpax; 00097 int ncryst; 00098 int lcrflg; 00100 int ldtype; 00102 int jsaxs; 00103 int nbscal; 00105 int ngonax; 00106 int lbmflg; 00109 int ndet; 00111 int nbsetid; 00112 float cell[6]; 00113 float umat[9]; 00115 float phixyz[2][3]; 00117 float crydat[12]; 00118 float datum[3]; 00119 float phistt; 00120 float phiend; 00121 float scanax[3]; 00122 float time1; 00123 float time2; 00124 float bscale; 00125 float bbfac; 00126 float sdbscale; 00127 float sdbfac; 00128 float phirange; 00129 float e1[3]; 00131 float e2[3]; 00133 float e3[3]; 00135 float source[3]; 00136 float so[3]; 00137 float alambd; 00138 float delamb; 00139 float delcor; 00140 float divhd; 00141 float divvd; 00142 float dx[2]; 00143 float theta[2]; 00144 float detlm[2][2][2]; 00146 struct bathead *next; 00147 } MTZBAT; 00151 typedef struct { int spcgrp; 00152 char spcgrpname[MAXSPGNAMELENGTH+1]; 00153 int nsym; 00154 float sym[192][4][4]; 00156 int nsymp; 00157 char symtyp; 00158 char pgname[11]; 00159 } SYMGRP; 00160 00163 typedef union { char amnf[4]; 00164 float fmnf; 00165 } MNF; 00166 00170 typedef struct { CCP4File *filein; 00171 CCP4File *fileout; 00172 char title[71]; 00173 char *hist; 00174 int histlines; 00175 int nxtal; 00176 int ncol_read; 00177 int nref; 00178 int nref_filein; 00179 int refs_in_memory; 00180 int n_orig_bat; 00181 float resmax_out; 00182 float resmin_out; 00183 MNF mnf; 00184 SYMGRP mtzsymm; 00185 MTZXTAL **xtal; 00186 MTZBAT *batch; 00187 MTZCOL *order[5]; 00188 } MTZ; 00189 00190 #endif 00191 00192 /* 00193 Local variables: 00194 mode: font-lock 00195 End: 00196 */