TimeSpectrum

class nexus.TimeSpectrum(experiment, time_length=200, time_step=0.2, max_detuning=400, electronic=False, time_data=[], intensity_data=[], scaling='auto', background=0.0, offset=0.0, resolution=0.7, distribution_points=1, fit_weight=1.0, bunch_spacing=inf, residual=<nexus.clib.cnexus.Sqrt; proxy of <Swig Object of type 'Residual *'> >, fft_window='auto', coherence=False, id='')

Bases: FitMeasurement

Constructor for the TimeSpectrum class. Class to calculate the time-dependent intensity of the experiment.

Parameters:
  • id (string) – User identifier.

  • experiment (Experiment) – Experiment

  • time_length (float) – Length of the calculation (nanoseconds).

  • time_step (float) – Step size of the calculation (nanoseconds).

  • max_detuning (float) – Maximum value of the energy detuning (Gamma). Set this value to speed up the calculation. If set to zero no maximum is applied. Also see fft_window.

  • electronic (bool) – If True electronic scattering is included.

  • time_data (list or ndarray) – Time data for fitting (nanoseconds).

  • intensity_data (list or ndarray) – Intensity data for fitting.

  • scaling (float or Var or string) – Intensity scaling factor for fitting. Default is auto.

  • background (float or Var or string) – Background for fitting. Default is 0.

  • or (offset (float) –

    class:Var): Temporal offset of the model. Default is 0.

    New in version 1.1.0.

  • resolution (float or Var) – Resolution value for convolution (nanoseconds). Corresponds to the APD resolution.

  • distribution_points (int) – Number of points for thickness distributions in forward geometry and angular divergence in grazing geometry. Both distributions assume incoherent summation over the weighted contributions. Default is 1.

  • fit_weight (float) – Relative weight for the cost function in multi measurement fitting.

  • bunch_spacing (float) – Spacing of subsequent X-ray bunches in time (nanoseconds).

  • residual (Residual) – Implementation of the residual calculation used for fitting.

  • fft_window (string) –

    A window function that is applied during the Fourier transformation from energy to time. This should be used when the max_detuning is not zero. Options are

    • auto (default) - will pick a Hann window if max_detuning is not zero, no window otherwise.

    • Hann

    • Hamming

    • Sine

    • Welch

    • Kaiser2 - \(\alpha = 2\)

    • Kaiser25 - \(\alpha = 2.5\)

    • Kaiser3 - \(\alpha = 3\)

    • none

  • coherence (bool) –

    Determines if the summation over the thickness and divergence distributions is performed coherently (True) or incoherently (False). Default is False.

    New in version 1.0.3.

id

User identifier.

Type:

string

experiment

Experiment

Type:

Experiment

time_length

Length of the calculation (nanoseconds).

Type:

float

time_step

Step size of the calculation (nanoseconds).

Type:

float

max_detuning

Maximum value of the energy detuning (Gamma). Set this value to speed up the calculation. If set to zero no maximum is applied. Also see fft_window.

Type:

float

electronic

If True electronic scattering is included.

Type:

bool

time_data

Time data for fitting (nanoseconds).

Type:

list

intensity_data

Intensity data for fitting.

Type:

list

data_size

Number of data points of experimental data.

Type:

int

scaling

Intensity scaling factor for fitting.

Type:

Var

background

Background for fitting.

Type:

Var

offset (float or

class:Var): Temporal offset of the model.

New in version 1.1.0.

resolution

Resolution value for convolution (nanoseconds). Corresponds to the APD resolution.

Type:

Var

resolution_kernel

weight of the Gaussian resolution same step size as detuning.

Type:

list

distribution_points

Number of points for thickness distributions in forward geometry and angular divergence in grazing geometry. Both distributions assume incoherent summation over the weighted contributions.

Type:

int

fit_weight

Relative weight for the cost function in multi measurement fitting.

Type:

float

bunch_spacing

Spacing of subsequent X-ray bunches in time (nanoseconds).

Type:

float

residual

Implementation of the residual calculation used for fitting.

Type:

Residual

fft_window

A window function that is applied during the Fourier transformation from energy to time. This should be used when the max_detuning is not zero. Options are

  • auto (default) - will pick a Hann window if max_detuning is not zero, no window otherwise.

  • Hann

  • Hamming

  • Sine

  • Welch

  • Kaiser2 - \(\alpha = 2\)

  • Kaiser25 - \(\alpha = 2.5\)

  • Kaiser3 - \(\alpha = 3\)

  • none

Type:

string

coherence

Determines if the summation over the thickness and divergence distributions is performed coherently (True) or incoherently (False). Default is False.

New in version 1.0.3.

Type:

bool

result

List of intensity values. It is the energy-integrated intensity per time in units of (\(\Gamma /ns\)).

Type:

list

Calculate()

Calculates the class method. Also callable via operator ().

Returns:

Time array of float values. ndarray: Intensity array of float values.

Return type:

ndarray

Plot(data=True, residuals=True, errors=False, datacolor='black', theorycolor='r', theorywidth=2, datalinestyle='none', datamarker='+', datamarkersize=2, datafillstyle='full', legend=True)

Plot the TimeSpectrum.

New in version 1.0.3.

Parameters:
  • data (bool) – Select if intensity_data should be plot.

  • residuals (bool) – Select if residuals from fit should be plot.

  • errors (bool) – select if error bars should be plot.

  • datacolor (string) – See matplotlib documentation.

  • theorycolor (string) – See matplotlib documentation.

  • theorywidth (float) – See matplotlib documentation.

  • datalinestyle (string) – See matplotlib documentation.

  • datamarker (string) – See matplotlib documentation.

  • datamarkersize (float) – See matplotlib documentation.

  • datafillstyle (string) – See matplotlib documentation.

  • legend (bool) – Select if legend should be plot when model and data are plot.