34 lines
928 B
Python
34 lines
928 B
Python
from finesse.model import Node
|
|
from finesse.components.general import borrows_nodes
|
|
from finesse.components.readout import ReadoutRF
|
|
from finesse.detectors.general import MaskedDetector
|
|
from finesse.parameter import float_parameter
|
|
|
|
|
|
@borrows_nodes()
|
|
@float_parameter("f", "Frequency")
|
|
@float_parameter("phase", "Phase")
|
|
class MaskedReadoutRF(ReadoutRF, MaskedDetector):
|
|
def __init__(
|
|
self,
|
|
name: str,
|
|
optical_node: Node,
|
|
*,
|
|
f: float = 0.0,
|
|
phase: float = 0.0,
|
|
output_detectors: bool = False,
|
|
pdtype: None | str | dict[str, str] = None,
|
|
):
|
|
super().__init__(
|
|
name,
|
|
optical_node,
|
|
f=f,
|
|
phase=phase,
|
|
output_detectors=output_detectors,
|
|
pdtype=pdtype,
|
|
)
|
|
MaskedDetector.__init__(self, name)
|
|
|
|
@property
|
|
def has_mask(self) -> int:
|
|
return len(self.mask)
|