Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

ObjCryst::CIFData Class Reference

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

List of all members.

Public Member Functions

 CIFData ()
void ExtractAll (const bool verbose=false)
 Extract lattice parameters, spacegroup (symbol or number), atomic positions, chemical name and formula if available.

void ExtractName (const bool verbose=false)
 Extract name & formula for the crystal.

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.

void ExtractPowderPattern (const bool verbose=false)
 Extract Powder Diffraction data, with Iobs, sigma(Iobs) and either 2theta or time-of-flight position.

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 (float &x, float &y, float &z)
 Convert from fractional to cartesian coordinates CIFData::CalcMatrices() must be called first.

void c2f (float &x, float &y, float &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< float > mvLatticePar
 Lattice parameters, in ansgtroem and degrees - vector size is 0 if no parameters have been obtained yet.

unsigned int 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::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.

float mOrthMatrix [3][3]
 Fractionnal2Cartesian matrix.

float mOrthMatrixInvert [3][3]
 Cartesian2Fractionnal matrix.

std::vector< float > mPowderPatternObs
 Powder pattern data.

std::vector< float > mPowderPatternX
 Powder pattern data.

std::vector< float > mPowderPatternSigma
 Powder pattern data.

WavelengthType mDataType
 Is this X-Ray 2theta, time-of-flight ?


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):

Cartesian coordinates are stored in Angstroems, angles in radians.

To import PowderPattern data, the following tags are used:

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.


Constructor & Destructor Documentation

ObjCryst::CIFData::CIFData  ) 
 


Member Function Documentation

void ObjCryst::CIFData::c2f float &  x,
float &  y,
float &  z
 

Convert from cartesia to fractional coordinates CIFData::CalcMatrices() must be called first.

void ObjCryst::CIFData::CalcMatrices const bool  verbose = false  ) 
 

Calculate real space transformation matrices requires unit cell parameters.

void ObjCryst::CIFData::Cartesian2FractionalCoord  ) 
 

Generate fractional coordinates from cartesian ones for all atoms CIFData::CalcMatrices() must be called first.

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

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.

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

Extract name & formula for the crystal.

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

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

void ObjCryst::CIFData::ExtractSpacegroup const bool  verbose = false  ) 
 

Extract spacegroup number or symbol.

void ObjCryst::CIFData::ExtractUnitCell const bool  verbose = false  ) 
 

Extract unit cell.

void ObjCryst::CIFData::f2c float &  x,
float &  y,
float &  z
 

Convert from fractional to cartesian coordinates CIFData::CalcMatrices() must be called first.

void ObjCryst::CIFData::Fractional2CartesianCoord  ) 
 

Generate cartesian coordinates from fractional ones for all atoms CIFData::CalcMatrices() must be called first.


Member Data Documentation

WavelengthType ObjCryst::CIFData::mDataType
 

Is this X-Ray 2theta, time-of-flight ?

std::string ObjCryst::CIFData::mFormula
 

Formula. Or empty string if none is available.

std::string ObjCryst::CIFData::mName
 

Crystal name. Or empty string if none is available.

float ObjCryst::CIFData::mOrthMatrix[3][3]
 

Fractionnal2Cartesian matrix.

float ObjCryst::CIFData::mOrthMatrixInvert[3][3]
 

Cartesian2Fractionnal matrix.

std::vector<float> ObjCryst::CIFData::mPowderPatternObs
 

Powder pattern data.

std::vector<float> ObjCryst::CIFData::mPowderPatternSigma
 

Powder pattern data.

std::vector<float> ObjCryst::CIFData::mPowderPatternX
 

Powder pattern data.

std::string ObjCryst::CIFData::mSpacegroupHermannMauguin
 

Spacegroup Hermann-Mauguin symbol (or empty string) (_space_group_name_H-M_alt).

unsigned int ObjCryst::CIFData::mSpacegroupNumberIT
 

Spacegroup number from International Tables (_space_group_IT_number), or -1.

std::string ObjCryst::CIFData::mSpacegroupSymbolHall
 

Spacegroup Hall symbol (or empty string) (_space_group_name_Hall).

std::vector<CIFAtom> ObjCryst::CIFData::mvAtom
 

Atoms, if any are found.

std::list<std::string> ObjCryst::CIFData::mvComment
 

Comments from CIF file, in the order they were read.

std::map<ci_string,std::string> ObjCryst::CIFData::mvItem
 

Individual CIF items.

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

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

std::map<std::set<ci_string>,std::map<ci_string,std::vector<std::string> > > ObjCryst::CIFData::mvLoop
 

CIF Loop data.


The documentation for this class was generated from the following file:
Generated on Tue Nov 14 15:03:44 2006 for ObjCryst++ by doxygen 1.3.6