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

ObjCryst::ScatteringPowerAtom Class Reference

The Scattering Power for an Atom. More...

Inheritance diagram for ObjCryst::ScatteringPowerAtom:

Inheritance graph
[legend]
Collaboration diagram for ObjCryst::ScatteringPowerAtom:

Collaboration graph
[legend]
List of all members.

Public Member Functions

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

 ScatteringPowerAtom (const ScatteringPowerAtom &old)
 ~ScatteringPowerAtom ()
virtual const string & GetClassName () const
 Name for this class ("RefinableObj", "Crystal",...).

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.

virtual REAL GetForwardScatteringFactor (const RadiationType) const
 Get the scattering factor at (0,0,0).

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

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

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

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",..).

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.

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


Protected Member Functions

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

Protected Attributes

string mSymbol
 Symbol of this atom.

int mAtomicNumber
 atomic number (Z) for the atom

cctbx::eltbx::xray_scattering::gaussian * mpGaussian
 Pointer to cctbx's gaussian describing the thomson x-ray scattering factor.

REAL mNeutronScattLengthReal
 Neutron Bond Coherent Scattering lengths.

REAL mNeutronScattLengthImag
 Neutron Bond Coherent Scattering lengths.

REAL mRadius
 Radius of the atom, in Angstroems.

REAL mNeutronAbsCrossSection
 Neutron Absorption cross section (barn).


Detailed Description

The Scattering Power for an Atom.


Constructor & Destructor Documentation

ObjCryst::ScatteringPowerAtom::ScatteringPowerAtom  ) 
 

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

ObjCryst::ScatteringPowerAtom::ScatteringPowerAtom const ScatteringPowerAtom old  ) 
 

ObjCryst::ScatteringPowerAtom::~ScatteringPowerAtom  ) 
 


Member Function Documentation

int ObjCryst::ScatteringPowerAtom::GetAtomicNumber  )  const
 

Atomic number for this atom.

virtual const string& ObjCryst::ScatteringPowerAtom::GetClassName  )  const [virtual]
 

Name for this class ("RefinableObj", "Crystal",...).

This is only useful to distinguish different classes when picking up objects from the RefinableObj Global Registry

Reimplemented from ObjCryst::ScatteringPower.

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 REAL ObjCryst::ScatteringPowerAtom::GetForwardScatteringFactor const  RadiationType  )  const [virtual]
 

Get the scattering factor at (0,0,0).

Used for scatterer (electron, nucleus) density generation.

Implements ObjCryst::ScatteringPower.

REAL ObjCryst::ScatteringPowerAtom::GetRadius  )  const [virtual]
 

Atomic radius for this atom, in Angstroems.

Implements ObjCryst::ScatteringPower.

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.

Implements 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.

Implements 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.

Implements ObjCryst::ScatteringPower.

virtual const string& ObjCryst::ScatteringPowerAtom::GetSymbol  )  const [virtual]
 

Returns the symbol ('Ta', 'O2-',...) of the atom.

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.

Implements ObjCryst::ScatteringPower.

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

Re-initialize parameters (after using the default constructor).

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::InitRefParList  )  [protected, virtual]
 

Implements ObjCryst::ScatteringPower.

virtual void ObjCryst::ScatteringPowerAtom::Print  )  const [virtual]
 

Reimplemented from ObjCryst::RefinableObj.

void ObjCryst::ScatteringPowerAtom::SetSymbol const string &  symbol  ) 
 

Set the symbol for this atom.

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

int ObjCryst::ScatteringPowerAtom::mAtomicNumber [protected]
 

atomic number (Z) for the atom

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.

cctbx::eltbx::xray_scattering::gaussian* ObjCryst::ScatteringPowerAtom::mpGaussian [protected]
 

Pointer to cctbx's gaussian describing the thomson x-ray scattering factor.

REAL ObjCryst::ScatteringPowerAtom::mRadius [protected]
 

Radius of the atom, in Angstroems.

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 Nov 14 15:05:19 2006 for ObjCryst++ by doxygen 1.3.6