Author: [log in to unmask]
Date: Wed Nov 25 14:41:41 2015
New Revision: 3990
Log:
move cluster cuts to tight constraint
Modified:
java/trunk/recon/src/main/java/org/hps/recon/filtering/V0CandidateFilter.java
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 Nov 25 14:41:41 2015
@@ -2,15 +2,17 @@
import static java.lang.Math.abs;
import java.util.List;
+import org.hps.recon.ecal.cluster.ClusterUtilities;
+import org.hps.recon.particle.ReconParticleDriver;
import org.hps.record.epics.EpicsData;
import org.lcsim.event.EventHeader;
import org.lcsim.event.ReconstructedParticle;
/**
- * Class to strip off trident candidates. Currently defined as: e+ e- events with
- * tracks matched to clusters. Neither electron can be a full-energy candidate
- * (momentum less than _fullEnergyCut [0.85GeV]). The Ecal cluster times must be
- * within _timingCut [2.5ns] of each other.
+ * Class to strip off trident candidates. Currently defined as: e+ e- events
+ * with tracks. If the tight constraint is enabled, tracks must be matched to
+ * clusters and the Ecal cluster times must be within _timingCut [2.5ns] of each
+ * other.
*
* @author Norman A Graf
*
@@ -23,7 +25,6 @@
private boolean _tight = false;
private boolean _keepEpicsDataEvents = false;
-
@Override
protected void process(EventHeader event) {
@@ -40,7 +41,7 @@
skipEvent();
}
List<ReconstructedParticle> V0Candidates = event.get(ReconstructedParticle.class, _V0CandidateCollectionName);
- if (V0Candidates.size() == 0) {
+ if (V0Candidates.isEmpty()) {
skipEvent();
}
@@ -49,34 +50,33 @@
if (V0Candidates.size() != 2) {
skipEvent();
}
- }
+ for (ReconstructedParticle rp : V0Candidates) {
- for (ReconstructedParticle rp : V0Candidates) {
+ ReconstructedParticle electron;
+ ReconstructedParticle positron;
- ReconstructedParticle e1 = null;
- ReconstructedParticle e2 = null;
+ List<ReconstructedParticle> fsParticles = rp.getParticles();
+ if (fsParticles.size() != 2) {
+ skipEvent();
+ }
+ // require both electrons to be associated with an ECal cluster
+ electron = fsParticles.get(ReconParticleDriver.ELECTRON);
+ if (electron.getClusters().isEmpty()) {
+ skipEvent();
+ }
+ positron = fsParticles.get(ReconParticleDriver.POSITRON);
+ if (positron.getClusters().isEmpty()) {
+ skipEvent();
+ }
- List<ReconstructedParticle> electrons = rp.getParticles();
- if (electrons.size() != 2) {
- skipEvent();
- }
- // require both electrons to be associated with an ECal cluster
- e1 = electrons.get(0);
- if (e1.getClusters().size() == 0) {
- skipEvent();
- }
- e2 = electrons.get(1);
- if (e2.getClusters().size() == 0) {
- skipEvent();
- }
+ // calorimeter cluster timing cut
+ // first CalorimeterHit in the list is the seed crystal
+ double t1 = ClusterUtilities.getSeedHitTime(electron.getClusters().get(0));
+ double t2 = ClusterUtilities.getSeedHitTime(positron.getClusters().get(0));
- // calorimeter cluster timing cut
- // first CalorimeterHit in the list is the seed crystal
- double t1 = e1.getClusters().get(0).getCalorimeterHits().get(0).getTime();
- double t2 = e2.getClusters().get(0).getCalorimeterHits().get(0).getTime();
-
- if (abs(t1 - t2) > _clusterTimingCut) {
- skipEvent();
+ if (abs(t1 - t2) > _clusterTimingCut) {
+ skipEvent();
+ }
}
}
incrementEventPassed();
@@ -109,14 +109,13 @@
public void setTightConstraint(boolean b) {
_tight = b;
}
-
+
/**
* Setting this true keeps ALL events containing EPICS data
*
* @param b
*/
- public void setKeepEpicsDataEvents(boolean b)
- {
+ public void setKeepEpicsDataEvents(boolean b) {
_keepEpicsDataEvents = b;
}
}
|