Author: [log in to unmask] Date: Wed Oct 7 10:07:49 2015 New Revision: 3787 Log: Add flag to keep events with epics data. Modified: java/trunk/recon/src/main/java/org/hps/recon/filtering/MollerCandidateFilter.java java/trunk/recon/src/main/java/org/hps/recon/filtering/V0CandidateFilter.java Modified: java/trunk/recon/src/main/java/org/hps/recon/filtering/MollerCandidateFilter.java ============================================================================= --- java/trunk/recon/src/main/java/org/hps/recon/filtering/MollerCandidateFilter.java (original) +++ java/trunk/recon/src/main/java/org/hps/recon/filtering/MollerCandidateFilter.java Wed Oct 7 10:07:49 2015 @@ -2,6 +2,7 @@ import static java.lang.Math.abs; import java.util.List; +import org.hps.record.epics.EpicsData; import org.lcsim.event.EventHeader; import org.lcsim.event.ReconstructedParticle; @@ -17,7 +18,8 @@ * * @version $Id: */ -public class MollerCandidateFilter extends EventReconFilter { +public class MollerCandidateFilter extends EventReconFilter +{ private String _mollerCandidateCollectionName = "TargetConstrainedMollerCandidates"; private double _mollerMomentumSumMin = 0.85; @@ -26,10 +28,20 @@ private double _clusterTimingCut = 2.5; private boolean _tight = false; + private boolean _keepEpicsDataEvents = false; @Override - protected void process(EventHeader event) { + protected void process(EventHeader event) + { incrementEventProcessed(); + if (_keepEpicsDataEvents) { + // don't drop any events with EPICS data: + final EpicsData data = EpicsData.read(event); + if (data != null) { + incrementEventPassed(); + return; + } + } if (!event.hasCollection(ReconstructedParticle.class, _mollerCandidateCollectionName)) { skipEvent(); } @@ -96,7 +108,8 @@ * * @param d */ - public void setClusterTimingCut(double d) { + public void setClusterTimingCut(double d) + { _clusterTimingCut = d; } @@ -105,7 +118,8 @@ * * @param s */ - public void setMollerCandidateCollectionName(String s) { + public void setMollerCandidateCollectionName(String s) + { _mollerCandidateCollectionName = s; } @@ -114,7 +128,8 @@ * * @param d */ - public void setMollerMomentumSumMin(double d) { + public void setMollerMomentumSumMin(double d) + { _mollerMomentumSumMin = d; } @@ -123,7 +138,8 @@ * * @param d */ - public void setMollerMomentumSumMax(double d) { + public void setMollerMomentumSumMax(double d) + { _mollerMomentumSumMax = d; } @@ -133,7 +149,8 @@ * * @param d */ - public void setMollerMomentumMax(double d) { + public void setMollerMomentumMax(double d) + { _fullEnergyCut = d; } @@ -143,7 +160,18 @@ * * @param b */ - public void setTightConstraint(boolean b) { + public void setTightConstraint(boolean b) + { _tight = b; } + + /** + * Setting this true keeps ALL events containing EPICS data + * + * @param b + */ + public void setKeepEpicsDataEvents(boolean b) + { + _keepEpicsDataEvents = b; + } } Modified: java/trunk/recon/src/main/java/org/hps/recon/filtering/V0CandidateFilter.java ============================================================================= --- java/trunk/recon/src/main/java/org/hps/recon/filtering/V0CandidateFilter.java (original) +++ java/trunk/recon/src/main/java/org/hps/recon/filtering/V0CandidateFilter.java Wed Oct 7 10:07:49 2015 @@ -2,6 +2,7 @@ import static java.lang.Math.abs; import java.util.List; +import org.hps.record.epics.EpicsData; import org.lcsim.event.EventHeader; import org.lcsim.event.ReconstructedParticle; @@ -21,10 +22,20 @@ private double _clusterTimingCut = 2.5; private boolean _tight = false; + private boolean _keepEpicsDataEvents = false; + @Override protected void process(EventHeader event) { incrementEventProcessed(); + if (_keepEpicsDataEvents) { + // don't drop any events with EPICS data: + final EpicsData data = EpicsData.read(event); + if (data != null) { + incrementEventPassed(); + return; + } + } if (!event.hasCollection(ReconstructedParticle.class, _V0CandidateCollectionName)) { skipEvent(); } @@ -98,4 +109,14 @@ public void setTightConstraint(boolean b) { _tight = b; } + + /** + * Setting this true keeps ALL events containing EPICS data + * + * @param b + */ + public void setKeepEpicsDataEvents(boolean b) + { + _keepEpicsDataEvents = b; + } }