The reason why in the current hazardlib implementation, the stochastic event set calculator takes in input only the source model, is that this is the only information needed to generate a stochastic event set (In the hazard curve calculator the site collection is an essential parameter). If you want to do the filtering inside the calculator then you need to pass also the site collection. If we go in this direction I would make this an optional parameter (and therefore the filtering is done only if a site collection is passed), so that we do not force a user to specify a site collection if he/she is simply interested in generating a stochastic event set out of a source model.