Author: [log in to unmask]
Date: Thu Sep 1 05:12:00 2016
New Revision: 4480
Log: (empty)
Added:
java/trunk/users/src/main/java/org/hps/users/spaul/moller/Cleanup.java
Added: java/trunk/users/src/main/java/org/hps/users/spaul/moller/Cleanup.java
=============================================================================
--- java/trunk/users/src/main/java/org/hps/users/spaul/moller/Cleanup.java (added)
+++ java/trunk/users/src/main/java/org/hps/users/spaul/moller/Cleanup.java Thu Sep 1 05:12:00 2016
@@ -0,0 +1,59 @@
+package org.hps.users.spaul.moller;
+
+import hep.physics.vec.Hep3Vector;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.hps.recon.tracking.TrackType;
+import org.hps.recon.tracking.TrackUtils;
+import org.lcsim.event.ReconstructedParticle;
+import org.lcsim.event.Vertex;
+
+public class Cleanup {
+
+ public static void purgeDuplicates(List<Vertex> vertices) {
+ ArrayList<Vertex> trashcan = new ArrayList();
+ outer : for(Vertex p1 : vertices){
+ if(trashcan.contains(p1))
+ continue;
+ for(Vertex p2 : vertices){
+ if(p1 == p2) continue;
+ if(trashcan.contains(p2))
+ continue;
+
+
+ if(p1.getAssociatedParticle().getEnergy() == p2.getAssociatedParticle().getEnergy()){ //tracks matched to same cluster
+ Vertex loser = getWorseParticle(p1, p2);
+ trashcan.add(loser);
+ }
+ if(trashcan.contains(p1))
+ continue outer;
+
+ }
+
+ }
+ vertices.removeAll(trashcan);
+ }
+
+ static Vertex getWorseParticle(Vertex v1, Vertex v2){
+
+ ReconstructedParticle p1 = v1.getAssociatedParticle();
+ ReconstructedParticle p2 = v2.getAssociatedParticle();
+ if(TrackType.isGBL(p1.getType()) && !TrackType.isGBL(p2.getType()))
+ return v2;
+ if(TrackType.isGBL(p2.getType())&& !TrackType.isGBL(p1.getType()))
+ return v1;
+
+ if(v1.getChi2() < v2.getChi2())
+ return v2;
+ return v1;
+ }
+
+
+
+
+
+
+
+}
|