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

ObjCryst::ScatteringPowerSphere Class Reference

\ brief ScatteringPower for a spherical particule More...

Inheritance diagram for ObjCryst::ScatteringPowerSphere:

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

Collaboration graph
[legend]
List of all members.

Public Member Functions

 ScatteringPowerSphere ()
 Default constructor.

 ScatteringPowerSphere (const string &name, const REAL radius, const REAL bIso=1.0)
 constructor

 ScatteringPowerSphere (const ScatteringPowerSphere &old)
 ~ScatteringPowerSphere ()
void Init (const string &name, const REAL radius, const REAL bIso=1.0)
virtual const string & GetClassName () const
 Name for this class ("RefinableObj", "Crystal",...).

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.

REAL GetRadius () const
 Return the physical radius of this type of scatterer (for 3D display purposes).

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.


Private Member Functions

virtual void InitRefParList ()

Private Attributes

REAL mBiso
 Isotropic temperature B-factor.

REAL mRadius
 Radius of the sphere.


Detailed Description

\ brief ScatteringPower for a spherical particule

This can be used to modelize the form factor of disordered (or low-resolution) of fullerene-type compounds, where all atoms are located on a sphere.

This actually modelizes a spherical distribution of a single electron, so to modelize C60 the occupancy must be set to 60*6.


Constructor & Destructor Documentation

ObjCryst::ScatteringPowerSphere::ScatteringPowerSphere  ) 
 

Default constructor.

ObjCryst::ScatteringPowerSphere::ScatteringPowerSphere const string &  name,
const REAL  radius,
const REAL  bIso = 1.0
 

constructor

Parameters:
name : name of the ScatteringPower ('C60','France 98'...). The name can have any format
nbAtom: the number of atoms
biso : Isotropic thermic coefficient
AxisLengthX,AxisLengthY,AxisLengthZ: length of the different main axis of the ellipsoid
symbol: the symbol of the element associated to this fullerene. By default it is assumed to be carbon

ObjCryst::ScatteringPowerSphere::ScatteringPowerSphere const ScatteringPowerSphere old  ) 
 

ObjCryst::ScatteringPowerSphere::~ScatteringPowerSphere  ) 
 


Member Function Documentation

virtual const string& ObjCryst::ScatteringPowerSphere::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.

virtual REAL ObjCryst::ScatteringPowerSphere::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::ScatteringPowerSphere::GetRadius  )  const [virtual]
 

Return the physical radius of this type of scatterer (for 3D display purposes).

Warning:
this may be removed later.

Implements ObjCryst::ScatteringPower.

virtual CrystMatrix_REAL ObjCryst::ScatteringPowerSphere::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::ScatteringPowerSphere::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::ScatteringPowerSphere::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 CrystVector_REAL ObjCryst::ScatteringPowerSphere::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::ScatteringPowerSphere::Init const string &  name,
const REAL  radius,
const REAL  bIso = 1.0
 

virtual void ObjCryst::ScatteringPowerSphere::InitRefParList  )  [private, virtual]
 

Implements ObjCryst::ScatteringPower.

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

Reimplemented from ObjCryst::RefinableObj.

virtual void ObjCryst::ScatteringPowerSphere::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::ScatteringPowerSphere::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::ScatteringPowerSphere::mBiso [private]
 

Isotropic temperature B-factor.

Reimplemented from ObjCryst::ScatteringPower.

REAL ObjCryst::ScatteringPowerSphere::mRadius [private]
 

Radius of the sphere.


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