{
"cells": [
{
"cell_type": "markdown",
"id": "b410d49a",
"metadata": {},
"source": [
"# General Definitions \n",
"\n",
"For Attosecond Streaking the definitions can be found [here](https://pulse-retrieval-with-jax.readthedocs.io/en/latest/eqs_streaking.html)."
]
},
{
"cell_type": "markdown",
"id": "9b369d93",
"metadata": {},
"source": [
"## Nonlinear Methods\n",
"\n",
"1. SHG\n",
"\n",
" $G(E) = E$\n",
"\n",
"
\n",
"\n",
"2. THG\n",
"\n",
" $G(E) = E^2$\n",
"\n",
"
\n",
"\n",
"3. PG\n",
"\n",
" $G(E) = |E|^2$\n",
"\n",
"
\n",
"\n",
"4. SD (This definition causes a flip in delay and frequency-sign)\n",
"\n",
" $G(E) = (E^*)^2$\n",
"\n",
"
\n",
"\n",
"5. nth-HG\n",
"\n",
" $G(E) = E^{n-1}$"
]
},
{
"cell_type": "markdown",
"id": "b534791b",
"metadata": {},
"source": [
"## Indices and Symbols\n",
"\n",
"$\\quad k,j\\quad\\rightarrow\\quad$ Time Domain \n",
"$\\quad n,p\\quad\\rightarrow\\quad$ Frequency Domain \n",
"$\\quad m\\quad\\rightarrow\\quad$ Transformation (e.g. shift in time, applied chirp, ... )\n",
"\n",
"$\\quad E_k\\quad\\rightarrow\\quad$ pulse in time domain \n",
"$\\quad A_{mk}\\quad\\rightarrow\\quad$ transformed pulse in time domain \n",
"\n",
"\n",
"$\\quad D_{kn} \\quad\\rightarrow\\quad$ fourier matrix (inverse) \n",
"$\\quad D_{nk} \\quad\\rightarrow\\quad$ fourier matrix (forward)"
]
},
{
"cell_type": "markdown",
"id": "d2c28db6",
"metadata": {},
"source": [
"## Transformations \n",
"\n",
"1. (Inverse) Fourier Transform \n",
"\n",
" $E_n = \\sum_k D_{nk} E_n = \\sum_k e^{-i \\omega_n t_k} E_k$ \n",
" $E_k = \\sum_n D_{kn} E_n = \\sum_n e^{i \\omega_n t_k} E_n$\n",
"\n",
"
\n",
"\n",
"2. Method dependent transformation \n",
"\n",
" $A_{mk} = \\sum_n D_{kn} E_n \\cdot e^{i\\phi_{mn}}$ \n",
"\n",
" $\\phi_{mn} = -\\tau_m \\cdot \\omega_n$ (linear phase) \n",
"\n",
" $\\phi_{mn} = f(\\theta_m, \\omega_n)$ (arbitrary phase, through material or pulse-shaper)"
]
},
{
"cell_type": "markdown",
"id": "4eb501c8",
"metadata": {},
"source": [
"## Definition of nonlinear signal in time domain\n",
"\n",
"1. Frog \n",
"\n",
" $S_{mk} = E_k \\cdot G(A_{mk})$\n",
"\n",
"\n",
"2. Chirp-Scan \n",
"\n",
" $S_{mk} = A_{mk}\\cdot G(A_{mk})$\n",
"\n",
"\n",
"3. Interferometric Frog \n",
"\n",
" $S_{mk} = (E_k + A_{mk})\\cdot G(E_k + A_{mk})$\n",
"\n",
"\n",
"4. Time-Domain-Ptychography \n",
"\n",
" Same as FROG or I-FROG only $A_{mk}$ is different. \n",
" $A_{mk}' = \\sum_n D_{kn}B_n A_{mn}\\quad$ ($B_n$ represents a known spectral filter, can be complex valued)\n",
"\n",
"\n",
"5. 2D-SI \n",
"\n",
" $S_{mk} = G(E_k'\\cdot e^{-i\\tau_0\\omega_n} + A_{mk}'') \\cdot E_k \\quad$ ( $\\tau_0$ is a fixed delay of $E_k$ and $E_k'$ ) \n",
" $E_k' = \\sum_n D_{kn}B_n E_n\\quad$ ( $B_n$ represents a known spectral filter, can be complex valued) \n",
"\n",
"\n",
"6. Vampire \n",
"\n",
" $S_{mk} = G(E_k\\cdot e^{-i\\tau_0\\omega_n} + E_k') \\cdot A_{mk}\\quad$ (Original definition, pushing $m$ onto gate makes it easier with PIE.) \n",
" $S_{mk} = G_m(E_k\\cdot e^{-i\\tau_0\\omega_n} + E_k') \\cdot E_k = G(A_{mk}\\cdot e^{-i\\tau_0\\omega_n} + A_{mk}')\\cdot E_k$ \n",
" $E_k' = \\sum_n D_{kn}E_ne^{i\\phi_n}\\quad$ ($\\phi_n$ represents a material dispersion) \n",
" $\\tau_0$ is a fixed delay in the interferometer."
]
},