Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   Namespace Members   Compound Members   Related Pages  

ObjCryst::ScatteringPowerAtom Class Reference

The Scattering Power for an Atom. More...

#include <ScatteringPower.h>

Inheritance diagram for ObjCryst::ScatteringPowerAtom::

ObjCryst::ScatteringPower ObjCryst::RefinableObj List of all members.

Public Methods

 ScatteringPowerAtom ()
 ScatteringPowerAtom (const string &name, const string &symbol, const REAL bIso=1.0)
 Atom constructor. More...

 ScatteringPowerAtom (const ScatteringPowerAtom &old)
 ~ScatteringPowerAtom ()
virtual const string & GetClassName () const
 Name for this class ("RefinableObj", "Crystal",...). This is only useful to distinguish different classes when picking up objects from the RefinableObj Global Registry.

void Init (const string &name, const string &symbol, const REAL bIso=1.0)
 Re-initialize parameters (after using the default constructor).

virtual CrystVector_REAL GetScatteringFactor (const ScatteringData &data, const int spgSymPosIndex=0) const
 Get the Scattering factor for all reflections of a given ScatteringData object. More...

virtual REAL GetForwardScatteringFactor (const RadiationType) const
 Get the scattering factor at (0,0,0). Used for scatterer (electron, nucleus) density generation.

virtual CrystVector_REAL GetTemperatureFactor (const ScatteringData &data, const int spgSymPosIndex=0) const
 Get the temperature factor for all reflections of a given ScatteringData object. More...

virtual CrystMatrix_REAL GetResonantScattFactReal (const ScatteringData &data, const int spgSymPosIndex=0) const
 Get the real part of the resonant scattering factor. More...

virtual CrystMatrix_REAL GetResonantScattFactImag (const ScatteringData &data, const int spgSymPosIndex=0) const
 Get the imaginary part of the resonant scattering factor. More...

void SetSymbol (const string &symbol)
 Set the symbol for this atom.

virtual const string & GetSymbol () const
 Returns the symbol ('Ta', 'O2-',...) of the atom.

string GetElementName () const
 Returns the standard name of the element (ie "hydrogen", "tantalum",..). More...

int GetAtomicNumber () const
 Atomic number for this atom.

REAL GetRadius () const
 Atomic radius for this atom, in Angstroems.

virtual void Print () const
virtual void XMLOutput (ostream &os, int indent=0) const
 Output to stream in well-formed XML. More...

virtual void XMLInput (istream &is, const XMLCrystTag &tag)
 Input From stream. More...


Protected Methods

void InitAtScattCoeffsWK95 ()
void InitAtNeutronScattCoeffs ()
virtual void InitRefParList ()

Protected Attributes

string mSymbol
 Symbol of this atom. More...

int mAtomicNumber
 atomic number (Z) for the atom.

CrystVector_REAL mScattAi
 X-Ray Scattering factor coefficients (ai,bi and c) for the analytical approximation. More...

CrystVector_REAL mScattBi
 X-Ray Scattering factor coefficients (ai,bi and c) for the analytical approximation. More...

REAL mScattC
REAL mNeutronScattLengthReal
 Neutron Bond Coherent Scattering lengths. More...

REAL mNeutronScattLengthImag
 Neutron Bond Coherent Scattering lengths. More...

REAL mRadius
 Radius of the atom, in Angstroems.

REAL mNeutronAbsCrossSection
 Neutron Absorption cross section (barn). More...


Detailed Description

The Scattering Power for an Atom.


Constructor & Destructor Documentation

ObjCryst::ScatteringPowerAtom::ScatteringPowerAtom const string &    name,
const string &    symbol,
const REAL    bIso = 1.0
 

Atom constructor.

Parameters:
symbol  : 'Ti' , 'Ti4+', 'Cl1-' These symbols must correspond to one of the entries of the international tables for crystallography (1995) giving the analytical approximation for scattering factors.
name  : name of the atom ('Ta1','Sm2', 'Tungsten_1'...). The name can have any format but spaces should be avoided, since it will generate problems when reading the names from a file...
biso  : Isotropic thermic coefficient


Member Function Documentation

string ObjCryst::ScatteringPowerAtom::GetElementName   const
 

Returns the standard name of the element (ie "hydrogen", "tantalum",..).

Names are extracted form Grosse-Kunstleve 'atominfo' package, which uses data from the CRC Handbook of Chemistry & Physics, 63rd & 70th editions

virtual CrystMatrix_REAL ObjCryst::ScatteringPowerAtom::GetResonantScattFactImag const ScatteringData   data,
const int    spgSymPosIndex = 0
const [virtual]
 

Get the imaginary part of the resonant scattering factor.

Returns:
a matrix where each row corresponds to each wavelength (currently only monochromatic experiments are made so there is only one row), and each column corresponds to each reflection only if the scattering term is anisotropic, which is not the case so far...
Parameters:
data:  the ScatteringData object, giving access to all the reflections, and a list of wavelengths.
spgSymPosIndex:  if the ScatteringPower is anisotropic, then the different symmetrics will not have the same scattering power for all reflections. This parameter is the index of the symmetric position in the Spacegroup. If spgSymPosIndex=-1, the isotropic values are returned.
Warning:
There is no anisotropic code yet, so spgSymPosIndex is simply ignored so far , but the design of this function is general for any anisotropic scattering.

Reimplemented from ObjCryst::ScatteringPower.

virtual CrystMatrix_REAL ObjCryst::ScatteringPowerAtom::GetResonantScattFactReal const ScatteringData   data,
const int    spgSymPosIndex = 0
const [virtual]
 

