h[t_] := 
        UnitStep[t] Exp[-γ t];
rect[t_] := 
        UnitStep[t + tw/2] - UnitStep[t - tw/2];
fIn[t_] := rect[t];

Plot[{h[t] /. γ -> 1, 
          fIn[t] /. tw -> 2}, {t, -3, 3}];

dt = 0.01;
npts = 500;
tLst = 
        Table[j dt, {j, -npts/2, 
            npts/2 - 1}];
\(\(Print["time range: ", \ 
        tLst\_\(\([[\)\(1\)\(]]\)\), " to ", \ 
        tLst\_\(\([[\)\(npts\)\(]]\)\)];\)\)

hLst = h[tLst] /. γ -> 10;
fInLst = fIn[tLst] /. tw -> 2;

ListPlot[Transpose[{tLst, hLst}], PlotJoined -> True, 
        PlotRange -> All];
ListPlot[Transpose[{tLst, fInLst}], PlotJoined -> True, 
        PlotRange -> All];

fOutLst = ListConvolve[fInLst, hLst, npts/2];

ListPlot[Transpose[{tLst, fOutLst}], PlotJoined -> True, 
        PlotRange -> All];