Detectors
- 
amplitude_detector
 ad
 AmplitudeDetector
- Represents an amplitude detector which calculates the amplitude and phase of light fields at one frequency. - Syntax:
- ad name node f n=none m=none 
- Required:
- name: Name of newly created detector.- node: Node to read output from.- f: Frequency of light to detect (in Hz).
- Optional:
- n: Tangential mode index to probe. Defaults to None such that all fields of the given frequency are summed.- m: Sagittal mode index to probe. Defaults to None such that all fields of the given frequency are summed.
 
- 
astigd
 AstigmatismDetector
- Detector for astigmatism figure-of-merit at a given node. - The computed quantity is given via one minus - finesse.gaussian.BeamParam.overlap().- Syntax:
- astigd name node
- Required:
- name: Name of the detector.- node: Node to compute astigmatism at.
 
- 
beam_property_detector
 bp
 BeamPropertyDetector
- Probe for detecting the properties of a beam at a given node. - The valid values for prop are: * - "w": beam size at node [metres], *- "w0": waist size as measured at node [metres], *- "z": distance to the waist from node [metres], *- "zr": the Rayleigh range [metres], *- "gouy": the Gouy phase of the beam at node [radians], *- "div": divergence angle of the beam at node [radians], *- "rc": radius of curvature of wavefront at node [metres], *- "s": curvature of wavefront at node [1 / metres], *- "q": beam parameter at node. .. note:: The- "gouy"target property here detects the Gouy phase as derived from the beam parameter \(q\) at the specified node, i.e: .. math:: psi = arctan{left(frac{myRe{q}}{myIm{q}}right)}. It does not compute any Gouy phase accumulation. Use- Gouyto detect the accumulated Gouy phase over a path.- Syntax:
- bp name node prop direction=x q_as_bp=false 
- Required:
- name: Name of newly created detector.- node: Node to read output from.- prop: The property of the beam to detect. See above for options.
- Optional:
- direction: Plane to detect in - ‘x’ for tangential, ‘y’ for sagittal.- q_as_bp: If detecting q, should the detector output return- BeamParamobject instead of just a complex number.
 
- 
ccd
 CCD
- Camera for measuring the intensity of a beam, \(I = |E(x,y)|^2\), where the unscaled x and y coordinate arrays used are - finesse.detectors.camera.Image.xdataand- finesse.detectors.camera.Image.ydata, respectively. Note that this is just the intensity at the points (x,y), not an integrated power over some finite pixel size.- Syntax:
- ccd name node xlim ylim npts w0_scaled=true 
- Required:
- name: Unique name of the camera.- node: Node at which to detect.- xlim: Limits of the x-dimension of the image. If a single number is given then this will be computed as \(x_{\mathrm{lim}} = [-|x|, +|x|]\).- ylim: Limits of the y-dimension of the image. If a single number is given then this will be computed as \(y_{\mathrm{lim}} = [-|y|, +|y|]\).- npts: Number of points in both axes.
- Optional:
- w0_scaled: Flag indicating whether the \(x\), \(y\) axes should be scaled to the waist-size of the beam parameter at node.
 
- 
ccdline
 CCDScanLine
- Camera for measuring the intensity of a beam, \(I = |E(x,y)|^2\), along a 1D slice. Where the unscaled x and y coordinate arrays used are - finesse.detectors.camera.ScanLine.xdataand- finesse.detectors.camera.ScanLine.ydata, respectively. Note that this is just the intensity at the points (x,y), not an integrated power over some finite pixel size.- The - ScanLine.direction(i.e. axis of slice) is determined from which of xlim or ylim is specified.- Syntax:
- ccdline name node npts x=none y=none xlim=none ylim=none w0_scaled=true 
- Required:
- name: Unique name of the camera.- node: Node at which to detect.- npts: Number of points in slice axis.- x: The x coordinate of the slice. If ylim is given and this is not specified then defaults to zero. If xlim is given and this is also specified then it is ignored.- y: The y coordinate of the slice. If xlim is given and this is not specified then defaults to zero. If ylim is given and this is also specified then it is ignored.- xlim: The limits of the x-axis scan lines. A single number gives \(x_{\mathrm{axis}} \in [-|x|, +|x|]\), or a tuple of size two gives \(x_{\mathrm{axis}} \in [x[0], x[1]]\).- ylim: The limits of the y-axis scan lines. A single number gives \(y_{\mathrm{axis}} \in [-|y|, +|y|]\), or a tuple of size two gives \(y_{\mathrm{axis}} \in [y[0], y[1]]\).
- Optional:
- w0_scaled: Flag indicating whether the \(x\), \(y\) axes should be scaled to the waist-size of the beam parameter at node.
 
