Commit in hps-java/src/main on MAIN | |||
java/org/lcsim/hps/recon/ecal/HPSEcalReadoutToTriggerConverterDriver.java | +184 | added 1.1 | |
/HPSEcalFADCReadoutDriver.java | +10 | -18 | 1.14 -> 1.15 |
java/org/lcsim/hps/monitoring/ecal/TriggerPlots.java | +161 | -46 | 1.3 -> 1.4 |
resources/org/lcsim/hps/steering/ECalTriggerMonitoring.lcsim | +3 | -2 | 1.5 -> 1.6 |
+358 | -66 |
add yet another ECal converter driver; more trigger study stuff
diff -N HPSEcalReadoutToTriggerConverterDriver.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ HPSEcalReadoutToTriggerConverterDriver.java 22 Jun 2012 00:23:26 -0000 1.1 @@ -0,0 +1,184 @@
+package org.lcsim.hps.recon.ecal; + +import java.util.ArrayList; +import java.util.List; +import org.lcsim.event.CalorimeterHit; +import org.lcsim.event.EventHeader; +import org.lcsim.event.base.BaseRawCalorimeterHit; +import org.lcsim.geometry.Detector; +import org.lcsim.util.Driver; + +/** + * + * @version $Id: HPSEcalRawConverterDriver.java,v 1.2 2012/05/03 00:17:54 + * phansson Exp $ + */ +public class HPSEcalReadoutToTriggerConverterDriver extends Driver { + + String rawCollectionName = "EcalReadoutHits"; + String ecalReadoutName = "EcalHits"; + String ecalCollectionName = "EcalCalHits"; + int integralWindow = 30; + boolean debug = false; + double threshold = Double.NEGATIVE_INFINITY; + boolean applyBadCrystalMap = true; + boolean dropBadFADC = false; + double tp = 14.0; + double readoutPeriod = 4.0; + private int readoutThreshold = 50; + private int triggerThreshold = 80; + private double timeShift = 0; + + public HPSEcalReadoutToTriggerConverterDriver() { + } + + public void setTp(double tp) { + this.tp = tp; + } + + public void setDropBadFADC(boolean dropBadFADC) { + this.dropBadFADC = dropBadFADC; + } + + public void setThreshold(double threshold) { + this.threshold = threshold; + } + + public void setIntegralWindow(int integralWindow) { + this.integralWindow = integralWindow; + } + + public void setEcalCollectionName(String ecalCollectionName) { + this.ecalCollectionName = ecalCollectionName; + } + + public void setRawCollectionName(String rawCollectionName) { + this.rawCollectionName = rawCollectionName; + } + + public void setApplyBadCrystalMap(boolean apply) { + this.applyBadCrystalMap = apply; + } + + @Override + public void startOfData() { + if (ecalCollectionName == null) { + throw new RuntimeException("The parameter ecalCollectionName was not set!"); + } + } + + @Override + public void detectorChanged(Detector detector) { + } + + public boolean isBadCrystal(CalorimeterHit hit) { + return HPSEcalConditions.badChannelsLoaded() ? HPSEcalConditions.isBadChannel(hit.getCellID()) : false; + } + + public boolean isBadFADC(CalorimeterHit hit) { + long daqID = HPSEcalConditions.physicalToDaqID(hit.getCellID()); + return (HPSEcalConditions.getCrate(daqID) == 1 && HPSEcalConditions.getSlot(daqID) == 3); + } + + @Override + public void process(EventHeader event) { + ArrayList<CalorimeterHit> newHits = new ArrayList<CalorimeterHit>(); + + if (event.hasCollection(BaseRawCalorimeterHit.class, rawCollectionName)) { + List<BaseRawCalorimeterHit> hits = event.get(BaseRawCalorimeterHit.class, rawCollectionName); + + for (BaseRawCalorimeterHit hit : hits) { + CalorimeterHit newHit = HitDtoA(hit, integralWindow); + if (newHit != null && newHit.getRawEnergy() > threshold) { + if (applyBadCrystalMap && isBadCrystal(newHit)) { + continue; + } + if (dropBadFADC && isBadFADC(newHit)) { + continue; + } + newHits.add(newHit); + } + } + } + int flags = 0; + event.put(ecalCollectionName, newHits, CalorimeterHit.class, flags, ecalReadoutName); + } + + public CalorimeterHit HitDtoA(BaseRawCalorimeterHit hit, int window) { + double integral = tp * Math.E / readoutPeriod; + double readoutIntegral = (hit.getAmplitude() - window * HPSEcalConditions.physicalToPedestal(hit.getCellID())); + double amplitude = readoutIntegral / integral; + +// double time = readoutPeriod * (Math.random() - 1); + double time = 0 - timeShift; + timeShift += 0.01; + if (timeShift > readoutPeriod) { + timeShift = 0; + } + double triggerIntegral = 0; + boolean overThreshold = false; +// double readoutTime = -1; +// double triggerTime = -1; + while (true) { + double currentValue = amplitude * pulseAmplitude(time); +// if (readoutTime < 0 && currentValue > readoutThreshold) { +// readoutTime = time; +// } + if (!overThreshold && currentValue > triggerThreshold) { + overThreshold = true; +// triggerTime = time; + } + if (overThreshold) { + triggerIntegral += amplitude * pulseAmplitude(time); + if (currentValue < triggerThreshold) { + break; + } + } + time += readoutPeriod; + + if (time > 200.0) { + break; + } + } + +// System.out.format("%f %f %f\n", readoutIntegral, amplitude, triggerIntegral); + + if (hit.getTimeStamp() % 64 != 0) { + System.out.println("unexpected timestamp " + hit.getTimeStamp()); + } + int truncatedIntegral = (int) Math.floor(triggerIntegral / 128) * 128; + double hitTime = hit.getTimeStamp() / 16.0; +// if (readoutTime >= 0 && triggerTime >= 0) { +// hitTime += triggerTime - readoutTime; +// } + long id = hit.getCellID(); +// Hep3Vector pvec = hit.getDetectorElement().getGeometry().getPosition(); +// double [] pos = new double[3]; +// pos[0] = pvec.x(); +// pos[1] = pvec.y(); +// pos[2] = pvec.z(); +// if (truncatedIntegral<=0) return null; + if (truncatedIntegral <= 0) { + truncatedIntegral = 0; + } + CalorimeterHit h = new HPSRawCalorimeterHit(truncatedIntegral, hit.getPosition(), hitTime, id, 0); +// CalorimeterHit h = new HPSRawCalorimeterHit(triggerIntegral + 0.0000001, hit.getPosition(), hitTime, id, 0); + //+0.0000001 is a horrible hack to ensure rawEnergy!=BaseCalorimeterHit.UNSET_CORRECTED_ENERGY + return h; + } + + private double pulseAmplitude(double time) { + if (time <= 0.0) { + return 0.0; + } + if (tp > 0.0) { + return (time / tp) * Math.exp(1.0 - time / tp); + } else { + if (time < -tp) { + return 1.0; + } else { + return 0.0; + } + } + } +}
diff -u -r1.14 -r1.15 --- HPSEcalFADCReadoutDriver.java 11 Jun 2012 22:54:48 -0000 1.14 +++ HPSEcalFADCReadoutDriver.java 22 Jun 2012 00:23:26 -0000 1.15 @@ -26,7 +26,7 @@
* Simulates time evolution of preamp output pulse. * * @author Sho Uemura <[log in to unmask]>
- * @version $Id: HPSEcalFADCReadoutDriver.java,v 1.14 2012/06/11 22:54:48 meeg Exp $
+ * @version $Id: HPSEcalFADCReadoutDriver.java,v 1.15 2012/06/22 00:23:26 meeg Exp $
*/ public class HPSEcalFADCReadoutDriver extends HPSEcalReadoutDriver<RawCalorimeterHit> {
@@ -45,7 +45,7 @@
//length of readout pipeline (in readout cycles) private int pipelineLength = 2000; //shaper time constant in ns; negative values generate square pulses of the given width
- private double t0 = 18.0;
+ private double tp = 14.0;
//delay (number of readout periods) between start of summing window and output of hit to clusterer private int delay0 = 32; //start of readout window relative to trigger time (in readout cycles)
@@ -72,7 +72,7 @@
private int readoutThreshold = (int) threshold; private int triggerThreshold = (int) threshold; //amplitude ADC counts/GeV
- private double gain = 1000 * 80.0 / 60;
+ private double gain = 0.5*1000 * 80.0 / 60;
private double scaleFactor = 128; public HPSEcalFADCReadoutDriver() {
@@ -122,16 +122,8 @@
this.coincidenceWindow = coincidenceWindow; }
- public void setPedestal(double pedestal) { -// converter.setPedestal(pedestal); - } - - public void setScale(double scale) { -// converter.setScale(scale); - } - - public void setT0(double t0) { - this.t0 = t0;
+ public void setTp(double tp) { + this.tp = tp;
} public void setDelay0(int delay0) {
@@ -322,7 +314,7 @@
sumMap = new HashMap<Long, Double>(); timeMap = new HashMap<Long, Integer>(); outputQueue = new PriorityQueue(20, new HPSFADCCalorimeterHit.TimeComparator());
- pulseIntegral = t0 * Math.E / readoutPeriod;
+ pulseIntegral = tp * Math.E / readoutPeriod;
resetFADCBuffers(); }
@@ -347,13 +339,13 @@
} private double pulseAmplitude(double time) {
- if (time < 0.0) {
+ if (time <= 0.0) {
return 0.0; }
- if (t0 > 0.0) { - return (time / t0) * Math.exp(1.0 - time / t0);
+ if (tp > 0.0) { + return (time / tp) * Math.exp(1.0 - time / tp);
} else {
- if (time < -t0) {
+ if (time < -tp) {
return 1.0; } else { return 0.0;
diff -u -r1.3 -r1.4 --- TriggerPlots.java 11 Jun 2012 22:57:02 -0000 1.3 +++ TriggerPlots.java 22 Jun 2012 00:23:26 -0000 1.4 @@ -31,6 +31,7 @@
IHistogram2D noTopClusters, noBotClusters; IHistogram1D topClusTimePlot, botClusTimePlot, orClusTimePlot; IHistogram2D topClusTime2D, botClusTime2D, orClusTime2D;
+ IHistogram1D topClusTimeDiff, botClusTimeDiff, orClusTimeDiff;
IHistogram2D trigType; IHistogram1D simTrigTop, simTrigBot, simTrigAnd;
@@ -67,35 +68,28 @@
botTrigTimePlot = aida.histogram1D(detector.getDetectorName() + " : " + inputCollection + " : Trigger Time, Bottom", 32, 0, 32); orTrigTimePlot = aida.histogram1D(detector.getDetectorName() + " : " + inputCollection + " : Trigger Time, Or", 32, 0, 32);
- topTimePlot2D = aida.histogram2D(detector.getDetectorName() + " : " + inputCollection + " : Hit Time vs. Trig Time, Top", 100, 0, 100 * 4.0, 32, 0, 32); - botTimePlot2D = aida.histogram2D(detector.getDetectorName() + " : " + inputCollection + " : Hit Time vs. Trig Time, Bottom", 100, 0, 100 * 4.0, 32, 0, 32); - orTimePlot2D = aida.histogram2D(detector.getDetectorName() + " : " + inputCollection + " : Hit Time vs. Trig Time, Or", 100, 0, 100 * 4.0, 32, 0, 32);
+ topTimePlot2D = aida.histogram2D(detector.getDetectorName() + " : " + inputCollection + " : Hit Time vs. Trig Time, Top", 101, -4.0, 100 * 4.0, 33, -1, 32); + botTimePlot2D = aida.histogram2D(detector.getDetectorName() + " : " + inputCollection + " : Hit Time vs. Trig Time, Bottom", 101, -4.0, 100 * 4.0, 33, -1, 32); + orTimePlot2D = aida.histogram2D(detector.getDetectorName() + " : " + inputCollection + " : Hit Time vs. Trig Time, Or", 101, -4.0, 100 * 4.0, 33, -1, 32);
// Create the plotter regions. plotter.region(0).plot(topHitTimePlot);
- plotter.region(0).style().yAxisStyle().setParameter("scale", "log");
plotter.region(1).plot(botHitTimePlot);
- plotter.region(1).style().yAxisStyle().setParameter("scale", "log");
plotter.region(2).plot(orHitTimePlot);
- plotter.region(2).style().yAxisStyle().setParameter("scale", "log");
plotter.region(3).plot(topTrigTimePlot);
- plotter.region(3).style().yAxisStyle().setParameter("scale", "log");
plotter.region(4).plot(botTrigTimePlot);
- plotter.region(4).style().yAxisStyle().setParameter("scale", "log");
plotter.region(5).plot(orTrigTimePlot);
- plotter.region(5).style().yAxisStyle().setParameter("scale", "log");
+ for (int i = 0; i < 6; i++) { + plotter.region(i).style().yAxisStyle().setParameter("scale", "log"); + }
plotter.region(6).plot(topTimePlot2D);
- plotter.region(6).style().setParameter("hist2DStyle", "colorMap"); - plotter.region(6).style().dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow"); - plotter.region(6).style().zAxisStyle().setParameter("scale", "log");
plotter.region(7).plot(botTimePlot2D);
- plotter.region(7).style().setParameter("hist2DStyle", "colorMap"); - plotter.region(7).style().dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow"); - plotter.region(7).style().zAxisStyle().setParameter("scale", "log");
plotter.region(8).plot(orTimePlot2D);
- plotter.region(8).style().setParameter("hist2DStyle", "colorMap"); - plotter.region(8).style().dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow"); - plotter.region(8).style().zAxisStyle().setParameter("scale", "log");
+ for (int i = 6; i < 9; i++) { + plotter.region(i).style().setParameter("hist2DStyle", "colorMap"); + plotter.region(i).style().dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow"); + plotter.region(i).style().zAxisStyle().setParameter("scale", "log"); + }
plotter2 = aida.analysisFactory().createPlotterFactory().create("Clusters"); plotter2.setTitle("Clusters");
@@ -121,34 +115,40 @@
botClusTimePlot = aida.histogram1D(detector.getDetectorName() + " : " + clusterCollection + " : First Cluster Time, Bottom", 100, 0, 100 * 4.0); orClusTimePlot = aida.histogram1D(detector.getDetectorName() + " : " + clusterCollection + " : First Cluster Time, Or", 100, 0, 100 * 4.0);
- topClusTime2D = aida.histogram2D(detector.getDetectorName() + " : " + clusterCollection + " : Cluster Time vs. Trig Time, Top", 100, 0, 100 * 4.0, 32, 0, 32); - botClusTime2D = aida.histogram2D(detector.getDetectorName() + " : " + clusterCollection + " : Cluster Time vs. Trig Time, Bottom", 100, 0, 100 * 4.0, 32, 0, 32); - orClusTime2D = aida.histogram2D(detector.getDetectorName() + " : " + clusterCollection + " : Cluster Time vs. Trig Time, Or", 100, 0, 100 * 4.0, 32, 0, 32);
+ topClusTime2D = aida.histogram2D(detector.getDetectorName() + " : " + clusterCollection + " : Cluster Time vs. Trig Time, Top", 101, -4.0, 100 * 4.0, 33, -1, 32); + botClusTime2D = aida.histogram2D(detector.getDetectorName() + " : " + clusterCollection + " : Cluster Time vs. Trig Time, Bottom", 101, -4.0, 100 * 4.0, 33, -1, 32); + orClusTime2D = aida.histogram2D(detector.getDetectorName() + " : " + clusterCollection + " : Cluster Time vs. Trig Time, Or", 101, -4.0, 100 * 4.0, 33, -1, 32); + + topClusTimeDiff = aida.histogram1D(detector.getDetectorName() + " : " + clusterCollection + " : Cluster Time - Trig Time, Top", 200, -100 * 4.0, 100 * 4.0); + botClusTimeDiff = aida.histogram1D(detector.getDetectorName() + " : " + clusterCollection + " : Cluster Time - Trig Time, Bottom", 200, -100 * 4.0, 100 * 4.0); + orClusTimeDiff = aida.histogram1D(detector.getDetectorName() + " : " + clusterCollection + " : Cluster Time - Trig Time, Or", 200, -100 * 4.0, 100 * 4.0);
plotter3 = aida.analysisFactory().createPlotterFactory().create("Cluster Times"); plotter3.setTitle("Cluster Times"); plotterFrame.addPlotter(plotter3); plotter3.style().dataStyle().errorBarStyle().setVisible(false);
- plotter3.createRegions(2, 3);
+ plotter3.createRegions(3, 3);
plotter3.region(0).plot(topClusTimePlot);
- plotter3.region(0).style().yAxisStyle().setParameter("scale", "log");
plotter3.region(1).plot(botClusTimePlot);
- plotter3.region(1).style().yAxisStyle().setParameter("scale", "log");
plotter3.region(2).plot(orClusTimePlot);
- plotter3.region(2).style().yAxisStyle().setParameter("scale", "log");
+ for (int i = 0; i < 3; i++) { + plotter3.region(i).style().yAxisStyle().setParameter("scale", "log"); + }
plotter3.region(3).plot(topClusTime2D);
- plotter3.region(3).style().setParameter("hist2DStyle", "colorMap"); - plotter3.region(3).style().dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow"); - plotter3.region(3).style().zAxisStyle().setParameter("scale", "log");
plotter3.region(4).plot(botClusTime2D);
- plotter3.region(4).style().setParameter("hist2DStyle", "colorMap"); - plotter3.region(4).style().dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow"); - plotter3.region(4).style().zAxisStyle().setParameter("scale", "log");
plotter3.region(5).plot(orClusTime2D);
- plotter3.region(5).style().setParameter("hist2DStyle", "colorMap"); - plotter3.region(5).style().dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow"); - plotter3.region(5).style().zAxisStyle().setParameter("scale", "log");
+ for (int i = 3; i < 6; i++) { + plotter3.region(i).style().setParameter("hist2DStyle", "colorMap"); + plotter3.region(i).style().dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow"); + plotter3.region(i).style().zAxisStyle().setParameter("scale", "log"); + } + plotter3.region(6).plot(topClusTimeDiff); + plotter3.region(7).plot(botClusTimeDiff); + plotter3.region(8).plot(orClusTimeDiff); +// for (int i = 6; i < 9; i++) { +// plotter3.region(i).style().yAxisStyle().setParameter("scale", "log"); +// }
trigType = aida.histogram2D(detector.getDetectorName() + " : " + clusterCollection + " : Actual Trigger vs. Simulated Trigger", 4, 0, 4, 4, 0, 4); simTrigTop = aida.histogram1D(detector.getDetectorName() + " : " + clusterCollection + " : Simulated Trigger - Top-Trigger Events", 4, 0, 4);
@@ -261,9 +261,9 @@
if (event.hasCollection(HPSEcalCluster.class, clusterCollection)) { List<HPSEcalCluster> clusters = event.get(HPSEcalCluster.class, clusterCollection); //if (clusters.size()>1)
- double topTime = Double.POSITIVE_INFINITY; - double botTime = Double.POSITIVE_INFINITY; - double orTime = Double.POSITIVE_INFINITY;
+ double topTime = -4.0; + double botTime = -4.0; + double orTime = -4.0;
clusterloop: for (HPSEcalCluster cluster : clusters) { // for (CalorimeterHit hit : hits) {
@@ -273,13 +273,13 @@
} CalorimeterHit hit = cluster.getSeedHit();
- if (hit.getTime() < orTime) {
+ if (orTime < 0 || hit.getTime() < orTime) {
orTime = hit.getTime(); }
- if (hit.getIdentifierFieldValue("iy") > 0 && hit.getTime() < topTime) {
+ if (hit.getIdentifierFieldValue("iy") > 0 && (topTime < 0 || hit.getTime() < topTime)) {
topTime = hit.getTime(); }
- if (hit.getIdentifierFieldValue("iy") < 0 && hit.getTime() < botTime) {
+ if (hit.getIdentifierFieldValue("iy") < 0 && (botTime < 0 || hit.getTime() < botTime)) {
botTime = hit.getTime(); }
@@ -307,26 +307,35 @@
// botClusters.fill(cluster.getSeedHit().getIdentifierFieldValue("ix"), cluster.getSeedHit().getIdentifierFieldValue("iy")); // } }
- if (orTime != Double.POSITIVE_INFINITY) {
+ if (orTime >= 0 || orTrigTime >= 0) {
orClusTimePlot.fill(orTime); orClusTime2D.fill(orTime, orTrigTime);
+ if (orTime >= 0 || orTrigTime >= 0) { + orClusTimeDiff.fill(orTime - orTrigTime * 4.0); + }
}
- if (topTime != Double.POSITIVE_INFINITY) {
+ if (topTime >= 0 || topTrigTime >= 0) {
topClusTimePlot.fill(topTime); topClusTime2D.fill(topTime, topTrigTime);
+ if (topTime >= 0 || topTrigTime >= 0) { + topClusTimeDiff.fill(topTime - topTrigTime * 4.0); + }
}
- if (botTime != Double.POSITIVE_INFINITY) {
+ if (botTime >= 0 || botTrigTime >= 0) {
botClusTimePlot.fill(botTime); botClusTime2D.fill(botTime, botTrigTime);
+ if (botTime >= 0 || botTrigTime >= 0) { + botClusTimeDiff.fill(botTime - botTrigTime * 4.0); + }
} int trigTypeActual, trigTypeSim;
- if (topTime == Double.POSITIVE_INFINITY && botTime == Double.POSITIVE_INFINITY) {
+ if (topTime < 0 && botTime < 0) {
trigTypeSim = 0;
- } else if (topTime != Double.POSITIVE_INFINITY && botTime == Double.POSITIVE_INFINITY) {
+ } else if (topTime >= 0 && botTime < 0) {
trigTypeSim = 1;
- } else if (topTime == Double.POSITIVE_INFINITY && botTime != Double.POSITIVE_INFINITY) {
+ } else if (topTime < 0 && botTime >= 0) {
trigTypeSim = 2; } else { trigTypeSim = 3;
@@ -346,6 +355,90 @@
} trigType.fill(trigTypeSim, trigTypeActual);
+ + + + +// if(topTrig!=0) { +// +// //Find the tag +// double Emax=-999999.9; +// HPSEcalCluster cl_tag = null; +// int n = 0; +// for(HPSEcalCluster cl: clusters) { +// if(cl.getPosition()[1]>0) { +// ++n; +// aida.histogram1D("toptrig_cl_ecal_e_top").fill(cl.getEnergy()); +// if(cl.getEnergy()>Emax) { +// Emax = cl.getEnergy(); +// cl_tag = cl; +// } +// } +// } +// if(Emax>-9999) aida.histogram1D("toptrig_cl_ecal_emax_top").fill(Emax); +// aida.histogram1D("toptrig_cl_ecal_n_top").fill(n); +// +// if(cl_tag!=null) { +// //Find a probe +// int nb = 0; +// HPSEcalCluster cl_probe = null; +// double Emaxb=-999999.9; +// for(HPSEcalCluster cl: clusters) { +// if(cl.getPosition()[1]<=0) { +// ++nb; +// if(cl.getEnergy()>Emaxb) { +// Emaxb=cl.getEnergy(); +// cl_probe = cl; +// } +// } +// } +// +// //use only cases where the is a single probe candidate +// if(nb==0) { +// aida.histogram1D("toptrig_cl_ecal_n_bottom").fill(0); +// +// } else if(nb>1) { +// aida.histogram1D("toptrig_cl_ecal_n_bottom").fill(1); +// }else if(nb==1) { +// +// +// aida.histogram1D("toptrig_cl_ecal_n_bottom").fill(2); +// +// aida.histogram1D("toptrig_cl_ecal_e_bottom").fill(cl_probe.getEnergy()); +// +// if(botTrig!=0) { +// aida.histogram1D("toptrig_cl_ecal_n_bottom").fill(3); +// aida.histogram1D("toptrig_cl_ecal_e_bottom_trig").fill(cl_probe.getEnergy()); +// } +// +// if(cl_tag.getEnergy()>500) { +// aida.histogram1D("toptrig_cl_ecal_n_bottom").fill(4); +// aida.histogram1D("toptrigtag_cl_ecal_e_bottom").fill(cl_probe.getEnergy()); +// +// if(botTrig!=0) { +// aida.histogram1D("toptrig_cl_ecal_n_bottom").fill(5); +// aida.histogram1D("toptrigtag_cl_ecal_e_bottom_trig").fill(cl_probe.getEnergy()); +// } +// +// } +// +// } +// } //tag found +// }//topTrigger + + +// if((nevents % refreshRate) == 0) { +// IHistogram1D heff = hf.divide(aida.histogram1D("toptrig_cl_ecal_e_bottom_trig").title(), aida.histogram1D("toptrig_cl_ecal_e_bottom_trig"), aida.histogram1D("toptrig_cl_ecal_e_bottom")); +// plotter_trig_tag.region(7).clear(); +// plotter_trig_tag.region(7).plot(heff); +// IHistogram heff2 = hf.divide(aida.histogram1D("toptrigtag_cl_ecal_e_bottom_trig").title(), aida.histogram1D("toptrigtag_cl_ecal_e_bottom_trig"), aida.histogram1D("toptrig_cl_ecal_e_bottom")); +// plotter_trig_tag.region(8).clear(); +// plotter_trig_tag.region(8).plot(heff2); +// +// } + + //fillResetEff(aida.histogram1D("toptrig_cl_ecal_e_bottom_trig"),aida.histogram1D("toptrig_cl_ecal_e_bottom"),aida.histogram1D("toptrig_cl_ecal_e_bottom_trigeff")); + //fillResetEff(aida.histogram1D("toptrigtag_cl_ecal_e_bottom_trig"),aida.histogram1D("toptrigtag_cl_ecal_e_bottom"),aida.histogram1D("toptrigtag_cl_ecal_e_bottom_trigeff"));
} }
@@ -354,6 +447,28 @@
} public void endOfData() {
+ System.out.format("Top trigger bit: \t"); + for (int i = 0; i < 4; i++) { + System.out.format("%d\t", simTrigTop.binEntries(i)); + } + System.out.println(); + System.out.format("Bottom trigger bit: \t"); + for (int i = 0; i < 4; i++) { + System.out.format("%d\t", simTrigBot.binEntries(i)); + } + System.out.println(); + System.out.format("Both trigger bits: \t"); + for (int i = 0; i < 4; i++) { + System.out.format("%d\t", simTrigAnd.binEntries(i)); + } + System.out.println(); + + System.out.println("Events where top fired:"); + System.out.format("Bottom fired:\t\t%d\t%d\n", simTrigAnd.binEntries(2) + simTrigAnd.binEntries(3), simTrigAnd.binEntries(0) + simTrigAnd.binEntries(1)); + System.out.format("Bottom didn't fire:\t%d\t%d\n", simTrigTop.binEntries(2) + simTrigTop.binEntries(3), simTrigTop.binEntries(0) + simTrigTop.binEntries(1)); + System.out.println("Events where bottom fired:"); + System.out.format("Top fired:\t\t%d\t%d\n", simTrigAnd.binEntries(1) + simTrigAnd.binEntries(3), simTrigAnd.binEntries(0) + simTrigAnd.binEntries(2)); + System.out.format("Top didn't fire:\t%d\t%d\n", simTrigBot.binEntries(1) + simTrigBot.binEntries(3), simTrigBot.binEntries(0) + simTrigBot.binEntries(2));
plotterFrame.dispose(); } }
\ No newline at end of file
diff -u -r1.5 -r1.6 --- ECalTriggerMonitoring.lcsim 21 Jun 2012 18:59:45 -0000 1.5 +++ ECalTriggerMonitoring.lcsim 22 Jun 2012 00:23:26 -0000 1.6 @@ -25,12 +25,12 @@
</execute> <drivers> <driver name="HPSEcalConditions" type="org.lcsim.hps.recon.ecal.HPSEcalConditions"/>
- <driver name="EcalRawConverter" type="org.lcsim.hps.recon.ecal.HPSEcalRawConverterDriver">
+ <driver name="EcalRawConverter" type="org.lcsim.hps.recon.ecal.HPSEcalReadoutToTriggerConverterDriver">
<rawCollectionName>EcalReadoutHits</rawCollectionName> <integralWindow>35</integralWindow>
- <gain>1.0</gain>
<applyBadCrystalMap>false</applyBadCrystalMap> <dropBadFADC>true</dropBadFADC>
+ <tp>14.0</tp>
</driver> <driver name="EcalDaqPlots" type="org.lcsim.hps.monitoring.ecal.EcalDaqPlots"> </driver>
@@ -56,6 +56,7 @@
<driver name="EcalClusterer" type="org.lcsim.hps.recon.ecal.HPSEcalCTPClusterer"> <ecalName>Ecal</ecalName>
+ <clusterWindow>32.0</clusterWindow>
<ecalCollectionName>EcalCalHits</ecalCollectionName> </driver> <driver name="EcalHitPlots" type="org.lcsim.hps.monitoring.ecal.EcalHitPlots">
Use REPLY-ALL to reply to list
To unsubscribe from the LCD-CVS list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=LCD-CVS&A=1