1 added + 6 modified, total 7 files
hps-java/src/main/resources/org/lcsim/hps/steering
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>
hps-java/src/main/resources/org/lcsim/hps/steering
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"/>
hps-java/src/main/java/org/lcsim/hps/monitoring/ecal
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
hps-java/src/main/java/org/lcsim/hps/recon/ecal
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();
+// }
}
hps-java/src/main/java/org/lcsim/hps/recon/ecal
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;
}
hps-java/src/main/java/org/lcsim/hps/recon/ecal
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";
hps-java/src/main/java/org/lcsim/hps/evio
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++) {
CVSspam 0.2.12