import numpy as np
from finesse.detectors.general import Detector
from finesse.detectors.compute.gaussian import AstigmatismDetectorWorkspace
[docs]class AstigmatismDetector(Detector):
"""Detector for astigmatism figure-of-merit at a given node.
The computed quantity is given via one minus :meth:`finesse.gaussian.BeamParam.overlap`.
Parameters
----------
name : str
Name of the detector.
node : :class:`.OpticalNode`
Node to compute astigmatism at.
"""
def __init__(self, name, node):
super().__init__(name, node, dtype=np.float64, label="Astigmatism")
@property
def needs_fields(self):
return False
@property
def needs_trace(self):
return True
def _get_workspace(self, sim):
return AstigmatismDetectorWorkspace(self, sim)