Getting "In the Zone"

I dont know about anyone else, iv never really been anyone else before, but I find getting into the zone quite hard, but when I get there, I really try to not let myself get knocked out. When im in the zone, I code really good, accurate code, very fast. I dont realize how much I spend on the machine, and I can usually code till 2 or 3am.

A big problem I have with working in the office is Coworkers. The biggest problem I have, is Coworkers. When I get in the zone, and they ask me an unrelated question, it knocks me out of the zone. I loose all those tiny variable names and interface names that were zipping around in my head. I loose the name of the page that I was working on, and I forget what I was doing.

Headphones only work to an extent. A coworker who wants to know why his hosts file entry isnt working will keep trying to get my attention, regardless of weather im wearing headphones or not.

What can I do?