/* * 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.fitting; import org.eclipse.dawnsci.analysis.api.fitting.functions.IFunction; import org.eclipse.january.dataset.Dataset; import org.eclipse.january.dataset.DatasetFactory; import org.eclipse.january.dataset.DoubleDataset; import uk.ac.diamond.scisoft.analysis.fitting.functions.CompositeFunction; import uk.ac.diamond.scisoft.analysis.fitting.functions.Gaussian; import uk.ac.diamond.scisoft.analysis.fitting.functions.Lorentzian; import uk.ac.diamond.scisoft.analysis.fitting.functions.PearsonVII; import uk.ac.diamond.scisoft.analysis.fitting.functions.PseudoVoigt; public class Generic1DDatasetCreator { static final int dataRange = 100; static final double peakPos = 50.0; static final double defaultFWHM = 20.0; static final double defaultArea = 25.0; static final double maxFWHM = 40.0; static final double maxArea = 50.0; static final double delta = 0.51; static final double lambda = 0.1; static final boolean backgroundDominated = true; static final boolean autoStopping = true; static final double threshold = 0.10; static final int numPeaks = -1; static final int smoothing = 5; static final double accuracy = 0.0001; static final DoubleDataset xAxis = (DoubleDataset) DatasetFactory.createRange(0, dataRange, 1, Dataset.FLOAT64); private static DoubleDataset createDataset(IFunction f) { CompositeFunction comp = new CompositeFunction(); comp.addFunction(f); f.setParameterValues(peakPos, defaultFWHM, defaultArea); return comp.calculateValues(xAxis); } public static DoubleDataset createGaussianDataset() { return createDataset(new Gaussian(0, dataRange, maxFWHM, maxArea)); } public static DoubleDataset createLorentzianDataset() { return createDataset(new Lorentzian(0, dataRange, maxFWHM, maxArea)); } public static DoubleDataset createPearsonVII() { return createDataset(new PearsonVII(0, dataRange, maxFWHM, maxArea)); } public static DoubleDataset createPseudoVoigt() { return createDataset(new PseudoVoigt(0, dataRange, maxFWHM, maxArea)); } }