If you make your own copy of the particles, you can limit the vertical cutoff for how far they will fall by using an info_target (or possibly an info_null) as a "control point" to dictate particle behavior.
Sort of an "in-hammer scaler". That'll at least work for horizontally-flat roofs.