- 
ccdpx
 CCDPixel
- Camera for measuring the intensity of a beam, \(I = |E(x,y)|^2\), at a single point. Where the unscaled x and y coordinate used is - finesse.detectors.camera.Pixel.xdataand- finesse.detectors.camera.Pixel.ydata, respectively. Note that this is just the intensity at (x,y), not an integrated power over some finite pixel dimension.- Syntax:
- ccdpx name node x=0 y=0 w0_scaled=true 
- Required:
- name: Unique name of the camera.- node: Node at which to detect.
- Optional:
- x: The x co-ordinate of the pixel.- y: The y co-ordinate of the pixel.- w0_scaled: Flag indicating whether the \(x\), \(y\) axes should be scaled to the waist-size of the beam parameter at node.
 
- 
cavity_property_detector
 cp
 CavityPropertyDetector
- Probe for detecting the properties of a cavity. - The valid values for prop are: * - "length"or- "l": round-trip cavity length [metres], *- "loss": round-trip loss as a fraction, *- "finesse": the cavity finesse, *- "fsr": free spectral range [Hz], *- "fwhm": full-width at half-maximum (i.e. linewidth) [Hz], *- "pole": cavity pole frequency [Hz], *- "tau": photon storage time [s], *- "abcd": round-trip ABCD matrix, *- "g"or- "stability": stability as g-factor, *- "gouy": round-trip Gouy phase [deg], *- "modesep": mode-separation frequency [Hz], *- "resolution": cavity resolution [Hz], *- "q": eigenmode, *- "w": beam size at the cavity source node [metres], *- "w0": waist size [metres], *- "z": distance to the waist from the cavity source node [metres], *- "zr": the Rayleigh range of the eigenmode [metres], *- "div": divergence angle of cavity mode [radians], *- "rc": radius of curvature of wavefront at cavity source node [metres], *- "s": curvature of wavefront at cavity source node [1 / metres].- Syntax:
- cp name cavity prop direction=x q_as_bp=false 
- Required:
- name: Name of newly created cavity property detector.- cavity: The cavity to probe. If the name is provided then the- CavityPropertyDetector.cavityattribute will point to the corresponding- Cavityobject when adding this detector to a- Modelinstance.- prop: Property of the cavity to probe. See above for options.
- Optional:
- direction: Plane to detect in.- q_as_bp: If detecting q, should the detector output return- BeamParamobject instead of just a complex number.
 
- 
fcam
 FieldCamera
- Camera for detecting the full image of the beam in terms of amplitude and phase. - Get the unscaled x and y coordinate data via - finesse.detectors.camera.Image.xdataand- finesse.detectors.camera.Image.ydata, respectively.- Syntax:
- fcam name node xlim ylim npts f=0 w0_scaled=true 
- Required:
- name: Unique name of the camera.- node: Node at which to detect.- xlim: Limits of the x-dimension of the image. If a single number is given then this will be computed as \(x_{\mathrm{lim}} = [-|x|, +|x|]\).- ylim: Limits of the y-dimension of the image. If a single number is given then this will be computed as \(y_{\mathrm{lim}} = [-|y|, +|y|]\).- npts: Number of points in both axes.
- Optional:
- f: Field frequency offset from the carrier to detect.- w0_scaled: Flag indicating whether the \(x\), \(y\) axes should be scaled to the waist-size of the beam parameter at node.
 
- 
field_detector
 fd
 FieldDetector
- Outputs an array of the higher order modes amplitudes at a particular node and frequency. The mode ordering is given by Model.homs. Plane wave models will output a single element array. - This detector can only be used on optical nodes. - Syntax:
- fd name node f
- Required:
- name: Name of newly created detector.- node: Node to read output from.- f: Frequency of light to detect (in Hz).
 
- 
fline
 FieldScanLine
- Camera for detecting a slice of the beam in terms of amplitude and phase. - The - ScanLine.direction(i.e. axis of slice) is determined from which of xlim or ylim is specified. Get the unscaled x and y coordinate data via- finesse.detectors.camera.ScanLine.xdataand- finesse.detectors.camera.ScanLine.ydata, respectively.- Syntax:
- fline name node npts x=none y=none xlim=none ylim=none f=0 w0_scaled=true 
- Required:
- name: Unique name of the camera.- node: Node at which to detect.- npts: Number of points in slice axis.- x: The x coordinate of the slice. If ylim is given and this is not specified then defaults to zero. If xlim is given and this is also specified then it is ignored.- y: The y coordinate of the slice. If xlim is given and this is not specified then defaults to zero. If ylim is given and this is also specified then it is ignored.- xlim: The limits of the x-axis scan lines. A single number gives \(x_{\mathrm{axis}} \in [-|x|, +|x|]\), or a tuple of size two gives \(x_{\mathrm{axis}} \in [x[0], x[1]]\).- ylim: The limits of the y-axis scan lines. A single number gives \(y_{\mathrm{axis}} \in [-|y|, +|y|]\), or a tuple of size two gives \(y_{\mathrm{axis}} \in [y[0], y[1]]\).
- Optional:
- f: Field frequency offset from the carrier to detect.- w0_scaled: Flag indicating whether the \(x\), \(y\) axes should be scaled to the waist-size of the beam parameter at node.
 
- 
fpx
 FieldPixel
- Camera for detecting a single pixel of the beam in terms of the amplitude and phase. - Get the unscaled x and y coordinate data via - finesse.detectors.camera.Pixel.xdataand- finesse.detectors.camera.Pixel.ydata, respectively.- Syntax:
- fpx name node x=0 y=0 f=0 w0_scaled=true 
- Required:
- name: Unique name of the camera.- node: Node at which to detect.
- Optional:
- x: The x co-ordinate of the pixel.- y: The y co-ordinate of the pixel.- f: Field frequency offset from the carrier to detect.- w0_scaled: Flag indicating whether the \(x\), \(y\) axes should be scaled to the waist-size of the beam parameter at node.
 
- 
gouy
 Gouy
- Detector to measure the accumulated gouy phase across a sequence of spaces. - This detector can operate in one of two modes, depending upon args given: * automatically determine the spaces through an arbitrary path by specifying the from_node and to_node arguments, * OR provide a pre-determined sequence of spaces (or their names) as positional arguments. Whichever option is chosen, this detector will compute the same fundamental quantity; that is the sum of the Gouy phases accumulated over each space (in degrees). - Syntax:
- gouy name *args from_node=none to_node=none via_node=none direction=x 
- Required:
- name: Name of newly created gouy detector.- *args: A sequence of spaces or space names.- from_node: An- OpticalNodeinstance, or a data type which can be converted to an optical node.- to_node: An- OpticalNodeinstance, or a data type which can be converted to an optical node.- via_node: An- OpticalNodeinstance, or a data type which can be converted to an optical node.- direction: Plane to detect in - ‘x’ for tangential, ‘y’ for sagittal. Defaults to ‘x’.
 
- 
knmd
 KnmDetector
- Direct probe of coupling coefficients at a component. - This detector has several “modes” which depend upon the values given for the mode indices n1, m1 and n2, m2. If: * all of n1, m1, n2, m2 are specified then the detector will output a single complex coefficient corresponding to the coupling from - (n1, m1) -> (n2, m2), * just n1 and m1 are specified then it will output a vector of complex coefficients corresponding to each coupling from- (n1, m1) -> (n, m)for each mode- (n, m)in the model, * only n2 and m2 are specified then it will output a vector of complex coefficients corresponding to each coupling from- (n, m) -> (n2, m2)for each mode- (n, m)in the model, * none of n1, m1, n2, m2 are specified then the detector outputs the full matrix of complex coupling coefficients. .. hint:: When using this detector in “full-matrix” mode (i.e. by not giving the values for any of the mode indices), it can be useful to combine the output with the- KnmMatrixobject to obtain a more convenient representation of the scattering matrix. An example of this is shown below, where the output of a detector of this type is wrapped using- KnmMatrix.from_buffer(). .. jupyter-execute:: import finesse finesse.configure(plotting=True) from finesse.knm.matrix import KnmMatrix IFO = finesse.Model() IFO.parse(‘’’ l L0 P=1 link(L0, ITM) m ITM R=0.99 T=0.01 Rc=-2090 xbeta=0.3u s LARM ITM.p2 ETM.p1 L=4k m ETM R=0.99 T=0.01 Rc=2090 cav ARM ITM.p2 modes(x, maxtem=6) knmd K_itm_r ITM 22 ‘’’) out = IFO.run(‘noxaxis()’) # Make a KnmMatrix wrapper around the output from the detector k_mat = KnmMatrix.from_buffer(out[“K_itm_r”], IFO.homs) # Now we can perform operations such as plotting the scattering matrix k_mat.plot(cmap=”bone”); See Computing arbitrary scattering matrices for some examples on the utility that the- KnmMatrixobject provides.- Syntax:
- knmd name comp coupling n1=none m1=none n2=none m2=none 
- Required:
- name: Name of newly created KnmDetector.- comp: A component which can scatter modes.- coupling: Coupling direction string, e.g. “11” for coupling coefficients on reflection from the front surface of a mirror.- n1,- m1,- n2,- m2: int or None: From (n1, m1) and To (n2, m2) mode indices of the coupling coefficient(s) to retrieve. See above for the options.
 
- 
math_detector
 mathd
 MathDetector
- A detector that performs some math operation and outputs the result. - Syntax:
- mathd name expression dtype='O' dtype_shape=[] unit='arb.' label=none 
- Required:
- name: Name of detector- expression: Symbolic expression to evaluate as the detectors output- dtype_shape: The expected array shape when evaluating expression. Defaults to an empty tuple. This must be an empty tuple if dtype is a scalar type or “O”.- unit: The unit of the output for plotting. Defaults to “arb.”- label: How to label the axis when plotting this detector. Defaults to None.
- Optional:
- dtype: The expected data type when evaluating expression. Defaults to “O”.
 
- 
mmd
 ModeMismatchDetector
- Detector for mode mismatch figure-of-merit for a specified node coupling. - The computed quantity is given in - finesse.gaussian.BeamParam.mismatch()where \(q_1\) is the input beam parameter at node1 propagated via the associated ABCD matrix to node2, and \(q_2\) is the beam parameter at node2. As mode mismatches cannot occur over spaces in Finesse, node1 must be an input node and node2 must be an output node.- Syntax:
- mmd name node1 node2 direction=x percent=false 
- Required:
- name: Name of the detector.- node1: Input node or port. If a- Portinstance is given then this node will be the input node of that port. Note that this node cannot be an output node.- node2: Output node or port. If a- Portinstance is given then this node will be the output node of that port. Note that this node cannot be an input node.
- Optional:
- direction: Plane of computation, defaults to “x” for the tangential plane. Changing to “y” will compute the mode mismatch in the sagittal plane.- percent: Whether to calculate the mode mismatch as a fraction (default behaviour) or a percentage.
 
- 
motion_detector
 xd
 MotionDetector
- Represents a motion detector which calculates the amplitude and phase of surface motion. - Syntax:
- xd name node
- Required:
- name: Name of newly created motion detector.- node: Node to read output from.
 
- 
optimal_q_detector
 optbp
 OptimalQ
- This detector tries to compute an optimal beam parameter (\(q\)) for a specified optical frequency at a node. - Output of this detector into an array solution will be a tuple of - BeamParamin each transverse direction, (qx, qy). If the optimisation process fails beam parameter objects will NaN values will be returned.- Syntax:
- optbp name node f fix_spot_size=false astigmatic=false accuracy=1e-09 direction=both 
- Required:
- name: Name of the detector- node: Node name or object to put this detector at- f: Frequency component tro compute the optimal beam parameter for.
- Optional:
- fix_spot_size: When True the optimised will keep the current spot size at the node fixed and just optimise the curvature.- astigmatic: When True qx and qy will be optimised separately- accuracy: Approximate mismatch accuracy to try and compute the optimised beam parameter to. mismatch(q_actual, q_optimal) < accuracy- direction: Return either both or just the x or y modes
 
- 
power_detector_dc
 pd
 PowerDetector
- Represents a power detector with no RF demodulations. It calculates the DC laser power at a node in Watts of optical power. - Syntax:
- pd name node pdtype=none 
- Required:
- name: Name of newly created power detector.- node: Node to read output from.
 
- 
power_detector_demod_1
 pd1
 PowerDetectorDemod1
- Represents a power detector with one RF demodulation. It calculates the RF beat power at a node in Watts of optical power. - If no demodulation phase is specified then this detector outputs a complex value I+1j*Q. - Syntax:
- pd1 name node f phase=none pdtype=none 
- Required:
- name: Name of newly created power detector.- node: Node to read output from.- f: Demodulation frequency in Hz
- Optional:
- phase: Demodulation phase in degrees
 
- 
power_detector_demod_2
 pd2
 PowerDetectorDemod2
- Represents a power detector with two RF demodulation. It calculates the RF beat power at a node in Watts of optical power. - If no demodulation phase is specified for the final demodulation this detector outputs a complex value I+1j*Q where I and Q are the in-phase and quadrature parts of the signal. - Syntax:
- pd2 name node f1 phase1 f2 phase2=none pdtype=none 
- Required:
- name: Name of newly created power detector.- node: Node to read output from.- f1: First demodulation frequency in Hz- phase1: First demodulation phase in degrees- f2: Second demodulation frequency in Hz
- Optional:
- phase2: Second demodulation phase in degrees
 
