47 const std::string outputType =
getProperty(
"OutputType");
57 if (outputType ==
"Peak") {
58 out = std::make_shared<PeaksWorkspace>();
61 if (instMDWS !=
nullptr) {
62 if (instMDWS->getNumExperimentInfo() > 0) {
63 out->setInstrument(instMDWS->getExperimentInfo(0)->getInstrument());
64 out->mutableRun().setGoniometer(instMDWS->getExperimentInfo(0)->run().getGoniometer().getR(),
false);
66 throw std::invalid_argument(
"InstrumentWorkspace has no ExperimentInfo");
69 ei = std::dynamic_pointer_cast<ExperimentInfo>(instWS);
71 out->setInstrument(ei->getInstrument());
72 out->mutableRun().setGoniometer(ei->run().getGoniometer().getR(),
false);
78 for (
int i = 0; i < NumberOfPeaks; i++) {
79 out->addPeak(
Peak(out->getInstrument(), out->getInstrument()->getDetectorIDs(
true)[0], 1.0));
83 }
else if (outputType ==
"LeanElasticPeak") {
85 out = std::make_shared<LeanElasticPeaksWorkspace>();
89 if (instMDWS->getNumExperimentInfo() > 0) {
90 ei = std::dynamic_pointer_cast<ExperimentInfo>(instMDWS->getExperimentInfo(0));
93 ei = std::dynamic_pointer_cast<ExperimentInfo>(instWS);
97 out->copyExperimentInfoFrom(ei.get());
100 for (
int i = 0; i < NumberOfPeaks; i++) {
105 throw std::invalid_argument(
"OutputType MUST be either Peak or LeanElasticPeak!");