Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File 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...

Inheritance diagram for ObjCryst::PowderPatternComponent:

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

Collaboration graph
[legend]
List of all members.

Public Member Functions

 PowderPatternComponent ()
 PowderPatternComponent (const PowderPatternComponent &)
virtual ~PowderPatternComponent ()
virtual const string & GetClassName () const
 Name for this class ("RefinableObj", "Crystal",...).

const PowderPatternGetParentPowderPattern () const
 Get the PowderPattern object which uses this component.

virtual void SetParentPowderPattern (const PowderPattern &)=0
 Set the PowderPattern object which uses this component.

virtual const CrystVector_REAL & GetPowderPatternCalc () const=0
 Get the calculated powder pattern for this component.

virtual pair< const CrystVector_REAL *,
const RefinableObjClock * > 
GetPowderPatternIntegratedCalc () const=0
 Get the integrated values of the powder pattern.

bool IsScalable () const
 Is this component scalable ?

virtual const CrystVector_REAL & GetPowderPatternCalcVariance () const=0
 Get the variance associated to each point of the calculated powder pattern, for this component.

virtual pair< const CrystVector_REAL *,
const RefinableObjClock * > 
GetPowderPatternIntegratedCalcVariance () const=0
 Get the variance associated to each point of the calculated powder pattern, for this component (integrated version).

virtual bool HasPowderPatternCalcVariance () const=0
 Does this component have a variance associated with each calculated point ? i.e., do we use maximum likelihood to take into account incomplete models ?

const RefinableObjClockGetClockPowderPatternCalc () const
 Last time the powder pattern was calculated.

const list< pair< const REAL,
const string > > & 
GetPatternLabelList () const
 Get a list of labels for the pattern (usually reflection indexes).


Protected Member Functions

const RefinableObjClockGetClockPowderPatternCalcVariance () const
 Last time the variance on the pattern was actually calculated.

virtual void CalcPowderPattern () const=0
 Calc the powder pattern.

virtual void CalcPowderPatternIntegrated () const=0
 Calc the integrated powder pattern.

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.

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

virtual void SetMaxSinThetaOvLambda (const REAL max)=0
 exist but are ignored for all calculations.

virtual void Prepare ()=0

Protected Attributes

CrystVector_REAL mPowderPatternCalc
 The calculated component of a powder pattern.

CrystVector_REAL mPowderPatternIntegratedCalc
 The calculated powder pattern, integrated.

CrystVector_REAL mPowderPatternCalcVariance
 The variance associated to each point of the calculated powder pattern.

CrystVector_REAL mPowderPatternIntegratedCalcVariance
 The variance associated to each point of the calculated powder pattern, integrated.

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

RefinableObjClock mClockPowderPatternCalc
 When was the powder pattern last computed ?

RefinableObjClock mClockPowderPatternIntegratedCalc
 When was the 'integrated' powder pattern last computed ?

RefinableObjClock mClockPowderPatternVarianceCalc
 When was the powder pattern variance last computed ?

RefinableObjClock mClockPowderPatternIntegratedVarianceCalc
 When was the 'integrated' powder pattern variance last computed ?

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

RefinableObjClock mClockBraggLimits
 Get last time the Bragg Limits were changed.

list< pair< const REAL,const
string > > 
mvLabel
 The labels associated to different points of the pattern.


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.


Constructor & Destructor Documentation

ObjCryst::PowderPatternComponent::PowderPatternComponent  ) 
 

ObjCryst::PowderPatternComponent::PowderPatternComponent const PowderPatternComponent  ) 
 

virtual ObjCryst::PowderPatternComponent::~PowderPatternComponent  )  [virtual]
 


Member Function Documentation

virtual void ObjCryst::PowderPatternComponent::CalcPowderPattern  )  const [protected, pure virtual]
 

Calc the powder pattern.

As always, recomputation is only done if necessary (ie if a parameter has changed since the last computation)

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

virtual void ObjCryst::PowderPatternComponent::CalcPowderPatternIntegrated  )  const [protected, pure virtual]
 

Calc the integrated powder pattern.

This should be optimized so that the full powder pattern is not explicitely computed.

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

virtual void ObjCryst::PowderPatternComponent::GetBraggLimits CrystVector_long *&  min,
CrystVector_long *&  max
const [protected, pure virtual]
 

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

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

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

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

const RefinableObjClock& ObjCryst::PowderPatternComponent::GetClockBraggLimits  )  const [protected]
 

Get last time the Bragg Limits were changed.

const RefinableObjClock& ObjCryst::PowderPatternComponent::GetClockPowderPatternCalc  )  const
 

Last time the powder pattern was calculated.

const RefinableObjClock& ObjCryst::PowderPatternComponent::GetClockPowderPatternCalcVariance  )  const [protected]
 

