47 const std::string filename =
getProperty(
"Filename");
49 std::ofstream outPHX_file(filename.c_str());
52 g_log.
error(
"Failed to open (PHX) file:" + filename);
58 spCalcDetPar->initialize();
59 spCalcDetPar->setPropertyValue(
"InputWorkspace", inputWorkspace->getName());
60 spCalcDetPar->setPropertyValue(
"ReturnLinearRanges",
"0");
72 spCalcDetPar->execute();
74 const auto *pCalcDetPar =
dynamic_cast<FindDetectorsPar *
>(spCalcDetPar.get());
76 throw(std::bad_cast());
78 const std::vector<double> &azimuthal = pCalcDetPar->
getAzimuthal();
79 const std::vector<double> &polar = pCalcDetPar->getPolar();
80 const std::vector<double> &azimuthal_width = pCalcDetPar->getAzimWidth();
81 const std::vector<double> &polar_width = pCalcDetPar->getPolarWidth();
82 const std::vector<double> &secondary_flightpath = pCalcDetPar->getFlightPath();
83 const std::vector<size_t> &det_ID = pCalcDetPar->getDetID();
85 size_t nDetectors = pCalcDetPar->getNDetectors();
88 outPHX_file <<
" " << nDetectors <<
'\n';
90 for (
size_t i = 0; i < nDetectors; ++i) {
92 volatile double NanID = azimuthal[i];
93 if (NanID != azimuthal[i])
97 outPHX_file << std::fixed << std::setprecision(3);
98 outPHX_file <<
" " << secondary_flightpath[i] <<
"\t 0 \t\t" << polar[i] <<
" \t" << azimuthal[i] <<
" \t"
99 << polar_width[i] <<
" \t" << azimuthal_width[i] <<
" \t\t" << det_ID[i] <<
'\n';
virtual std::shared_ptr< Algorithm > createChildAlgorithm(const std::string &name, const double startProgress=-1., const double endProgress=-1., const bool enableLogging=true, const int &version=-1)
Create a Child Algorithm.