Skip to content

Commit 55daf08

Browse files
Merge pull request #38944 from peterfpeterson/nxclass_int64
Change integer type of Mantid:Nexus::NXInfo - ornl-next
2 parents 447801a + 9a19ed1 commit 55daf08

File tree

16 files changed

+101
-99
lines changed

16 files changed

+101
-99
lines changed

Framework/DataHandling/inc/MantidDataHandling/DataBlockComposite.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ void DLLExport populateDataBlockCompositeWithContainer(DataBlockComposite &dataB
9898
void operator()(Mantid::DataHandling::DataBlockComposite &dataBlockComposite, int numberOfPeriods,
9999
size_t numberOfChannels, specnum_t previousValue, specnum_t startValue) {
100100
auto numberOfSpectra = previousValue - startValue + 1;
101-
DataBlock dataBlock(numberOfPeriods, numberOfSpectra, numberOfChannels);
101+
DataBlock dataBlock(static_cast<int>(numberOfPeriods), numberOfSpectra, numberOfChannels);
102102
dataBlock.setMinSpectrumID(startValue);
103103
dataBlock.setMaxSpectrumID(previousValue);
104104
dataBlockComposite.addDataBlock(dataBlock);

Framework/DataHandling/inc/MantidDataHandling/LoadHelper.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ void loadEmptyInstrument(const API::MatrixWorkspace_sptr &ws, const std::string
4040
const std::string &instrumentPath = "");
4141

4242
void fillStaticWorkspace(const API::MatrixWorkspace_sptr &, const Mantid::NeXus::NXInt &,
43-
const std::vector<double> &xAxis, int initialSpectrum = 0, bool pointData = false,
43+
const std::vector<double> &xAxis, int64_t initialSpectrum = 0, bool pointData = false,
4444
const std::vector<int> &detectorIDs = std::vector<int>(),
4545
const std::set<int> &acceptedID = std::set<int>(),
4646
const std::tuple<short, short, short> &axisOrder = std::tuple<short, short, short>(0, 1, 2));

Framework/DataHandling/inc/MantidDataHandling/LoadILLSANS.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,8 @@ class MANTID_DATAHANDLING_DLL LoadILLSANS : public API::IFileLoader<Kernel::Nexu
6464
void initWorkSpaceD33(NeXus::NXEntry &, const std::string &);
6565
void initWorkSpaceD16(NeXus::NXEntry &, const std::string &);
6666
void createEmptyWorkspace(const size_t, const size_t, const MultichannelType type = MultichannelType::TOF);
67-
void getDataDimensions(const NeXus::NXInt &data, int &numberOfChannels, int &numberOfTubes,
68-
int &numberOfPixelsPerTube);
67+
void getDataDimensions(const NeXus::NXInt &data, size_t &numberOfChannels, size_t &numberOfTubes,
68+
size_t &numberOfPixelsPerTube);
6969
size_t loadDataFromMonitors(NeXus::NXEntry &firstEntry, size_t firstIndex = 0,
7070
const MultichannelType type = MultichannelType::TOF);
7171
size_t loadDataFromD16ScanMonitors(const NeXus::NXEntry &firstEntry, size_t firstIndex,

Framework/DataHandling/inc/MantidDataHandling/LoadNexusProcessed.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ class MANTID_DATAHANDLING_DLL LoadNexusProcessed : public API::NexusFileLoader {
127127
const double &progressStart, const double &progressRange);
128128
API::MatrixWorkspace_sptr loadNonEventEntry(Mantid::NeXus::NXData &wksp_cls, Mantid::NeXus::NXDouble &xbins,
129129
const double &progressStart, const double &progressRange,
130-
const Mantid::NeXus::NXEntry &mtd_entry, const int xlength,
130+
const Mantid::NeXus::NXEntry &mtd_entry, const int64_t xlength,
131131
std::string &workspaceType);
132132

133133
/// Read the data from the sample group
@@ -154,13 +154,13 @@ class MANTID_DATAHANDLING_DLL LoadNexusProcessed : public API::NexusFileLoader {
154154
/// bins have already been cached
155155
void loadBlock(Mantid::NeXus::NXDataSetTyped<double> &data, Mantid::NeXus::NXDataSetTyped<double> &errors,
156156
Mantid::NeXus::NXDataSetTyped<double> &farea, bool hasFArea, Mantid::NeXus::NXDouble &xErrors,
157-
bool hasXErrors, int blocksize, int nchannels, int &hist, int &wsIndex,
157+
bool hasXErrors, int64_t blocksize, int64_t nchannels, int &hist, int &wsIndex,
158158
const API::MatrixWorkspace_sptr &local_workspace);
159159
/// Load a block of data into the workspace
160160
void loadBlock(Mantid::NeXus::NXDataSetTyped<double> &data, Mantid::NeXus::NXDataSetTyped<double> &errors,
161161
Mantid::NeXus::NXDataSetTyped<double> &farea, bool hasFArea, Mantid::NeXus::NXDouble &xErrors,
162-
bool hasXErrors, Mantid::NeXus::NXDouble &xbins, int blocksize, int nchannels, int &hist, int &wsIndex,
163-
const API::MatrixWorkspace_sptr &local_workspace);
162+
bool hasXErrors, Mantid::NeXus::NXDouble &xbins, int64_t blocksize, int64_t nchannels, int &hist,
163+
int &wsIndex, const API::MatrixWorkspace_sptr &local_workspace);
164164

165165
/// Load the data from a non-spectra axis (Numeric/Text) into the workspace
166166
void loadNonSpectraAxis(const API::MatrixWorkspace_sptr &local_workspace, const Mantid::NeXus::NXData &data);

Framework/DataHandling/src/DataBlock.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ DataBlock::DataBlock()
1919
m_minSpectraID(std::numeric_limits<specnum_t>::max()), m_maxSpectraID(0) {}
2020

2121
DataBlock::DataBlock(const Mantid::NeXus::NXInt &data)
22-
: m_numberOfPeriods(data.dim0()), m_numberOfSpectra(data.dim1()), m_numberOfChannels(data.dim2()),
22+
: m_numberOfPeriods(static_cast<int>(data.dim0())), m_numberOfSpectra(data.dim1()), m_numberOfChannels(data.dim2()),
2323
m_minSpectraID(std::numeric_limits<specnum_t>::max()), m_maxSpectraID(0) {}
2424

2525
DataBlock::DataBlock(int numberOfPeriods, size_t numberOfSpectra, size_t numberOfChannels)

Framework/DataHandling/src/LoadHelper.cpp

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -408,7 +408,7 @@ void LoadHelper::loadEmptyInstrument(const API::MatrixWorkspace_sptr &ws, const
408408
* (scans), defaults to 0,1,2 meaning default order of tube-pixel-channel
409409
*/
410410
void LoadHelper::fillStaticWorkspace(const API::MatrixWorkspace_sptr &ws, const Mantid::NeXus::NXInt &data,
411-
const std::vector<double> &xAxis, int initialSpectrum, bool pointData,
411+
const std::vector<double> &xAxis, int64_t initialSpectrum, bool pointData,
412412
const std::vector<int> &detectorIDs, const std::set<int> &acceptedDetectorIDs,
413413
const std::tuple<short, short, short> &axisOrder) {
414414

@@ -432,9 +432,10 @@ void LoadHelper::fillStaticWorkspace(const API::MatrixWorkspace_sptr &ws, const
432432
int nSkipped = 0;
433433

434434
#pragma omp parallel for if (!excludeDetectorIDs && Kernel::threadSafe(*ws))
435-
for (int tube_no = 0; tube_no < nTubes; ++tube_no) {
436-
for (int pixel_no = 0; pixel_no < nPixels; ++pixel_no) {
437-
auto currentSpectrum = initialSpectrum + tube_no * nPixels + pixel_no;
435+
for (specnum_t tube_no = 0; tube_no < static_cast<specnum_t>(nTubes); ++tube_no) {
436+
for (specnum_t pixel_no = 0; pixel_no < nPixels; ++pixel_no) {
437+
specnum_t currentSpectrum =
438+
static_cast<specnum_t>(initialSpectrum) + tube_no * static_cast<specnum_t>(nPixels) + pixel_no;
438439
if (excludeDetectorIDs != 0 && std::find(acceptedDetectorIDs.cbegin(), acceptedDetectorIDs.cend(),
439440
currentSpectrum) == acceptedDetectorIDs.end()) {
440441
nSkipped++;
@@ -456,7 +457,7 @@ void LoadHelper::fillStaticWorkspace(const API::MatrixWorkspace_sptr &ws, const
456457
} else {
457458
ws->setHistogram(currentSpectrum, binEdges, counts);
458459
}
459-
const auto detectorID = customDetectorIDs ? detectorIDs[currentSpectrum] : currentSpectrum;
460+
const specnum_t detectorID = customDetectorIDs ? detectorIDs[currentSpectrum] : currentSpectrum;
460461
ws->getSpectrum(currentSpectrum).setSpectrumNo(detectorID);
461462
}
462463
}
@@ -497,23 +498,24 @@ void LoadHelper::fillMovingWorkspace(const API::MatrixWorkspace_sptr &ws, const
497498
const auto useCustomSpectraMap = customDetectorIDs.size() != 0;
498499
const auto useAcceptedDetectorIDs = acceptedDetectorIDs.size() != 0;
499500

500-
std::array dims = {data.dim0(), data.dim1(), data.dim2()};
501+
std::array<int64_t, 3U> dims = {data.dim0(), data.dim1(), data.dim2()};
501502
const auto nTubes = dims[std::get<0>(axisOrder)];
502503
const auto nPixels = dims[std::get<1>(axisOrder)];
503504
const auto nScans = dims[std::get<2>(axisOrder)];
504505

505506
int nSkipped = 0;
506507
#pragma omp parallel for if (Kernel::threadSafe(*ws))
507-
for (int tube_no = 0; tube_no < nTubes; ++tube_no) {
508-
for (int pixel_no = 0; pixel_no < nPixels; ++pixel_no) {
509-
auto currentDetector = initialSpectrum + tube_no * nPixels + pixel_no;
508+
for (specnum_t tube_no = 0; tube_no < static_cast<specnum_t>(nTubes); ++tube_no) {
509+
for (specnum_t pixel_no = 0; pixel_no < nPixels; ++pixel_no) {
510+
specnum_t currentDetector =
511+
static_cast<specnum_t>(initialSpectrum) + tube_no * static_cast<specnum_t>(nPixels) + pixel_no;
510512
if (useAcceptedDetectorIDs && std::find(acceptedDetectorIDs.cbegin(), acceptedDetectorIDs.cend(),
511513
currentDetector) == acceptedDetectorIDs.end()) {
512514
nSkipped++;
513515
continue;
514516
}
515517
currentDetector -= nSkipped;
516-
int currentSpectrum;
518+
int64_t currentSpectrum;
517519
if (useCustomSpectraMap)
518520
currentSpectrum = customDetectorIDs[currentDetector - initialSpectrum];
519521
else

Framework/DataHandling/src/LoadILLSANS.cpp

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -276,16 +276,16 @@ LoadILLSANS::DetectorPosition LoadILLSANS::getDetectorPositionD33(const NeXus::N
276276
* @param numberOfTubes
277277
* @param numberOfPixelsPerTube
278278
*/
279-
void LoadILLSANS::getDataDimensions(const NeXus::NXInt &data, int &numberOfChannels, int &numberOfTubes,
280-
int &numberOfPixelsPerTube) {
279+
void LoadILLSANS::getDataDimensions(const NeXus::NXInt &data, size_t &numberOfChannels, size_t &numberOfTubes,
280+
size_t &numberOfPixelsPerTube) {
281281
if (m_isD16Omega) {
282-
numberOfChannels = data.dim0();
283-
numberOfTubes = data.dim1();
284-
numberOfPixelsPerTube = data.dim2();
282+
numberOfChannels = static_cast<size_t>(data.dim0());
283+
numberOfTubes = static_cast<size_t>(data.dim1());
284+
numberOfPixelsPerTube = static_cast<size_t>(data.dim2());
285285
} else {
286-
numberOfPixelsPerTube = data.dim1();
287-
numberOfChannels = data.dim2();
288-
numberOfTubes = data.dim0();
286+
numberOfPixelsPerTube = static_cast<size_t>(data.dim1());
287+
numberOfChannels = static_cast<size_t>(data.dim2());
288+
numberOfTubes = static_cast<size_t>(data.dim0());
289289
}
290290
g_log.debug() << "Dimensions found:\n- Number of tubes: " << numberOfTubes
291291
<< "\n- Number of pixels per tube: " << numberOfPixelsPerTube
@@ -360,7 +360,7 @@ void LoadILLSANS::initWorkSpace(NeXus::NXEntry &firstEntry, const std::string &i
360360
}
361361
}
362362

363-
int numberOfTubes, numberOfPixelsPerTubes, numberOfChannels;
363+
size_t numberOfTubes, numberOfPixelsPerTubes, numberOfChannels;
364364
getDataDimensions(data, numberOfChannels, numberOfTubes, numberOfPixelsPerTubes);
365365

366366
// For these monochromatic instruments, one bin is "TOF" mode, and more than that is a scan
@@ -408,7 +408,7 @@ void LoadILLSANS::initWorkSpaceD11B(NeXus::NXEntry &firstEntry, const std::strin
408408
dataLeft.dim0() * dataLeft.dim1()) +
409409
m_numberOfMonitors;
410410

411-
int numberOfChannels, numberOfPixelsPerTubeCenter, numberOfTubesCenter;
411+
size_t numberOfChannels, numberOfPixelsPerTubeCenter, numberOfTubesCenter;
412412
getDataDimensions(dataCenter, numberOfChannels, numberOfTubesCenter, numberOfPixelsPerTubeCenter);
413413

414414
MultichannelType type = (numberOfChannels != 1) ? MultichannelType::KINETIC : MultichannelType::TOF;
@@ -418,8 +418,8 @@ void LoadILLSANS::initWorkSpaceD11B(NeXus::NXEntry &firstEntry, const std::strin
418418
// we need to adjust the default binning after loadmetadata
419419
if (numberOfChannels != 1) {
420420
std::vector<double> frames(numberOfChannels, 0);
421-
for (int i = 0; i < numberOfChannels; ++i) {
422-
frames[i] = i;
421+
for (size_t i = 0; i < numberOfChannels; ++i) {
422+
frames[i] = static_cast<double>(i);
423423
}
424424
m_defaultBinning.resize(numberOfChannels);
425425
std::copy(frames.cbegin(), frames.cend(), m_defaultBinning.begin());
@@ -464,7 +464,7 @@ void LoadILLSANS::initWorkSpaceD22B(NeXus::NXEntry &firstEntry, const std::strin
464464
static_cast<size_t>(data2_data.dim0() * data2_data.dim1() + data1_data.dim0() * data1_data.dim1()) +
465465
m_numberOfMonitors;
466466

467-
int numberOfChannels, numberOfPixelsPerTubeCenter, numberOfTubesCenter;
467+
size_t numberOfChannels, numberOfPixelsPerTubeCenter, numberOfTubesCenter;
468468
getDataDimensions(data1_data, numberOfChannels, numberOfTubesCenter, numberOfPixelsPerTubeCenter);
469469

470470
MultichannelType type = (numberOfChannels != 1) ? MultichannelType::KINETIC : MultichannelType::TOF;
@@ -475,8 +475,8 @@ void LoadILLSANS::initWorkSpaceD22B(NeXus::NXEntry &firstEntry, const std::strin
475475
// we need to adjust the default binning after loadmetadata
476476
if (numberOfChannels != 1) {
477477
std::vector<double> frames(numberOfChannels, 0);
478-
for (int i = 0; i < numberOfChannels; ++i) {
479-
frames[i] = i;
478+
for (size_t i = 0; i < numberOfChannels; ++i) {
479+
frames[i] = static_cast<double>(i);
480480
}
481481
m_defaultBinning.resize(numberOfChannels);
482482
std::copy(frames.cbegin(), frames.cend(), m_defaultBinning.begin());
@@ -723,7 +723,7 @@ size_t LoadILLSANS::loadDataFromD16ScanMonitors(const NeXus::NXEntry &firstEntry
723723
size_t LoadILLSANS::loadDataFromTubes(NeXus::NXInt const &data, const std::vector<double> &timeBinning,
724724
size_t firstIndex, const MultichannelType type) {
725725

726-
int numberOfTubes, numberOfChannels, numberOfPixelsPerTube;
726+
size_t numberOfTubes, numberOfChannels, numberOfPixelsPerTube;
727727
getDataDimensions(data, numberOfChannels, numberOfTubes, numberOfPixelsPerTube);
728728

729729
bool pointData = true;
@@ -1067,10 +1067,10 @@ std::vector<double> LoadILLSANS::getOmegaBinning(const NXEntry &entry, const std
10671067
auto scannedValues = LoadHelper::getDoubleDataset(entry, path);
10681068
scannedValues.load();
10691069

1070-
const int nBins = scannedValues.dim1();
1070+
const int64_t nBins = scannedValues.dim1();
10711071
std::vector<double> binning(nBins, 0);
10721072

1073-
for (int i = 0; i < nBins; ++i) {
1073+
for (int64_t i = 0; i < nBins; ++i) {
10741074
// for D16, we are only interested in the first line, which contains the omega values
10751075
binning[i] = scannedValues(0, i);
10761076
}
@@ -1087,12 +1087,12 @@ std::vector<double> LoadILLSANS::getOmegaBinning(const NXEntry &entry, const std
10871087
*/
10881088
std::vector<double> LoadILLSANS::getVariableTimeBinning(const NXEntry &entry, const std::string &path, const NXInt &sum,
10891089
const NXFloat &times) const {
1090-
const int nBins = sum.dim0();
1090+
const int64_t nBins = sum.dim0();
10911091
std::vector<double> binCenters;
10921092
binCenters.reserve(nBins);
10931093
NXFloat distance = entry.openNXFloat(path);
10941094
distance.load();
1095-
for (int bin = 0; bin < nBins; ++bin) {
1095+
for (int64_t bin = 0; bin < nBins; ++bin) {
10961096
// sum is in nanoseconds, times is in microseconds
10971097
const double tof = sum[bin] * 1E-9 - times[bin] * 1E-6 / 2.;
10981098
// velocity in m/s

Framework/DataHandling/src/LoadILLTOF2.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -389,7 +389,7 @@ void LoadILLTOF2::fillStaticWorkspace(const NeXus::NXEntry &entry, const std::ve
389389
auto xAxis = prepareAxis(entry, convertToTOF);
390390

391391
// The binning for monitors is considered the same as for detectors
392-
int spec = 0;
392+
int64_t spec = 0;
393393
std::vector<int> detectorIDs = m_localWorkspace->getInstrument()->getDetectorIDs(false);
394394

395395
auto data = LoadHelper::getIntDataset(entry, "data");

Framework/DataHandling/src/LoadISISNexus2.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -975,7 +975,8 @@ bool LoadISISNexus2::findSpectraDetRangeInFile(const NXEntry &entry, std::vector
975975
NXInt data = nxData.openIntData();
976976

977977
auto monitorSpectra = m_monBlockInfo.getAllSpectrumNumbers();
978-
populateDataBlockCompositeWithContainer(m_detBlockInfo, spectrum_index, ndets, data.dim0() /*Number of Periods*/,
978+
populateDataBlockCompositeWithContainer(m_detBlockInfo, spectrum_index, ndets,
979+
static_cast<int>(data.dim0()) /*Number of Periods*/,
979980
data.dim2() /*Number of channels*/, monitorSpectra);
980981

981982
// We should handle legacy files which include the spectrum number of the

0 commit comments

Comments
 (0)