function [sdf_data] = sdf_neurons(timestamps,event_times,plot_onset,plot_offset)
sdf_data = {};
sdf_sigma = 20;

duration = abs(plot_onset*1000) + abs(plot_offset*1000)+1;
%---------------------------------------------------------------------

spk_t = round(timestamps);
datalen = spk_t(length(spk_t)); %in msec

%delta
delta = spk_t2delta(spk_t',datalen,1); % creates vector 0/1.
sdf =  delta2sdf(delta,sdf_sigma);

%raster
raster = perievent_raster(spk_t,event_times,plot_onset*1000,plot_offset*1000);  %in msec

%matrix 0/1
spk_delta = spk_t2delta(raster,duration,1);

%PSTH
[mean_sdf,sdf_ci,bins] = perievent_neurons(sdf,event_times./1000,plot_onset,plot_offset);

sdf_data.mean_sdf = mean_sdf;
sdf_data.ci = sdf_ci;
sdf_data.bins = bins;
sdf_data.delta = spk_delta;
end