Author: [log in to unmask]
Date: Thu Jun 18 17:24:57 2015
New Revision: 3162
Log:
fix plots, dumpe stuff to text file
Modified:
java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SampleZeroHVBiasChecker.java
Modified: java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SampleZeroHVBiasChecker.java
=============================================================================
--- java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SampleZeroHVBiasChecker.java (original)
+++ java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SampleZeroHVBiasChecker.java Thu Jun 18 17:24:57 2015
@@ -7,8 +7,9 @@
import hep.aida.IPlotterFactory;
import hep.aida.ITree;
-import java.text.SimpleDateFormat;
-import java.util.Calendar;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.PrintWriter;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@@ -20,17 +21,17 @@
import org.hps.conditions.svt.SvtBiasConditionsLoader;
import org.hps.conditions.svt.SvtBiasMyaDumpReader;
import org.hps.conditions.svt.SvtBiasMyaDumpReader.SvtBiasRunRange;
+import org.hps.recon.ecal.triggerbank.AbstractIntData;
+import org.hps.recon.ecal.triggerbank.HeadBankData;
+import org.hps.util.BasicLogFormatter;
import org.lcsim.detector.tracker.silicon.HpsSiSensor;
import org.lcsim.event.EventHeader;
import org.lcsim.event.GenericObject;
import org.lcsim.event.RawTrackerHit;
import org.lcsim.geometry.Detector;
import org.lcsim.util.Driver;
+import org.lcsim.util.aida.AIDA;
import org.lcsim.util.log.LogUtil;
-import org.hps.monitoring.drivers.svt.SvtPlotUtils;
-import org.hps.recon.ecal.triggerbank.AbstractIntData;
-import org.hps.recon.ecal.triggerbank.HeadBankData;
-import org.hps.util.BasicLogFormatter;
/**
@@ -49,13 +50,11 @@
private static ITree tree;
IHistogramFactory histogramFactory;
IPlotterFactory plotterFactory = IAnalysisFactory.create().createPlotterFactory();
-
- // Histogram maps
IPlotter plotter1;
IPlotter plotter2;
IPlotter plotter3;
IPlotter plotter4;
-
+ private boolean showPlots = false;
List<HpsSiSensor> sensors;
private Map<HpsSiSensor, IHistogram1D> hists_rawadc;
@@ -64,31 +63,53 @@
private Map<HpsSiSensor, IHistogram1D> hists_rawadcnoiseOFF;
private String rawTrackerHitCollectionName = "SVTRawTrackerHits";
private String triggerBankCollectionName ="TriggerBank";
- private String fitFile = null;
- private boolean plotTimeSeries = false;
private static final String subdetectorName = "Tracker";
List<SvtBiasRunRange> runRanges;
SvtBiasRunRange runRange = null;
- private int eventRefreshRate;
- private int eventCount;
private Date eventDate = null;
-
- public void setFitFile(String fitFile) {
- this.fitFile = fitFile;
- }
-
- public void setPlotTimeSeries(boolean plotTimeSeries) {
- this.plotTimeSeries = plotTimeSeries;
- }
-
- public void setEventRefreshRate(int eventRefreshRate) {
- this.eventRefreshRate = eventRefreshRate;
- }
-
+ private int eventCount = 0;
+ FileWriter fWriter;
+ PrintWriter pWriter;
+ private String fileName = "biasoutput.txt";
+ private int eventCountHvOff = 0;
+ private String runSpreadSheetPath;
+ private String myaDumpPath;
+
+
+ public void setMyaDumpPath(String myaDumpPath) {
+ this.myaDumpPath = myaDumpPath;
+ }
+
+ public void setRunSpreadSheetPath(String runSpreadSheetPath) {
+ this.runSpreadSheetPath = runSpreadSheetPath;
+ }
+
+ public void setFileName(String fileName) {
+ this.fileName = fileName;
+ }
+
+
+
+ public void setShowPlots(boolean showPlots) {
+ this.showPlots = showPlots;
+ }
+
+
@Override
protected void detectorChanged(Detector detector) {
-
- tree = IAnalysisFactory.create().createTreeFactory().create();
+
+ try {
+ fWriter = new FileWriter(fileName);
+ } catch (IOException e) {
+ throw new RuntimeException("Cannot open file " + fileName, e);
+ }
+ pWriter = new PrintWriter(fWriter);
+
+
+
+
+ tree = IAnalysisFactory.create().createTreeFactory().create();
+ tree.cd("");
histogramFactory = IAnalysisFactory.create().createHistogramFactory(tree);
hists_rawadc = new HashMap<HpsSiSensor, IHistogram1D>();
@@ -108,30 +129,33 @@
plotter4.createRegions(6, 6);
for (HpsSiSensor sensor : sensors) {
- hists_rawadc.put(sensor, histogramFactory.createHistogram1D(sensor.getName() + " raw adc - ped", 100, -1000.0, 5000.0));
+ AIDA aida = AIDA.defaultInstance();
+ hists_rawadc.put(sensor, aida.histogram1D(sensor.getName() + " raw adc - ped", 100, -1000.0, 5000.0));
plotter1.region(SvtPlotUtils.computePlotterRegion(sensor)).plot(hists_rawadc.get(sensor));
- hists_rawadcnoise.put(sensor, histogramFactory.createHistogram1D(sensor.getName() + " raw adc - ped maxSample>4", 100, -1000.0, 1000.0));
+ hists_rawadcnoise.put(sensor, aida.histogram1D(sensor.getName() + " raw adc - ped maxSample>4", 100, -1000.0, 1000.0));
plotter2.region(SvtPlotUtils.computePlotterRegion(sensor)).plot(hists_rawadcnoise.get(sensor));
- hists_rawadcnoiseON.put(sensor, histogramFactory.createHistogram1D(sensor.getName() + " raw adc - ped maxSample>4 ON", 100, -1000.0, 1000.0));
+ hists_rawadcnoiseON.put(sensor, aida.histogram1D(sensor.getName() + " raw adc - ped maxSample>4 ON", 100, -1000.0, 1000.0));
plotter3.region(SvtPlotUtils.computePlotterRegion(sensor)).plot(hists_rawadcnoiseON.get(sensor));
- hists_rawadcnoiseOFF.put(sensor, histogramFactory.createHistogram1D(sensor.getName() + " raw adc - ped maxSample>4 OFF", 100, -1000.0, 1000.0));
+ hists_rawadcnoiseOFF.put(sensor, aida.histogram1D(sensor.getName() + " raw adc - ped maxSample>4 OFF", 100, -1000.0, 1000.0));
plotter4.region(SvtPlotUtils.computePlotterRegion(sensor)).plot(hists_rawadcnoiseOFF.get(sensor));
}
- plotter1.show();
- plotter2.show();
- plotter3.show();
- plotter4.show();
-
-
-
- RunMap runmap = SvtBiasConditionsLoader.getRunMapFromSpreadSheet("/Users/phansson/work/HPS/software/kepler2/hps-java-sandbox/HPS_Runs_2015-SVT_timing_guesses_for_Jeremy.csv");
- SvtBiasMyaDumpReader biasDumpReader = new SvtBiasMyaDumpReader("/Users/phansson/work/HPS/software/kepler2/hps-java-sandbox/biascrawling/svtbiasmon/SVT:bias:bot:20:v_sens.mya");
+ if(showPlots) {
+ plotter1.show();
+ plotter2.show();
+ plotter3.show();
+ plotter4.show();
+ }
+
+
+ RunMap runmap = SvtBiasConditionsLoader.getRunMapFromSpreadSheet(runSpreadSheetPath);
+ SvtBiasMyaDumpReader biasDumpReader = new SvtBiasMyaDumpReader(myaDumpPath);
//SvtBiasConditionsLoader.setTimeOffset(Calendar.)
runRanges = SvtBiasConditionsLoader.getBiasRunRanges(runmap, biasDumpReader);
logger.info("Print all " + runRanges.size() + " bias run ranges:");
for(SvtBiasRunRange r : runRanges) {
logger.info(r.toString());
+ pWriter.println(r.toString());
}
@@ -158,10 +182,15 @@
- if (event.hasCollection(RawTrackerHit.class, rawTrackerHitCollectionName)) {
- // Get RawTrackerHit collection from event.
- List<RawTrackerHit> rawTrackerHits = event.get(RawTrackerHit.class, rawTrackerHitCollectionName);
+ Date newEventDate = getEventTimeStamp(event);
+ if(newEventDate!=null) {
+ eventDate = newEventDate;
+ }
+
+ if(eventDate!=null) {
+
eventCount++;
+
if(runRange==null) {
for(SvtBiasRunRange r : runRanges) {
if (r.getRun().getRun()==event.getRunNumber()) {
@@ -169,134 +198,56 @@
}
}
}
- for (RawTrackerHit hit : rawTrackerHits) {
- HpsSiSensor sensor = (HpsSiSensor) hit.getDetectorElement();
- int strip = hit.getIdentifierFieldValue("strip");
- double pedestal = sensor.getPedestal(strip, 0);
- hists_rawadc.get(sensor).fill(hit.getADCValues()[0] - pedestal);
+ boolean hvOn = runRange.getRanges().includes(eventDate);
+ if(!hvOn) {
+ logger.info("Run " + event.getRunNumber() + " Event " + event.getEventNumber() + " date " + eventDate.toString() + " epoch " + eventDate.getTime() + " hvOn " + (hvOn?"YES":"NO"));
+ pWriter.println("Run " + event.getRunNumber() + " Event " + event.getEventNumber() + " date " + eventDate.toString() + " epoch " + eventDate.getTime() + " hvOn " + (hvOn?"YES":"NO"));
+ eventCountHvOff++;
+ }
+ if (event.hasCollection(RawTrackerHit.class, rawTrackerHitCollectionName)) {
+ // Get RawTrackerHit collection from event.
+ List<RawTrackerHit> rawTrackerHits = event.get(RawTrackerHit.class, rawTrackerHitCollectionName);
- int maxSample = 0;
- double maxSampleValue = 0;
- for(int s=0;s<6;++s) {
- if(((double)hit.getADCValues()[s] - pedestal)>maxSampleValue) {
- maxSample = s;
- maxSampleValue = ((double) hit.getADCValues()[s]) - pedestal;
+ for (RawTrackerHit hit : rawTrackerHits) {
+ HpsSiSensor sensor = (HpsSiSensor) hit.getDetectorElement();
+ int strip = hit.getIdentifierFieldValue("strip");
+ double pedestal = sensor.getPedestal(strip, 0);
+ hists_rawadc.get(sensor).fill(hit.getADCValues()[0] - pedestal);
+
+ int maxSample = 0;
+ double maxSampleValue = 0;
+ for(int s=0;s<6;++s) {
+ if(((double)hit.getADCValues()[s] - pedestal)>maxSampleValue) {
+ maxSample = s;
+ maxSampleValue = ((double) hit.getADCValues()[s]) - pedestal;
+ }
}
- }
- if(maxSample>=4) {
- hists_rawadcnoise.get(sensor).fill(hit.getADCValues()[0] - pedestal);
-
- Date newEventDate = getEventTimeStamp(event);
- if(newEventDate!=null) {
- eventDate = newEventDate;
- }
- if(eventDate!=null) {
- boolean hvOn = runRange.getRanges().includes(eventDate);
- logger.info("Run " + event.getRunNumber() + " Event " + event.getEventNumber() + " date " + eventDate.toString() + " epoch " + eventDate.getTime() + " hvOn " + (hvOn?"YES":"NO"));
-
+ if(maxSample>=4) {
+ hists_rawadcnoise.get(sensor).fill(hit.getADCValues()[0] - pedestal);
if(hvOn) {
hists_rawadcnoiseON.get(sensor).fill(hit.getADCValues()[0] - pedestal);
} else {
hists_rawadcnoiseOFF.get(sensor).fill(hit.getADCValues()[0] - pedestal);
}
- } else {
- logger.warning("No eventDatae for run " + event.getRunNumber() + " Event " + event.getEventNumber());
}
}
- //hists_rawadc.get(sensor).fill(strip, hit.getADCValues()[0] - pedestal);
-
-
-
- }
-// if (eventCount % eventRefreshRate == 0) {
-// for (HpsSiSensor sensor : sensors) {
-// IHistogram2D hist = hists.get(sensor);
-//// hist.
-// }
-// }
-
- }
- }
-
-// private void getMean2D(IHistogram2D hist2D) {
-// int nx = hist2D.xAxis().bins();
-// int ny = hist2D.yAxis().bins();
-// double[][] means = new double[nx][ny];
-// for (int ix = 0; ix < nx; ix++) {
-// for (int iy = 0; iy < ny; iy++) {
-// means[ix][iy] = hist2D.binHeight(ix, iy) / hist2D.binEntries(ix, iy);
-// }
-// }
-// hist2D.reset();
-// for (int ix = 0; ix < nx; ix++) {
-// for (int iy = 0; iy < ny; iy++) {
-// double x = hist2D.xAxis().binCenter(ix);
-// double y = hist2D.yAxis().binCenter(iy);
-// hist2D.fill(x, y, means[ix][iy]);
-// }
-// }
-//
-// IFitter fitter = AIDA.defaultInstance().analysisFactory().createFitFactory().createFitter("chi2");
-//
-// }
-//
-// IFitResult fitGaussian(IHistogram1D h1d, IFitter fitter, String range) {
-// double[] init = {h1d.maxBinHeight(), h1d.mean(), h1d.rms()};
-// IFitResult ifr = null;
-// try {
-// ifr = fitter.fit(h1d, "g", init, range);
-// } catch (RuntimeException ex) {
-// System.out.println(this.getClass().getSimpleName() + ": caught exception in fitGaussian");
-// }
-// return ifr;
-//// double[] init = {20.0, 0.0, 1.0, 20, -1};
-//// return fitter.fit(h1d, "g+p1", init, range);
-// }
+ }
+ }
+ }
+
@Override
public void endOfData() {
- if (fitFile == null) {
- return;
- }
-
- /*
- IFitter fitter = aida.analysisFactory().createFitFactory().createFitter("chi2");
-// fitter.setFitMethod("CleverChiSquared");
-// fitter.setFitMethod("binnedMaximumLikelihood");
-
- PrintWriter fitWriter = null;
+
+ logger.info("eventCount " + Integer.toString(eventCount) + " eventCountHvOff " + Integer.toString(eventCountHvOff));
+ pWriter.println("eventCount " + Integer.toString(eventCount) + " eventCountHvOff " + Integer.toString(eventCountHvOff));
+
try {
- fitWriter = new PrintWriter(fitFile);
- } catch (FileNotFoundException ex) {
- Logger.getLogger(SampleZeroHVBiasChecker.class.getName()).log(Level.SEVERE, null, ex);
- }
-
-// for (SiSensor sensor : hists_rawadc.keySet()) {
-// fitWriter.println(sensor.getName());
-// IHistogram1D hist = hists_rawadc.get(sensor);
-// //IHistogram1D fit = aida.histogram1D("1D fit", hist.yAxis().bins(), hist.yAxis().lowerEdge(), hist.yAxis().upperEdge());
-// for (int i = 0; i < 640; i++) {
-// fitWriter.format("%d\t", i);
-// for (int y = 0; y < hist.yAxis().bins(); y++) {
-// for (int j = 0; j < hist.binHeight(i, y); j++) {
-// fit.fill(hist.binMeanY(i, y));
-// }
-// }
-// fitWriter.format("%f\t%f\t%f\t", fit.sumBinHeights(), fit.mean(), fit.rms());
-// if (fit.sumBinHeights() > 100) {
-// IFitResult result = fitter.fit(fit, "g");
-//
-// if (result.isValid()) {
-// fitWriter.format("%f\t%f\t", result.fittedParameter("mean"), result.fittedParameter("sigma"));
-// }
-// }
-// fitWriter.println();
-// fit.reset();
-// }
-// fitWriter.flush();
- }
- fitWriter.close();
- aida.tree().rm("1D fit");
- */
+ pWriter.close();
+ fWriter.close();
+ } catch(IOException ex) {
+ logger.log(Level.SEVERE, null, ex);
+ }
+
}
|