59 const std::string
name()
const override {
return "SaveGSS"; }
61 const std::string
summary()
const override {
return "Saves a focused data set into a three column GSAS format."; }
64 int version()
const override {
return (1); }
65 const std::vector<std::string>
seeAlso()
const override {
66 return {
"LoadGSS",
"SaveVulcanGSS",
"SaveGSASInstrumentFile",
"SaveAscii"};
69 const std::string
category()
const override {
return "Diffraction\\DataHandling;DataHandling\\Text"; }
78 bool areAllDetectorsValid()
const;
81 void processUserSpecifiedHeaders();
84 void generateBankData(std::stringstream &outBuf,
size_t specIndex,
const std::string &outputFormat,
85 const std::vector<int> &slog_xye_precisions)
const;
88 void generateBankHeader(std::stringstream &out,
const API::SpectrumInfo &spectrumInfo,
size_t specIndex)
const;
91 void generateGSASBuffer(
size_t numOutFiles,
size_t numOutSpectra);
94 void generateInstrumentHeader(std::stringstream &out,
double l1)
const;
97 void generateOutFileNames(
size_t numberOfOutFiles);
100 void getLogValue(std::stringstream &out,
const API::Run &runInfo,
const std::string &
name,
101 const std::string &failsafeValue =
"UNKNOWN")
const;
104 bool isInstrumentValid()
const;
107 void openFileStream(
const std::string &outFilePath, std::ofstream &outStream);
110 void setOtherProperties(
IAlgorithm *alg,
const std::string &propertyName,
const std::string &propertyValue,
111 int periodNum)
override;
114 std::map<std::string, std::string> validateInputs()
override;
117 void writeBufferToFile(
size_t numOutFiles,
size_t numSpectra);
120 void writeRALFHeader(std::stringstream &out,
int bank,
const HistogramData::Histogram &histo)
const;
123 void writeRALF_ALTdata(std::stringstream &out,
const int bank,
const HistogramData::Histogram &histo)
const;
126 void writeRALF_XYEdata(
const int bank,
const bool MultiplyByBinWidth, std::stringstream &out,
127 const HistogramData::Histogram &histo)
const;
130 void writeSLOGdata(
const size_t ws_index,
const int bank,
const bool MultiplyByBinWidth, std::stringstream &out,
131 const HistogramData::Histogram &histo,
const std::vector<int> &xye_precision)
const;
137 std::vector<std::unique_ptr<std::stringstream>> m_outputBuffer{};
139 std::vector<std::string> m_outFileNames{};
141 bool m_allDetectorsValid{
false};
143 std::unique_ptr<API::Progress> m_progress{
nullptr};
147 bool m_overwrite_std_gsas_header{
false};
151 bool m_overwrite_std_bank_header{
false};