ObjCryst::ReflectionProfilePseudoVoigt Class Reference

Pseudo-Voigt reflection profile. More...

Inheritance diagram for ObjCryst::ReflectionProfilePseudoVoigt:

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

Collaboration graph
[legend]

List of all members.

Public Member Functions

 ReflectionProfilePseudoVoigt (const ReflectionProfilePseudoVoigt &old)
virtual
ReflectionProfilePseudoVoigt
CreateCopy () const
virtual const string & GetClassName () const
 Name for this class ("RefinableObj", "Crystal",.
CrystVector_REAL GetProfile (const CrystVector_REAL &x, const REAL xcenter, const REAL h, const REAL k, const REAL l) const
 Get the reflection profile.
void SetProfilePar (const REAL fwhmCagliotiW, const REAL fwhmCagliotiU=0, const REAL fwhmCagliotiV=0, const REAL eta0=0.5, const REAL eta1=0.)
 Set reflection profile parameters.
virtual REAL GetFullProfileWidth (const REAL relativeIntensity, const REAL xcenter, const REAL h, const REAL k, const REAL l)
 Get the (approximate) full profile width at a given percentage of the profile maximum (e.g.
bool IsAnisotropic () const
 Is the profile anisotropic ?
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

void InitParameters ()
 Initialize parameters.

Private Attributes

REAL mCagliotiU
 FWHM parameters, following Caglioti's law.
REAL mCagliotiV
REAL mCagliotiW
REAL mPseudoVoigtEta0
 Pseudo-Voigt mixing parameter : eta=eta0 +2*theta*eta1 eta=1 -> pure Lorentzian ; eta=0 -> pure Gaussian.
REAL mPseudoVoigtEta1
REAL mAsymBerarBaldinozziA0
 Asymmetry parameters, following the B�ar & Baldinozzi approach ( B�ar & baldinozzi, J.
REAL mAsymBerarBaldinozziA1
REAL mAsymBerarBaldinozziB0
REAL mAsymBerarBaldinozziB1
REAL mAsym0
 Asymmetry parameters, following the analytical function for asymmetric pseudo-voigt given by (e.g.
REAL mAsym1
REAL mAsym2


Detailed Description

Pseudo-Voigt reflection profile.

Definition at line 100 of file ReflectionProfile.h.


Member Function Documentation

const string & ObjCryst::ReflectionProfilePseudoVoigt::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::RefinableObj.

Definition at line 127 of file ReflectionProfile.cpp.

CrystVector_REAL ObjCryst::ReflectionProfilePseudoVoigt::GetProfile ( const CrystVector_REAL &  x,
const REAL  xcenter,
const REAL  h,
const REAL  k,
const REAL  l 
) const [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()

Implements ObjCryst::ReflectionProfile.

Definition at line 133 of file ReflectionProfile.cpp.

void ObjCryst::ReflectionProfilePseudoVoigt::SetProfilePar ( const REAL  fwhmCagliotiW,
const REAL  fwhmCagliotiU = 0,
const REAL  fwhmCagliotiV = 0,
const REAL  eta0 = 0.5,
const REAL  eta1 = 0. 
)

Set reflection profile parameters.

Parameters:
fwhmCagliotiW,fwhmCagliotiU,fwhmCagliotiV : these are the U,V and W parameters in the Caglioti's law : $ fwhm^2= U \tan^2(\theta) + V \tan(\theta) +W $ if only W is given, the width is constant
eta0,eta1,: these are the mixing parameters.

Definition at line 161 of file ReflectionProfile.cpp.

REAL ObjCryst::ReflectionProfilePseudoVoigt::GetFullProfileWidth ( const REAL  relativeIntensity,
const REAL  xcenter,
const REAL  h,
const REAL  k,
const REAL  l 
) [virtual]

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

FWHM=GetFullProfileWidth(0.5)).

Implements ObjCryst::ReflectionProfile.

Definition at line 176 of file ReflectionProfile.cpp.

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

Output to stream in well-formed XML.

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

Implements ObjCryst::ReflectionProfile.

Definition at line 308 of file ReflectionProfile.cpp.

void ObjCryst::ReflectionProfilePseudoVoigt::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...

Implements ObjCryst::ReflectionProfile.

Definition at line 358 of file ReflectionProfile.cpp.


Member Data Documentation

Asymmetry parameters, following the B�ar & Baldinozzi approach ( B�ar & baldinozzi, J.

Appl. Cryst 26 (1993), 128-129)

Note:
: these are not used right now.

Definition at line 141 of file ReflectionProfile.h.

Asymmetry parameters, following the analytical function for asymmetric pseudo-voigt given by (e.g.

) Toraya in J. Appl. Cryst 23(1990),485-491

Definition at line 146 of file ReflectionProfile.h.


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

Generated on Fri Apr 4 23:02:01 2008 for FOX/ObjCryst++ by  doxygen 1.5.5