Skip to content
Snippets Groups Projects
Commit e47a0622 authored by Pospelov, Gennady's avatar Pospelov, Gennady
Browse files

Unnecessary helper removed from BeamAngleItems.

parent 85a362b8
No related branches found
No related tags found
No related merge requests found
...@@ -44,11 +44,10 @@ double BeamInclinationAngleItem::inclinationAngle() const ...@@ -44,11 +44,10 @@ double BeamInclinationAngleItem::inclinationAngle() const
std::unique_ptr<IDistribution1D> BeamInclinationAngleItem::createDistribution1D() const std::unique_ptr<IDistribution1D> BeamInclinationAngleItem::createDistribution1D() const
{ {
std::unique_ptr<IDistribution1D> P_distribution {}; if(auto distItem = dynamic_cast<DistributionItem *>(getGroupItem(P_DISTRIBUTION)))
if(DistributionItem *distributionItem = dynamic_cast<DistributionItem *>(getGroupItem(P_DISTRIBUTION))) { return distItem->createDistribution(Units::degree);
P_distribution = BeamAngleHelper::creatAngleDistribution(distributionItem);
} return {};
return P_distribution;
} }
// -------------------------------------------------------------------------- // // -------------------------------------------------------------------------- //
...@@ -77,55 +76,8 @@ double BeamAzimuthalAngleItem::azimuthalAngle() const ...@@ -77,55 +76,8 @@ double BeamAzimuthalAngleItem::azimuthalAngle() const
std::unique_ptr<IDistribution1D> BeamAzimuthalAngleItem::createDistribution1D() const std::unique_ptr<IDistribution1D> BeamAzimuthalAngleItem::createDistribution1D() const
{ {
std::unique_ptr<IDistribution1D> P_distribution {}; if(auto distItem = dynamic_cast<DistributionItem *>(getGroupItem(P_DISTRIBUTION)))
if(DistributionItem *distributionItem = dynamic_cast<DistributionItem *>(getGroupItem(P_DISTRIBUTION))) { return distItem->createDistribution(Units::degree);
P_distribution = BeamAngleHelper::creatAngleDistribution(distributionItem);
}
return P_distribution;
}
// -------------------------------------------------------------------------- //
std::unique_ptr<IDistribution1D>
BeamAngleHelper::creatAngleDistribution(DistributionItem *distributionItem)
{
std::unique_ptr<IDistribution1D> P_distribution {}; return {};
if (distributionItem->modelType() == Constants::DistributionGateType) {
double min
= distributionItem->getItemValue(DistributionGateItem::P_MIN).toDouble();
double max
= distributionItem->getItemValue(DistributionGateItem::P_MAX).toDouble();
P_distribution = GUIHelpers::make_unique<DistributionGate>(
Units::deg2rad(min), Units::deg2rad(max));
} else if (distributionItem->modelType() == Constants::DistributionLorentzType) {
double mean
= distributionItem->getItemValue(DistributionLorentzItem::P_MEAN).toDouble();
double hwhm
= distributionItem->getItemValue(DistributionLorentzItem::P_HWHM).toDouble();
P_distribution = GUIHelpers::make_unique<DistributionLorentz>(
Units::deg2rad(mean), Units::deg2rad(hwhm));
} else if (distributionItem->modelType() == Constants::DistributionGaussianType) {
double mean
= distributionItem->getItemValue(DistributionGaussianItem::P_MEAN).toDouble();
double std_dev = distributionItem->getItemValue(
DistributionGaussianItem::P_STD_DEV).toDouble();
P_distribution = GUIHelpers::make_unique<DistributionGaussian>(
Units::deg2rad(mean), Units::deg2rad(std_dev));
} else if (distributionItem->modelType() == Constants::DistributionLogNormalType) {
double median = distributionItem->getItemValue(DistributionLogNormalItem::P_MEDIAN)
.toDouble();
double scale_par = distributionItem->getItemValue(
DistributionLogNormalItem::P_SCALE_PAR).toDouble();
P_distribution = GUIHelpers::make_unique<DistributionLogNormal>(
Units::deg2rad(median), scale_par);
} else if (distributionItem->modelType() == Constants::DistributionCosineType) {
double mean
= distributionItem->getItemValue(DistributionCosineItem::P_MEAN).toDouble();
double sigma
= distributionItem->getItemValue(DistributionCosineItem::P_SIGMA).toDouble();
P_distribution = GUIHelpers::make_unique<DistributionCosine>(
Units::deg2rad(mean), Units::deg2rad(sigma));
}
return P_distribution;
} }
...@@ -43,14 +43,4 @@ protected: ...@@ -43,14 +43,4 @@ protected:
virtual std::unique_ptr<IDistribution1D> createDistribution1D() const override; virtual std::unique_ptr<IDistribution1D> createDistribution1D() const override;
}; };
// TODO Move to anonymous namespace
class BA_CORE_API_ BeamAngleHelper
{
public:
static std::unique_ptr<IDistribution1D> creatAngleDistribution(
DistributionItem *distributionItem);
};
#endif // BEAMANGLEITEMS_H #endif // BEAMANGLEITEMS_H
...@@ -124,10 +124,8 @@ double BeamDistributionItem::meanValue() const ...@@ -124,10 +124,8 @@ double BeamDistributionItem::meanValue() const
std::unique_ptr<IDistribution1D> BeamDistributionItem::createDistribution1D() const std::unique_ptr<IDistribution1D> BeamDistributionItem::createDistribution1D() const
{ {
std::unique_ptr<IDistribution1D> P_distribution {}; if(auto distItem = dynamic_cast<DistributionItem *>(getGroupItem(P_DISTRIBUTION)))
if(DistributionItem *distributionItem = dynamic_cast<DistributionItem *>( return distItem->createDistribution();
getGroupItem(P_DISTRIBUTION))) {
P_distribution = distributionItem->createDistribution(); return {};
}
return P_distribution;
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment