Commit in hps-java/src/main/java/org/lcsim/hps/readout/ecal on MAIN | |||
FADCTriggerVariableDriver.java | +70 | -12 | 1.3 -> 1.4 |
Adding overly complicated way to remove dupl
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; + } + + }
}
+ + + +
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