
{
"cell_type": "markdown",
"id": "96378047",
"metadata": {},
"source": [
"## Error \n",
"\n",
"1. G-Error (Trace Error) \n",
"\n",
" $L = \\frac{1}{N_m\\cdot N_n}\\sum\\limits_{nm} (T_{mn}^{\\mathrm{exp}} - \\mu \\cdot T_{mn})^2$\n",
"\n",
"\n",
"2. Z-Error \n",
"\n",
" $Z = \\sum\\limits_{km} | S_{mk}' - S_{mk}|^2$\n",
"\n",
"\n",
"3. PIE-Error \n",
"\n",
" $L = \\frac{1}{N_m\\cdot N_n}\\sum\\limits_{nm} (\\sqrt{T_{mn}^{\\mathrm{exp}}} - \\mu\\cdot|S_{mn}|)^2$\n",
"\n",
"\n",
"\n",
"## Calculation of $\\mu$ \n",
"\n",
"1. Frequency independent \n",
"\n",
" $\\mu = \\frac{\\sum_{nm} T_{mn} \\cdot T_{mn}^{\\mathrm{exp}}}{\\sum_{nm} T_{mn}^2}$ \n",
"\n",
"\n",
"2. Frequency dependent \n",
"\n",
" $\\mu_n = \\frac{\\sum_{m} T_{mn} \\cdot T_{mn}^{\\mathrm{exp}}}{\\sum_{m} T_{mn}^2}$ \n",
"\n",
"\n",
"
\n",
"\n",
"3. For PIE-Error \n",
"\n",
" $T_{mn}\\quad\\rightarrow\\quad|S_{mn}|$ \n",
"\n",
" $T_{mn}^{\\mathrm{exp}}\\quad\\rightarrow\\quad\\sqrt{T_{mn}^{\\mathrm{exp}}}$\n"
]
},
{
"cell_type": "markdown",
"id": "f20a65e2",
"metadata": {},
"source": [
"## Z-Gradient \n",
"\n",
"$\\nabla_n Z_m = -2\\cdot\\sum_k \\Delta S_{mk}^*\\cdot\\frac{dS_{mk}}{dE_n^*} + \\Delta S_{mk}\\cdot\\left(\\frac{dS_{mk}}{dE_n}\\right)^*$ \n",
"\n",
"$\\nabla_n Z = \\sum_m \\nabla_n Z_m$\n"
]
},
{
"cell_type": "markdown",
"id": "049aca60",
"metadata": {},
"source": [
"## Z-Pseudo-Hessian \n",
"\n",
"$H_{zz} = U_{zz} - V_{zz}$ \n",
"\n",
"$U_{zz}^m = \\frac{1}{2}\\cdot\\sum_k\\left(\\left(\\frac{dS_{mk}}{dE_n}\\right)^*\\frac{dS_{mk}}{dE_p} + \\left(\\left(\\frac{dS_{mk}}{dE_n^*}\\right)^*\\frac{dS_{mk}}{dE_p^*}\\right)^*\\right)$ \n",
"\n",
"$V_{zz}^m = \\frac{1}{2}\\cdot\\sum_k\\left( \\frac{d}{dE_p}\\left(\\frac{dS_{mk}}{dE_n}\\right)^*\\cdot \\Delta S_{mk} + \\left(\\frac{d}{dE_p^*}\\left(\\frac{dS_{mk}}{dE_n^*}\\right)^*\\cdot \\Delta S_{mk}\\right)^* \\right)$"
]
},
{
"cell_type": "markdown",
"id": "89b64e35",
"metadata": {},
"source": [
"## Z-Gradient and Pseudo-Hessian (with respect to spectral phase factor)\n",
"\n",
"$E_n = |E_n| \\cdot \\Psi_n$ \n",
"\n",
"\n",
"$\\frac{d E_n}{d \\Psi_n} = \\frac{d E_n^*}{d \\Psi_n^*} = |E_n|$\n",
"\n",
"### Z-Gradient\n",
"\n",
"$\\frac{d Z_m}{d\\Psi_n^*} = \\frac{d E_n^*}{d\\Psi_n^*}\\frac{d Z_m}{d E_n^*} = |E_n|\\cdot\\frac{d Z_m}{d E_n^*}$ \n",
"\n",
"### Z-Pseudo Hessian\n",
"\n",
"$\\frac{d}{d\\Psi_p}\\left(\\frac{d S_{mk}}{d \\Psi_n}\\right)^* = \\frac{d}{d\\Psi_p}\\left(\\frac{d E_n}{d\\Psi_n}\\frac{d S_{mk}}{d E_n}\\right)^* = \\frac{d E_p}{d\\Psi_p}\\frac{d E_n^*}{d\\Psi_n^*}\\frac{d}{dE_p}\\left(\\frac{d S_{mk}}{d E_n}\\right)^* = |E_p||E_n|\\cdot \\frac{d}{dE_p}\\left(\\frac{d S_{mk}}{d E_n}\\right)^*$ \n",
"\n",
"$\\qquad \\Rightarrow \\quad H_{\\Psi} = H_{E} \\cdot |E_p| |E_n|$ \n",
"\n",
"I am assuming that all other terms from the product-rule are zero. Maybe thats wrong?"
]
},