To talk about gain you have to be able to compare the RMS values of your discrete and continuous functions, and the discrete function will only have an RMS value if you choose a way to connect the points of your discrete signal in $\mathbb{R}^2$. We can use rectangles since most DACs maintain the voltage constant in between samples, and in the limit when the sample rate tends to infinity it converges to the function.
Then the RMS value of your set of points $\{{x_1,x_2, ...,x_n}\}$ would be the square root of the summation of your $x_i^2$ times the length of the base of the rectangle $1/f_s$ divided by the total length of the interval $n/f_s$:
$x_{_{RMS}}=\sqrt{\frac{1}{n}\sum_{i=0}^{n}x_i^2}$
On the other hand, the RMS value for your continuous signal, calculating the area of the squared function divided by the length of the interval, and considering the beginning of the interval is $t = 0$ is given by
$f_{_{RMS}}=\sqrt{\frac{1}{t}\int_{0}^{t}[f(t)]^2dt}$
So you would have to find a normalization constant that makes the gain 0. It means:
$ 0=\ln{(\frac{\alpha x_{_{RMS}}}{f_{_{RMS}}})} \Rightarrow \frac{\alpha x_{_{RMS}}} {f_{_{RMS}}}=1 \Rightarrow \frac{f_{_{RMS}}}{ x_{_{RMS}}} =\alpha$
where $\alpha$ is your normalization constant, and as you can see it would depend on the function involved. However, it is important to notice that for the same time interval, $x_{_{RMS}}$ may change if the sampling rate changes, so the normalization value (if it exists, since f might not be integrable in the chosen interval) may depend on the sample rate, tending to be closer to 1 as the sample rate increases. The normalization constant for most functions will in fact depend on the chosen interval, so thinking in terms of a normalization constant is just an approximation. In particular calculating the gain of a filter is not a simple problem, and in many cases the gain depends on the frequency, so you choose a particular frequency to estimate the gain of the filter.
You say that the responses are not what you expect, but maybe providing more details on what you expect and what are you obtaining would allow us to provide you with a better answer.
Also in your code, you are using the step function for both the impulse response and step response, and your impulse response has only zeroes. You have to set one value to 1.
Also keep in mind that when analyzing impulse and step responses of a filter the way you are doing it, it is a common practice to use sample period as the time unit and not seconds, and the units for the frequency response would then be in terms of sampling frequency so you have a more general idea of the response of the filter.
Hope this helps.
DP