View Javadoc

1   /*
2    * SortHits.java
3    *
4    * Created on February 13, 2008, 12:55 PM
5    *
6    */
7   
8   package org.lcsim.recon.tracking.seedtracker;
9   
10  import java.util.Comparator;
11  
12  import org.lcsim.fit.helicaltrack.HelicalTrackFit;
13  import org.lcsim.fit.helicaltrack.HelicalTrackHit;
14  
15  /**
16   *
17   * @author Richard Partridge
18   * @version 1.0
19   */
20  public class SortHits implements Comparator<HelicalTrackHit> {
21      private double _xc;
22      private double _yc;
23      private double _R;
24      private double _R2; 
25      /** Creates a new instance of SortHits */
26      public SortHits(HelicalTrackFit helix) {
27          //  Find the helix center, radius, error
28          _xc = helix.xc();
29          _yc = helix.yc();
30          _R = helix.R();
31          _R2 = _R*_R; 
32      }
33      
34      public int compare(HelicalTrackHit a, HelicalTrackHit b) {
35          double xa = a.x();
36          double xb = b.x();
37          double ya = a.y();
38          double yb = b.y();
39          double difa = (xa - _xc)*(xa - _xc) + (ya - _yc)*(ya - _yc) - _R2;
40          double difb = (xb - _xc)*(xb - _xc) + (yb - _yc)*(yb - _yc) - _R2;
41          if (difa * difa > difb * difb) return 1;
42          if (difa * difa < difb * difb) return -1;
43          return 0;
44      }
45  }