Get the real part of the resonant scattering factor.

Returns:
a matrix where each row corresponds to each wavelength (currently only monochromatic experiments are made so there is only one row), and each column corresponds to each reflection only if the scattering term is anisotropic, which is not the case so far...
Parameters:
data:  the ScatteringData object, giving access to all the reflections and a list of wavelengths).
spgSymPosIndex:  if the ScatteringPower is anisotropic, then the different symmetrics will not have the same scattering power for all reflections. This parameter is the index of the symmetric position in the Spacegroup. If spgSymPosIndex=-1, the isotropic values are returned.
Warning:
There is no anisotropic code yet, so spgSymPosIndex is simply ignored so far , but the design of this function is general for any anisotropic scattering.

Reimplemented from ObjCryst::ScatteringPower.

virtual CrystVector_REAL ObjCryst::ScatteringPowerAtom::GetScatteringFactor const ScatteringData   data,
const int    spgSymPosIndex = 0
const [virtual]
 

Get the Scattering factor for all reflections of a given ScatteringData object.

Returns:
a vector with the scattering factor for all reflections, in the same order as in the ScatteringData object. This format is independent of the radiation type (X-Ray, neutron..).
Parameters:
data:  the ScatteringData object, giving access to all the reflections.
spgSymPosIndex:  if the ScatteringPower is anisotropic, then the different symmetrics will not have the same scattering power for all reflections. This parameter is the index of the symmetric position in the Spacegroup. If spgSymPosIndex=-1, the isotropic values are returned.
Warning:
There is no anisotropic code yet, so spgSymPosIndex is simply ignored so far , but the design of this function is general for any anisotropic scattering.

Reimplemented from ObjCryst::ScatteringPower.

virtual CrystVector_REAL ObjCryst::ScatteringPowerAtom::GetTemperatureFactor const ScatteringData   data,
const int    spgSymPosIndex = 0
const [virtual]
 

Get the temperature factor for all reflections of a given ScatteringData object.

Returns:
a vector with the temperature factor for all reflections, in the same order as in the ScatteringData object.
Parameters:
data:  the ScatteringData object, giving access to all the reflections.
spgSymPosIndex:  if the ScatteringPower is anisotropic, then the different symmetrics will not have the same scattering power for all reflections. This parameter is the index of the symmetric position in the Spacegroup. If spgSymPosIndex=-1, the isotropic values are returned.
Warning:
There is no anisotropic code yet, so spgSymPosIndex is simply ignored so far , but the design of this function is general for any anisotropic scattering.

Reimplemented from ObjCryst::ScatteringPower.

void ObjCryst::ScatteringPowerAtom::InitAtNeutronScattCoeffs   [protected]
 

For internal use only.

Fetch the coefficients neutron scattering.

void ObjCryst::ScatteringPowerAtom::InitAtScattCoeffsWK95   [protected]
 

For internal use only.

Fetch the coefficients for analytical approximation of the atomic scattering factor.

virtual void ObjCryst::ScatteringPowerAtom::XMLInput istream &    is,
const XMLCrystTag   tag
[virtual]
 

Input From stream.

Todo:
Add an bool XMLInputTag(is,tag) function to recognize all the tags from the stream. So that each inherited class can use the XMLInputTag function from its parent (ie take advantage of inheritance). The children class would first try to interpret the tag, then if unsuccessful would pass it to its parent (thus allowing overloading), etc...

Reimplemented from ObjCryst::RefinableObj.

virtual void ObjCryst::ScatteringPowerAtom::XMLOutput ostream &    os,
int    indent = 0
const [virtual]
 

Output to stream in well-formed XML.

Todo:
Use inheritance.. as for XMLInputTag()...

Reimplemented from ObjCryst::RefinableObj.


Member Data Documentation

REAL ObjCryst::ScatteringPowerAtom::mNeutronAbsCrossSection [protected]
 

Neutron Absorption cross section (barn).

For 2200 m/s neutrons.

Reference : Neutron News, Vol. 3, No. 3, 1992, pp. 29-37.

REAL ObjCryst::ScatteringPowerAtom::mNeutronScattLengthImag [protected]
 

Neutron Bond Coherent Scattering lengths.

Real and imaginary (for atoms who have an imaginary part)

Reference : Neutron News, Vol. 3, No. 3, 1992, pp. 29-37.

REAL ObjCryst::ScatteringPowerAtom::mNeutronScattLengthReal [protected]
 

Neutron Bond Coherent Scattering lengths.

Real and imaginary (for atoms who have an imaginary part)

Reference : Neutron News, Vol. 3, No. 3, 1992, pp. 29-37.

CrystVector_REAL ObjCryst::ScatteringPowerAtom::mScattAi [protected]
 

X-Ray Scattering factor coefficients (ai,bi and c) for the analytical approximation.

[Acta Cryst. A51, 416-431] [International Tables for Crystallography, Vol. C, 1992 (6.1.1)]

CrystVector_REAL ObjCryst::ScatteringPowerAtom::mScattBi [protected]
 

X-Ray Scattering factor coefficients (ai,bi and c) for the analytical approximation.

[Acta Cryst. A51, 416-431] [International Tables for Crystallography, Vol. C, 1992 (6.1.1)]

string ObjCryst::ScatteringPowerAtom::mSymbol [protected]
 

Symbol of this atom.

This symbol must correspond to one of the entries of the international tables for crystallography (1995) giving the analytical approximation for scattering factors.


The documentation for this class was generated from the following file:
Generated on Tue Feb 5 17:37:26 2002 for ObjCryst++ by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001