This link explains how the data is passed from one modifier to another. That said, is really simple: Each modifier modifies the data and pass the modified data to the next modifier in the stack, and so on.
Read the docs linked above to understand how to optimize your hair stack.
I suggest adding any fine details after you add the simulation. Why? If you try to simulate very detailed hair(many hair strands with many strand points) it will be slower than simulating just the guides for example and adding any additional effects after that.