lcsim/src/org/lcsim/recon/cluster/util
diff -N MuonCalorimeterHitLSort.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ MuonCalorimeterHitLSort.java 6 Oct 2010 19:59:01 -0000 1.1
@@ -0,0 +1,36 @@
+package org.lcsim.recon.cluster.util;
+
+import java.util.Comparator;
+import java.util.*;
+import hep.physics.vec.*;
+import org.lcsim.event.CalorimeterHit;
+import org.lcsim.geometry.Calorimeter.CalorimeterType;
+import org.lcsim.geometry.Calorimeter;
+import org.lcsim.geometry.IDDecoder;
+
+/**
+ * A comparator useful for sorting hits according to hit energies.
+ *
+ * Usage: Collections.sort( aHitCollection, new CalorimeterHitESort() );
+ *
+ * @author Guilherme Lima
+ * @version $Id: MuonCalorimeterHitLSort.java,v 1.1 2010/10/06 19:59:01 cassell Exp $
+ */
+public class MuonCalorimeterHitLSort implements Comparator<CalorimeterHit>
+{
+ public int compare(CalorimeterHit x1, CalorimeterHit x2)
+ {
+ IDDecoder id1 = x1.getIDDecoder();
+ id1.setID(x1.getCellID());
+ int lay1 = id1.getVLayer();
+ CalorimeterType ct1 = ((Calorimeter)(id1.getSubdetector())).getCalorimeterType();
+ if(ct1 == CalorimeterType.MUON_ENDCAP)lay1 += 100;
+ IDDecoder id2 = x2.getIDDecoder();
+ id2.setID(x2.getCellID());
+ int lay2 = id2.getVLayer();
+ CalorimeterType ct2 = ((Calorimeter)(id2.getSubdetector())).getCalorimeterType();
+ if(ct2 == CalorimeterType.MUON_ENDCAP)lay2 += 100;
+ if( lay1 - lay2 > 0 ) return 1;
+ return -1;
+ }
+}