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

ObjCryst::ReflectionProfile Class Reference

Abstract base class for reflection profiles. More...

Inheritance diagram for ObjCryst::ReflectionProfile:

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

Collaboration graph
[legend]
List of all members.

Public Member Functions

 ReflectionProfile ()
 ReflectionProfile (const ReflectionProfile &old)
virtual ~ReflectionProfile ()
virtual ReflectionProfileCreateCopy () const=0
virtual CrystVector_REAL GetProfile (const CrystVector_REAL &x, const REAL xcenter, const REAL h, const REAL k, const REAL l) const=0
 Get the reflection profile.

virtual REAL GetFullProfileWidth (const REAL relativeIntensity, const REAL xcenter, const REAL h, const REAL k, const REAL l)=0
 Get the (approximate) full profile width at a given percentage of the profile maximum (e.g.

virtual bool IsAnisotropic () const
 Is the profile anisotropic ?

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

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


Detailed Description

Abstract base class for reflection profiles.


Constructor & Destructor Documentation

ObjCryst::ReflectionProfile::ReflectionProfile  ) 
 

ObjCryst::ReflectionProfile::ReflectionProfile const ReflectionProfile old  ) 
 

virtual ObjCryst::ReflectionProfile::~ReflectionProfile  )  [virtual]
 


Member Function Documentation

virtual ReflectionProfile* ObjCryst::ReflectionProfile::CreateCopy  )  const [pure virtual]
 

Implemented in ObjCryst::ReflectionProfilePseudoVoigt, and ObjCryst::ReflectionProfileDoubleExponentialPseudoVoigt.

virtual REAL ObjCryst::ReflectionProfile::GetFullProfileWidth const REAL  relativeIntensity,
const REAL  xcenter,
const REAL  h,
const REAL  k,
const REAL  l
[pure virtual]
 

Get the (approximate) full profile width at a given percentage of the profile maximum (e.g.

FWHM=GetFullProfileWidth(0.5)).

Implemented in ObjCryst::ReflectionProfilePseudoVoigt, and ObjCryst::ReflectionProfileDoubleExponentialPseudoVoigt.

virtual CrystVector_REAL ObjCryst::ReflectionProfile::GetProfile const CrystVector_REAL &  x,
const REAL  xcenter,
const REAL  h,
const REAL  k,
const REAL  l
const [pure virtual]
 

Get the reflection profile.

Parameters:
x: the vector of x coordinates (i.e. either 2theta or time-of-flight)
xcenter: coordinate (2theta, tof) of the center of the peak
h,k,l: reflection Miller indices
Note:
: derived classes who need either d_hkl or the orthonormal coordinates of the scattering vector should be passed a ObjCryst::UnitCell object in the constructor so that they can use ObjCryst::UnitCell::MillerToOrthonormalCoords()

Implemented in ObjCryst::ReflectionProfilePseudoVoigt, and ObjCryst::ReflectionProfileDoubleExponentialPseudoVoigt.

virtual bool ObjCryst::ReflectionProfile::IsAnisotropic  )  const [virtual]
 

Is the profile anisotropic ?

Reimplemented in ObjCryst::ReflectionProfilePseudoVoigt, and ObjCryst::ReflectionProfileDoubleExponentialPseudoVoigt.

virtual void ObjCryst::ReflectionProfile::XMLInput istream &  is,
const XMLCrystTag tag
[pure 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.

Implemented in ObjCryst::ReflectionProfilePseudoVoigt, and ObjCryst::ReflectionProfileDoubleExponentialPseudoVoigt.

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

Output to stream in well-formed XML.

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

Reimplemented from ObjCryst::RefinableObj.

Implemented in ObjCryst::ReflectionProfilePseudoVoigt, and ObjCryst::ReflectionProfileDoubleExponentialPseudoVoigt.


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