/*
* Copyright (c) 2012 Diamond Light Source Ltd.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*/
package uk.ac.diamond.scisoft.analysis.io;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
import org.eclipse.dawnsci.analysis.api.io.IDataHolder;
import org.eclipse.dawnsci.analysis.dataset.metadata.ARPESMetadataImpl;
import org.eclipse.january.dataset.ILazyDataset;
import org.eclipse.january.dataset.Slice;
import org.eclipse.january.metadata.ARPESMetadata;
import org.junit.Test;
public class NexusARPESMetaTest {
private static final String ENTRY1_ANALYSER_DATA = "/entry1/instrument/analyser/data";
static String testScratchDirectoryName = null;
final static String testFileFolder = "testfiles/gda/analysis/io/NexusARPESTest/";
@Test
public void testARPESLoader() throws Exception {
IDataHolder dh = null;
try {
dh = LoaderFactory.getData(testFileFolder + "arpes_example.nxs");
} catch (Exception e) {
fail("Could not load file");
return;
}
if (!dh.contains(ENTRY1_ANALYSER_DATA)) {
fail("Required dataset " + ENTRY1_ANALYSER_DATA + " is not available");
}
ILazyDataset dataset = ARPESMetadataImpl.getFromDataHolder(dh);
ARPESMetadata arpesMetadata = null;
try {
arpesMetadata = dataset.getMetadata(ARPESMetadata.class).get(0);
} catch (Exception e) {
fail("Expected ARPES metadata not found");
return;
}
assertEquals(10.0, arpesMetadata.getPassEnergy(), 0.1);
assertEquals(6.1, arpesMetadata.getTemperature(), 0.1);
assertEquals(0.0, arpesMetadata.getAngleAxisGlobalOffset(), 0.1);
assertEquals(0.0, arpesMetadata.getEnergyAxisGlobalOffset(), 0.1);
assertEquals(65.8, arpesMetadata.getPhotonEnergy(), 0.1);
assertEquals(0.0, arpesMetadata.getWorkFunction(), 0.1);
assertEquals(-0.953, (double) arpesMetadata.getAnalyserAngles().getSlice((Slice[]) null).mean(null), 0.001);
assertEquals(0.0, (double) arpesMetadata.getAzimuthalAngles().getSlice((Slice[]) null).mean(null), 0.001);
assertEquals(61.134, (double) arpesMetadata.getKineticEnergies().getSlice((Slice[]) null).mean(null), 0.001);
assertEquals(0.000192, (double) arpesMetadata.getPolarAngles().getSlice((Slice[]) null).mean(null), 0.00001);
assertEquals(0.0, (double) arpesMetadata.getTiltAngles().getSlice((Slice[]) null).mean(null), 0.001);
// Commented items are not available in this file.
// assertEquals(-0.953, (double)arpesMetadata.getBindingEnergies().getSlice((Slice[])null).mean(null), 0.001);
// assertEquals(-0.953, (double)arpesMetadata.getEnergyAxisOffset().getSlice((Slice[])null).mean(null), 0.001);
// assertEquals(-0.953, (double)arpesMetadata.getPhotoelectronMomentum().getSlice((Slice[])null).mean(null), 0.001);
}
}