
{
"cell_type": "markdown",
"id": "e8b1b432",
"metadata": {},
"source": [
"## PIE Gradient \n",
"\n",
"$\\nabla_k L_m = \\frac{d |S_{mn}|}{d O_k^*}\\frac{d L_m}{d |S_{mn}|}$ \n",
"\n",
"$\\nabla_k L = \\sum_m \\nabla_k L_m$"
]
},
{
"cell_type": "markdown",
"id": "c043efff",
"metadata": {},
"source": [
"## PIE Pseudo-Hessian \n",
"\n",
"$H_{zz} = U_{zz} - V_{zz}$ \n",
"\n",
"$U_{zz}^m = \\frac{1}{2}\\cdot\\sum_n\\left(\\left(\\frac{d|S_{mn}|}{dE_j}\\right)^*\\frac{d|S_{mn}|}{dE_k} + \\left(\\left(\\frac{d|S_{mn}|}{dE_j^*}\\right)^*\\frac{d|S_{mn}|}{dE_k^*}\\right)^*\\right)$ \n",
"\n",
"$V_{zz}^m = \\frac{1}{2}\\cdot\\sum_n\\left( \\frac{d}{dE_k}\\left(\\frac{d|S_{mn}|}{dE_j}\\right)^*\\cdot (\\sqrt{T_{mn}^{\\mathrm{exp}}} - |S_{mn}|) + \\left(\\frac{d}{dE_k^*}\\left(\\frac{d|S_{mn}|}{dE_j^*}\\right)^*\\cdot (\\sqrt{T_{mn}^{\\mathrm{exp}}} - |S_{mn}|)\\right)^* \\right)$"
]
},
{
"cell_type": "markdown",
"id": "0dc13ebd",
"metadata": {},
"source": [
"## PIE Gradient and Pseudo-Hessian (with respect to spectral phase factor) \n",
"\n",
"$O_n = |O_n| \\cdot \\Psi_n$ \n",
"\n",
"\n",
"$\\frac{d O_n}{d \\Psi_n} = \\frac{d O_n^*}{d \\Psi_n^*} = |O_n|$\n",
"\n",
"### PIE Gradient \n",
"\n",
"$\\frac{d L_m}{d\\Psi_n^*} = \\frac{d O_n^*}{d\\Psi_n^*}\\frac{d L_m}{d O_n^*} = |O_n|\\cdot\\frac{d L_m}{d O_n^*}$ \n",
"\n",
"$\\frac{d L_m}{d O_n^*} = \\frac{d O_k^*}{d O_n^*}\\frac{d L_m}{d O_k^*} = \\mathrm{FFT}\\{{\\frac{d L_m}{d O_k^*}}\\}$ \n",
"\n",
"### PIE Pseudo-Hessian \n",
"\n",
"$\\frac{d|S_{mn}|}{d\\Psi_n} = \\frac{d E_n}{d \\Psi_n}\\frac{d E_k}{d}\\frac{d |S_{mn}|}{d E_k}$ \n",
"\n",
"$\\frac{d}{d \\Psi_n}\\left(\\frac{d |S_{mn}|}{d \\Psi_p}\\right)^* = \\frac{d E_p}{d \\Psi_p}\\frac{d E_j}{d E_p}\\left(\\frac{d E_n}{d \\Psi_n}\\frac{d E_k}{d E_n}\\right)^*\\frac{d}{d E_j}\\left(\\frac{d |S_{mn}|}{d E_k}\\right)^*$ \n",
"\n",
"$\\qquad \\Rightarrow \\quad H_{\\Psi} = H_{E} \\cdot \\frac{d E_p}{d \\Psi_p}\\frac{d E_j}{d E_p}\\left(\\frac{d E_n}{d \\Psi_n}\\frac{d E_k}{d E_n}\\right)^*$ \n",
"\n",
"I am assuming that all other terms from the product-rule are zero. Maybe thats wrong?"
]
}
],
"metadata": {
"language_info": {
"name": "python"
}
},
"nbformat": 4,
"nbformat_minor": 5
}