Author: [log in to unmask]
Date: Thu Jul 30 12:23:03 2015
New Revision: 3311
Log:
Relax restriction on only one ReconstructedParticle per event.
Modified:
java/trunk/analysis/src/main/java/org/hps/analysis/examples/StripSingleFeeDriver.java
Modified: java/trunk/analysis/src/main/java/org/hps/analysis/examples/StripSingleFeeDriver.java
=============================================================================
--- java/trunk/analysis/src/main/java/org/hps/analysis/examples/StripSingleFeeDriver.java (original)
+++ java/trunk/analysis/src/main/java/org/hps/analysis/examples/StripSingleFeeDriver.java Thu Jul 30 12:23:03 2015
@@ -6,11 +6,12 @@
import org.lcsim.util.Driver;
/**
- * Simple Driver to select events containing only one Full Energy Electron
+ * Simple Driver to select events containing a clean Full Energy Electron
* (FEE). This is defined as one ReconstructedParticle which has been identified
* as an electron and has an energy equal to or greater than the energyCut
* (default is 0.85) and a track which has greater than or equal the
- * numberOfHitsOnTrack (default is 6).
+ * numberOfHitsOnTrack (default is 6). By default, only one ReconstructedParticle
+ * is allowed per event.
*
* @author Norman A Graf
*
@@ -21,7 +22,8 @@
private double _energyCut = 0.85;
private int _nHitsOnTrack = 6;
-
+ private int _nReconstructedParticles = 1;
+
private int _numberOfEventsWritten = 0;
/**
@@ -33,14 +35,15 @@
{
boolean skipEvent = true;
List<ReconstructedParticle> rps = event.get(ReconstructedParticle.class, "FinalStateParticles");
- if (rps.size() == 1) {
- ReconstructedParticle rp = rps.get(0);
- double energy = rp.getEnergy();
- int pdgId = rp.getParticleIDUsed().getPDG();
- if (pdgId == 11) {
- if (energy >= _energyCut && rp.getTracks().get(0).getTrackerHits().size() >= _nHitsOnTrack) // electron
- {
- skipEvent = false;
+ if (rps.size() <= _nReconstructedParticles) {
+ for (ReconstructedParticle rp : rps) {
+ double energy = rp.getEnergy();
+ int pdgId = rp.getParticleIDUsed().getPDG();
+ if (pdgId == 11) {
+ if (energy >= _energyCut && rp.getTracks().get(0).getTrackerHits().size() >= _nHitsOnTrack) // electron
+ {
+ skipEvent = false;
+ }
}
}
}
@@ -71,10 +74,19 @@
_nHitsOnTrack = cut;
}
+ /**
+ * Events having more than the number of ReconstructedParticles will be rejected.
+ * @param cut
+ */
+ public void setNumberOfReconstructedParticles(int cut)
+ {
+ _nReconstructedParticles = cut;
+ }
+
@Override
protected void endOfData()
{
System.out.println("Wrote " + _numberOfEventsWritten + " events");
- }
+ }
}
|