Print

Print


Author: [log in to unmask]
Date: Fri Sep 25 08:20:56 2015
New Revision: 3713

Log:
Added SVT check to MTE analysis driver.

Modified:
    java/trunk/users/src/main/java/org/hps/users/kmccarty/MTEAnalysis.java

Modified: java/trunk/users/src/main/java/org/hps/users/kmccarty/MTEAnalysis.java
 =============================================================================
--- java/trunk/users/src/main/java/org/hps/users/kmccarty/MTEAnalysis.java	(original)
+++ java/trunk/users/src/main/java/org/hps/users/kmccarty/MTEAnalysis.java	Fri Sep 25 08:20:56 2015
@@ -27,6 +27,7 @@
 	// Define track LCIO information.
 	private String bankCollectionName = "TriggerBank";
 	private String particleCollectionName = "FinalStateParticles";
+	private boolean useGoodSVT = true;
 	private static final AIDA aida = AIDA.defaultInstance();
 	private IHistogram1D[] chargedTracksPlot = {
 			aida.histogram1D("MTE Analysis/Møller Event Tracks", 10, -0.5, 9.5),
@@ -157,6 +158,19 @@
 	
 	@Override
 	public void process(EventHeader event) {
+		// Check whether the SVT was active in this event.
+		final String[] flagNames = { "svt_bias_good", "svt_burstmode_noise_good", "svt_position_good" };
+		boolean svtGood = true;
+        for(int i = 0; i < flagNames.length; i++) {
+            int[] flag = event.getIntegerParameters().get(flagNames[i]);
+            if(flag == null || flag[0] == 0) {
+                svtGood = false;
+            }
+        }
+		
+        // If the SVT is not properly running, skip the event.
+        if(!svtGood && useGoodSVT) { return; }
+		
 		if(event.hasCollection(ReconstructedParticle.class, particleCollectionName)) {
 			// Get the list of tracks.
 			List<ReconstructedParticle> trackList = event.get(ReconstructedParticle.class, particleCollectionName);
@@ -180,7 +194,7 @@
 			// Populate the all cluster plots.
 			List<Cluster> topClusters = new ArrayList<Cluster>();
 			List<Cluster> botClusters = new ArrayList<Cluster>();
-			List<Cluster> clusters = event.get(Cluster.class, "EcalClusters");
+			List<Cluster> clusters = event.get(Cluster.class, "EcalClustersCorr");
 			for(Cluster cluster : clusters) {
 				allPlots.addCluster(cluster);
 				if(cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy") > 0) { topClusters.add(cluster); }
@@ -509,6 +523,10 @@
 		excludeNoTrackEvents = state;
 	}
 	
+	public void setUseGoodSVT(boolean state) {
+		useGoodSVT = state;
+	}
+	
 	private static final boolean inFiducialRegion(Cluster cluster) {
 		// Get the x and y indices for the cluster.
 		int ix   = TriggerModule.getClusterXIndex(cluster);