Author: [log in to unmask]
Date: Fri Aug 5 15:16:24 2016
New Revision: 4445
Log:
Added verbose output option and a few plots to data trigger simulation driver.
Modified:
java/trunk/analysis/src/main/java/org/hps/analysis/trigger/DataTriggerSimDriver.java
Modified: java/trunk/analysis/src/main/java/org/hps/analysis/trigger/DataTriggerSimDriver.java
=============================================================================
--- java/trunk/analysis/src/main/java/org/hps/analysis/trigger/DataTriggerSimDriver.java (original)
+++ java/trunk/analysis/src/main/java/org/hps/analysis/trigger/DataTriggerSimDriver.java Fri Aug 5 15:16:24 2016
@@ -7,6 +7,7 @@
import org.hps.analysis.trigger.util.PairTrigger;
import org.hps.analysis.trigger.util.SinglesTrigger;
+import org.hps.analysis.trigger.util.Trigger;
import org.hps.analysis.trigger.util.TriggerDiagnosticUtil;
import org.hps.record.daqconfig.ConfigurationManager;
import org.hps.record.daqconfig.DAQConfig;
@@ -20,6 +21,9 @@
import org.lcsim.event.EventHeader;
import org.lcsim.event.GenericObject;
import org.lcsim.util.Driver;
+import org.lcsim.util.aida.AIDA;
+
+import hep.aida.IHistogram1D;
/**
* Class <code>DataTriggerSimDriver</code> takes in clusters of both
@@ -55,6 +59,7 @@
*/
public class DataTriggerSimDriver extends Driver {
// Store the LCIO collection names for the needed objects.
+ private boolean verbose = false;
private boolean filterUnverifiable = false;
private String bankCollectionName = "TriggerBank";
private String clusterCollectionName = "EcalClusters";
@@ -84,6 +89,40 @@
private static final int ENERGY_DIFF = TriggerDiagnosticUtil.PAIR_ENERGY_DIFF;
private static final int ENERGY_SLOPE = TriggerDiagnosticUtil.PAIR_ENERGY_SLOPE;
private static final int COPLANARITY = TriggerDiagnosticUtil.PAIR_COPLANARITY;
+
+ // Plots
+ private AIDA aida = AIDA.defaultInstance();
+ private IHistogram1D[][] triggerTime = {
+ {
+ aida.histogram1D("Trigger Sim/Sim Cluster/Singles 0 Trigger Time", 51, -2, 202),
+ aida.histogram1D("Trigger Sim/Sim Cluster/Singles 1 Trigger Time", 51, -2, 202),
+ aida.histogram1D("Trigger Sim/Sim Cluster/Pair 0 Trigger Time", 51, -2, 202),
+ aida.histogram1D("Trigger Sim/Sim Cluster/Pair 1 Trigger Time", 51, -2, 202)
+ },
+ {
+ aida.histogram1D("Trigger Sim/SSP Cluster/Singles 0 Trigger Time", 51, -2, 202),
+ aida.histogram1D("Trigger Sim/SSP Cluster/Singles 1 Trigger Time", 51, -2, 202),
+ aida.histogram1D("Trigger Sim/SSP Cluster/Pair 0 Trigger Time", 51, -2, 202),
+ aida.histogram1D("Trigger Sim/SSP Cluster/Pair 1 Trigger Time", 51, -2, 202)
+ }
+ };
+ private IHistogram1D[][] triggerCount = {
+ {
+ aida.histogram1D("Trigger Sim/Sim Cluster/Singles 0 Trigger Count", 10, -0.5, 9.5),
+ aida.histogram1D("Trigger Sim/Sim Cluster/Singles 1 Trigger Count", 10, -0.5, 9.5),
+ aida.histogram1D("Trigger Sim/Sim Cluster/Pair 0 Trigger Count", 10, -0.5, 9.5),
+ aida.histogram1D("Trigger Sim/Sim Cluster/Pair 1 Trigger Count", 10, -0.5, 9.5)
+ },
+ {
+ aida.histogram1D("Trigger Sim/SSP Cluster/Singles 0 Trigger Count", 10, -0.5, 9.5),
+ aida.histogram1D("Trigger Sim/SSP Cluster/Singles 1 Trigger Count", 10, -0.5, 9.5),
+ aida.histogram1D("Trigger Sim/SSP Cluster/Pair 0 Trigger Count", 10, -0.5, 9.5),
+ aida.histogram1D("Trigger Sim/SSP Cluster/Pair 1 Trigger Count", 10, -0.5, 9.5)
+ }
+ };
+ private IHistogram1D sspClusterTime = aida.histogram1D("Trigger Sim/SSP Cluster/Cluster Time", 51, -2, 202);
+ private IHistogram1D simClusterAllTime = aida.histogram1D("Trigger Sim/Sim Cluster/Cluster Time", 51, -2, 202);
+ private IHistogram1D simClusterVerifiedTime = aida.histogram1D("Trigger Sim/Sim Cluster/Verified Cluster Time", 51, -2, 202);
/**
* Connects the driver to the the <code>ConfigurationManager</code>
@@ -175,6 +214,9 @@
pairCutsEnabled[i][3 + ENERGY_SLOPE] = pairs[i].getEnergySlopeCutConfig().isEnabled();
pairCutsEnabled[i][3 + COPLANARITY] = pairs[i].getCoplanarityCutConfig().isEnabled();
}
+
+ // Output the DAQ settings.
+ logSettings();
}
});
}
@@ -218,9 +260,36 @@
}
// Get a list of SSPClusters.
+ /**
+ List<SSPCluster> tempSSPClusters = null;
+ List<SSPCluster> sspClusters = null;
+ if(sspBank != null) { tempSSPClusters = sspBank.getClusters(); }
+ else { tempSSPClusters = new ArrayList<SSPCluster>(0); }
+
+ sspClusters = new ArrayList<SSPCluster>();
+ for(SSPCluster cluster : tempSSPClusters) {
+ if(TriggerDiagnosticUtil.isVerifiable(cluster, nsa, nsb, windowWidth)) { sspClusters.add(cluster); }
+ }
+ **/
List<SSPCluster> sspClusters = null;
if(sspBank != null) { sspClusters = sspBank.getClusters(); }
else { sspClusters = new ArrayList<SSPCluster>(0); }
+
+ // Plot the SSP cluster time distribution.
+ for(SSPCluster cluster : sspClusters) {
+ sspClusterTime.fill(TriggerModule.getClusterTime(cluster));
+ }
+
+ // DEBUG :: Print the SSP clusters.
+ if(verbose) {
+ System.out.println("SSP Clusters:");
+ for(SSPCluster cluster : sspClusters) {
+ System.out.printf("\t(%3d, %3d); E = %5.3f; N = %1.0f; t = %3.0f%n",
+ TriggerModule.getClusterXIndex(cluster), TriggerModule.getClusterYIndex(cluster),
+ TriggerModule.getValueClusterTotalEnergy(cluster), TriggerModule.getClusterHitCount(cluster),
+ TriggerModule.getClusterTime(cluster));
+ }
+ }
// Get reconstructed clusters.
List<Cluster> reconClusters = null;
@@ -237,10 +306,28 @@
// Iterate over all the clusters and test them to see if
// they are verifiable.
+ if(verbose) { System.out.println("Sim Clusters:"); }
for(Cluster cluster : reconClusters) {
+ // Plot the cluster time.
+ simClusterAllTime.fill(TriggerModule.getClusterTime(cluster));
+
+ // DEBUG :: Print the cluster.
+ if(verbose) {
+ System.out.printf("\t(%3d, %3d); E = %5.3f; N = %1.0f; t = %3.0f; ",
+ TriggerModule.getClusterXIndex(cluster), TriggerModule.getClusterYIndex(cluster),
+ TriggerModule.getValueClusterTotalEnergy(cluster), TriggerModule.getClusterHitCount(cluster),
+ TriggerModule.getClusterTime(cluster));
+ }
+
+ // Check if the cluster is at risk of pulse-clipping.
if(TriggerDiagnosticUtil.isVerifiable(cluster, nsa, nsb, windowWidth)) {
+ // Add the cluster to the good clusters list.
goodClusters.add(cluster);
- }
+ if(verbose) { System.out.println("[ passed ]"); }
+
+ // Plot the cluster time.
+ simClusterVerifiedTime.fill(TriggerModule.getClusterTime(cluster));
+ } else if(verbose) { System.out.println("[ failed ]"); }
}
// Replace the old cluster list with the new one.
@@ -248,8 +335,29 @@
}
// Generate simulated triggers.
+ if(verbose) { System.out.println("\nSim Cluster Triggers:"); }
SimTriggerModule<Cluster> reconModule = constructTriggers(reconClusters, Cluster.class);
+ if(verbose) { System.out.println("\nSSP Cluster Triggers:"); }
SimTriggerModule<SSPCluster> sspModule = constructTriggers(sspClusters, SSPCluster.class);
+ if(verbose) { System.out.println("\n\n\n\n"); }
+
+ // Plot trigger counts and trigger times.
+ triggerCount[0][0].fill(reconModule.getSingles0Triggers().size());
+ for(SinglesTrigger<Cluster> trigger : reconModule.getSingles0Triggers()) { triggerTime[0][0].fill(getTriggerTime(trigger)); }
+ triggerCount[0][1].fill(reconModule.getSingles1Triggers().size());
+ for(SinglesTrigger<Cluster> trigger : reconModule.getSingles1Triggers()) { triggerTime[0][1].fill(getTriggerTime(trigger)); }
+ triggerCount[0][2].fill(reconModule.getPair0Triggers().size());
+ for(PairTrigger<Cluster[]> trigger : reconModule.getPair0Triggers()) { triggerTime[0][2].fill(getTriggerTime(trigger)); }
+ triggerCount[0][3].fill(reconModule.getPair1Triggers().size());
+ for(PairTrigger<Cluster[]> trigger : reconModule.getPair1Triggers()) { triggerTime[0][3].fill(getTriggerTime(trigger)); }
+ triggerCount[1][0].fill(sspModule.getSingles0Triggers().size());
+ for(SinglesTrigger<SSPCluster> trigger : sspModule.getSingles0Triggers()) { triggerTime[1][0].fill(getTriggerTime(trigger)); }
+ triggerCount[1][1].fill(sspModule.getSingles1Triggers().size());
+ for(SinglesTrigger<SSPCluster> trigger : sspModule.getSingles1Triggers()) { triggerTime[1][1].fill(getTriggerTime(trigger)); }
+ triggerCount[1][2].fill(sspModule.getPair0Triggers().size());
+ for(PairTrigger<SSPCluster[]> trigger : sspModule.getPair0Triggers()) { triggerTime[1][2].fill(getTriggerTime(trigger)); }
+ triggerCount[1][3].fill(sspModule.getPair1Triggers().size());
+ for(PairTrigger<SSPCluster[]> trigger : sspModule.getPair1Triggers()) { triggerTime[1][3].fill(getTriggerTime(trigger)); }
// Insert the trigger results in the data stream.
SimTriggerData triggerData = new SimTriggerData(reconModule, sspModule);
@@ -311,6 +419,13 @@
passClusterLow = singlesTrigger[triggerNum].clusterTotalEnergyCutLow(c);
passClusterHigh = singlesTrigger[triggerNum].clusterTotalEnergyCutHigh(c);
passHitCount = singlesTrigger[triggerNum].clusterHitCountCut(c);
+
+ if(verbose) {
+ System.out.printf("Singles %d :: (%3d, %3d); E = %5.3f; N = %1.0f; t = %3.0f%n", triggerNum,
+ TriggerModule.getClusterXIndex(c), TriggerModule.getClusterYIndex(c),
+ TriggerModule.getValueClusterTotalEnergy(c), TriggerModule.getClusterHitCount(c),
+ TriggerModule.getClusterTime(c));
+ }
} else if(cluster instanceof SSPCluster) {
// Cast the cluster to the appropriate type.
SSPCluster c = (SSPCluster) cluster;
@@ -319,6 +434,13 @@
passClusterLow = singlesTrigger[triggerNum].clusterTotalEnergyCutLow(c);
passClusterHigh = singlesTrigger[triggerNum].clusterTotalEnergyCutHigh(c);
passHitCount = singlesTrigger[triggerNum].clusterHitCountCut(c);
+
+ if(verbose) {
+ System.out.printf("Singles %d :: (%3d, %3d); E = %5.3f; N = %1.0f; t = %3.0f%n", triggerNum,
+ TriggerModule.getClusterXIndex(c), TriggerModule.getClusterYIndex(c),
+ TriggerModule.getValueClusterTotalEnergy(c), TriggerModule.getClusterHitCount(c),
+ TriggerModule.getClusterTime(c));
+ }
}
// Make a trigger to store the results.
@@ -328,6 +450,13 @@
trigger.setStateClusterEnergyLow(passClusterLow);
trigger.setStateClusterEnergyHigh(passClusterHigh);
trigger.setStateHitCount(passHitCount);
+
+ if(verbose) {
+ System.out.printf("\t N >= %1.0f :: [ %5b ]%n", singlesTrigger[triggerNum].getCutValue(TriggerModule.CLUSTER_HIT_COUNT_LOW),
+ passHitCount);
+ System.out.printf("\t%5.3f <= E <= %5.3f :: [ %5b ]%n", singlesTrigger[triggerNum].getCutValue(TriggerModule.CLUSTER_TOTAL_ENERGY_LOW),
+ singlesTrigger[triggerNum].getCutValue(TriggerModule.CLUSTER_TOTAL_ENERGY_HIGH), (passClusterLow && passClusterHigh));
+ }
// A trigger will only be reported by the SSP if it
// passes all of the enabled cuts for that trigger.
@@ -379,6 +508,17 @@
continue pairTriggerLoop;
}
+ if(verbose) {
+ System.out.printf("Pair %d :: (%3d, %3d); E = %5.3f; N = %1.0f; t = %3.0f%n", triggerIndex,
+ TriggerModule.getClusterXIndex(reconPair[0]), TriggerModule.getClusterYIndex(reconPair[0]),
+ TriggerModule.getValueClusterTotalEnergy(reconPair[0]), TriggerModule.getClusterHitCount(reconPair[0]),
+ TriggerModule.getClusterTime(reconPair[0]));
+ System.out.printf("Pair %d :: (%3d, %3d); E = %5.3f; N = %1.0f; t = %3.0f%n", triggerIndex,
+ TriggerModule.getClusterXIndex(reconPair[1]), TriggerModule.getClusterYIndex(reconPair[1]),
+ TriggerModule.getValueClusterTotalEnergy(reconPair[1]), TriggerModule.getClusterHitCount(reconPair[1]),
+ TriggerModule.getClusterTime(reconPair[1]));
+ }
+
passClusterLow = pairsTrigger[triggerIndex].clusterTotalEnergyCutLow(reconPair[0])
&& pairsTrigger[triggerIndex].clusterTotalEnergyCutLow(reconPair[1]);
passClusterHigh = pairsTrigger[triggerIndex].clusterTotalEnergyCutHigh(reconPair[0])
@@ -402,6 +542,17 @@
continue pairTriggerLoop;
}
+ if(verbose) {
+ System.out.printf("Pair %d :: (%3d, %3d); E = %5.3f; N = %1.0f; t = %3.0f%n", triggerIndex,
+ TriggerModule.getClusterXIndex(sspPair[0]), TriggerModule.getClusterYIndex(sspPair[0]),
+ TriggerModule.getValueClusterTotalEnergy(sspPair[0]), TriggerModule.getClusterHitCount(sspPair[0]),
+ TriggerModule.getClusterTime(sspPair[0]));
+ System.out.printf("Pair %d :: (%3d, %3d); E = %5.3f; N = %1.0f; t = %3.0f%n", triggerIndex,
+ TriggerModule.getClusterXIndex(sspPair[1]), TriggerModule.getClusterYIndex(sspPair[1]),
+ TriggerModule.getValueClusterTotalEnergy(sspPair[1]), TriggerModule.getClusterHitCount(sspPair[1]),
+ TriggerModule.getClusterTime(sspPair[1]));
+ }
+
// Perform each trigger cut.
passClusterLow = pairsTrigger[triggerIndex].clusterTotalEnergyCutLow(sspPair[0])
&& pairsTrigger[triggerIndex].clusterTotalEnergyCutLow(sspPair[1]);
@@ -430,6 +581,23 @@
trigger.setStateEnergySlope(passPairEnergySlope);
trigger.setStateCoplanarity(passPairCoplanarity);
trigger.setStateTimeCoincidence(passTimeCoincidence);
+
+ if(verbose) {
+ System.out.printf("\t%-5.0f >= N :: [ %5b ]%n", pairsTrigger[triggerIndex].getCutValue(TriggerModule.CLUSTER_HIT_COUNT_LOW),
+ passHitCount);
+ System.out.printf("\t%5.3f <= E <= %5.3f :: [ %5b ]%n", pairsTrigger[triggerIndex].getCutValue(TriggerModule.CLUSTER_TOTAL_ENERGY_LOW),
+ pairsTrigger[triggerIndex].getCutValue(TriggerModule.CLUSTER_TOTAL_ENERGY_HIGH), (passClusterLow && passClusterHigh));
+ System.out.printf("\t%5.3f <= S <= %5.3f :: [ %5b ]%n", pairsTrigger[triggerIndex].getCutValue(TriggerModule.PAIR_ENERGY_SUM_LOW),
+ pairsTrigger[triggerIndex].getCutValue(TriggerModule.PAIR_ENERGY_SUM_HIGH), (passPairEnergySumLow && passPairEnergySumHigh));
+ System.out.printf("\t D <= %5.3f :: [ %5b ]%n", pairsTrigger[triggerIndex].getCutValue(TriggerModule.PAIR_ENERGY_DIFFERENCE_HIGH),
+ passPairEnergyDifference);
+ System.out.printf("\t%5.3f <= L :: [ %5b ]%n", pairsTrigger[triggerIndex].getCutValue(TriggerModule.PAIR_ENERGY_SLOPE_LOW),
+ passPairEnergySlope);
+ System.out.printf("\t C <= %-5.0f :: [ %5b ]%n", pairsTrigger[triggerIndex].getCutValue(TriggerModule.PAIR_COPLANARITY_HIGH),
+ passPairCoplanarity);
+ System.out.printf("\t t <= %-5.0f :: [ %5b ]%n", pairsTrigger[triggerIndex].getCutValue(TriggerModule.PAIR_TIME_COINCIDENCE),
+ passTimeCoincidence);
+ }
// A trigger will only be reported by the SSP if it
// passes all of the enabled cuts for that trigger.
@@ -498,4 +666,123 @@
public void setTriggerCollectionName(String triggerCollection) {
this.simTriggerCollectionName = triggerCollection;
}
+
+ /**
+ * Gets the trigger time of an arbitrary trigger, so long as its
+ * source is either a <code>Cluster</code> or <code>SSPCluster</code>
+ * object. Method also supports pairs of these objects as a size
+ * two array.
+ * @param trigger - The trigger.
+ * @return Returns the trigger time of the trigger as a
+ * <code>double</code>.
+ */
+ private static final double getTriggerTime(Trigger<?> trigger) {
+ // Get the trigger source and calculate the trigger time based
+ // on its object type.
+ Object triggerSource = trigger.getTriggerSource();
+
+ // If the trigger is simulated sim singles trigger...
+ if(triggerSource instanceof Cluster) {
+ return TriggerModule.getClusterTime((Cluster) triggerSource);
+ }
+
+ // If the trigger is a simulated SSP singles trigger...
+ if(triggerSource instanceof SSPCluster) {
+ return TriggerModule.getClusterTime((SSPCluster) triggerSource);
+ }
+
+ // If the trigger is a simulated sim pair trigger...
+ if(triggerSource instanceof Cluster[]) {
+ // Get the bottom cluster.
+ Cluster bottomCluster = null;
+ Cluster[] source = (Cluster[]) triggerSource;
+ if(TriggerModule.getClusterYIndex(source[0]) < 0) {
+ bottomCluster = source[0];
+ } else {
+ bottomCluster = source[1];
+ }
+
+ // Return the time of the bottom cluster.
+ return TriggerModule.getClusterTime(bottomCluster);
+ }
+
+ // If the trigger is a simulated SSP pair trigger...
+ if(triggerSource instanceof SSPCluster[]) {
+ // Get the bottom cluster.
+ SSPCluster bottomCluster = null;
+ SSPCluster[] source = (SSPCluster[]) triggerSource;
+ if(TriggerModule.getClusterYIndex(source[0]) < 0) {
+ bottomCluster = source[0];
+ } else {
+ bottomCluster = source[1];
+ }
+
+ // Return the time of the bottom cluster.
+ return TriggerModule.getClusterTime(bottomCluster);
+ }
+
+ // Otherwise, return negative MIN_VALUE to indicate an invalid
+ // trigger type.
+ return Double.MIN_VALUE;
+ }
+
+ /**
+ * Outputs all of the verification parameters currently in use by
+ * the software. A warning will be issued if the values for NSA and
+ * NSB, along with the FADC window, preclude clusters from being
+ * verified.
+ */
+ private void logSettings() {
+ // Print a DAQ configuration settings header.
+ System.out.println();
+ System.out.println();
+ System.out.println("======================================================================");
+ System.out.println("=== DAQ Configuration Settings =======================================");
+ System.out.println("======================================================================");
+
+ // Output window settings.
+ System.out.println("FADC Timing Window Settings");
+ System.out.printf("\tNSB :: %3d ns%n", nsb);
+ System.out.printf("\tNSA :: %3d ns%n", nsa);
+ System.out.printf("\tFADC Window :: %3d ns%n", windowWidth);
+
+ // Output the singles trigger settings.
+ for(int i = 0; i < 2; i++) {
+ // Print the settings.
+ System.out.printf("Singles Trigger %d Settings%23s[%5b]%n", (i + 1), "", singlesTriggerEnabled[i]);
+ System.out.printf("\tCluster Energy Low :: %.3f GeV [%5b]%n",
+ singlesTrigger[i].getCutValue(TriggerModule.CLUSTER_TOTAL_ENERGY_LOW), singlesCutsEnabled[i][0]);
+ System.out.printf("\tCluster Energy High :: %.3f GeV [%5b]%n",
+ singlesTrigger[i].getCutValue(TriggerModule.CLUSTER_TOTAL_ENERGY_HIGH), singlesCutsEnabled[i][1]);
+ System.out.printf("\tCluster Hit Count :: %.0f hit(s) [%5b]%n",
+ singlesTrigger[i].getCutValue(TriggerModule.CLUSTER_HIT_COUNT_LOW), singlesCutsEnabled[i][2]);
+ System.out.println();
+ }
+
+ // Output the pair trigger settings.
+ for(int i = 0; i < 2; i++) {
+ System.out.printf("Pairs Trigger %d Settings%25s[%5b]%n", (i + 1), "", pairTriggerEnabled[i]);
+ System.out.printf("\tCluster Energy Low :: %.3f GeV [%5b]%n",
+ pairsTrigger[i].getCutValue(TriggerModule.CLUSTER_TOTAL_ENERGY_LOW), pairCutsEnabled[i][0]);
+ System.out.printf("\tCluster Energy High :: %.3f GeV [%5b]%n",
+ pairsTrigger[i].getCutValue(TriggerModule.CLUSTER_TOTAL_ENERGY_HIGH), pairCutsEnabled[i][1]);
+ System.out.printf("\tCluster Hit Count :: %.0f hit(s) [%5b]%n",
+ pairsTrigger[i].getCutValue(TriggerModule.CLUSTER_HIT_COUNT_LOW), pairCutsEnabled[i][2]);
+ System.out.printf("\tPair Energy Sum Low :: %.3f GeV [%5b]%n",
+ pairsTrigger[i].getCutValue(TriggerModule.PAIR_ENERGY_SUM_LOW), pairCutsEnabled[i][3]);
+ System.out.printf("\tPair Energy Sum High :: %.3f GeV [%5b]%n",
+ pairsTrigger[i].getCutValue(TriggerModule.PAIR_ENERGY_SUM_HIGH), pairCutsEnabled[i][3]);
+ System.out.printf("\tPair Energy Difference :: %.3f GeV [%5b]%n",
+ pairsTrigger[i].getCutValue(TriggerModule.PAIR_ENERGY_DIFFERENCE_HIGH), pairCutsEnabled[i][4]);
+ System.out.printf("\tPair Energy Slope :: %.3f GeV [%5b]%n",
+ pairsTrigger[i].getCutValue(TriggerModule.PAIR_ENERGY_SLOPE_LOW), pairCutsEnabled[i][5]);
+ System.out.printf("\tPair Energy Slope F :: %.4f GeV / mm%n",
+ pairsTrigger[i].getCutValue(TriggerModule.PAIR_ENERGY_SLOPE_F));
+ System.out.printf("\tPair Coplanarity :: %3.0f Degrees [%5b]%n",
+ pairsTrigger[i].getCutValue(TriggerModule.PAIR_COPLANARITY_HIGH), pairCutsEnabled[i][6]);
+ System.out.printf("\tPair Time Coincidence :: %2.0f ns [%5b]%n",
+ pairsTrigger[i].getCutValue(TriggerModule.PAIR_TIME_COINCIDENCE), true);
+ System.out.println();
+ }
+ }
}
|