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"); - } + } }