Last time the variance on the pattern was actually calculated.

const PowderPattern& ObjCryst::PowderPatternComponent::GetParentPowderPattern  )  const
 

Get the PowderPattern object which uses this component.

This allows to know the observed powder pattern to evaluate the background.

const list<pair<const REAL ,const string > >& ObjCryst::PowderPatternComponent::GetPatternLabelList  )  const
 

Get a list of labels for the pattern (usually reflection indexes).

This returns the list generated during the last computation of the powder pattern.

virtual const CrystVector_REAL& ObjCryst::PowderPatternComponent::GetPowderPatternCalc  )  const [pure virtual]
 

Get the calculated powder pattern for this component.

Note that the pattern is not scaled.

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

virtual const CrystVector_REAL& ObjCryst::PowderPatternComponent::GetPowderPatternCalcVariance  )  const [pure virtual]
 

Get the variance associated to each point of the calculated powder pattern, for this component.

Warning:
: this is experimental, with the aim of using Maximum Likelihood to improve structure determination.

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

virtual pair<const CrystVector_REAL*,const RefinableObjClock*> ObjCryst::PowderPatternComponent::GetPowderPatternIntegratedCalc  )  const [pure virtual]
 

Get the integrated values of the powder pattern.

Note:
: the integration intervals are those given by the parent PowderPattern, so that all PowderPatternComponent's intervals are taken into account
This avoids explicitely calculating the full profile powder pattern.

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

virtual pair<const CrystVector_REAL*,const RefinableObjClock*> ObjCryst::PowderPatternComponent::GetPowderPatternIntegratedCalcVariance  )  const [pure virtual]
 

Get the variance associated to each point of the calculated powder pattern, for this component (integrated version).

Warning:
: this is experimental, with the aim of using Maximum Likelihood to improve structure determination.

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

virtual bool ObjCryst::PowderPatternComponent::HasPowderPatternCalcVariance  )  const [pure virtual]
 

Does this component have a variance associated with each calculated point ? i.e., do we use maximum likelihood to take into account incomplete models ?

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

bool ObjCryst::PowderPatternComponent::IsScalable  )  const
 

Is this component scalable ?

This is used by the PowderPattern class, which fits all pattern 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]
 

For internal use only.

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

Reimplemented from ObjCryst::RefinableObj.

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

virtual void ObjCryst::PowderPatternComponent::SetMaxSinThetaOvLambda const REAL  max  )  [protected, pure virtual]
 

exist but are ignored for all calculations.

All data above still

Implemented 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 pattern parameters (2theta/tof range, wavelength, radiation type...) accordingly.

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


Friends And Related Function Documentation

friend class PowderPattern [friend]
 

Reimplemented in ObjCryst::PowderPatternBackground.


Member Data Documentation

RefinableObjClock ObjCryst::PowderPatternComponent::mClockBraggLimits [mutable, protected]
 

Get last time the Bragg Limits were changed.

RefinableObjClock ObjCryst::PowderPatternComponent::mClockPowderPatternCalc [mutable, protected]
 

When was the powder pattern last computed ?

RefinableObjClock ObjCryst::PowderPatternComponent::mClockPowderPatternIntegratedCalc [mutable, protected]
 

When was the 'integrated' powder pattern last computed ?

RefinableObjClock ObjCryst::PowderPatternComponent::mClockPowderPatternIntegratedVarianceCalc [mutable, protected]
 

When was the 'integrated' powder pattern variance last computed ?

RefinableObjClock ObjCryst::PowderPatternComponent::mClockPowderPatternVarianceCalc [mutable, protected]
 

When was the powder pattern variance last computed ?

bool ObjCryst::PowderPatternComponent::mIsScalable [protected]
 

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

CrystVector_REAL ObjCryst::PowderPatternComponent::mPowderPatternCalc [mutable, protected]
 

The calculated component of a powder pattern.

It is mutable since it is completely defined by other parameters (eg it is not an 'independent parameter')

CrystVector_REAL ObjCryst::PowderPatternComponent::mPowderPatternCalcVariance [mutable, protected]
 

The variance associated to each point of the calculated powder pattern.

CrystVector_REAL ObjCryst::PowderPatternComponent::mPowderPatternIntegratedCalc [mutable, protected]
 

The calculated powder pattern, integrated.

CrystVector_REAL ObjCryst::PowderPatternComponent::mPowderPatternIntegratedCalcVariance [mutable, protected]
 

The variance associated to each point of the calculated powder pattern, integrated.

const PowderPattern* ObjCryst::PowderPatternComponent::mpParentPowderPattern [protected]
 

The PowderPattern object in which this component is included.

list<pair<const REAL ,const string > > ObjCryst::PowderPatternComponent::mvLabel [mutable, protected]
 

The labels associated to different points of the pattern.


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