本文整理汇总了C++中NXEntry::containsDataSet方法的典型用法代码示例。如果您正苦于以下问题:C++ NXEntry::containsDataSet方法的具体用法?C++ NXEntry::containsDataSet怎么用?C++ NXEntry::containsDataSet使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类NXEntry
的用法示例。
在下文中一共展示了NXEntry::containsDataSet方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: root
/** Log the run details from the file
* @param localWorkspace :: The workspace details to use
*/
void
LoadMuonNexus1::loadRunDetails(DataObjects::Workspace2D_sptr localWorkspace) {
API::Run &runDetails = localWorkspace->mutableRun();
runDetails.addProperty("run_title", localWorkspace->getTitle(), true);
int numSpectra = static_cast<int>(localWorkspace->getNumberHistograms());
runDetails.addProperty("nspectra", numSpectra);
NXRoot root(m_filename);
try {
std::string start_time = root.getString("run/start_time");
runDetails.addProperty("run_start", start_time);
} catch (std::runtime_error &) {
g_log.warning("run/start_time is not available, run_start log not added.");
}
try {
std::string stop_time = root.getString("run/stop_time");
runDetails.addProperty("run_end", stop_time);
} catch (std::runtime_error &) {
g_log.warning("run/stop_time is not available, run_end log not added.");
}
try {
std::string dur = root.getString("run/duration");
runDetails.addProperty("dur", dur);
runDetails.addProperty("durunits", 1); // 1 means second here
runDetails.addProperty("dur_secs", dur);
} catch (std::runtime_error &) {
g_log.warning("run/duration is not available, dur log not added.");
}
// Get sample parameters
NXEntry runSample = root.openEntry("run/sample");
if (runSample.containsDataSet("temperature")) {
float temperature = runSample.getFloat("temperature");
runDetails.addProperty("sample_temp", static_cast<double>(temperature));
}
if (runSample.containsDataSet("magnetic_field")) {
float magn_field = runSample.getFloat("magnetic_field");
runDetails.addProperty("sample_magn_field",
static_cast<double>(magn_field));
}
}
示例2:
/** Load logs from Nexus file. Logs are expected to be in
* /run/sample group of the file.
* @param ws :: The workspace to load the logs to.
* @param entry :: The Nexus entry
* @param period :: The period of this workspace
*/
void LoadMuonNexus2::loadLogs(API::MatrixWorkspace_sptr ws, NXEntry &entry,
int period) {
// Avoid compiler warning
(void)period;
std::string start_time = entry.getString("start_time");
std::string sampleName = entry.getString("sample/name");
NXMainClass runlogs = entry.openNXClass<NXMainClass>("sample");
ws->mutableSample().setName(sampleName);
for (std::vector<NXClassInfo>::const_iterator it = runlogs.groups().begin();
it != runlogs.groups().end(); ++it) {
NXLog nxLog = runlogs.openNXLog(it->nxname);
Kernel::Property *logv = nxLog.createTimeSeries(start_time);
if (!logv)
continue;
ws->mutableRun().addLogData(logv);
}
ws->setTitle(entry.getString("title"));
if (entry.containsDataSet("notes")) {
ws->setComment(entry.getString("notes"));
}
std::string run_num = std::to_string(entry.getInt("run_number"));
// The sample is left to delete the property
ws->mutableRun().addLogData(
new PropertyWithValue<std::string>("run_number", run_num));
ws->populateInstrumentParameters();
}