Commit in lcsim/src/org/lcsim/recon/cluster/util on MAIN
MuonCalorimeterHitLSort.java+36added 1.1
Sort Muon hits by layer

lcsim/src/org/lcsim/recon/cluster/util
MuonCalorimeterHitLSort.java added at 1.1
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;
+    }
+}
CVSspam 0.2.8