Author: [log in to unmask] Date: Wed Jun 10 17:32:39 2015 New Revision: 3130 Log: add option for SVT readout sim to use timing conditions Modified: java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/SvtMonitoring.java java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SvtClusterPlots.java java/trunk/tracking/src/main/java/org/hps/readout/svt/SimpleSvtReadout.java Modified: java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/SvtMonitoring.java ============================================================================= --- java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/SvtMonitoring.java (original) +++ java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/SvtMonitoring.java Wed Jun 10 17:32:39 2015 @@ -96,11 +96,11 @@ IHistogram2D t0ChanPlot = createSensorPlot2D(plotDir + triggerType + "/"+"t0ChanBigHit_", sensor, 640, -0.5, 639.5, 200, -100., 100.); IHistogram2D ampChanPlot = createSensorPlot2D(plotDir + triggerType + "/"+"ampChanHit_", sensor, 640, -0.5, 639.5, 50, 0, 4000); IHistogram2D chiprobChanPlot = createSensorPlot2D(plotDir + triggerType + "/"+"chiprobChanBigHit_", sensor, 640, -0.5, 639.5, 50, 0, 1.0); - IHistogram2D t0TrigTimeHitPlot = createSensorPlot2D(plotDir + triggerType + "/"+"t0BigHitTrigTime_", sensor, 400, -100., 100., 6, -2, 22); + IHistogram2D t0TrigTimeHitPlot = createSensorPlot2D(plotDir + triggerType + "/"+"t0BigHitTrigTime_", sensor, 400, -100., 100., 6, 0, 24); IHistogram1D chiProbPlot = createSensorPlot(plotDir + triggerType + "/"+"chiProb_", sensor, 50, 0, 1.0); IHistogram1D t0ClusterPlot = createSensorPlot(plotDir + triggerType + "/"+"t0Cluster_", sensor, 400, -100., 100.); - IHistogram2D t0TrigTimePlot = createSensorPlot2D(plotDir + triggerType + "/"+"t0ClusterTrigTime_", sensor, 400, -100., 100., 6, -2, 22); + IHistogram2D t0TrigTimePlot = createSensorPlot2D(plotDir + triggerType + "/"+"t0ClusterTrigTime_", sensor, 400, -100., 100., 6, 0, 24); IHistogram1D dedxClusterPlot = createSensorPlot(plotDir + triggerType + "/"+"electrons_", sensor, 50, 0., 10.); occupancyPlot.reset(); } Modified: java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SvtClusterPlots.java ============================================================================= --- java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SvtClusterPlots.java (original) +++ java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SvtClusterPlots.java Wed Jun 10 17:32:39 2015 @@ -245,10 +245,10 @@ plotters.get("SVT-trigger timing top-bottom").createRegions(1, 2); hitTimeTrigTimePlots.put("Top", - histogramFactory.createHistogram2D("Top Cluster Time vs. Trigger Phase", 100, -50, 50, 6, -2, 22)); + histogramFactory.createHistogram2D("Top Cluster Time vs. Trigger Phase", 100, -50, 50, 6, 0, 24)); plotters.get("SVT-trigger timing top-bottom").region(0).plot(hitTimeTrigTimePlots.get("Top"), this.createStyle(null, "Cluster Time [ns]", "Trigger Phase[ns]")); hitTimeTrigTimePlots.put("Bottom", - histogramFactory.createHistogram2D("Bottom Cluster Time vs. Trigger Phase", 100, -50, 50, 6, -2, 22)); + histogramFactory.createHistogram2D("Bottom Cluster Time vs. Trigger Phase", 100, -50, 50, 6, 0, 24)); plotters.get("SVT-trigger timing top-bottom").region(1).plot(hitTimeTrigTimePlots.get("Bottom"), this.createStyle(null, "Cluster Time [ns]", "Trigger Phase[ns]")); plotters.put("SVT-trigger timing by phase", plotterFactory.create("SVT-trigger timing by phase")); Modified: java/trunk/tracking/src/main/java/org/hps/readout/svt/SimpleSvtReadout.java ============================================================================= --- java/trunk/tracking/src/main/java/org/hps/readout/svt/SimpleSvtReadout.java (original) +++ java/trunk/tracking/src/main/java/org/hps/readout/svt/SimpleSvtReadout.java Wed Jun 10 17:32:39 2015 @@ -6,6 +6,8 @@ import java.util.Map; import java.util.PriorityQueue; import java.util.Set; +import org.hps.conditions.database.DatabaseConditionsManager; +import org.hps.conditions.svt.SvtTimingConstants; import org.lcsim.detector.tracker.silicon.ChargeCarrier; import org.lcsim.detector.tracker.silicon.HpsSiSensor; @@ -57,6 +59,8 @@ private boolean noPileup = false; private boolean addNoise = true; + private boolean useTimingConditions = false; + // cut settings private boolean enableThresholdCut = true; private int samplesAboveThreshold = 3; @@ -105,6 +109,10 @@ public void setReadoutLatency(double readoutLatency) { this.readoutLatency = readoutLatency; + } + + public void setUseTimingConditions(boolean useTimingConditions) { + this.useTimingConditions = useTimingConditions; } /** @@ -150,6 +158,12 @@ PriorityQueue<StripHit>[] hitQueues = new PriorityQueue[HPSSVTConstants.TOTAL_STRIPS_PER_SENSOR]; hitMap.put(sensor, hitQueues); } + } + + if (useTimingConditions) { + SvtTimingConstants timingConstants = DatabaseConditionsManager.getInstance().getCachedConditions(SvtTimingConstants.SvtTimingConstantsCollection.class, "svt_timing_constants").getCachedData().get(0); + readoutOffset = 4 * (timingConstants.getOffsetPhase() + 5); + readoutLatency = 240.0 + timingConstants.getOffsetTime(); } }