Commit in hps-java/src/main/java/org/lcsim/hps/readout/ecal on MAIN
FADCTriggerVariableDriver.java+70-121.3 -> 1.4
Adding overly complicated way to remove dupl

hps-java/src/main/java/org/lcsim/hps/readout/ecal
FADCTriggerVariableDriver.java 1.3 -> 1.4
diff -u -r1.3 -r1.4
--- FADCTriggerVariableDriver.java	3 Sep 2013 16:43:06 -0000	1.3
+++ FADCTriggerVariableDriver.java	28 Oct 2013 16:45:50 -0000	1.4
@@ -6,19 +6,22 @@
 
 import java.io.FileNotFoundException;
 import java.io.PrintWriter;
-import java.util.EnumSet;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.logging.Level;
 import java.util.logging.Logger;
+
 import org.lcsim.event.EventHeader;
 import org.lcsim.geometry.Detector;
-import org.lcsim.hps.recon.ecal.ECalUtils;
 import org.lcsim.hps.recon.ecal.HPSEcalCluster;
-import org.lcsim.hps.util.ClockSingleton;
 
 /**
  *
+ * Dumps trigger variables to text file
+ *
  * @author phansson
+ * @version 
+ * 
  */
 public class FADCTriggerVariableDriver extends FADCTriggerDriver {
     private int _pairs = 0;
@@ -62,11 +65,20 @@
             List<HPSEcalCluster> clusters = event.get(HPSEcalCluster.class, clusterCollectionName);
 
             //System.out.printf("%d ecal clusters in event\n", clusters.size());
-
-            
-            boolean clusterPairs1 = getClusterPairs(clusters);
-            
+            //System.out.printf("%s: %d clusters\n",this.getClass().getSimpleName(),clusters.size());
+        	//for(HPSEcalCluster cl : clusters) {
+        	//	System.out.printf("%s: cl E %f x %f y %f \n",this.getClass().getSimpleName(),cl.getEnergy(),cl.getPosition()[0],cl.getPosition()[1]);
+        	//}
+        	List<HPSEcalCluster> unique_clusters = this.getUniqueClusters(clusters);
+        	//System.out.printf("%s: %d unique clusters\n",this.getClass().getSimpleName(),unique_clusters.size());
+        	//for(HPSEcalCluster cl : unique_clusters) {
+        	//	System.out.printf("%s: cl E %f x %f y %f \n",this.getClass().getSimpleName(),cl.getEnergy(),cl.getPosition()[0],cl.getPosition()[1]);
+        	//}
+        	
+            boolean foundClusterPairs = getClusterPairs(unique_clusters);
             
+            if( foundClusterPairs) {
+
             int ipair = 0;
             for(HPSEcalCluster[] pair : clusterPairs) {
             
@@ -75,23 +87,23 @@
                     
                     HPSEcalCluster cluster = pair[icluster];
                     
-                    int quad = ECalUtils.getQuadrant(cluster);
+                    //int quad = ECalUtils.getQuadrant(cluster);
                     double E = cluster.getEnergy();
                     double pos[] = cluster.getSeedHit().getPosition();
                     //System.out.printf("x %f y %f ix %d iy %d \n", pos[0], pos[1], cluster.getSeedHit().getIdentifierFieldValue("ix"), cluster.getSeedHit().getIdentifierFieldValue("iy"));
                     
                     evString += String.format("%f %f %f ", E, pos[0], pos[1]);
                 }
-                System.out.printf("%s\n",evString);
+                //System.out.printf("%s\n",evString);
                 outputStream.println(evString);
                 ++ipair;     
                 ++_pairs;
             } // pairs
-
+            }
              
         } // has clusters 
         else {
-            System.out.printf("No ecal cluster collection in event %d \n", event.getEventNumber());
+            //System.out.printf("No ecal cluster collection in event %d \n", event.getEventNumber());
         }
             
         
@@ -110,6 +122,52 @@
 
     
     
-    
+    private List<HPSEcalCluster> getUniqueClusters(List<HPSEcalCluster> clusters) {
+    	List<HPSEcalCluster> unique = new ArrayList<HPSEcalCluster>();
+    	for(HPSEcalCluster loop_cl : clusters) {
+			HPSEcalClusterCmp loop_clCmp = new HPSEcalClusterCmp(loop_cl);
+    		boolean found = false;
+			for(HPSEcalCluster cl : unique) {
+    			if( loop_clCmp.compareTo(cl) == 0 ) {
+    				found = true;
+    			}
+    		}
+			if( !found ) {
+				unique.add(loop_cl);
+			}
+    	}
+    	return unique;
+    }
+
+
+    private static class HPSEcalClusterCmp implements Comparable<HPSEcalCluster> {
+    	private HPSEcalCluster _cluster;
+		public HPSEcalClusterCmp(HPSEcalCluster cl) {
+			set_cluster(cl);
+		}
+		@Override
+		public int compareTo(HPSEcalCluster cl) {
+				if(cl.getEnergy()==get_cluster().getEnergy() && cl.getPosition()[0]==get_cluster().getPosition()[0] && cl.getPosition()[1]==get_cluster().getPosition()[1] ) {
+					return 0;
+				} else {
+					if( cl.getEnergy() > get_cluster().getEnergy()) {
+						return 1;
+					} else {
+						return -1;
+					}
+				}
+		}
+		public HPSEcalCluster get_cluster() {
+			return _cluster;
+		}
+		public void set_cluster(HPSEcalCluster _cluster) {
+			this._cluster = _cluster;
+		}
+    	
+    }
     
 }
+    
+    
+    
+
CVSspam 0.2.12


Use REPLY-ALL to reply to list

To unsubscribe from the LCD-CVS list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=LCD-CVS&A=1