He was only on the roof for like 2-3 minutes.
A very short time to be noticed and interdicted/interfered with.
Inside the decision loop of most security. I don’t think a civilian countersniper team would have had time to ID him, get a lock on him, and take him out before he shot.
Having someone on the roof might have stopped him.
Noticing him on the roof and moving Charlie might have done it quick enough.
Having someone on the roof might have stopped him.
____________________________________
Two or three one hundred dollar aerial drones armed with remotely triggered pressurized safety alert sirens covering the area would have been cheap security.