#include "startReflectionReconstruction.h" #include "Function.h" #include "Function2D.h" #include "Function3D.h" #include "Matrix.h" #include "MatlabWriter.h" #include "common/getGeometryInfo.h" #include "common/precalculateChannelList.h" #include "common/dataBlockCreation/getAScanBlockPreprocessed.h" #include "common/dataBlockCreation/removeDataFromArrays.h" #include "reflectionReconstruction/preprocessData/determineOptimalPulse.h" #include "reflectionReconstruction/reconstructionSAFT/reconstructionSAFT.h" #include "src/reflectionReconstruction/preprocessData/preprocessAScanBlockForReflection.h" #include "config/config.h" #include "log/log.h" #include "CudaEnvInit.h" #include #include using namespace Aurora; using namespace Recon; Aurora::Matrix Recon::startReflectionReconstruction( Parser* aParser, int aSAFT_mode, const Aurora::Matrix& aMotorPos, const Aurora::Matrix& aSlList, const Aurora::Matrix& aSnList, const Aurora::Matrix& aRlList, const Aurora::Matrix& aRnList, GeometryInfo& aGeom, TransRecos& aTransRecos, MeasurementInfo& aExpInfo, PreComputes& aPreComputes) { printf("Reflection reconstruction is carried out."); printf("Preperations for reconstructions."); printf(" - reset GPUs"); for (size_t i = 0; i < reflectParams::gpuSelectionList.getDataSize(); i++) { std::string msg; if (!resetGPUDevice((int)reflectParams::gpuSelectionList[i],msg)) { std::cerr<