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

ccp4_spg.h

Go to the documentation of this file.
00001 /*
00002      ccp4_spg.h: Data structure for symmetry information
00003      Copyright (C) 2001  CCLRC, Martyn Winn
00004 
00005      This code is distributed under the terms and conditions of the
00006      CCP4 Program Suite Licence Agreement as a CCP4 Library.
00007      A copy of the CCP4 licence can be obtained by writing to the
00008      CCP4 Secretary, Daresbury Laboratory, Warrington WA4 4AD, UK.
00009 */
00010 
00022 #ifndef __CCP4_SPG__
00023 #define __CCP4_SPG__
00024 static char rcsidhsp[] = "$Id$";
00025 
00026 #ifdef  __cplusplus
00027 namespace CSym {
00028 extern "C" {
00029 #endif
00030 
00031 /* Kevin's symmetry operator */
00032 
00033 typedef struct ccp4_symop_
00034 {
00035   float rot[3][3];
00036   float trn[3];
00037 } ccp4_symop;
00038 
00039 typedef struct ccp4_spacegroup_
00040 {
00041   int spg_num;            /* true spacegroup number */
00042   int spg_ccp4_num;       /* CCP4 spacegroup number */
00043   char symbol_Hall[40];   /* Hall symbol */
00044   char symbol_xHM[20];    /* Extended Hermann Mauguin symbol  */
00045   char symbol_old[20];    /* old spacegroup name */
00046 
00047   char point_group[20];   /* point group name */
00048   char crystal[20];       /* crystal system */
00049 
00050   int nlaue;              /* CCP4 Laue class number, inferred from asu_descr */
00051   char laue_name[20];     /* Laue class name */
00052   int laue_sampling[3];   /* sampling factors for FFT */
00053 
00054   int npatt;              /* Patterson spacegroup number, inferred from asu_descr */
00055   char patt_name[40];     /* Patterson spacegroup name */
00056 
00057   int nsymop;             /* total number of symmetry operations */
00058   int nsymop_prim;        /* number of primitive symmetry operations */
00059   ccp4_symop *symop;      /* symmetry matrices */
00060   ccp4_symop *invsymop;   /* inverse symmetry matrices */
00061 
00062   float chb[3][3];        /* change of basis matrix from file */
00063 
00064   char asu_descr[80];     /* asu description from file */
00065   int (*asufn)(const int, const int, const int); /* pointer to ASU function */
00066 
00067   int centrics[12];       /* symop which generates centric zone, 0 if none */
00068   int epsilon[13];        /* flag which epsilon zones are applicable */
00069 
00070   char mapasu_zero_descr[80];  /* origin-based map asu: description from file */
00071   float mapasu_zero[3];   /* origin-based map asu: upper limits */
00072 
00073   char mapasu_ccp4_descr[80];  /* CCP4 map asu: defaults to mapasu_zero */
00074   float mapasu_ccp4[3];   /* CCP4 map asu: upper limits */
00075 
00076 } CCP4SPG;
00077 
00078 #ifdef __cplusplus
00079 } }
00080 #endif
00081 
00082 #endif