Author: mccaky
Date: Sat Dec 13 15:47:14 2014
New Revision: 1719
Log:
Updated primary trigger driver to include seed energy plots for channels around the beam hole.
Modified:
java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/FADCPrimaryTriggerDriver.java
Modified: java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/FADCPrimaryTriggerDriver.java
=============================================================================
--- java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/FADCPrimaryTriggerDriver.java (original)
+++ java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/FADCPrimaryTriggerDriver.java Sat Dec 13 15:47:14 2014
@@ -3,9 +3,12 @@
import hep.aida.IHistogram1D;
import hep.aida.IHistogram2D;
+import java.awt.Point;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
+import java.util.Map;
import java.util.Queue;
import org.hps.recon.ecal.ECalUtils;
@@ -96,6 +99,9 @@
IHistogram2D clusterDistributionSingle = aida.histogram2D("Trigger Plots :: Cluster Seed Distribution (Passed Single Cuts)", 46, -23, 23, 11, -5.5, 5.5);
IHistogram2D clusterDistributionAll = aida.histogram2D("Trigger Plots :: Cluster Seed Distribution (Passed All Cuts)", 46, -23, 23, 11, -5.5, 5.5);
+ private Map<Point, IHistogram1D> singleChannelSeedEnergyMap = new HashMap<Point, IHistogram1D>();
+ private Point channel = new Point(0, 0);
+
// ==================================================================
// ==== Hardware Diagnostic Variables ===============================
// ==================================================================
@@ -176,6 +182,8 @@
double clusterEnergy = cluster.getEnergy();
int ix = cluster.getSeedHit().getIdentifierFieldValue("ix");
int iy = cluster.getSeedHit().getIdentifierFieldValue("iy");
+ channel.x = ix;
+ channel.y = iy;
// VERBOSE :: Note that a cluster is being processed.
if(verbose) {
@@ -205,6 +213,12 @@
diagTotalEnergy[plotIndex].fill(clusterEnergy, 1);
diagHitCount[plotIndex].fill(hitCount < 8 ? hitCount : 7, 1);
+ // Populate the single channel plot if it exists.
+ IHistogram1D singleChannelPlot = singleChannelSeedEnergyMap.get(channel);
+ if(singleChannelPlot != null) {
+ singleChannelPlot.fill(seedEnergy, 1);
+ }
+
// ==== Seed Hit Energy Cut ====================================
// =============================================================
// VERBOSE :: Print the seed energy comparison check.
@@ -427,6 +441,21 @@
// If a background level has been set, pick the correct cuts.
if(backgroundLevel != -1) { setBackgroundCuts(backgroundLevel); }
+
+ // Create some single channel seed energy plots.
+ Point[] channels = {
+ new Point(-11, 2), new Point(-10, 2), new Point(-9, 2), new Point(-8, 2), new Point(-7, 2),
+ new Point(-6, 2), new Point(-5, 2), new Point(-4, 2), new Point(-3, 2), new Point(-2, 2),
+ new Point(-1, 2), new Point(-11, 1), new Point(-1, 1),
+ new Point(-11, -2), new Point(-10, -2), new Point(-9, -2), new Point(-8, -2), new Point(-7, -2),
+ new Point(-6, -2), new Point(-5, -2), new Point(-4, -2), new Point(-3, -2), new Point(-2, -2),
+ new Point(-1, -2), new Point(-11, -1), new Point(-1, -1),
+ };
+ for(Point channel : channels) {
+ String name = String.format("Channel Plots :: Cluster Seed Energy Distribution (%d, %d)", channel.x, channel.y);
+ IHistogram1D channelSeedPlot = aida.histogram1D(name, 176, 0.0, 2.2);
+ singleChannelSeedEnergyMap.put(channel, channelSeedPlot);
+ }
// Run the superclass method.
super.startOfData();
|