use more specific exceptions
update particle coherence times more accurately