gpp4 1.3.1
|
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