maskVignettedRegion is doing a loop over pixels in a detector to check inclusion in a polygon. This is causing a large number of allocations, and a large runtime due to the nature of python loops.
This ticket adds a contains c++ method overload for supplying x,y pairs instead of Point objects (it creates one internally). The python c++ binds make use of this and auto vectorization to allow arrays to be passed as arguments. The arrays can then be looped over in c++ instead of python making things much more efficient.
Finally the ticket updates ip_isr to make use of this functionality.
This results in a speed up of approximately 8x for isr task where the maskVignettedRegion is used.