Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Energy calibration for core levels using side bands #426

Open
kutnyakhov opened this issue Jun 20, 2024 · 4 comments · May be fixed by #518
Open

Energy calibration for core levels using side bands #426

kutnyakhov opened this issue Jun 20, 2024 · 4 comments · May be fixed by #518
Labels
enhancement New feature or request

Comments

@kutnyakhov
Copy link
Collaborator

It would be nice to add the possibility of using side bands measured at t0 for energy calibration.
If we e.g. bin data in dldTimeSteps and delayStage, select slices around to and also select in dldTimeSteps position around main core level peaks as well as around SBs we can get in some cases 5-10 energy points which are well-defined and they are intense enough to be used for find_bias_peaks routine. The only problem is that all of those will contain only one sample bias value, but this can be fed inside as an array of biases/energies.
This would be of help in case users forgot to do a proper energy calibration run (happening quite often :) )

@kutnyakhov kutnyakhov added the enhancement New feature or request label Jun 20, 2024
@kutnyakhov
Copy link
Collaborator Author

Just to get a better idea about what I am talking about, here is a small figure of EDC from W4f core levels with defined regions for dldTimeSteps (yellow and red) as well as several orders of side bands right at t0.
W4f_side_bands+
Those defined regions will directly correspond to kinetic energies of those peaks (31.4 eV, 33.6 eV) and side bands
(26.6 eV, 27.8 eV, 29.0 eV, 30.2 eV and, 34.8 eV)

@rettigl
Copy link
Member

rettigl commented Jun 27, 2024

It's clear what you mean, and it should be possible to use the current fitting routine also for this case. Just the parameter generation will require a new workflow (e.g. multi peak identification routine).

@zain-sohail
Copy link
Member

It's clear what you mean, and it should be possible to use the current fitting routine also for this case. Just the parameter generation will require a new workflow (e.g. multi peak identification routine).

I have tested the routine to find peaks:

# binned data
roi = slice(4000, 4500)
delay = slice(1246.2,1246.6)
data = res.sel(delayStage=delay, dldTimeSteps=roi).sum('delayStage')

from scipy.signal import find_peaks
distance = 7
peaks, _ = find_peaks(data, height=None, distance=distance)

Which gives me this

image

Could you explain how this adds with the current fitting routine?

@kutnyakhov
Copy link
Collaborator Author

Following Laurenz's comment
#411 (comment)
I've managed to get it done.
Side_bands_en_cal

  • energies = np.array([26.6, 27.8, 29. , 30.2, 31.4, 33.6, 34.8]) - first four side bands, W4f 7/2 and W4f 5/22 core levels and -1 order side band;
  • tof = np.array([4043,4080,4118.5,4162,4210,4303,4360]) - just rough, manually defined and probably would be better to use find peaks from comment above;
  • ref_energies = reference = 26.6 - 4th order side band (first value in the energies array).
    This made directly calibration in kinetic energies, without need for any energy offset.
    At the end sample bias doesn't play any role.

I'm still stack to visualize it in order to check quality, thus had to use just output of fit procedure.

@kutnyakhov kutnyakhov linked a pull request Nov 18, 2024 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants