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. UseGouyto 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 returnBeamParamobject instead of just a complex number.
-
ccd¶
CCD Camera for detecting the full image of the beam in terms of the intensity.
Get the unscaled x and y coordinate data via
Image.xdataandImage.ydata, respectively.- 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 detecting a slice of the beam in terms of the intensity.
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 viaScanLine.xdataandScanLine.ydata, respectively.- 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 detecting a single pixel of the beam in terms of the intensity.
Get the unscaled x and y coordinate data via
Pixel.xdataandPixel.ydata, respectively.- 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 theCavityPropertyDetector.cavityattribute will point to the correspondingCavityobject when adding this detector to aModelinstance.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 returnBeamParamobject 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
Image.xdataandImage.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.
-
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 viaScanLine.xdataandScanLine.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
Pixel.xdataandPixel.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: AnOpticalNodeinstance, or a data type which can be converted to an optical node.to_node: AnOpticalNodeinstance, or a data type which can be converted to an optical node.via_node: AnOpticalNodeinstance, 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 theKnmMatrixobject 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 usingKnmMatrix.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() # 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 theKnmMatrixobject 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.
-
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 aPortinstance 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 aPortinstance 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.
-
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 Hzphase1: First demodulation phase in degreesf2: 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 Hzphase: 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 Hzphase1: First demodulation phase in degreesf2: Second demodulation frequency in Hzphase2: 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 Hzphase: 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 Hzphase1: First demodulation phase in degreesf2: Second demodulation frequency in Hzphase2: Second demodulation phase in degrees- Optional
nsr: If true, calculate the noise-to-signal ratio rather than the absolute noise value.