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

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 ()
 ReflectionProfilePseudoVoigt (const ReflectionProfilePseudoVoigt &old)
virtual ~ReflectionProfilePseudoVoigt ()
virtual ReflectionProfilePseudoVoigtCreateCopy () 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
 FWHM parameters, following Caglioti's law.

REAL mCagliotiW
 FWHM parameters, following Caglioti's law.

REAL mPseudoVoigtEta0
 Pseudo-Voigt mixing parameter : eta=eta0 +2*theta*eta1 eta=1 -> pure Lorentzian ; eta=0 -> pure Gaussian.

REAL mPseudoVoigtEta1
 Pseudo-Voigt mixing parameter : eta=eta0 +2*theta*eta1 eta=1 -> pure Lorentzian ; eta=0 -> pure Gaussian.

REAL mAsymBerarBaldinozziA0
 Asymmetry parameters, following the Bérar & Baldinozzi approach ( Bérar & baldinozzi, J.

REAL mAsymBerarBaldinozziA1
 Asymmetry parameters, following the Bérar & Baldinozzi approach ( Bérar & baldinozzi, J.

REAL mAsymBerarBaldinozziB0
 Asymmetry parameters, following the Bérar & Baldinozzi approach ( Bérar & baldinozzi, J.

REAL mAsymBerarBaldinozziB1
 Asymmetry parameters, following the Bérar & Baldinozzi approach ( Bérar & baldinozzi, J.

REAL mAsym0
 Asymmetry parameters, following the analytical function for asymmetric pseudo-voigt given by (e.g.) Toraya in J.

REAL mAsym1
 Asymmetry parameters, following the analytical function for asymmetric pseudo-voigt given by (e.g.) Toraya in J.

REAL mAsym2
 Asymmetry parameters, following the analytical function for asymmetric pseudo-voigt given by (e.g.) Toraya in J.


Detailed Description

Pseudo-Voigt reflection profile.


Constructor & Destructor Documentation

ObjCryst::ReflectionProfilePseudoVoigt::ReflectionProfilePseudoVoigt  ) 
 

ObjCryst::ReflectionProfilePseudoVoigt::ReflectionProfilePseudoVoigt const ReflectionProfilePseudoVoigt old  ) 
 

virtual ObjCryst::ReflectionProfilePseudoVoigt::~ReflectionProfilePseudoVoigt  )  [virtual]
 


Member Function Documentation

virtual ReflectionProfilePseudoVoigt* ObjCryst::ReflectionProfilePseudoVoigt::CreateCopy  )  const [virtual]
 

Implements ObjCryst::ReflectionProfile.

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

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

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.

void ObjCryst::ReflectionProfilePseudoVoigt::InitParameters  )  [private]
 

Initialize parameters.

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

Is the profile anisotropic ?

Reimplemented from ObjCryst::ReflectionProfile.

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.

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

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


Member Data Documentation

REAL ObjCryst::ReflectionProfilePseudoVoigt::mAsym0 [private]
 

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

Appl. Cryst 23(1990),485-491

REAL ObjCryst::ReflectionProfilePseudoVoigt::mAsym1 [private]
 

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

Appl. Cryst 23(1990),485-491

REAL ObjCryst::ReflectionProfilePseudoVoigt::mAsym2 [private]
 

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

Appl. Cryst 23(1990),485-491

REAL ObjCryst::ReflectionProfilePseudoVoigt::mAsymBerarBaldinozziA0 [private]
 

Asymmetry parameters, following the Bérar & Baldinozzi approach ( Bérar & baldinozzi, J.

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

Note:
: these are not used right now.

REAL ObjCryst::ReflectionProfilePseudoVoigt::mAsymBerarBaldinozziA1 [private]
 

Asymmetry parameters, following the Bérar & Baldinozzi approach ( Bérar & baldinozzi, J.

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

Note:
: these are not used right now.

REAL ObjCryst::ReflectionProfilePseudoVoigt::mAsymBerarBaldinozziB0 [private]
 

Asymmetry parameters, following the Bérar & Baldinozzi approach ( Bérar & baldinozzi, J.

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

Note:
: these are not used right now.

REAL ObjCryst::ReflectionProfilePseudoVoigt::mAsymBerarBaldinozziB1 [private]
 

Asymmetry parameters, following the Bérar & Baldinozzi approach ( Bérar & baldinozzi, J.

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

Note:
: these are not used right now.

REAL ObjCryst::ReflectionProfilePseudoVoigt::mCagliotiU [private]
 

FWHM parameters, following Caglioti's law.

REAL ObjCryst::ReflectionProfilePseudoVoigt::mCagliotiV [private]
 

FWHM parameters, following Caglioti's law.

REAL ObjCryst::ReflectionProfilePseudoVoigt::mCagliotiW [private]
 

FWHM parameters, following Caglioti's law.

REAL ObjCryst::ReflectionProfilePseudoVoigt::mPseudoVoigtEta0 [private]
 

Pseudo-Voigt mixing parameter : eta=eta0 +2*theta*eta1 eta=1 -> pure Lorentzian ; eta=0 -> pure Gaussian.

REAL ObjCryst::ReflectionProfilePseudoVoigt::mPseudoVoigtEta1 [private]
 

Pseudo-Voigt mixing parameter : eta=eta0 +2*theta*eta1 eta=1 -> pure Lorentzian ; eta=0 -> pure Gaussian.


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