72 const std::string
name()
const override {
return "LeBailFit"; }
74 const std::string
summary()
const override {
return "Do LeBail Fit to a spectrum of powder diffraction data. "; }
77 int version()
const override {
return 1; }
78 const std::vector<std::string>
seeAlso()
const override {
return {
"CreateLeBailFitInput",
"FitPowderDiffPeaks"}; }
81 const std::string
category()
const override {
return "Diffraction\\Fitting"; }
90 void processInputProperties();
94 void execPatternCalculation();
97 void execRefineBackground();
101 void createLeBailFunction();
107 void processInputBackground();
112 std::vector<double> &allpeaksvalues);
116 void parseInstrumentParametersTable();
119 void parseBraggPeaksParametersTable();
123 std::vector<std::string> &bkgdparnames, std::vector<double> &bkgdorderparams);
126 void exportBraggPeakParameterToTable();
129 void exportInstrumentParameterToTable(
const std::map<std::string, Parameter> ¶mmap);
132 void createOutputDataWorkspace();
136 void execRandomWalkMinimizer(
size_t maxcycles, std::map<std::string, Parameter> ¶mmap);
139 void doMarkovChain(
const std::map<std::string, Parameter> ¶mmap,
const Mantid::HistogramData::HistogramX &vecX,
140 const Mantid::HistogramData::HistogramY &vecPurePeak,
141 const Mantid::HistogramData::HistogramY &vecBkgd,
size_t maxcycles,
const Kernel::Rfactor &startR,
145 void setupBuiltInRandomWalkStrategy();
150 void addParameterToMCMinimize(std::vector<std::string> &parnamesforMC,
const std::string &parname);
153 bool calculateDiffractionPattern(
const Mantid::HistogramData::HistogramX &vecX,
154 const Mantid::HistogramData::HistogramY &vecY,
bool inputraw,
bool outputwithbkgd,
155 const Mantid::HistogramData::HistogramY &vecBkgd, std::vector<double> &values,
162 bool proposeNewValues(
const std::vector<std::string> &mcgroup,
Kernel::Rfactor r,
163 std::map<std::string, Parameter> &curparammap, std::map<std::string, Parameter> &newparammap,
167 double limitProposedValueInBound(
const Parameter ¶m,
double newvalue,
double direction,
int choice);
170 void bookKeepBestMCResult(
const std::map<std::string, Parameter> ¶mmap, std::span<double const> bkgddata,
174 void applyParameterValues(
const std::map<std::string, Parameter> &srcparammap,
175 std::map<std::string, Parameter> &tgtparammap);
178 void storeBackgroundParameters(std::vector<double> &bkgdparamvec);
182 void recoverBackgroundParameters(
const std::vector<double> &bkgdparamvec);
185 void proposeNewBackgroundValues();
214 std::map<std::string, double> convertToDoubleMap(std::map<std::string, Parameter> &inmap);
271 enum { RANDOMWALK, DRUNKENWALK } m_walkStyle;