Ranger { a Pattern Recognition Algorithm for the Hera-b Main Tracking System Part I: the Hera-b Pattern Tracker