32 addProperty<SpecularBeamItem>(
P_BEAM);
36 axisItem->setUpperBound(1.0);
37 axisItem->setBinCount(500);
39 auto axis = addProperty<BasicAxisItem>(
P_Z_AXIS);
40 axis->setLowerBound(-100.0);
41 axis->setUpperBound(100.0);
44 ->setToolTip(
"Number of points in scan across sample bulk");
46 ->setToolTip(
"Starting value below sample horizont in nm");
52 return item<SpecularBeamItem>(
P_BEAM);
57 throw std::runtime_error(
"DepthProbeInstrumentItem::createInstrument()");
62 return std::vector<int>();
67 throw std::runtime_error(
"DepthProbeInstrumentItem::updateToRealData()");
77 std::unique_ptr<DepthProbeSimulation> simulation = std::make_unique<DepthProbeSimulation>();
83 simulation->setBeamParameters(
beamItem()->wavelength(),
static_cast<int>(axis->size()),
84 axis->lowerBound(), axis->upperBound());
87 auto depthAxis = depthAxisItem->
createAxis(1.0);
88 simulation->setZSpan(depthAxis->size(), depthAxis->lowerBound(), depthAxis->upperBound());
Defines various axis items.
Defines BeamItem hierarchy.
Defines class BeamWavelengthItem.
Defines DepthProbeInstrumentItem class.
Defines class DepthProbeSimulation.
Defines interface UnitConverterSimple and its subclasses.
Declares the class SpecularBeamInclinationItem.
Defines class TransformToDomain.
Defines some unit conversion factors and other constants in namespace Units.
static const QString P_NBINS
static const QString P_MAX_DEG
static const QString P_TITLE
void setLowerBound(double value)
virtual std::unique_ptr< IAxis > createAxis(double scale) const
static const QString P_MIN_DEG
static const QString P_WAVELENGTH
static const QString P_INCLINATION_ANGLE
std::unique_ptr< Instrument > createInstrument() const override
static const QString P_BEAM
DepthProbeInstrumentItem()
std::unique_ptr< IUnitConverter > createUnitConverter() const
SpecularBeamItem * beamItem() const override
virtual QString defaultName() const override
The default user visible name when creating an instrument.
std::unique_ptr< DepthProbeSimulation > createSimulation() const
static const QString P_Z_AXIS
void updateToRealData(const RealDataItem *item) override
std::vector< int > shape() const override
The RealDataItem class represents intensity data imported from file and intended for fitting.
void setItemName(const QString &name)
Set item name, add property if necessary.
SessionItem * getItem(const QString &tag="", int row=0) const
Returns item in given row of given tag.
BasicAxisItem * currentInclinationAxisItem()
void setBeamDistribution(const std::string ¶meter_name, const BeamDistributionItem &item, ISimulation &simulation)
static constexpr double deg