Commit in hps-java/src/main on MAIN | |||
resources/org/lcsim/hps/steering/ECalMonitoring.lcsim | +4 | 1.2 -> 1.3 | |
/TestRunMonitoring.lcsim | +1 | -1 | 1.12 -> 1.13 |
java/org/lcsim/hps/monitoring/ecal/EcalEvsX.java | +96 | added 1.1 | |
java/org/lcsim/hps/recon/ecal/HPSEcalCluster.java | +11 | -11 | 1.3 -> 1.4 |
/HPSEcalRawConverter.java | +6 | -6 | 1.3 -> 1.4 |
/HPSEcalRawConverterDriver.java | +4 | -7 | 1.4 -> 1.5 |
java/org/lcsim/hps/evio/ECalEvioReader.java | +5 | -6 | 1.13 -> 1.14 |
+127 | -31 |
clusters have positions
diff -u -r1.2 -r1.3 --- ECalMonitoring.lcsim 4 May 2012 16:35:44 -0000 1.2 +++ ECalMonitoring.lcsim 5 May 2012 00:15:12 -0000 1.3 @@ -13,6 +13,7 @@
<driver name="EcalDaqPlots"/> <driver name="EcalMonitoringPlots"/> <driver name="EcalEventMonitor"/>
+ <driver name="EcalEvsX"/>
</execute> <drivers> <driver name="EcalRawConverter" type="org.lcsim.hps.recon.ecal.HPSEcalRawConverterDriver">
@@ -42,5 +43,8 @@
<ecalName>Ecal</ecalName> <ecalCollectionName>EcalCalHits</ecalCollectionName> </driver>
+ <driver name="EcalEvsX" type="org.lcsim.hps.monitoring.ecal.EcalEvsX"> + <inputCollection>EcalClusters</inputCollection> + </driver>
</drivers> </lcsim>
diff -u -r1.12 -r1.13 --- TestRunMonitoring.lcsim 4 May 2012 18:24:15 -0000 1.12 +++ TestRunMonitoring.lcsim 5 May 2012 00:15:12 -0000 1.13 @@ -16,7 +16,7 @@
<driver name="TrackerHitDriver"/> <driver name="CleanupDriver"/> <driver name="FastTrackResidualDriver"/>
- <driver name="EcalDaqPlots"/>
+<!-- <driver name="EcalDaqPlots"/>-->
<driver name="EcalMonitoringPlots"/> <driver name="EcalEventMonitor"/> <driver name="SVTOccupancyPlots"/>
diff -N EcalEvsX.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ EcalEvsX.java 5 May 2012 00:15:12 -0000 1.1 @@ -0,0 +1,96 @@
+package org.lcsim.hps.monitoring.ecal; + +import hep.aida.ICloud2D; +import hep.aida.IPlotter; +import hep.aida.IPlotterStyle; +import hep.aida.ref.plotter.PlotterRegion; + +import java.util.List; +import org.lcsim.event.Cluster; + +import org.lcsim.event.EventHeader; +import org.lcsim.geometry.Detector; +import org.lcsim.geometry.IDDecoder; +import org.lcsim.hps.monitoring.Resettable; +import org.lcsim.hps.recon.ecal.HPSEcalCluster; +import org.lcsim.util.Driver; +import org.lcsim.util.aida.AIDA; + +public class EcalEvsX extends Driver implements Resettable { + + String subdetectorName = "Ecal"; + String inputCollection = "EcalClusters"; + AIDA aida = AIDA.defaultInstance(); + IPlotter plotter; + ICloud2D EvsXPlot; + IDDecoder dec; + Detector detector; + int eventn = 0; + + public EcalEvsX() { + } + + public void setInputCollection(String inputCollection) { + this.inputCollection = inputCollection; + } + + public void setSubdetectorName(String subdetectorName) { + this.subdetectorName = subdetectorName; + } + + protected void detectorChanged(Detector detector) { + + this.detector = detector; + + if (detector.getSubdetector(subdetectorName) == null) { + throw new RuntimeException("There is no subdetector called " + subdetectorName + " in this detector"); + } + + // Cache the IDDecoder for the ECal. + dec = detector.getSubdetector(subdetectorName).getReadout().getIDDecoder(); + + // Setup the plotter. + plotter = aida.analysisFactory().createPlotterFactory().create("HPS ECal Monitoring Plots"); + + // Setup plots. + aida.tree().cd("/"); + EvsXPlot = aida.cloud2D(detector.getDetectorName() + " : " + inputCollection + " : E vs X"); + + // Create the plotter regions. + plotter.createRegion(); + plotter.style().statisticsBoxStyle().setVisible(false); + IPlotterStyle style = plotter.region(0).style(); + style.setParameter("hist2DStyle", "colorMap"); + style.dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow"); + plotter.region(0).plot(EvsXPlot); + ((PlotterRegion) plotter.region(0)).getPlot().setAllowUserInteraction(false); + ((PlotterRegion) plotter.region(0)).getPlot().setAllowPopupMenus(false); + plotter.show(); + } + + public void process(EventHeader event) { + if (event.hasCollection(HPSEcalCluster.class, inputCollection)) { + List<HPSEcalCluster> clusters = event.get(HPSEcalCluster.class, inputCollection); + for (HPSEcalCluster cluster : clusters) { + EvsXPlot.fill(cluster.getPosition()[0], cluster.getEnergy()); + } + ++eventn; + } + } + + public void endOfData() { + if (plotter != null) { + plotter.hide(); + plotter.destroyRegions(); + } + if (EvsXPlot != null) { + EvsXPlot.reset(); + } + } + + public void reset() { + plotter.hide(); + EvsXPlot.reset(); + detectorChanged(detector); + } +}
\ No newline at end of file
diff -u -r1.3 -r1.4 --- HPSEcalCluster.java 17 Nov 2011 01:43:26 -0000 1.3 +++ HPSEcalCluster.java 5 May 2012 00:15:12 -0000 1.4 @@ -5,15 +5,16 @@
package org.lcsim.hps.recon.ecal; import org.lcsim.event.CalorimeterHit;
-import org.lcsim.geometry.IDDecoder;
import org.lcsim.recon.cluster.util.BasicCluster; /** * Cluster with position defined by seed hit (for 1-bit trigger)
+ *
* @author Sho Uemura <[log in to unmask]>
- * @version $Id: HPSEcalCluster.java,v 1.3 2011/11/17 01:43:26 meeg Exp $
+ * @version $Id: HPSEcalCluster.java,v 1.4 2012/05/05 00:15:12 meeg Exp $
*/ public class HPSEcalCluster extends BasicCluster {
+
CalorimeterHit seedHit = null; long cellID;
@@ -24,22 +25,21 @@
public HPSEcalCluster(CalorimeterHit seedHit) { this.seedHit = seedHit; this.cellID = seedHit.getCellID();
- this.addHit(seedHit);
+ this.addHit(seedHit);
} public CalorimeterHit getSeedHit() { if (seedHit == null) { CalorimeterHit hit = hits.get(0);
- if (hit == null)
+ if (hit == null) {
throw new RuntimeException("HPSEcalCluster has no hits");
- IDDecoder dec = hit.getIDDecoder(); - dec.setID(hit.getCellID()); - seedHit = new HPSRawCalorimeterHit(0.0, dec.getPosition(), 0.0, cellID, hit.getType());
+ } + seedHit = new HPSRawCalorimeterHit(0.0, null, 0.0, cellID, hit.getType());
} return seedHit; }
- - public double[] getPosition() { - return getSeedHit().getPosition(); - }
+ +// public double[] getPosition() { +// return getSeedHit().getPosition(); +// }
}
diff -u -r1.3 -r1.4 --- HPSEcalRawConverter.java 4 May 2012 16:35:44 -0000 1.3 +++ HPSEcalRawConverter.java 5 May 2012 00:15:12 -0000 1.4 @@ -1,8 +1,8 @@
package org.lcsim.hps.recon.ecal; import org.lcsim.event.CalorimeterHit;
-import org.lcsim.event.RawCalorimeterHit;
import org.lcsim.event.RawTrackerHit;
+import org.lcsim.event.base.BaseRawCalorimeterHit;
/** *
@@ -25,7 +25,7 @@
return HPSEcalConditions.physicalToPedestal(hit.getCellID()); }
- public int getPedestal(RawCalorimeterHit hit) {
+ public int getPedestal(BaseRawCalorimeterHit hit) {
if (!HPSEcalConditions.pedestalsLoaded()) { HPSEcalConditions.loadPedestals(); }
@@ -56,17 +56,17 @@
double time = 0.0; long id = hit.getCellID(); double rawEnergy = (double) sumADC(hit);
-// Hep3Vector pvec = hit.getDetectorElement().getGeometry().getPosition();
+ double[] pos = hit.getDetectorElement().getGeometry().getPosition().v();
// double [] pos = new double[3]; // pos[0] = pvec.x(); // pos[1] = pvec.y(); // pos[2] = pvec.z();
- CalorimeterHit h = new HPSRawCalorimeterHit(rawEnergy + 0.0000001, null, time, id, 0);
+ CalorimeterHit h = new HPSRawCalorimeterHit(rawEnergy + 0.0000001, pos, time, id, 0);
//+0.0000001 is a horrible hack to ensure rawEnergy!=BaseCalorimeterHit.UNSET_CORRECTED_ENERGY return h; }
- public CalorimeterHit HitDtoA(RawCalorimeterHit hit, int window) {
+ public CalorimeterHit HitDtoA(BaseRawCalorimeterHit hit, int window) {
double time = 0.0; long id = hit.getCellID(); double rawEnergy = (double) hit.getAmplitude() - window * getPedestal(hit);
@@ -75,7 +75,7 @@
// pos[0] = pvec.x(); // pos[1] = pvec.y(); // pos[2] = pvec.z();
- CalorimeterHit h = new HPSRawCalorimeterHit(rawEnergy + 0.0000001, null, time, id, 0);
+ CalorimeterHit h = new HPSRawCalorimeterHit(rawEnergy + 0.0000001, hit.getPosition(), time, id, 0);
//+0.0000001 is a horrible hack to ensure rawEnergy!=BaseCalorimeterHit.UNSET_CORRECTED_ENERGY return h; }
diff -u -r1.4 -r1.5 --- HPSEcalRawConverterDriver.java 4 May 2012 17:51:59 -0000 1.4 +++ HPSEcalRawConverterDriver.java 5 May 2012 00:15:12 -0000 1.5 @@ -4,10 +4,9 @@
import java.util.List; import org.lcsim.event.CalorimeterHit; import org.lcsim.event.EventHeader;
-import org.lcsim.event.RawCalorimeterHit;
import org.lcsim.event.RawTrackerHit;
+import org.lcsim.event.base.BaseRawCalorimeterHit;
import org.lcsim.geometry.Detector;
-import org.lcsim.geometry.Subdetector;
import org.lcsim.util.Driver; /**
@@ -17,8 +16,6 @@
*/ public class HPSEcalRawConverterDriver extends Driver {
- -
HPSEcalRawConverter converter = null; String rawCollectionName = "EcalReadoutHits"; String ecalReadoutName = "EcalHits";
@@ -71,10 +68,10 @@
// List<List<CalorimeterHit>> lll = event.get(CalorimeterHit.class); // System.out.println("lll size " + lll.size()); }
- if (event.hasCollection(RawCalorimeterHit.class, rawCollectionName)) { - List<RawCalorimeterHit> hits = event.get(RawCalorimeterHit.class, rawCollectionName);
+ if (event.hasCollection(BaseRawCalorimeterHit.class, rawCollectionName)) { + List<BaseRawCalorimeterHit> hits = event.get(BaseRawCalorimeterHit.class, rawCollectionName);
- for (RawCalorimeterHit hit : hits) {
+ for (BaseRawCalorimeterHit hit : hits) {
newHits.add(converter.HitDtoA(hit, integralWindow)); } // String s = ecalCollectionName; //"EcalCalHits";
diff -u -r1.13 -r1.14 --- ECalEvioReader.java 4 May 2012 17:18:57 -0000 1.13 +++ ECalEvioReader.java 5 May 2012 00:15:12 -0000 1.14 @@ -4,7 +4,6 @@
import java.util.List; import org.jlab.coda.jevio.*; import org.lcsim.event.EventHeader;
-import org.lcsim.event.RawCalorimeterHit;
import org.lcsim.event.RawTrackerHit; import org.lcsim.event.base.BaseRawCalorimeterHit; import org.lcsim.event.base.BaseRawTrackerHit;
@@ -13,14 +12,14 @@
/** * * @author Sho Uemura <[log in to unmask]>
- * @version $Id: ECalEvioReader.java,v 1.13 2012/05/04 17:18:57 meeg Exp $
+ * @version $Id: ECalEvioReader.java,v 1.14 2012/05/05 00:15:12 meeg Exp $
*/ public class ECalEvioReader extends EvioReader { // Names of subdetectors. private String ecalName = "Ecal"; private int bankTag = EventConstants.ECAL_PULSE_INTEGRAL_BANK_TAG;
- private Class hitClass = RawCalorimeterHit.class;
+ private Class hitClass = BaseRawCalorimeterHit.class;
public ECalEvioReader() { hitCollectionName = "EcalReadoutHits";
@@ -66,7 +65,7 @@
break; case EventConstants.ECAL_PULSE_INTEGRAL_BANK_TAG: hits.addAll(makeIntegralHits(cdata, crateBankTag));
- hitClass = RawCalorimeterHit.class;
+ hitClass = BaseRawCalorimeterHit.class;
break; default: throw new RuntimeException("Unsupported ECal format - bank tag " + slotBank.getHeader().getTag());
@@ -171,8 +170,8 @@
return hits; }
- private List<RawCalorimeterHit> makeIntegralHits(CompositeData cdata, int crate) { - List<RawCalorimeterHit> hits = new ArrayList<RawCalorimeterHit>();
+ private List<BaseRawCalorimeterHit> makeIntegralHits(CompositeData cdata, int crate) { + List<BaseRawCalorimeterHit> hits = new ArrayList<BaseRawCalorimeterHit>();
if (debug) { int n = cdata.getNValues().size(); for (int i = 0; i < n; i++) {
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