- 
quantum_noise_detector
 qnoised
 QuantumNoiseDetector
- Represents a quantum noise detector with no RF demodulations. - It calculates the amplitude spectral density of the photocurrent noise of a photodiode output demodulated at the signal frequency. - Syntax:
- qnoised name node nsr=false sources=none exclude_sources=none 
- Required:
- name: Name of newly created quantum noise detector.- node: Node to read output from.
- Optional:
- nsr: If true, calculate the noise-to-signal ratio rather than the absolute noise value.- sources: If given, only detect quantum noise contributions from these components.- exclude_sources: If given, this will not detect quantum noise contributions from any of these components, even if explicitly specified in sources.
 
- 
quantum_noise_detector_demod_1
 qnoised1
 QuantumNoiseDetectorDemod1
- Represents a quantum noise detector with 1 RF demodulation. - It calculates the amplitude spectral density of the photocurrent noise of a photodiode output demodulated at the signal frequency. - Syntax:
- qnoised1 name node f phase nsr=false sources=none exclude_sources=none 
- Required:
- name: Name of newly created quantum noise detector.- node: Node to read output from.- f: Demodulation frequency in Hz- phase: Demodulation phase in degrees
- Optional:
- nsr: If true, calculate the noise-to-signal ratio rather than the absolute noise value.- sources: If given, only detect quantum noise contributions from these components.
 
- 
quantum_noise_detector_demod_2
 qnoised2
 QuantumNoiseDetectorDemod2
- Represents a quantum noise detector with 2 RF demodulations. - It calculates the amplitude spectral density of the photocurrent noise of a photodiode output demodulated at the signal frequency. - Syntax:
- qnoised2 name node f1 phase1 f2 phase2 nsr=false sources=none exclude_sources=none 
- Required:
- name: Name of newly created quantum noise detector.- node: Node to read output from.- f1: First demodulation frequency in Hz- phase1: First demodulation phase in degrees- f2: Second demodulation frequency in Hz- phase2: Second demodulation phase in degrees
- Optional:
- nsr: If true, calculate the noise-to-signal ratio rather than the absolute noise value.- sources: If given, only detect quantum noise contributions from these components.
 
- 
quantum_shot_noise_detector
 qshot
 QuantumShotNoiseDetector
- Represents a quantum shot noise detector with no RF demodulations. - It calculates the amplitude spectral density of the photocurrent noise of a photodiode output demodulated at the signal frequency, considering only vacuum noise contributions (ignoring radiation pressure and squeezing effects). - Syntax:
- qshot name node nsr=false 
- Required:
- name: Name of newly created quantum shot noise detector.- node: Node to read output from.
- Optional:
- nsr: If true, calculate the noise-to-signal ratio rather than the absolute noise value.
 
- 
quantum_shot_noise_detector_demod_1
 qshot1
 QuantumShotNoiseDetectorDemod1
- Represents a quantum shot noise detector with 1 RF demodulation. - It calculates the amplitude spectral density of the photocurrent noise of a photodiode output demodulated at the signal frequency, considering only vacuum noise contributions (ignoring radiation pressure and squeezing effects). - Syntax:
- qshot1 name node f phase nsr=false 
- Required:
- name: Name of newly created quantum shot noise detector.- node: Node to read output from.- f: Demodulation frequency in Hz- phase: Demodulation phase in degrees
- Optional:
- nsr: If true, calculate the noise-to-signal ratio rather than the absolute noise value.
 
- 
quantum_shot_noise_detector_demod_2
 qshot2
 QuantumShotNoiseDetectorDemod2
- Represents a quantum shot noise detector with 2 RF demodulations. - It calculates the amplitude spectral density of the photocurrent noise of a photodiode output demodulated at the signal frequency, considering only vacuum noise contributions (ignoring radiation pressure and squeezing effects). - Syntax:
- qshot2 name node f1 phase1 f2 phase2 nsr=false 
- Required:
- name: Name of newly created quantum shot noise detector.- node: Node to read output from.- f1: First demodulation frequency in Hz- phase1: First demodulation phase in degrees- f2: Second demodulation frequency in Hz- phase2: Second demodulation phase in degrees
- Optional:
- nsr: If true, calculate the noise-to-signal ratio rather than the absolute noise value.