16 #ifndef BORNAGAIN_DEVICE_POL_POLFILTER_H
17 #define BORNAGAIN_DEVICE_POL_POLFILTER_H
20 #include <heinz/Vectors3D.h>
29 PolFilter(R3 direction,
double efficiency,
double total_transmission);
33 std::string
className() const final {
return "PolFilter"; }
34 std::vector<ParaMeta>
parDefs() const final
36 return {{
"Efficiency",
"",
"efficiency", 0, 1, 1},
37 {
"Transmission",
"",
"total transmission", 0, 1, 1}};
Base class for tree-like structures containing parameterized objects.
Detector properties (efficiency, transmission).
double m_efficiency
efficiency of polarization analysis
R3 m_direction
direction of polarization analysis
double totalTransmission() const
~PolFilter() override=default
std::string className() const final
Returns the class name, to be hard-coded in each leaf class that inherits from INode.
double m_total_transmission
total transmission of polarization analysis
double analyzerEfficiency() const
will always return positive value
R3 analyzerDirection() const
Retrieve the analyzer characteristics.
std::vector< ParaMeta > parDefs() const final
Returns the parameter definitions, to be hard-coded in each leaf class.
SpinMatrix matrix() const
Return the polarization density matrix (in spin basis along z-axis)