Skip to content
Snippets Groups Projects
Commit ed293c96 authored by Wuttke, Joachim's avatar Wuttke, Joachim
Browse files

PolFilter(Bloch_vector, mean_transmission)

parent a3ba00b0
No related branches found
No related tags found
1 merge request!1733Align polarization with PhysRef; simplify and unify API and GUI
......@@ -15,10 +15,11 @@
#include "Device/Pol/PolFilter.h"
#include "Base/Spin/SpinMatrix.h"
#include "Base/Util/Assert.h"
#include <iostream>
PolFilter::PolFilter(R3 direction, double efficiency, double transmission)
: m_vecBloch(direction * efficiency)
, m_transmission(transmission)
PolFilter::PolFilter(R3 Bloch_vector, double mean_transmission)
: m_vecBloch(Bloch_vector)
, m_transmission(mean_transmission)
{
if (m_transmission < 0 || m_transmission > 0.5)
throw std::runtime_error("Invalid polarizer transmission");
......@@ -26,9 +27,13 @@ PolFilter::PolFilter(R3 direction, double efficiency, double transmission)
throw std::runtime_error("Invalid polarizer Bloch vector");
}
PolFilter::PolFilter()
: PolFilter({}, 0.0, 0.5)
PolFilter::PolFilter(R3 direction, double efficiency, double transmission)
: PolFilter(direction * efficiency, transmission)
{
std::cout
<< "Constructor PolFilter(direction, efficiency, transmission) is obsolete since "
"BornAgain v21,\n"
"and will eventually be removed. Use PolFilter(Bloch_vector, transmission) instead.\n";
}
SpinMatrix PolFilter::matrix() const
......
......@@ -24,8 +24,8 @@ class SpinMatrix;
class PolFilter : public INode {
public:
PolFilter(R3 direction, double efficiency, double transmission);
PolFilter();
PolFilter(R3 direction, double efficiency, double transmission); // OBSOLETE since v21
PolFilter(R3 Bloch_vector = {}, double mean_transmission = 0.5);
~PolFilter() override = default;
std::string className() const final { return "PolFilter"; }
......
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