finesse-simulation-O4/MaskedReadoutRF.py
linarphy bf985795b1
High order mode works
Adding tilt on SR
TEM00 mask WIP
2025-06-02 17:45:47 +02:00

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)