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 (const string &name, const string &symbol, const REAL bIso=1.0)
 Atom constructor.
 ScatteringPowerAtom (const ScatteringPowerAtom &old)
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
REAL mRadius
 Radius of the atom, in Angstroems.
REAL mNeutronAbsCrossSection
 Neutron Absorption cross section (barn).


Detailed Description

The Scattering Power for an Atom.

Definition at line 295 of file ScatteringPower.h.


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

Definition at line 223 of file ScatteringPower.cpp.


Member Function Documentation

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.

Definition at line 250 of file ScatteringPower.cpp.

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.

Definition at line 405 of file ScatteringPower.cpp.

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.

Definition at line 451 of file ScatteringPower.cpp.

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.

Definition at line 478 of file ScatteringPower.cpp.

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.

Definition at line 574 of file ScatteringPower.cpp.

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.

Definition at line 618 of file ScatteringPower.cpp.

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

Definition at line 673 of file ScatteringPower.cpp.

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.

Definition at line 237 of file ObjCryst/IO.cpp.

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.

Definition at line 274 of file ObjCryst/IO.cpp.

void ObjCryst::ScatteringPowerAtom::InitAtScattCoeffsWK95 (  )  [protected]

For internal use only.

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

void ObjCryst::ScatteringPowerAtom::InitAtNeutronScattCoeffs (  )  [protected]

For internal use only.

Fetch the coefficients neutron scattering.

Definition at line 701 of file ScatteringPower.cpp.


Member Data Documentation

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.

Definition at line 357 of file ScatteringPower.h.

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.

Definition at line 372 of file ScatteringPower.h.

Neutron Absorption cross section (barn).

For 2200 m/s neutrons.

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

Definition at line 383 of file ScatteringPower.h.


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

Generated on Sun Sep 28 23:46:31 2008 for FOX/ObjCryst++ by  doxygen 1.5.6