Author: [log in to unmask]
Date: Thu Jul 16 11:48:29 2015
New Revision: 3261
Log:
more filters; add maxSize option for collection size
Added:
java/trunk/recon/src/main/java/org/hps/recon/filtering/EcalSinglesFilter.java
- copied, changed from r3257, java/trunk/recon/src/main/java/org/hps/recon/filtering/EcalPairsFilter.java
java/trunk/recon/src/main/java/org/hps/recon/filtering/TriggerTypeFilter.java
- copied, changed from r3257, java/trunk/recon/src/main/java/org/hps/recon/filtering/EcalPairsFilter.java
Modified:
java/trunk/recon/src/main/java/org/hps/recon/filtering/CollectionSizeFilter.java
Modified: java/trunk/recon/src/main/java/org/hps/recon/filtering/CollectionSizeFilter.java
=============================================================================
--- java/trunk/recon/src/main/java/org/hps/recon/filtering/CollectionSizeFilter.java (original)
+++ java/trunk/recon/src/main/java/org/hps/recon/filtering/CollectionSizeFilter.java Thu Jul 16 11:48:29 2015
@@ -4,8 +4,8 @@
import org.lcsim.event.EventHeader;
/**
- * Accept events where the specified collection exists and is of at least the
- * required size.
+ * Accept events where the specified collection exists and is of the required
+ * size range.
*
* @author Sho Uemura <[log in to unmask]>
* @version $Id: $
@@ -14,6 +14,7 @@
private String collectionName = "UnconstrainedV0Candidates";
private int minSize = 1;
+ private int maxSize = Integer.MAX_VALUE;
public void setCollectionName(String collectionName) {
this.collectionName = collectionName;
@@ -23,12 +24,16 @@
this.minSize = minSize;
}
+ public void setMaxSize(int maxSize) {
+ this.maxSize = maxSize;
+ }
+
@Override
public void process(EventHeader event) {
incrementEventProcessed();
if (event.hasCollection(Object.class, collectionName)) {
List<Object> collection = event.get(Object.class, collectionName);
- if (collection.size() < minSize) {
+ if (collection.size() < minSize || collection.size() > maxSize) {
skipEvent();
}
} else {
Copied: java/trunk/recon/src/main/java/org/hps/recon/filtering/EcalSinglesFilter.java (from r3257, java/trunk/recon/src/main/java/org/hps/recon/filtering/EcalPairsFilter.java)
=============================================================================
--- java/trunk/recon/src/main/java/org/hps/recon/filtering/EcalPairsFilter.java (original)
+++ java/trunk/recon/src/main/java/org/hps/recon/filtering/EcalSinglesFilter.java Thu Jul 16 11:48:29 2015
@@ -1,30 +1,72 @@
package org.hps.recon.filtering;
-import java.util.ArrayList;
-import java.util.Collections;
import java.util.List;
import org.hps.recon.ecal.cluster.ClusterUtilities;
import org.lcsim.event.Cluster;
import org.lcsim.event.EventHeader;
/**
- * Accept events containing a pair of ECal clusters within a set time
- * coincidence.
+ * Accept events containing an ECal cluster passing cuts.
*
* @author Sho Uemura <[log in to unmask]>
* @version $Id: $
*/
-public class EcalPairsFilter extends EventReconFilter {
+public class EcalSinglesFilter extends EventReconFilter {
private String clusterCollectionName = "EcalClusters";
- private double maxDt = 5.0;
+ private double minX = -500;
+ private double maxX = 500;
+ private double minY = -500;
+ private double maxY = 500;
+ private int minSize = 3;
+ private int maxSize = 7;
+ private double minT = 42.0;
+ private double maxT = 59.0;
+ private double minE = 0.7;
+ private double maxE = 1.05;
public void setClusterCollectionName(String clusterCollectionName) {
this.clusterCollectionName = clusterCollectionName;
}
- public void setMaxDt(double maxDt) {
- this.maxDt = maxDt;
+ public void setMinX(double minX) {
+ this.minX = minX;
+ }
+
+ public void setMaxX(double maxX) {
+ this.maxX = maxX;
+ }
+
+ public void setMinY(double minY) {
+ this.minY = minY;
+ }
+
+ public void setMaxY(double maxY) {
+ this.maxY = maxY;
+ }
+
+ public void setMinSize(int minSize) {
+ this.minSize = minSize;
+ }
+
+ public void setMaxSize(int maxSize) {
+ this.maxSize = maxSize;
+ }
+
+ public void setMinT(double minT) {
+ this.minT = minT;
+ }
+
+ public void setMaxT(double maxT) {
+ this.maxT = maxT;
+ }
+
+ public void setMinE(double minE) {
+ this.minE = minE;
+ }
+
+ public void setMaxE(double maxE) {
+ this.maxE = maxE;
}
@Override
@@ -32,27 +74,32 @@
incrementEventProcessed();
if (event.hasCollection(Cluster.class, clusterCollectionName)) {
List<Cluster> clusters = event.get(Cluster.class, clusterCollectionName);
- if (clusters.size() < 2) {
- skipEvent();
- }
- List<Double> clusterTimes = new ArrayList<Double>();
+ boolean acceptEvent = false;
for (Cluster cluster : clusters) {
- clusterTimes.add(ClusterUtilities.getSeedHitTime(cluster));
- }
- Collections.sort(clusterTimes);
- boolean acceptEvent = false;
- for (int i = 0; i < clusterTimes.size() - 1; i++) {
- double dt = clusterTimes.get(i + 1) - clusterTimes.get(i);
-// System.out.println(dt);
- if (dt < maxDt) {
- acceptEvent = true;
+ int clusterSize = cluster.getCalorimeterHits().size();
+ double clusterTime = ClusterUtilities.getSeedHitTime(cluster);
+ if (clusterSize <= minSize || clusterSize >= maxSize) {
+ continue;
}
+ if (clusterTime < minT || clusterTime > maxT) {
+ continue;
+ }
+ if (cluster.getEnergy() < minE || cluster.getEnergy() > maxE) {
+ continue;
+ }
+ if (cluster.getPosition()[0] < minX || cluster.getPosition()[0] > maxX) {
+ continue;
+ }
+ if (cluster.getPosition()[1] < minY || cluster.getPosition()[1] > maxY) {
+ continue;
+ }
+ acceptEvent = true;
}
if (!acceptEvent) {
skipEvent();
}
} else {
- skipEvent();
+ skipEvent();
}
incrementEventPassed();
}
Copied: java/trunk/recon/src/main/java/org/hps/recon/filtering/TriggerTypeFilter.java (from r3257, java/trunk/recon/src/main/java/org/hps/recon/filtering/EcalPairsFilter.java)
=============================================================================
--- java/trunk/recon/src/main/java/org/hps/recon/filtering/EcalPairsFilter.java (original)
+++ java/trunk/recon/src/main/java/org/hps/recon/filtering/TriggerTypeFilter.java Thu Jul 16 11:48:29 2015
@@ -1,59 +1,62 @@
package org.hps.recon.filtering;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import org.hps.recon.ecal.cluster.ClusterUtilities;
-import org.lcsim.event.Cluster;
+import org.hps.recon.ecal.triggerbank.AbstractIntData;
+import org.hps.recon.ecal.triggerbank.TIData;
import org.lcsim.event.EventHeader;
+import org.lcsim.event.GenericObject;
/**
- * Accept events containing a pair of ECal clusters within a set time
- * coincidence.
+ * Accept events with the desired trigger bit.
*
* @author Sho Uemura <[log in to unmask]>
* @version $Id: $
*/
-public class EcalPairsFilter extends EventReconFilter {
+public class TriggerTypeFilter extends EventReconFilter {
- private String clusterCollectionName = "EcalClusters";
- private double maxDt = 5.0;
+ TriggerType triggerType = TriggerType.all;
- public void setClusterCollectionName(String clusterCollectionName) {
- this.clusterCollectionName = clusterCollectionName;
+ public enum TriggerType {
+
+ all, singles0, singles1, pairs0, pairs1
}
- public void setMaxDt(double maxDt) {
- this.maxDt = maxDt;
+ public void setTriggerType(String triggerType) {
+ this.triggerType = TriggerType.valueOf(triggerType);
}
@Override
public void process(EventHeader event) {
incrementEventProcessed();
- if (event.hasCollection(Cluster.class, clusterCollectionName)) {
- List<Cluster> clusters = event.get(Cluster.class, clusterCollectionName);
- if (clusters.size() < 2) {
- skipEvent();
- }
- List<Double> clusterTimes = new ArrayList<Double>();
- for (Cluster cluster : clusters) {
- clusterTimes.add(ClusterUtilities.getSeedHitTime(cluster));
- }
- Collections.sort(clusterTimes);
- boolean acceptEvent = false;
- for (int i = 0; i < clusterTimes.size() - 1; i++) {
- double dt = clusterTimes.get(i + 1) - clusterTimes.get(i);
-// System.out.println(dt);
- if (dt < maxDt) {
- acceptEvent = true;
+ if (event.hasCollection(GenericObject.class, "TriggerBank")) {
+ for (GenericObject data : event.get(GenericObject.class, "TriggerBank")) {
+ if (AbstractIntData.getTag(data) == TIData.BANK_TAG) {
+ TIData triggerData = new TIData(data);
+ if (!matchTriggerType(triggerData))//only process singles0 triggers...
+ {
+ skipEvent();
+ }
}
}
- if (!acceptEvent) {
- skipEvent();
- }
} else {
- skipEvent();
+ skipEvent();
}
incrementEventPassed();
}
+
+ public boolean matchTriggerType(TIData triggerData) {
+ switch (triggerType) {
+ case all:
+ return true;
+ case singles0:
+ return triggerData.isSingle0Trigger();
+ case singles1:
+ return triggerData.isSingle1Trigger();
+ case pairs0:
+ return triggerData.isPair0Trigger();
+ case pairs1:
+ return triggerData.isPair1Trigger();
+ default:
+ return false;
+ }
+ }
}
|