Author: [log in to unmask]
Date: Fri Sep 18 18:01:17 2015
New Revision: 3645
Log:
update filters
Added:
java/trunk/recon/src/main/java/org/hps/recon/filtering/EventFlagFilter.java
- copied, changed from r3619, java/trunk/recon/src/main/java/org/hps/recon/filtering/TriggerTypeFilter.java
java/trunk/recon/src/main/java/org/hps/recon/filtering/SingleTrackFilter.java
- copied, changed from r3260, java/trunk/recon/src/main/java/org/hps/recon/filtering/MinimumHitsFilter.java
Modified:
java/trunk/recon/src/main/java/org/hps/recon/filtering/EcalSinglesFilter.java
java/trunk/steering-files/src/main/resources/org/hps/steering/users/meeg/PairsSkimmer.lcsim
Modified: java/trunk/recon/src/main/java/org/hps/recon/filtering/EcalSinglesFilter.java
=============================================================================
--- java/trunk/recon/src/main/java/org/hps/recon/filtering/EcalSinglesFilter.java (original)
+++ java/trunk/recon/src/main/java/org/hps/recon/filtering/EcalSinglesFilter.java Fri Sep 18 18:01:17 2015
@@ -21,7 +21,7 @@
private int minSize = 3;
private int maxSize = 7;
private double minT = 42.0;
- private double maxT = 59.0;
+ private double maxT = 49.0;
private double minE = 0.7;
private double maxE = 1.05;
Copied: java/trunk/recon/src/main/java/org/hps/recon/filtering/EventFlagFilter.java (from r3619, java/trunk/recon/src/main/java/org/hps/recon/filtering/TriggerTypeFilter.java)
=============================================================================
--- java/trunk/recon/src/main/java/org/hps/recon/filtering/TriggerTypeFilter.java (original)
+++ java/trunk/recon/src/main/java/org/hps/recon/filtering/EventFlagFilter.java Fri Sep 18 18:01:17 2015
@@ -1,62 +1,32 @@
package org.hps.recon.filtering;
-import org.hps.record.triggerbank.AbstractIntData;
-import org.hps.record.triggerbank.TIData;
import org.lcsim.event.EventHeader;
-import org.lcsim.event.GenericObject;
/**
- * Accept events with the desired trigger bit.
+ * Accept only events where all of the specified flags have a value of 1.
*
* @author Sho Uemura <[log in to unmask]>
* @version $Id: $
*/
-public class TriggerTypeFilter extends EventReconFilter {
+public class EventFlagFilter extends EventReconFilter {
- TriggerType triggerType = TriggerType.all;
+ String[] flagNames = null;
- public enum TriggerType {
-
- all, singles0, singles1, pairs0, pairs1
- }
-
- public void setTriggerType(String triggerType) {
- this.triggerType = TriggerType.valueOf(triggerType);
+ public void setFlagNames(String[] flagNames) {
+ this.flagNames = flagNames;
}
@Override
public void process(EventHeader event) {
incrementEventProcessed();
- 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 (flagNames != null) {
+ for (int i = 0; i < flagNames.length; i++) {
+ int[] flag = event.getIntegerParameters().get(flagNames[i]);
+ if (flag == null || flag[0] == 0) {
+ skipEvent();
}
}
- } else {
- 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;
- }
- }
}
Copied: java/trunk/recon/src/main/java/org/hps/recon/filtering/SingleTrackFilter.java (from r3260, java/trunk/recon/src/main/java/org/hps/recon/filtering/MinimumHitsFilter.java)
=============================================================================
--- java/trunk/recon/src/main/java/org/hps/recon/filtering/MinimumHitsFilter.java (original)
+++ java/trunk/recon/src/main/java/org/hps/recon/filtering/SingleTrackFilter.java Fri Sep 18 18:01:17 2015
@@ -2,74 +2,60 @@
import java.util.List;
-
//===> import org.hps.conditions.deprecated.SvtUtils;
-import org.lcsim.detector.identifier.IIdentifier;
-import org.lcsim.detector.tracker.silicon.ChargeCarrier;
-import org.lcsim.detector.tracker.silicon.HpsSiSensor;
-import org.lcsim.detector.tracker.silicon.SiSensor;
-import org.lcsim.detector.tracker.silicon.SiSensorElectrodes;
-import org.lcsim.detector.tracker.silicon.SiTrackerIdentifierHelper;
import org.lcsim.event.EventHeader;
import org.lcsim.event.RawTrackerHit;
+import org.lcsim.event.TrackerHit;
/**
- *
- * @author mgraham
+ *
+ * @author meeg
*/
-public class MinimumHitsFilter extends EventReconFilter{
-
- private int minSiLayers=10;
- private String rawTrackerHitCollectionName="SVTRawTrackerHits";
-
+public class SingleTrackFilter extends EventReconFilter {
+
+ private String helicalTrackHitCollectionName = "HelicalTrackHits";
+
@Override
- public void process(EventHeader event){
+ public void process(EventHeader event) {
incrementEventProcessed();
- if(!event.hasCollection(RawTrackerHit.class, rawTrackerHitCollectionName))
- skipEvent();
-
- List<RawTrackerHit> rawHits=event.get(RawTrackerHit.class, rawTrackerHitCollectionName);
-
- int totalTopHit=0;
- int totalBotHit=0;
-
- int nlayersTopHit=0;
- int nlayersBotHit=0;
- int[] layersTop={0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0,0};
- int[] layersBot={0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0,0};
-
- for(RawTrackerHit hit : rawHits){
- int layerNumber=hit.getLayerNumber();
- boolean isTop=isHitOnTop(hit);
- if(isTop){
- totalTopHit++;
- layersTop[layerNumber-1]++;
- } else{
- totalBotHit++;
- layersBot[layerNumber-1]++;
- }
-
- }
- //require hits in the first minSiLayers for both top and bottom planes
- for(int i=0;i<minSiLayers;i++){
- if(layersTop[i]==0)skipEvent();
- if(layersBot[i]==0)skipEvent();
+ if (!event.hasCollection(TrackerHit.class, helicalTrackHitCollectionName)) {
+ return;
}
+ int[] topHits = {0, 0, 0, 0, 0, 0};
+ int[] botHits = {0, 0, 0, 0, 0, 0};
+ List<TrackerHit> hth = event.get(TrackerHit.class, helicalTrackHitCollectionName);
+ for (TrackerHit hit : hth) {
+ int layer = ((RawTrackerHit) hit.getRawHits().get(0)).getLayerNumber();
+ int module = layer / 2 + 1;
+ if (hit.getPosition()[1] > 0) {
+ topHits[module - 1]++;
+ } else {
+ botHits[module - 1]++;
+ }
+ }
+
+ boolean topOne = true, topNone = true;
+ boolean botOne = true, botNone = true;
+
+ for (int i = 0; i < 6; i++) {
+ if (topHits[i] != 0) {
+ topNone = false;
+ }
+ if (topHits[i] != 1) {
+ topOne = false;
+ }
+ if (botHits[i] != 0) {
+ botNone = false;
+ }
+ if (botHits[i] != 1) {
+ botOne = false;
+ }
+ }
+
+ if (!((topOne && botNone) || (botOne && topNone))) {
+ skipEvent();
+ }
incrementEventPassed();
}
-
-
- private boolean isHitOnTop(RawTrackerHit hit){
- HpsSiSensor sensor=(HpsSiSensor) hit.getDetectorElement();
- IIdentifier id=hit.getIdentifier();
- SiTrackerIdentifierHelper _sid_helper=(SiTrackerIdentifierHelper) sensor.getIdentifierHelper();
-
- ChargeCarrier carrier=ChargeCarrier.getCarrier(_sid_helper.getSideValue(id));
- SiSensorElectrodes electrodes=((SiSensor) hit.getDetectorElement()).getReadoutElectrodes(carrier);
- //===> if(!SvtUtils.getInstance().isTopLayer(sensor))
- if(!sensor.isTopLayer())
- return false;
- return true;
- }
}
Modified: java/trunk/steering-files/src/main/resources/org/hps/steering/users/meeg/PairsSkimmer.lcsim
=============================================================================
--- java/trunk/steering-files/src/main/resources/org/hps/steering/users/meeg/PairsSkimmer.lcsim (original)
+++ java/trunk/steering-files/src/main/resources/org/hps/steering/users/meeg/PairsSkimmer.lcsim Fri Sep 18 18:01:17 2015
@@ -11,8 +11,8 @@
<driver name="ReconParticleCleanupDriver"/>
- <driver name="SVTSmallHitsFilter"/>
- <driver name="EcalPairsFilter"/>
+ <driver name="EventFlagFilter"/>
+ <!--<driver name="EcalPairsFilter"/>-->
<driver name="CollectionSizeFilter"/>
<driver name="LCIOWriter"/>
@@ -26,9 +26,13 @@
<readoutCollections>SVTRawTrackerHits</readoutCollections>
</driver>
- <driver name="ReconParticleCleanupDriver" type="org.hps.users.meeg.ReconParticleCleanupDriver"/>
+ <driver name="ReconParticleCleanupDriver" type="org.hps.users.meeg.ReconParticleCleanupDriver">
+ <maxTrackDt>5.0</maxTrackDt>
+ </driver>
- <driver name="SVTSmallHitsFilter" type="org.hps.recon.filtering.SVTSmallHitsFilter"/>
+ <driver name="EventFlagFilter" type="org.hps.recon.filtering.EventFlagFilter">
+ <flagNames>svt_bias_good svt_position_good svt_burstmode_noise_good</flagNames>
+ </driver>
<driver name="EcalPairsFilter" type="org.hps.recon.filtering.EcalPairsFilter"/>
<driver name="CollectionSizeFilter" type="org.hps.recon.filtering.CollectionSizeFilter">
<collectionName>UnconstrainedV0Candidates</collectionName>
|