Only one comment:
It is ok to use Boole but one drawback (in some cases) maybe that
Boole[condition]* function gives ZERO when condition is false.
If for some reason I have that the imagen of funtion is ZERO in some region.. then.. I could confuse the zero introduce with Boole and the zero that I need to obtain through the function.