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. UseGouy
to 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 returnBeamParam
object 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.xdata
andImage.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.xdata
andScanLine.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.xdata
andPixel.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.cavity
attribute will point to the correspondingCavity
object when adding this detector to aModel
instance.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 returnBeamParam
object 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.xdata
andImage.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.xdata
andScanLine.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.xdata
andPixel.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
: AnOpticalNode
instance, or a data type which can be converted to an optical node.to_node
: AnOpticalNode
instance, or a data type which can be converted to an optical node.via_node
: AnOpticalNode
instance, 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 theKnmMatrix
object 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 theKnmMatrix
object 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 aPort
instance 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 aPort
instance 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.