/** Execute the algorithm. */ void PoldiCreatePeaksFromCell::exec() { // Get all user input regarding the unit cell SpaceGroup_const_sptr spaceGroup = getSpaceGroup(getProperty("SpaceGroup")); PointGroup_sptr pointGroup = PointGroupFactory::Instance().createPointGroupFromSpaceGroup(spaceGroup); UnitCell unitCell = getConstrainedUnitCell(getUnitCellFromProperties(), pointGroup->crystalSystem(), pointGroup->getCoordinateSystem()); g_log.information() << "Constrained unit cell is: " << unitCellToStr(unitCell) << '\n'; CompositeBraggScatterer_sptr scatterers = CompositeBraggScatterer::create( IsotropicAtomBraggScattererParser(getProperty("Atoms"))()); // Create a CrystalStructure-object for use with PoldiPeakCollection CrystalStructure crystalStructure(unitCell, spaceGroup, scatterers); double dMin = getProperty("LatticeSpacingMin"); double dMax = getDMaxValue(unitCell); // Create PoldiPeakCollection using given parameters, set output workspace PoldiPeakCollection_sptr peaks = boost::make_shared<PoldiPeakCollection>(crystalStructure, dMin, dMax); setProperty("OutputWorkspace", peaks->asTableWorkspace()); }