Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   Namespace Members   Compound Members   Related Pages  

ObjCryst::PowderPatternComponent Class Reference

Generic class to compute components (eg the contribution of a given phase, or background) of a powder pattern. This is an abstract base class. More...

#include <PowderPattern.h>

Inheritance diagram for ObjCryst::PowderPatternComponent::

ObjCryst::RefinableObj ObjCryst::PowderPatternBackground ObjCryst::PowderPatternDiffraction List of all members.

Public Methods

 PowderPatternComponent ()
 PowderPatternComponent (const PowderPatternComponent &)
virtual ~PowderPatternComponent ()
virtual const string & GetClassName () const
 Name for this class ("RefinableObj", "Crystal",...). This is only useful to distinguish different classes when picking up objects from the RefinableObj Global Registry.

virtual void SetParentPowderPattern (const PowderPattern &)=0
 Set the PowderPattern object which uses this component. This sets all necessary spectrum parameters (2theta range, wavelength, radiation type...) accordingly. More...

virtual const CrystVector_REAL & GetPowderPatternCalc () const=0
 Get the calculated powder spectrum for this component. Note that the spectrum is not scaled.

bool IsScalable () const
 Is this component scalable ? More...


Protected Methods

const RefinableObjClockGetClockPowderPatternCalc () const
 Last time the spectrum was actually calculated.

virtual void CalcPowderPattern () const=0
 Calc the powder spectrum. As always, recomputation is only done if necessary (ie if a parameter has changed since the last computation).

virtual void SetRadiation (const Radiation &rad)=0
 Set the radiation. This is called by PowderPattern. More...

virtual void GetBraggLimits (CrystVector_long *&min, CrystVector_long *&max) const=0
 Get the integration limits (first and last pixels) around each reflection, if this component has Bragg reflections. Used for integrated R(w) factors. The limits currently go from -2*FWHM to +2*FWHM. returns a pointer to the min and max pixels arrays (null pointers if no reflection for this phase).

const RefinableObjClockGetClockBraggLimits () const
 Get last time the Bragg Limits were changed.

virtual void SetMaxSinThetaOvLambda (const REAL max)=0
 Set the maximum value for sin(theta)/lambda. All data above still exist but are ignored for all calculations.

virtual void Prepare ()=0
 This will be called by the parent PowderPattern object, before calculating the first powder spectrum. Or maybe it should be called automatically by the object itself... More...


Protected Attributes

CrystVector_REAL mPowderPatternCalc
 The calculated component of a powder spectrum. It is mutable since it is completely defined by other parameters (eg it is not an 'independent parameter').

bool mIsScalable
 Scalable ? (crystal phase = scalable, background= not scalable).

RefinableObjClock mClockPowderPatternCalc
 When was the powder spectrum last computed ?

const PowderPatternmpParentPowderPattern
 The PowderPattern object in which this component is included.

RefinableObjClock mClockBraggLimits
 Get last time the Bragg Limits were changed.


Friends

class PowderPattern

Detailed Description

Generic class to compute components (eg the contribution of a given phase, or background) of a powder pattern. This is an abstract base class.

Most functions are protected, only to be accessed, internally or from the friend class PowderPattern.


Member Function Documentation

bool ObjCryst::PowderPatternComponent::IsScalable   const
 

Is this component scalable ?

This is used by the PowderPattern class, which fits all spectrum components using scale factors. Some components may not need to be scaled: background components, which are assumed to be absolute.

virtual void ObjCryst::PowderPatternComponent::Prepare   [protected, pure virtual]
 

This will be called by the parent PowderPattern object, before calculating the first powder spectrum. Or maybe it should be called automatically by the object itself...

For internal use only.

Reimplemented from ObjCryst::RefinableObj.

Reimplemented in ObjCryst::PowderPatternBackground, and ObjCryst::PowderPatternDiffraction.

virtual void ObjCryst::PowderPatternComponent::SetParentPowderPattern const PowderPattern   [pure virtual]
 

Set the PowderPattern object which uses this component. This sets all necessary spectrum parameters (2theta range, wavelength, radiation type...) accordingly.

For internal use only.

Reimplemented in ObjCryst::PowderPatternBackground, and ObjCryst::PowderPatternDiffraction.

virtual void ObjCryst::PowderPatternComponent::SetRadiation const Radiation   rad [protected, pure virtual]
 

Set the radiation. This is called by PowderPattern.

For internal use only.

Reimplemented in ObjCryst::PowderPatternBackground, and ObjCryst::PowderPatternDiffraction.


The documentation for this class was generated from the following file:
Generated on Tue Feb 5 17:37:23 2002 for ObjCryst++ by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001