function [t,r_g] = filterMyInput(lgn_struct,in_struct)

% FILTERMYINPUT - Function to evaluate the effective input to the LGN relay
% cell. The input should either be: 1. The ganglion cell firing rate, i.e.
%                                   the light stimulus filtered through 
%                                   the retinal circuit
%                                   2. The light stimulus + impulse
%                                   response of the (linear) retinal
%                                   circuit.

% unpack the parameters needed for the feedforward kernel and input
% parameters
eta_ffi = lgn_struct.eta_ffi;
tau_rg = lgn_struct.tau_rg;
tau_rig = lgn_struct.tau_rig;
Delta_rig = lgn_struct.Delta_rig;
form = in_struct.form;

% create feedforward kernel with respective time vector
tau_max = max([tau_rg tau_rig]);
n_ff = 1000;
t_ff_max = Delta_rig+4*tau_max;
dt = t_ff_max/(n_ff-1);

t_ff = 0:dt:t_ff_max;                                          % time vector
h_rg = 1/tau_rg*exp(-t_ff/tau_rg);                          % excitatory kernel
h_ffi = 1/tau_rig*exp(-(t_ff-Delta_rig)/tau_rig) .* (t_ff>=Delta_rig); % inhibitory kernel
h_ff=(h_rg - eta_ffi*h_ffi);

if strcmp(form,'vec')
    % unpack the input data and interpolate the vectors
    t_tmp = in_struct.t_in;
    r_tmp = in_struct.r_in;
    t_in=t_tmp(1):dt:t_tmp(end);
    r_in=interp1(t_tmp,r_tmp,t_in,'linear');
    clear t_tmp r_tmp
elseif strcmp(form,'fnc')
    h = in_struct.h;
    tstop = in_struct.tstop;
else
end

% 
r_g = (dt * conv(h_ff,r_in))';
t_fin=t_in(end)-t_in(1)+t_ff_max;
t=(0:dt:t_fin)';