FOX/ObjCryst++  1.10.X (development)
ObjCryst::CIFData Class Reference

The CIFData class holds all the information from a single data_ block from a cif file. More...

Classes

struct  CIFAtom
 Atom record. More...
 

Public Member Functions

void ExtractAll (const bool verbose=false)
 Extract lattice parameters, spacegroup (symbol or number), atomic positions, chemical name and formula if available. More...
 
void ExtractName (const bool verbose=false)
 Extract name & formula for the crystal. More...
 
void ExtractUnitCell (const bool verbose=false)
 Extract unit cell.
 
void ExtractSpacegroup (const bool verbose=false)
 Extract spacegroup number or symbol.
 
void ExtractAtomicPositions (const bool verbose=false)
 Extract all atomic positions. More...
 
void ExtractAnisotropicADPs (const bool verbose=false)
 Extract anisotropic atomic displacement parameters. Isotropic ADPs.
 
void ExtractPowderPattern (const bool verbose=false)
 Extract Powder Diffraction data, with Iobs, sigma(Iobs) and either 2theta or time-of-flight position. More...
 
void ExtractSingleCrystalData (const bool verbose=false)
 Extract single crystal data, with Iobs, sigma(Iobs) and h,k,l. More...
 
void Cartesian2FractionalCoord ()
 Generate fractional coordinates from cartesian ones for all atoms CIFData::CalcMatrices() must be called first.
 
void Fractional2CartesianCoord ()
 Generate cartesian coordinates from fractional ones for all atoms CIFData::CalcMatrices() must be called first.
 
void f2c (REAL &x, REAL &y, REAL &z)
 Convert from fractional to cartesian coordinates CIFData::CalcMatrices() must be called first.
 
void c2f (REAL &x, REAL &y, REAL &z)
 Convert from cartesia to fractional coordinates CIFData::CalcMatrices() must be called first.
 
void CalcMatrices (const bool verbose=false)
 Calculate real space transformation matrices requires unit cell parameters.
 

Public Attributes

std::list< std::string > mvComment
 Comments from CIF file, in the order they were read.
 
std::map< ci_string, std::string > mvItem
 Individual CIF items.
 
std::map< std::set< ci_string >
, std::map< ci_string,
std::vector< std::string > > > 
mvLoop
 CIF Loop data.
 
std::vector< REAL > mvLatticePar
 Lattice parameters, in ansgtroem and degrees - vector size is 0 if no parameters have been obtained yet. More...
 
std::string mSpacegroupNumberIT
 Spacegroup number from International Tables (_space_group_IT_number), or -1.
 
std::string mSpacegroupSymbolHall
 Spacegroup Hall symbol (or empty string) (_space_group_name_Hall)
 
std::string mSpacegroupHermannMauguin
 Spacegroup Hermann-Mauguin symbol (or empty string) (_space_group_name_H-M_alt)
 
std::set< string > mvSymmetry_equiv_pos_as_xyz
 Map of _symmetry_equiv_pos_as_xyz strings.
 
std::string mName
 Crystal name. Or empty string if none is available.
 
std::string mFormula
 Formula. Or empty string if none is available.
 
std::vector< CIFAtommvAtom
 Atoms, if any are found.
 
REAL mOrthMatrix [3][3]
 Fractionnal2Cartesian matrix.
 
REAL mOrthMatrixInvert [3][3]
 Cartesian2Fractionnal matrix.
 
std::vector< REAL > mPowderPatternObs
 Powder pattern data.
 
std::vector< REAL > mPowderPatternX
 
std::vector< REAL > mPowderPatternSigma
 
CrystVector_long mH
 Single crystal data.
 
CrystVector_long mK
 
CrystVector_long mL
 
CrystVector_REAL mIobs
 Single crystal data.
 
CrystVector_REAL mSigma
 
WavelengthType mDataType
 Is this X-Ray 2theta, time-of-flight ?
 
REAL mWavelength
 Wavelength.
 

Detailed Description

The CIFData class holds all the information from a single data_ block from a cif file.

It is a placeholder for all comments, item and loop data, as raw strings copied from a cif file.

It is also used to interpret this data to extract parts of the cif data, i.e. only part of the core cif dictionnary are recognized. CIF tags currently recognized include ("tag1 > tag2" means tag1 is preferred to tag2 when extracting the info, only one is reported):

  • crystal name: chemical_name_systematic > _chemical_name_mineral > _chemical_name_structure_type > _chemical_name_common
  • crystal formula: _chemical_formula_analytical > _chemical_formula_structural > _chemical_formula_iupac > _chemical_formula_moiety
  • unit cell: _cell_length{a,b,c} ; cell_angle{alpha,beta,gamma}
  • spacegroup number: space_group_IT_number > _symmetry_Int_Tables_number
  • spacegroup Hall symbol: _space_group_name_Hall > _symmetry_space_group_name_Hall
  • spacegroup Hermann-Mauguin symbol:_space_group_name_H-M_alt > _symmetry_space_group_name_H-M
  • atom coordinates: _atom_site_fract{x} ; atom_site_Cartn{x,y,z}
  • atom occupancy: atom_site_occupancy
  • atom label & symbol: _atom_site_type_symbol ; _atom_site_label
  • atom adps: _atom_site_aniso{U,B}_{11,22,33,12,13,23} > atom_site{U,B}_iso_or_equiv

Cartesian coordinates are stored in Angstroems, angles in radians.

To import PowderPattern data, the following tags are used:

  • observed intensity: pd_meas_counts_total > _pd_meas_intensity_total > _pd_proc_intensity_total > _pd_proc_intensity_net
  • uncertainty on intensity: deducted from _pd_proc_ls_weight or square root of intensity
  • coordinates: _pd_proc_2theta_corrected > _pd_meas_angle_2theta > _pd_meas_time_of_flight > _pd_proc_2theta_range{min,max,inc}
  • intensity normalizer (optional): _pd_meas_intensity_monitor > _pd_meas_step_count_time

If another data field is needed, it is possible to directly access the string data (CIFData::mvComment , CIFData::mvItem and CIFData::mvLoop) to search for the correct tags.

Definition at line 62 of file CIF.h.

Member Function Documentation

void ObjCryst::CIFData::ExtractAll ( const bool  verbose = false)

Extract lattice parameters, spacegroup (symbol or number), atomic positions, chemical name and formula if available.

All other data is ignored

Definition at line 26 of file CIF.cpp.

void ObjCryst::CIFData::ExtractAtomicPositions ( const bool  verbose = false)

Extract all atomic positions.

Will generate cartesian from fractional coordinates or vice-versa if only cartesian coordinates are available.

Definition at line 233 of file CIF.cpp.

void ObjCryst::CIFData::ExtractName ( const bool  verbose = false)

Extract name & formula for the crystal.

Crystal formula

Definition at line 143 of file CIF.cpp.

void ObjCryst::CIFData::ExtractPowderPattern ( const bool  verbose = false)

Extract Powder Diffraction data, with Iobs, sigma(Iobs) and either 2theta or time-of-flight position.

Now find the data

Definition at line 468 of file CIF.cpp.

void ObjCryst::CIFData::ExtractSingleCrystalData ( const bool  verbose = false)

Extract single crystal data, with Iobs, sigma(Iobs) and h,k,l.

Now find the data

Definition at line 570 of file CIF.cpp.

Member Data Documentation

std::vector<REAL> ObjCryst::CIFData::mvLatticePar

Lattice parameters, in ansgtroem and degrees - vector size is 0 if no parameters have been obtained yet.

Definition at line 111 of file CIF.h.


The documentation for this class was generated from the following files: