Inheritance diagram for ObjCryst::PowderPatternDiffraction:
Public Methods | |
virtual PowderPatternDiffraction * | CreateCopy () const |
So-called virtual copy constructor. | |
virtual const string & | GetClassName () const |
Name for this class ("RefinableObj", "Crystal",...). | |
virtual void | SetParentPowderPattern (const PowderPattern &) |
virtual const CrystVector_REAL & | GetPowderPatternCalc () const |
Get the calculated powder pattern for this component. | |
virtual pair< const CrystVector_REAL *, const RefinableObjClock * > | GetPowderPatternIntegratedCalc () const |
Get the integrated values of the powder pattern. | |
void | SetReflectionProfilePar (const ReflectionProfileType prof, 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 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. | |
virtual void | GetGeneGroup (const RefinableObj &obj, CrystVector_uint &groupIndex, unsigned int &firstGroup) const |
Get the gene group assigned to each parameter. | |
virtual void | BeginOptimization (const bool allowApproximations=false, const bool enableRestraints=false) |
This should be called by any optimization class at the begining of an optimization. | |
virtual void | EndOptimization () |
This should be called by any optimization class at the end of an optimization. | |
virtual const Radiation & | GetRadiation () const |
Get the radiation object for this data. | |
virtual const CrystVector_REAL & | GetPowderPatternCalcVariance () const |
Get the variance associated to each point of the calculated powder pattern, for this component. | |
virtual pair< const CrystVector_REAL *, const RefinableObjClock * > | GetPowderPatternIntegratedCalcVariance () const |
Get the variance associated to each point of the calculated powder pattern, for this component (integrated version). | |
virtual bool | HasPowderPatternCalcVariance () const |
Does this component have a variance associated with each calculated point ? i.e., do we use maximum likelihood to take into account incomplete models ? | |
Protected Methods | |
virtual void | CalcPowderPattern () const |
Calc the powder pattern. | |
virtual void | CalcPowderPatternIntegrated () const |
Calc the integrated powder pattern. | |
void | CalcPowderReflProfile () const |
Calc reflection profiles for ALL reflections (powder diffraction). | |
void | CalcIntensityCorr () const |
Calc Lorentz-Polarisation-APerture correction. | |
virtual void | CalcIhkl () const |
virtual void | Prepare () |
virtual void | GetBraggLimits (CrystVector_long *&min, CrystVector_long *&max) const |
Get the integration limits (first and last pixels) around each reflection, if this component has Bragg reflections. | |
virtual void | SetMaxSinThetaOvLambda (const REAL max) |
Set the maximum value for sin(theta)/lambda. | |
Protected Attributes | |
RefinableObjClock | mClockProfilePar |
Last time the reflection parameters were changed. | |
RefinableObjClock | mClockLorentzPolarSlitCorrPar |
Last time the. | |
RefinableObjClock | mClockIntensityCorr |
Last time the Lorentz-Polar-Slit correction was computed. | |
RefinableObjClock | mClockProfileCalc |
Last time the reflection profiles were computed. | |
RefinableObjClock | mClockIhklCalc |
Last time intensities were computed. | |
RefObjOpt | mReflectionProfileType |
Gaussian ? Lorentzian ? Pseudo-Voigt ? | |
REAL | mFullProfileWidthFactor |
The 'full' profile of each reflection os taken equal to the FWHM, multiplied by this factor. | |
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. | |
bool | mUseAsymmetricProfile |
Use asymmetric profiles ? (unused yet). | |
CrystVector_REAL | mIntensityCorr |
Calculated corrections for all reflections. Calc F^2 must be multiplied by this factor to yield intensities. | |
LorentzCorr | mCorrLorentz |
Lorentz correction. | |
PolarizationCorr | mCorrPolar |
Polarization correction. | |
PowderSlitApertureCorr | mCorrSlitAperture |
Slit aperture correction. | |
TextureMarchDollase | mCorrTextureMarchDollase |
Preferred orientation (texture) correction following the March-Dollase model. | |
CrystVector_REAL | mIhklCalc |
Computed intensities for all reflections. | |
CrystVector_REAL | mIhklCalcVariance |
Variance on computed intensities for all reflections. | |
CrystMatrix_REAL | mSavedPowderReflProfile |
Reflection profiles for ALL reflections during the last powder pattern generation. | |
long | mSavedPowderReflProfileNbPoint |
Number of points used to describe each individual profile. | |
CrystVector_long | mReflectionProfileFirstPixel |
The 1st pixel for each reflection. | |
CrystVector_long | mIntegratedReflMin |
First and last pixel for integrated R-factors around each reflection. | |
CrystVector_long | mIntegratedReflMax |
First and last pixel for integrated R-factors around each reflection. | |
vector< map< long, REAL > > | mIntegratedProfileFactor |
For each reflection, store the integrated value of the normalized profile over all integration intervals. | |
RefinableObjClock | mClockIntegratedProfileFactor |
Last time the integrated values of normalized profiles was calculated. |
|
This should be called by any optimization class at the begining of an optimization. This will also check that everything is ready, eg call the RefinableObj::Prepare() function. This also affects all sub-objects.
Reimplemented from ObjCryst::ScatteringData. |
|
For internal use only. Compute the intensity for all reflections (taking into account corrections, but not the multiplicity) |
|
Calc Lorentz-Polarisation-APerture correction.
For internal use only.
|
|
Calc the powder pattern. As always, recomputation is only done if necessary (ie if a parameter has changed since the last computation) Implements ObjCryst::PowderPatternComponent. |
|
Calc the integrated powder pattern. This should be optimized so that the full powder pattern is not explicitely computed. Implements ObjCryst::PowderPatternComponent. |
|
Calc reflection profiles for ALL reflections (powder diffraction).
For internal use only.
|
|
This should be called by any optimization class at the end of an optimization. This also affects all sub-objects.
Reimplemented from ObjCryst::ScatteringData. |
|
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). Implements ObjCryst::PowderPatternComponent. |
|
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::PowderPatternComponent. |
|
Get the gene group assigned to each parameter. Each parameter (a gene in terms of genetic algorithms) can be assigned to a gene group. Thus when mating two configurations, genes will be exchanged by groups. By default (in the base RefinabeObj class), each parameter is alone in its group. Derived classes can group genes for a better s** life. The number identifying a gene group only has a meaning in a given object. It can also change on subsequent calls, and thus is not unique.
Reimplemented from ObjCryst::RefinableObj. |
|
Get the calculated powder pattern for this component. Note that the pattern is not scaled. Implements ObjCryst::PowderPatternComponent. |
|
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. Implements ObjCryst::PowderPatternComponent. |
|
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. Implements ObjCryst::PowderPatternComponent. |
|
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. Implements ObjCryst::PowderPatternComponent. |
|
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... Implements ObjCryst::PowderPatternComponent. |
|
Set the maximum value for sin(theta)/lambda. All data above still exist but are ignored for all calculations. Implements ObjCryst::PowderPatternComponent. |
|
For internal use only. Set the PowderPattern object which uses this component. This sets all necessary pattern parameters (2theta range, wavelength, radiation type...) accordingly. Implements ObjCryst::PowderPatternComponent. |
|
Set reflection profile parameters. :TODO: assymmetric profiles
|
|
Input From stream.
Reimplemented from ObjCryst::RefinableObj. |
|
Output to stream in well-formed XML.
Reimplemented from ObjCryst::RefinableObj. |
|
For each reflection, store the integrated value of the normalized profile over all integration intervals. the second value is the integrated factor, and the first is the number corresponding to the integration interval. |
|
Calculated corrections for all reflections. Calc F^2 must be multiplied by this factor to yield intensities.
Thus we have :
with If there is prefereed orientation, this also holds the associated correction.
|
|
The 1st pixel for each reflection.
For internal use only.
|
|
Number of points used to describe each individual profile.
For internal use only.
|