add more HDF4 header info.
This commit is contained in:
@@ -2307,6 +2307,48 @@ Bool_t PRunDataHandler::ReadNexusFile()
|
|||||||
if (nxs_file->HasDataset("/run/sample/name"))
|
if (nxs_file->HasDataset("/run/sample/name"))
|
||||||
sstr = nxs_file->GetDataset<std::string>("/run/sample/name").GetData()[0];
|
sstr = nxs_file->GetDataset<std::string>("/run/sample/name").GetData()[0];
|
||||||
runData.SetSample(sstr);
|
runData.SetSample(sstr);
|
||||||
|
|
||||||
|
// get/set orientation
|
||||||
|
runData.SetOrientation("??");
|
||||||
|
|
||||||
|
// get/set time resolution (ns)
|
||||||
|
dval = PMUSR_UNDEFINED;
|
||||||
|
sstr = "n/a";
|
||||||
|
factor = 1.0;
|
||||||
|
if (nxs_file->HasDataset("/run/histogram_data_1/resolution")) {
|
||||||
|
auto res_ds = nxs_file->GetDataset<int>("/run/histogram_data_1/resolution");
|
||||||
|
dval = res_ds.GetData()[0];
|
||||||
|
if (res_ds.HasAttribute("units"))
|
||||||
|
sstr = std::any_cast<std::string>(res_ds.GetAttribute("units"));
|
||||||
|
if ((sstr == "picoseconds") || (sstr == "pico.seconds"))
|
||||||
|
factor = 1.0e-3; // ps -> ns
|
||||||
|
}
|
||||||
|
runData.SetTimeResolution(dval*factor);
|
||||||
|
|
||||||
|
// get/set start/stop time
|
||||||
|
sstr = "n/a";
|
||||||
|
TString date{"n/a"}, time{"n/a"};
|
||||||
|
if (nxs_file->HasDataset("/run/start_time"))
|
||||||
|
sstr = nxs_file->GetDataset<std::string>("/run/start_time").GetData()[0];
|
||||||
|
str = sstr;
|
||||||
|
SplitTimeDate(str, time, date, ok);
|
||||||
|
if (ok) {
|
||||||
|
runData.SetStartTime(time);
|
||||||
|
runData.SetStartDate(date);
|
||||||
|
}
|
||||||
|
|
||||||
|
sstr = "n/a";
|
||||||
|
date = "n/a";
|
||||||
|
time = "n/a";
|
||||||
|
if (nxs_file->HasDataset("/run/stop_time"))
|
||||||
|
sstr = nxs_file->GetDataset<std::string>("/run/stop_time").GetData()[0];
|
||||||
|
str = sstr;
|
||||||
|
SplitTimeDate(str, time, date, ok);
|
||||||
|
if (ok) {
|
||||||
|
runData.SetStopTime(time);
|
||||||
|
runData.SetStopDate(date);
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
} else { // HDF5
|
} else { // HDF5
|
||||||
std::unique_ptr<nxH5::PNeXus> nxs_file = std::make_unique<nxH5::PNeXus>(fRunPathName.Data());
|
std::unique_ptr<nxH5::PNeXus> nxs_file = std::make_unique<nxH5::PNeXus>(fRunPathName.Data());
|
||||||
|
|||||||
Reference in New Issue
Block a user