Author: [log in to unmask]
Date: Tue Jun 2 10:55:59 2015
New Revision: 3077
Log:
Simple Driver to strip "golden" events for reconstruction monitoring
Added:
java/trunk/analysis/src/main/java/org/hps/analysis/examples/StripGoldenEventsDriver.java
- copied, changed from r3074, java/trunk/analysis/src/main/java/org/hps/analysis/examples/StripEventDriver.java
Copied: java/trunk/analysis/src/main/java/org/hps/analysis/examples/StripGoldenEventsDriver.java (from r3074, java/trunk/analysis/src/main/java/org/hps/analysis/examples/StripEventDriver.java)
=============================================================================
--- java/trunk/analysis/src/main/java/org/hps/analysis/examples/StripEventDriver.java (original)
+++ java/trunk/analysis/src/main/java/org/hps/analysis/examples/StripGoldenEventsDriver.java Tue Jun 2 10:55:59 2015
@@ -1,54 +1,61 @@
package org.hps.analysis.examples;
import java.util.List;
+import org.lcsim.event.Cluster;
import org.lcsim.event.EventHeader;
+import org.lcsim.event.ReconstructedParticle;
import org.lcsim.event.Track;
import org.lcsim.event.Vertex;
import org.lcsim.util.Driver;
/**
- *
+ * Class to strip off "golden events"
+ * Currently defined as e+ e- with six-hit tracks and nothing else in the event
* @author Norman A Graf
*
* @version $Id:
*/
-public class StripEventDriver extends Driver
+public class StripGoldenEventsDriver extends Driver
{
- private int _minNumberOfTracks = 0;
- private int _minNumberOfHitsOnTrack = 0;
private int _numberOfEventsWritten = 0;
- private int _minNumberOfUnconstrainedV0Vertices = 0;
@Override
protected void process(EventHeader event)
{
+ // select "golden" events with two tracks, two clusters and e+ e-
boolean skipEvent = false;
- int nTracks = 0;
-
- if (event.hasCollection(Track.class, "MatchedTracks")) {
- nTracks = event.get(Track.class, "MatchedTracks").size();
- if (nTracks >= _minNumberOfTracks) {
- List<Track> tracks = event.get(Track.class, "MatchedTracks");
- for (Track t : tracks) {
- int nhits = t.getTrackerHits().size();
- if (nhits < _minNumberOfHitsOnTrack) {
+ if (event.hasCollection(Vertex.class, "UnconstrainedV0Vertices")) {
+ List<ReconstructedParticle> vertices = event.get(ReconstructedParticle.class, "UnconstrainedV0Vertices");
+ if (vertices.size() > 1 || vertices.isEmpty()) {
+ skipEvent = true;
+ } else {
+ ReconstructedParticle vtx = vertices.get(0);
+ //this always has 2 tracks.
+ List<ReconstructedParticle> rps = vtx.getParticles();
+ for (ReconstructedParticle rp : rps) {
+ List<Track> trks = rp.getTracks();
+ // require each track to have six hits
+ if (trks.get(0).getTrackerHits().size() != 6) {
skipEvent = true;
}
}
- } else {
- skipEvent = true;
+ // require no other tracks in the event
+ if (event.get(Track.class, "MatchedTracks").size() > 2) {
+ skipEvent = true;
+ }
+ // require no other clusters in the event
+ if (event.get(Cluster.class, "EcalClusters").size() > 2) {
+ skipEvent = true;
+ }
}
- }
- if (event.hasCollection(Vertex.class, "UnconstrainedV0Vertices")) {
- int nVertices = event.get(Vertex.class, "UnconstrainedV0Vertices").size();
- if (nVertices < _minNumberOfUnconstrainedV0Vertices) {
- skipEvent = true;
- }
+ } else {
+ skipEvent = true;
}
if (skipEvent) {
throw new Driver.NextEventException();
} else {
+ System.out.println(event.getRunNumber() + " " + event.getEventNumber());
_numberOfEventsWritten++;
}
}
@@ -58,20 +65,4 @@
{
System.out.println("Wrote " + _numberOfEventsWritten + " events");
}
-
- public void setMinNumberOfTracks(int nTracks)
- {
- _minNumberOfTracks = nTracks;
- }
-
- public void setMinNumberOfHitsOnTrack(int nHits)
- {
- _minNumberOfHitsOnTrack = nHits;
- }
-
- public void setMinNumberOfUnconstrainedV0Vertices(int nVertices)
- {
- _minNumberOfUnconstrainedV0Vertices = nVertices;
- }
-
}
|