hps-java/src/main/resources/org/lcsim/hps/steering
diff -u -r1.1 -r1.2
--- EcalGainDriver.lcsim 25 Jul 2012 22:27:49 -0000 1.1
+++ EcalGainDriver.lcsim 9 Aug 2012 22:27:10 -0000 1.2
@@ -1,7 +1,7 @@
+
<lcsim xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/lcsim/1.0/lcsim.xsd">
<control>
- <numberOfEvents>-1</numberOfEvents>
<printInputFiles>true</printInputFiles>
<printDriversDetailed>true</printDriversDetailed>
</control>
@@ -35,40 +35,36 @@
<driver name="EcalGainDriver"
type="org.lcsim.hps.users.phansson.ECalGainDriver">
- <debug>false</debug>
- <hideFrame>true</hideFrame>
- <outputPlotFileName>gaindriver.aida</outputPlotFileName>
- <ecalGainFileName>clusterlist.txt</ecalGainFileName>
- </driver>
-
-
-
+ <debug>false</debug>
+ <hideFrame>true</hideFrame>
+ <outputPlotFileName>gaindriver.aida</outputPlotFileName>
+ <ecalGainFileName>clusterlist.txt</ecalGainFileName>
+ </driver>
<driver name="HPSCalibrationDriver" type="org.lcsim.hps.monitoring.HPSCalibrationDriver"/>
<driver name="EcalRawConverter"
type="org.lcsim.hps.recon.ecal.HPSEcalRawConverterDriver">
- <ecalCollectionName>EcalCalHits</ecalCollectionName>
- </driver>
+ <ecalCollectionName>EcalCalHits</ecalCollectionName>
+ </driver>
<driver name="EcalClusterer"
type="org.lcsim.hps.recon.ecal.HPSEcalClusterer">
- <ecalName>Ecal</ecalName>
- <ecalCollectionName>EcalCalHits</ecalCollectionName>
- </driver>
+ <ecalName>Ecal</ecalName>
+ <ecalCollectionName>EcalCalHits</ecalCollectionName>
+ </driver>
<driver name="RawTrackerHitFitterDriver"
type="org.lcsim.hps.recon.tracking.HPSRawTrackerHitFitterDriver">
<!-- <fitAlgorithm>Dumb</fitAlgorithm> -->
- <fitAlgorithm>Analytic</fitAlgorithm>
+ <fitAlgorithm>Analytic</fitAlgorithm>
</driver>
-
<driver name="TrackerHitDriver"
type="org.lcsim.hps.users.mgraham.DataTrackerHitDriver"/>
<driver name="EcalDaqPlots" type="org.lcsim.hps.monitoring.ecal.EcalDaqPlots">
</driver>
<driver name="CleanupDriver"
type="org.lcsim.recon.tracking.digitization.sisim.config.ReadoutCleanupDriver">
- <collectionNames>TrackerHits SVTRawTrackerHits SVTFittedRawTrackerHits</collectionNames>
- </driver>
+ <collectionNames>TrackerHits SVTRawTrackerHits SVTFittedRawTrackerHits</collectionNames>
+ </driver>
<driver name="EcalMonitoringPlots" type="org.lcsim.hps.monitoring.ecal.EcalMonitoringPlots"/>
<driver name="EcalEventMonitor" type="org.lcsim.hps.monitoring.ecal.EcalEventMonitor">
<eventRefreshRate>1</eventRefreshRate>
@@ -83,7 +79,7 @@
<driver name="EventMarkerDriver" type="org.lcsim.job.EventMarkerDriver">
<eventInterval>1000</eventInterval>
</driver>
- <driver name="RawTrackerHitMaker" type="org.lcsim.hps.recon.tracking.SVTDataToRawTrackerHitDriver"/>
+ <driver name="RawTrackerHitMaker" type="org.lcsim.hps.recon.tracking.SVTDataToRawTrackerHitDriver"/>
<driver name="TrackerReconDriver"
type="org.lcsim.hps.recon.tracking.TrackerReconDriver">
<debug>false</debug>
@@ -92,7 +88,7 @@
<stripTolerance>1.0</stripTolerance>
</driver>
<driver name="TrackingReconstructionPlots" type="org.lcsim.hps.monitoring.svt.TrackingReconstructionPlots">
- <outputPlots>trackingPlots.aida</outputPlots>
+ <outputPlots>trackingPlots.aida</outputPlots>
</driver>
<driver name="LCIOWriter"
type="org.lcsim.util.loop.LCIODriver">
hps-java/src/main/java/org/lcsim/hps/users/phansson
diff -u -r1.2 -r1.3
--- ECalGainDriver.java 9 Aug 2012 00:51:15 -0000 1.2
+++ ECalGainDriver.java 9 Aug 2012 22:27:10 -0000 1.3
@@ -1,7 +1,3 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
package org.lcsim.hps.users.phansson;
import org.lcsim.hps.recon.ecal.*;
@@ -20,8 +16,6 @@
import org.lcsim.event.EventHeader;
import org.lcsim.event.Track;
import org.lcsim.geometry.Detector;
-import org.lcsim.geometry.IDDecoder;
-import org.lcsim.geometry.Subdetector;
import org.lcsim.hps.monitoring.AIDAFrame;
import org.lcsim.hps.monitoring.Redrawable;
import org.lcsim.hps.monitoring.Resettable;
@@ -36,65 +30,45 @@
*/
public class ECalGainDriver extends Driver implements Resettable, ActionListener, Redrawable {
- int nevents = 0;
- boolean debug = true;
- protected IDDecoder dec = null;
- protected Subdetector ecal;
- private String ecalName = "Ecal";
- String rawCollectionName = "EcalReadoutHits";
- String ecalReadoutName = "EcalHits";
- String ecalTmpCollectionName = "EcalCalHitsTmp";
+ private int nevents = 0;
+ private boolean debug = true;
private String trackCollectionName = "MatchedTracks";
private String ecalClusterCollectionName = "EcalClusters";
private String outputPlotFileName = "test.aida";
private String ecalGainFileName = "clusterList.txt";
+ private String triggerClusterCollection = "EcalTriggerClusters";
+ private double triggerThreshold = 10.0;
+ private boolean simTrigger = false;
//Print out cluster and track to file
- PrintWriter gainWriter = null;
- EcalTrackMatch trkMatchTool = null;
+ private PrintWriter gainWriter = null;
+ private EcalTrackMatch trkMatchTool = null;
private boolean hideFrame = false;
private int refreshRate = 100;
private AIDA aida = AIDA.defaultInstance();
private IAnalysisFactory af = aida.analysisFactory();
- IHistogramFactory hf = aida.histogramFactory();
- private AIDAFrame plotterFrame;
private AIDAFrame pePlotterFrame;
- IPlotter plotter;
- JComboBox xCombo;
- JLabel xLabel;
- JComboBox yCombo;
- JLabel yLabel;
- Integer xList[];
- Integer yList[];
- JButton blankButton;
- boolean alive = true;
- IHistogram1D pePlots[][][] = new IHistogram1D[47][11][5];
- IHistogram2D mpePlot;
- IHistogram2D spePlot;
- IHistogram2D hitmap;
- IHistogram1D[] h_PE_t = new IHistogram1D[5];
- IHistogram1D[] h_PE_b = new IHistogram1D[5];
-
- @Override
- public void startOfData() {
- }
+ private IPlotter plotter;
+ private JComboBox xCombo;
+ private JLabel xLabel;
+ private JComboBox yCombo;
+ private JLabel yLabel;
+ private Integer xList[];
+ private Integer yList[];
+ private JButton blankButton;
+ private IHistogram1D pePlots[][][] = new IHistogram1D[47][11][5];
+ private IHistogram2D mpePlot;
+ private IHistogram2D spePlot;
+ private IHistogram2D hitmap;
+ private IHistogram1D[] h_PE_t = new IHistogram1D[5];
+ private IHistogram1D[] h_PE_b = new IHistogram1D[5];
@Override
public void detectorChanged(Detector detector) {
- // Get the Subdetector.
- ecal = detector.getSubdetector(ecalName);
-
- // Cache ref to decoder.
- dec = ecal.getIDDecoder();
-
pePlotterFrame = new AIDAFrame();
pePlotterFrame.setTitle("Gain Frame");
- //plotterFrame = new AIDAFrame();
- //plotterFrame.setTitle("Gain General");
-
IPlotterStyle style;
-
IPlotter plotter_hitmap_gr = af.createPlotterFactory().create();
plotter_hitmap_gr.createRegions(1, 3, 0);
plotter_hitmap_gr.setTitle("Cluster hit map");
@@ -147,8 +121,6 @@
plotter.region(1).style().setParameter("hist2DStyle", "colorMap");
plotter.region(1).style().dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
-
-
for (int iE = 0; iE <= 4; ++iE) {
for (int irow = -5; irow <= 5; ++irow) {
for (int icol = -23; icol <= 23; ++icol) {
@@ -161,7 +133,6 @@
}
}
-
xList = new Integer[46];
yList = new Integer[10];
int in = 0;
@@ -179,7 +150,6 @@
}
}
-
xCombo = new JComboBox(xList);
xCombo.addActionListener(this);
xLabel = new JLabel("x");
@@ -193,7 +163,6 @@
pePlotterFrame.getControlsPanel().add(yLabel);
pePlotterFrame.getControlsPanel().add(yCombo);
-
plotter.region(2).plot(pePlots[-5 + 23][2 + 5 - 1][0]);
xCombo.setSelectedIndex(-5 + 23);
yCombo.setSelectedIndex(2 + 5 - 1);
@@ -203,13 +172,8 @@
blankButton.addActionListener(this);
if (!hideFrame) {
-
- //plotterFrame.pack();
- //plotterFrame.setVisible(true);
-
pePlotterFrame.pack();
pePlotterFrame.setVisible(true);
-
}
}
@@ -227,6 +191,10 @@
this.debug = flag;
}
+ public void setSimTrigger(boolean simTrigger) {
+ this.simTrigger = simTrigger;
+ }
+
public void setOutputPlotFileName(String name) {
this.outputPlotFileName = name;
}
@@ -241,6 +209,23 @@
@Override
public void process(EventHeader event) {
+ if (simTrigger) {
+ boolean trigger = false;
+ if (event.hasCollection(HPSEcalCluster.class, triggerClusterCollection)) {
+ for (HPSEcalCluster cluster : event.get(HPSEcalCluster.class, triggerClusterCollection)) {
+ if (cluster.getEnergy() > triggerThreshold) {
+ trigger = true;
+ }
+ }
+ }
+ if (!trigger) {
+ return;
+ }
+ if (debug) {
+ System.out.println("Triggered");
+ }
+ }
+
++nevents;
if (debug) {
System.out.println("Processing event " + nevents);
@@ -285,12 +270,10 @@
continue;
}
-
if (debug) {
System.out.println("Cluster matched to track at distance Y " + trkMatchTool.getDistanceToTrackInY() + " and X " + trkMatchTool.getDistanceToTrackInX());
}
-
double P = trkMatchTool.getMatchedTrack().getPX() * 1000;
double E = cl.getEnergy();
double Ep = E;
@@ -300,7 +283,6 @@
System.out.println("P " + P + " E " + E);
}
-
// double Eseed = cl.getSeedHit().getRawEnergy();
// double ErawSum = 0;
// for(CalorimeterHit hit : cl.getCalorimeterHits()) {
@@ -335,7 +317,6 @@
pePlots[pos[0] + 23][pos[1] + 5][ebin].fill(Eoverp);
-
gainWriter.print(event.getEventNumber() + " " + P + " " + E + " " + pos[0] + " " + pos[1]);
for (CalorimeterHit hit : cl.getCalorimeterHits()) {
gainWriter.print(" " + hit.getIdentifierFieldValue("ix") + " " + hit.getIdentifierFieldValue("iy") + " " + hit.getRawEnergy() + " " + HPSEcalConditions.physicalToGain(hit.getCellID()));
@@ -344,7 +325,7 @@
}
}
- public int[] getCrystalPair(HPSEcalCluster cluster) {
+ private int[] getCrystalPair(HPSEcalCluster cluster) {
int[] pos = new int[2];
pos[0] = cluster.getSeedHit().getIdentifierFieldValue("ix");
pos[1] = cluster.getSeedHit().getIdentifierFieldValue("iy");
@@ -366,6 +347,11 @@
}
}
//displayFastTrackingPlots();
+ for (int x = -23; x <= 23; x++) { // slot
+ for (int y = -5; y <= 5; y++) { // crate
+ System.out.printf("%d\t%d\t%d\t%f\t%f\n", x, y, pePlots[x + 23][y + 5][0].allEntries(), pePlots[x + 23][y + 5][0].mean(), pePlots[x + 23][y + 5][0].rms());
+ }
+ }
gainWriter.close();
}
@@ -387,7 +373,6 @@
@Override
public void actionPerformed(ActionEvent ae) {
-
if (ae.getSource() == blankButton) {
plotter.region(2).clear();
} else {
@@ -397,9 +382,6 @@
plotter.region(2).clear();
plotter.region(2).plot(pePlots[x + 23][y + 5][0]);
}
-
-
- //throw new UnsupportedOperationException("Not supported yet.");
}
@Override
@@ -415,7 +397,6 @@
if (pePlots[icol + 23][irow + 5][0].entries() > 10) {
mpePlot.fill(icol, irow, pePlots[icol + 23][irow + 5][0].mean());
spePlot.fill(icol, irow, pePlots[icol + 23][irow + 5][0].rms());
-
}
}
}