Author: [log in to unmask]
Date: Thu Jan 22 15:22:11 2015
New Revision: 1969
Log:
replace TriggerData with TestRunTriggerData/SSPData where appropriate
Modified:
java/trunk/analysis/src/main/java/org/hps/analysis/ecal/EcalClusterPlots.java
java/trunk/analysis/src/main/java/org/hps/analysis/ecal/EcalHitPlots.java
java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/TestRunTriggerDriver.java
java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/TriggerDriver.java
java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/TIData.java
java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/TestRunTriggerData.java
java/trunk/evio/src/main/java/org/hps/evio/TriggerDataWriter.java
java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/TrackTimePlots.java
java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/ecal/plots/EcalHitPlots.java
java/trunk/users/src/main/java/org/hps/users/celentan/DummyDriverRaw.java
java/trunk/users/src/main/java/org/hps/users/phansson/ROOTFlatTupleDriver.java
java/trunk/users/src/main/java/org/hps/users/phansson/TriggerTurnOnAnalysis.java
Modified: java/trunk/analysis/src/main/java/org/hps/analysis/ecal/EcalClusterPlots.java
=============================================================================
--- java/trunk/analysis/src/main/java/org/hps/analysis/ecal/EcalClusterPlots.java (original)
+++ java/trunk/analysis/src/main/java/org/hps/analysis/ecal/EcalClusterPlots.java Thu Jan 22 15:22:11 2015
@@ -7,7 +7,6 @@
import java.util.List;
import org.apache.commons.math.stat.StatUtils;
-import org.hps.readout.ecal.TriggerData;
import org.hps.recon.ecal.ECalUtils;
import org.lcsim.event.CalorimeterHit;
import org.lcsim.event.Cluster;
@@ -116,19 +115,6 @@
@Override
public void process(EventHeader event) {
- int orTrig = 0;
- int topTrig = 0;
- int botTrig = 0;
- if (event.hasCollection(TriggerData.class, "TriggerBank")) {
- List<TriggerData> triggerList = event.get(TriggerData.class, "TriggerBank");
- if (!triggerList.isEmpty()) {
- TriggerData triggerData = triggerList.get(0);
-
- orTrig = triggerData.getOrTrig();
- topTrig = triggerData.getTopTrig();
- botTrig = triggerData.getBotTrig();
- }
- }
if (event.hasCollection(Cluster.class, inputCollection)) {
List<Cluster> clusters = event.get(Cluster.class, inputCollection);
clusterCountPlot.fill(clusters.size());
Modified: java/trunk/analysis/src/main/java/org/hps/analysis/ecal/EcalHitPlots.java
=============================================================================
--- java/trunk/analysis/src/main/java/org/hps/analysis/ecal/EcalHitPlots.java (original)
+++ java/trunk/analysis/src/main/java/org/hps/analysis/ecal/EcalHitPlots.java Thu Jan 22 15:22:11 2015
@@ -7,7 +7,8 @@
import java.util.List;
-import org.hps.readout.ecal.TriggerData;
+import org.hps.readout.ecal.triggerbank.AbstractIntData;
+import org.hps.readout.ecal.triggerbank.TestRunTriggerData;
import org.hps.recon.ecal.ECalUtils;
import org.lcsim.event.CalorimeterHit;
import org.lcsim.event.EventHeader;
@@ -52,7 +53,6 @@
//plotterFrame = new AIDAFrame();
//plotterFrame.setTitle("HPS ECal Hit Plots");
-
aida.tree().cd("/");
IPlotterFactory plotterFactory = aida.analysisFactory().createPlotterFactory("Ecal Hit Plots");
@@ -70,7 +70,6 @@
plotter.createRegions(1, 2);
plotter.region(0).plot(hitCountPlot);
plotter.region(1).plot(hitTimePlot);
-
// Setup the plotter.
plotter2 = plotterFactory.create("Hit Energies");
@@ -151,40 +150,44 @@
int orTrigTime = -1;
int topTrigTime = -1;
int botTrigTime = -1;
+
if (event.hasCollection(GenericObject.class, "TriggerBank")) {
List<GenericObject> triggerList = event.get(GenericObject.class, "TriggerBank");
- if (!triggerList.isEmpty()) {
- GenericObject triggerData = triggerList.get(0);
-
- int orTrig = TriggerData.getOrTrig(triggerData);
- if (orTrig != 0) {
- for (int i = 0; i < 32; i++) {
- if ((1 << (31 - i) & orTrig) != 0) {
- orTrigTime = i;
- orTrigTimePlot.fill(i);
- break;
- }
- }
- }
- int topTrig = TriggerData.getTopTrig(triggerData);
- if (topTrig != 0) {
- for (int i = 0; i < 32; i++) {
- if ((1 << (31 - i) & topTrig) != 0) {
- topTrigTime = i;
- topTrigTimePlot.fill(i);
- break;
- }
- }
- }
- int botTrig = TriggerData.getBotTrig(triggerData);
- if (botTrig != 0) {
- for (int i = 0; i < 32; i++) {
- if ((1 << (31 - i) & botTrig) != 0) {
- botTrigTime = i;
- botTrigTimePlot.fill(i);
- break;
- }
- }
+ for (GenericObject data : triggerList) {
+ if (AbstractIntData.getTag(data) == TestRunTriggerData.BANK_TAG) {
+ TestRunTriggerData triggerData = new TestRunTriggerData(data);
+
+ int orTrig = triggerData.getOrTrig();
+ if (orTrig != 0) {
+ for (int i = 0; i < 32; i++) {
+ if ((1 << (31 - i) & orTrig) != 0) {
+ orTrigTime = i;
+ orTrigTimePlot.fill(i);
+ break;
+ }
+ }
+ }
+ int topTrig = triggerData.getTopTrig();
+ if (topTrig != 0) {
+ for (int i = 0; i < 32; i++) {
+ if ((1 << (31 - i) & topTrig) != 0) {
+ topTrigTime = i;
+ topTrigTimePlot.fill(i);
+ break;
+ }
+ }
+ }
+ int botTrig = triggerData.getBotTrig();
+ if (botTrig != 0) {
+ for (int i = 0; i < 32; i++) {
+ if ((1 << (31 - i) & botTrig) != 0) {
+ botTrigTime = i;
+ botTrigTimePlot.fill(i);
+ break;
+ }
+ }
+ }
+ break;
}
}
}
Modified: java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/TestRunTriggerDriver.java
=============================================================================
--- java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/TestRunTriggerDriver.java (original)
+++ java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/TestRunTriggerDriver.java Thu Jan 22 15:22:11 2015
@@ -2,7 +2,7 @@
import java.util.ArrayList;
import java.util.List;
-
+import org.hps.readout.ecal.triggerbank.TestRunTriggerData;
import org.lcsim.event.Cluster;
import org.lcsim.event.EventHeader;
@@ -29,14 +29,14 @@
@Override
protected void makeTriggerData(EventHeader event, String collectionName) {
int[] trigArray = new int[8];
- trigArray[TriggerData.TOP_TRIG] = topBits;
- trigArray[TriggerData.BOT_TRIG] = botBits;
- trigArray[TriggerData.AND_TRIG] = topBits & botBits;
- trigArray[TriggerData.OR_TRIG] = topBits | botBits;
- TriggerData tData = new TriggerData(trigArray);
- List<TriggerData> triggerList = new ArrayList<TriggerData>();
+ trigArray[TestRunTriggerData.TOP_TRIG] = topBits;
+ trigArray[TestRunTriggerData.BOT_TRIG] = botBits;
+ trigArray[TestRunTriggerData.AND_TRIG] = topBits & botBits;
+ trigArray[TestRunTriggerData.OR_TRIG] = topBits | botBits;
+ TestRunTriggerData tData = new TestRunTriggerData(trigArray);
+ List<TestRunTriggerData> triggerList = new ArrayList<TestRunTriggerData>();
triggerList.add(tData);
- event.put(collectionName, triggerList, TriggerData.class, 0);
+ event.put(collectionName, triggerList, TestRunTriggerData.class, 0);
}
public void setClusterCollectionName(String clusterCollectionName) {
Modified: java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/TriggerDriver.java
=============================================================================
--- java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/TriggerDriver.java (original)
+++ java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/TriggerDriver.java Thu Jan 22 15:22:11 2015
@@ -8,6 +8,7 @@
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
+import org.hps.readout.ecal.triggerbank.TestRunTriggerData;
import org.lcsim.event.EventHeader;
import org.lcsim.lcio.LCIOWriter;
@@ -156,10 +157,10 @@
* Make a dummy TriggerData
*/
protected void makeTriggerData(EventHeader event, String collectionName) {
- TriggerData tData = new TriggerData(new int[8]);
- List<TriggerData> triggerList = new ArrayList<TriggerData>();
+ TestRunTriggerData tData = new TestRunTriggerData(new int[8]);
+ List<TestRunTriggerData> triggerList = new ArrayList<TestRunTriggerData>();
triggerList.add(tData);
- event.put(collectionName, triggerList, TriggerData.class, 0);
+ event.put(collectionName, triggerList, TestRunTriggerData.class, 0);
}
@Override
Modified: java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/TIData.java
=============================================================================
--- java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/TIData.java (original)
+++ java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/TIData.java Thu Jan 22 15:22:11 2015
@@ -44,14 +44,8 @@
calib = ((bank[0] >> 28) & 1) == 1;
pulser = ((bank[0] >> 29) & 1) == 1;
- long w1 = bank[2];
- long w2 = bank[3];
- if (w1 < 0) {
- w1 += 2 * (long) Integer.MAX_VALUE + 2;
- }
- if (w2 < 0) {
- w2 += 2 * (long) Integer.MAX_VALUE + 2;
- }
+ long w1 = bank[2] & 0xffffffffL;
+ long w2 = bank[3] & 0xffffffffL;
final long timelo = w1;
final long timehi = (w2 & 0xffff) << 32;
Modified: java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/TestRunTriggerData.java
=============================================================================
--- java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/TestRunTriggerData.java (original)
+++ java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/TestRunTriggerData.java Thu Jan 22 15:22:11 2015
@@ -24,9 +24,11 @@
// }
public TestRunTriggerData(int[] bank) {
super(bank);
- if (this.bank.length != BANK_SIZE) {
- throw new RuntimeException();
- }
+ decodeData();
+ }
+
+ public TestRunTriggerData(GenericObject data) {
+ super(data, BANK_TAG);
decodeData();
}
Modified: java/trunk/evio/src/main/java/org/hps/evio/TriggerDataWriter.java
=============================================================================
--- java/trunk/evio/src/main/java/org/hps/evio/TriggerDataWriter.java (original)
+++ java/trunk/evio/src/main/java/org/hps/evio/TriggerDataWriter.java Thu Jan 22 15:22:11 2015
@@ -1,8 +1,8 @@
package org.hps.evio;
import java.util.List;
-
-import org.hps.readout.ecal.TriggerData;
+import org.hps.readout.ecal.triggerbank.AbstractIntData;
+import org.hps.readout.ecal.triggerbank.TestRunTriggerData;
import org.jlab.coda.jevio.BaseStructure;
import org.jlab.coda.jevio.DataType;
import org.jlab.coda.jevio.EventBuilder;
@@ -19,7 +19,7 @@
@Override
public boolean hasData(EventHeader event) {
- return event.hasCollection(TriggerData.class, TriggerData.TRIG_COLLECTION);
+ return event.hasCollection(TestRunTriggerData.class, TestRunTriggerData.TRIG_COLLECTION);
}
@Override
@@ -44,7 +44,7 @@
}
- List<TriggerData> triggerList = event.get(TriggerData.class, TriggerData.TRIG_COLLECTION);
+ List<AbstractIntData> triggerList = event.get(AbstractIntData.class, TestRunTriggerData.TRIG_COLLECTION);
EvioBank triggerBank = new EvioBank(EventConstants.TRIGGER_BANK_TAG, DataType.UINT32, EventConstants.TRIGGER_BANK_NUMBER);
try {
triggerBank.appendIntData(triggerList.get(0).getBank());
@@ -56,6 +56,6 @@
@Override
public void writeData(EventHeader event, EventHeader toEvent) {
- toEvent.put(TriggerData.TRIG_COLLECTION, event.get(TriggerData.class, TriggerData.TRIG_COLLECTION));
+ toEvent.put(TestRunTriggerData.TRIG_COLLECTION, event.get(AbstractIntData.class, TestRunTriggerData.TRIG_COLLECTION));
}
}
Modified: java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/TrackTimePlots.java
=============================================================================
--- java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/TrackTimePlots.java (original)
+++ java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/TrackTimePlots.java Thu Jan 22 15:22:11 2015
@@ -6,13 +6,13 @@
import hep.aida.IPlotterFactory;
import hep.aida.IPlotterStyle;
import hep.aida.ref.plotter.PlotterRegion;
-
import java.util.List;
-
-import org.hps.readout.ecal.TriggerData;
+import org.hps.readout.ecal.triggerbank.AbstractIntData;
+import org.hps.readout.ecal.triggerbank.TestRunTriggerData;
import org.lcsim.detector.tracker.silicon.DopedSilicon;
import org.lcsim.detector.tracker.silicon.HpsSiSensor;
import org.lcsim.event.EventHeader;
+import org.lcsim.event.GenericObject;
import org.lcsim.event.Track;
import org.lcsim.event.TrackerHit;
import org.lcsim.fit.helicaltrack.HelicalTrackCross;
@@ -28,7 +28,7 @@
*/
public class TrackTimePlots extends Driver {
- //private AIDAFrame plotterFrame;
+ //private AIDAFrame plotterFrame;
private AIDA aida = AIDA.defaultInstance();
private String hitCollection = "StripClusterer_SiTrackerHitStrip1D";
private String trackCollection = "MatchedTracks";
@@ -47,7 +47,7 @@
@Override
protected void detectorChanged(Detector detector) {
- //plotterFrame = new AIDAFrame();
+ //plotterFrame = new AIDAFrame();
//plotterFrame.setTitle("HPS SVT Track Time Plots");
aida.tree().cd("/");
@@ -118,12 +118,11 @@
style.dataStyle().errorBarStyle().setVisible(false);
plotter7.createRegions(2, 2);
-
- for(HpsSiSensor sensor : sensors){
- int module = sensor.getModuleNumber();
- int layer = sensor.getLayerNumber();
+ for (HpsSiSensor sensor : sensors) {
+ int module = sensor.getModuleNumber();
+ int layer = sensor.getLayerNumber();
int region = computePlotterRegion(layer + 1, module);
-
+
t0[module][layer] = aida.histogram1D(sensor.getName() + "_timing", 75, -50, 100.0);
plotter.region(region).plot(t0[module][layer]);
((PlotterRegion) plotter.region(region)).getPlot().getXAxis().setLabel("Hit time [ns]");
@@ -142,16 +141,16 @@
((PlotterRegion) plotter6.region(region)).getPlot().getXAxis().setLabel("Hit position [mm]");
((PlotterRegion) plotter6.region(region)).getPlot().getYAxis().setLabel("Hit time residual [ns]");
}
-
+
for (int module = 0; module < 2; module++) {
-
+
trackT0[module] = aida.histogram1D((module == 0 ? "Top" : "Bottom") + " Track Time", 75, -50, 100.0);
plotter2.region(module).plot(trackT0[module]);
((PlotterRegion) plotter2.region(module)).getPlot().getXAxis().setLabel("Track time [ns]");
trackTrigTime[module] = aida.histogram2D((module == 0 ? "Top" : "Bottom") + " Track Time vs. Trig Time", 75, -50, 100.0, 33, -1, 32);
plotter2.region(module + 2).plot(trackTrigTime[module]);
- ((PlotterRegion) plotter2.region(module+2)).getPlot().getXAxis().setLabel("Track time [ns]");
- ((PlotterRegion) plotter2.region(module+2)).getPlot().getYAxis().setLabel("Trigger time [clocks]");
+ ((PlotterRegion) plotter2.region(module + 2)).getPlot().getXAxis().setLabel("Track time [ns]");
+ ((PlotterRegion) plotter2.region(module + 2)).getPlot().getYAxis().setLabel("Trigger time [clocks]");
style = plotter2.region(module + 2).style();
style.setParameter("hist2DStyle", "colorMap");
style.dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
@@ -162,63 +161,62 @@
((PlotterRegion) plotter7.region(module)).getPlot().getXAxis().setLabel("Track time range [ns]");
trackTimeMinMax[module] = aida.histogram2D((module == 0 ? "Top" : "Bottom") + " First and Last Track Hit Times", 75, -50, 100.0, 75, -50, 100.0);
plotter7.region(module + 2).plot(trackTimeMinMax[module]);
- ((PlotterRegion) plotter7.region(module+2)).getPlot().getXAxis().setLabel("First track hit time [ns]");
- ((PlotterRegion) plotter7.region(module+2)).getPlot().getYAxis().setLabel("Last track hit time [ns]");
+ ((PlotterRegion) plotter7.region(module + 2)).getPlot().getXAxis().setLabel("First track hit time [ns]");
+ ((PlotterRegion) plotter7.region(module + 2)).getPlot().getYAxis().setLabel("Last track hit time [ns]");
style = plotter7.region(module + 2).style();
style.setParameter("hist2DStyle", "colorMap");
style.dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
style.zAxisStyle().setParameter("scale", "log");
}
-
- /* ===> for (int module = 0; module < 2; module++) {
- for (int layer = 0; layer < 10; layer++) {
- SiSensor sensor = SvtUtils.getInstance().getSensor(module, layer);
- int region = computePlotterRegion(layer + 1, module);
- t0[module][layer] = aida.histogram1D(sensor.getName() + "_timing", 75, -50, 100.0);
- plotter.region(region).plot(t0[module][layer]);
- ((PlotterRegion) plotter.region(region)).getPlot().getXAxis().setLabel("Hit time [ns]");
- trackHitT0[module][layer] = aida.histogram1D(sensor.getName() + "_trackHit_timing", 75, -50, 4000.0);
- plotter3.region(region).plot(trackHitT0[module][layer]);
- ((PlotterRegion) plotter3.region(region)).getPlot().getXAxis().setLabel("Hit time [ns]");
- trackHitDt[module][layer] = aida.histogram1D(sensor.getName() + "_trackHit_dt", 50, -20, 20.0);
- plotter4.region(region).plot(trackHitDt[module][layer]);
- ((PlotterRegion) plotter4.region(region)).getPlot().getXAxis().setLabel("Hit time residual [ns]");
- trackHit2D[module][layer] = aida.histogram2D(sensor.getName() + "_trackHit_dt_2D", 75, -50, 100.0, 50, -20, 20.0);
- plotter5.region(region).plot(trackHit2D[module][layer]);
- ((PlotterRegion) plotter5.region(region)).getPlot().getXAxis().setLabel("Track time [ns]");
- ((PlotterRegion) plotter5.region(region)).getPlot().getYAxis().setLabel("Hit time [ns]");
- trackHitDtChan[module][layer] = aida.histogram2D(sensor.getName() + "_trackHit_dt_chan", 200, -20, 20, 50, -20, 20.0);
- plotter6.region(region).plot(trackHitDtChan[module][layer]);
- ((PlotterRegion) plotter6.region(region)).getPlot().getXAxis().setLabel("Hit position [mm]");
- ((PlotterRegion) plotter6.region(region)).getPlot().getYAxis().setLabel("Hit time residual [ns]");
- }
- trackT0[module] = aida.histogram1D((module == 0 ? "Top" : "Bottom") + " Track Time", 75, -50, 100.0);
- plotter2.region(module).plot(trackT0[module]);
- ((PlotterRegion) plotter2.region(module)).getPlot().getXAxis().setLabel("Track time [ns]");
- trackTrigTime[module] = aida.histogram2D((module == 0 ? "Top" : "Bottom") + " Track Time vs. Trig Time", 75, -50, 100.0, 33, -1, 32);
- plotter2.region(module + 2).plot(trackTrigTime[module]);
- ((PlotterRegion) plotter2.region(module+2)).getPlot().getXAxis().setLabel("Track time [ns]");
- ((PlotterRegion) plotter2.region(module+2)).getPlot().getYAxis().setLabel("Trigger time [clocks]");
- style = plotter2.region(module + 2).style();
- style.setParameter("hist2DStyle", "colorMap");
- style.dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
- style.zAxisStyle().setParameter("scale", "log");
-
- trackTimeRange[module] = aida.histogram1D((module == 0 ? "Top" : "Bottom") + " Track Hit Time Range", 75, 0, 30.0);
- plotter7.region(module).plot(trackTimeRange[module]);
- ((PlotterRegion) plotter7.region(module)).getPlot().getXAxis().setLabel("Track time range [ns]");
- trackTimeMinMax[module] = aida.histogram2D((module == 0 ? "Top" : "Bottom") + " First and Last Track Hit Times", 75, -50, 100.0, 75, -50, 100.0);
- plotter7.region(module + 2).plot(trackTimeMinMax[module]);
- ((PlotterRegion) plotter7.region(module+2)).getPlot().getXAxis().setLabel("First track hit time [ns]");
- ((PlotterRegion) plotter7.region(module+2)).getPlot().getYAxis().setLabel("Last track hit time [ns]");
- style = plotter7.region(module + 2).style();
- style.setParameter("hist2DStyle", "colorMap");
- style.dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
- style.zAxisStyle().setParameter("scale", "log");
- } ===> */
+
+ /* ===> for (int module = 0; module < 2; module++) {
+ for (int layer = 0; layer < 10; layer++) {
+ SiSensor sensor = SvtUtils.getInstance().getSensor(module, layer);
+ int region = computePlotterRegion(layer + 1, module);
+ t0[module][layer] = aida.histogram1D(sensor.getName() + "_timing", 75, -50, 100.0);
+ plotter.region(region).plot(t0[module][layer]);
+ ((PlotterRegion) plotter.region(region)).getPlot().getXAxis().setLabel("Hit time [ns]");
+ trackHitT0[module][layer] = aida.histogram1D(sensor.getName() + "_trackHit_timing", 75, -50, 4000.0);
+ plotter3.region(region).plot(trackHitT0[module][layer]);
+ ((PlotterRegion) plotter3.region(region)).getPlot().getXAxis().setLabel("Hit time [ns]");
+ trackHitDt[module][layer] = aida.histogram1D(sensor.getName() + "_trackHit_dt", 50, -20, 20.0);
+ plotter4.region(region).plot(trackHitDt[module][layer]);
+ ((PlotterRegion) plotter4.region(region)).getPlot().getXAxis().setLabel("Hit time residual [ns]");
+ trackHit2D[module][layer] = aida.histogram2D(sensor.getName() + "_trackHit_dt_2D", 75, -50, 100.0, 50, -20, 20.0);
+ plotter5.region(region).plot(trackHit2D[module][layer]);
+ ((PlotterRegion) plotter5.region(region)).getPlot().getXAxis().setLabel("Track time [ns]");
+ ((PlotterRegion) plotter5.region(region)).getPlot().getYAxis().setLabel("Hit time [ns]");
+ trackHitDtChan[module][layer] = aida.histogram2D(sensor.getName() + "_trackHit_dt_chan", 200, -20, 20, 50, -20, 20.0);
+ plotter6.region(region).plot(trackHitDtChan[module][layer]);
+ ((PlotterRegion) plotter6.region(region)).getPlot().getXAxis().setLabel("Hit position [mm]");
+ ((PlotterRegion) plotter6.region(region)).getPlot().getYAxis().setLabel("Hit time residual [ns]");
+ }
+ trackT0[module] = aida.histogram1D((module == 0 ? "Top" : "Bottom") + " Track Time", 75, -50, 100.0);
+ plotter2.region(module).plot(trackT0[module]);
+ ((PlotterRegion) plotter2.region(module)).getPlot().getXAxis().setLabel("Track time [ns]");
+ trackTrigTime[module] = aida.histogram2D((module == 0 ? "Top" : "Bottom") + " Track Time vs. Trig Time", 75, -50, 100.0, 33, -1, 32);
+ plotter2.region(module + 2).plot(trackTrigTime[module]);
+ ((PlotterRegion) plotter2.region(module+2)).getPlot().getXAxis().setLabel("Track time [ns]");
+ ((PlotterRegion) plotter2.region(module+2)).getPlot().getYAxis().setLabel("Trigger time [clocks]");
+ style = plotter2.region(module + 2).style();
+ style.setParameter("hist2DStyle", "colorMap");
+ style.dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
+ style.zAxisStyle().setParameter("scale", "log");
+
+ trackTimeRange[module] = aida.histogram1D((module == 0 ? "Top" : "Bottom") + " Track Hit Time Range", 75, 0, 30.0);
+ plotter7.region(module).plot(trackTimeRange[module]);
+ ((PlotterRegion) plotter7.region(module)).getPlot().getXAxis().setLabel("Track time range [ns]");
+ trackTimeMinMax[module] = aida.histogram2D((module == 0 ? "Top" : "Bottom") + " First and Last Track Hit Times", 75, -50, 100.0, 75, -50, 100.0);
+ plotter7.region(module + 2).plot(trackTimeMinMax[module]);
+ ((PlotterRegion) plotter7.region(module+2)).getPlot().getXAxis().setLabel("First track hit time [ns]");
+ ((PlotterRegion) plotter7.region(module+2)).getPlot().getYAxis().setLabel("Last track hit time [ns]");
+ style = plotter7.region(module + 2).style();
+ style.setParameter("hist2DStyle", "colorMap");
+ style.dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
+ style.zAxisStyle().setParameter("scale", "log");
+ } ===> */
// shape = aida.histogram2D("Shape", 200, -1, 3, 200, -0.5, 2);
// plotter5.region(0).plot(shape);
-
//plotterFrame.pack();
//plotterFrame.setVisible(true);
}
@@ -240,37 +238,40 @@
int orTrigTime = -1;
int topTrigTime = -1;
int botTrigTime = -1;
- if (event.hasCollection(TriggerData.class, "TriggerBank")) {
- List<TriggerData> triggerList = event.get(TriggerData.class, "TriggerBank");
- if (!triggerList.isEmpty()) {
- TriggerData triggerData = triggerList.get(0);
-
- orTrig = triggerData.getOrTrig();
- if (orTrig != 0) {
- for (int i = 0; i < 32; i++) {
- if ((1 << (31 - i) & orTrig) != 0) {
- orTrigTime = i;
- break;
+ if (event.hasCollection(GenericObject.class, "TriggerBank")) {
+ List<GenericObject> triggerList = event.get(GenericObject.class, "TriggerBank");
+ for (GenericObject data : triggerList) {
+ if (AbstractIntData.getTag(data) == TestRunTriggerData.BANK_TAG) {
+ TestRunTriggerData triggerData = new TestRunTriggerData(data);
+
+ orTrig = triggerData.getOrTrig();
+ if (orTrig != 0) {
+ for (int i = 0; i < 32; i++) {
+ if ((1 << (31 - i) & orTrig) != 0) {
+ orTrigTime = i;
+ break;
+ }
}
}
- }
- topTrig = triggerData.getTopTrig();
- if (topTrig != 0) {
- for (int i = 0; i < 32; i++) {
- if ((1 << (31 - i) & topTrig) != 0) {
- topTrigTime = i;
- break;
+ topTrig = triggerData.getTopTrig();
+ if (topTrig != 0) {
+ for (int i = 0; i < 32; i++) {
+ if ((1 << (31 - i) & topTrig) != 0) {
+ topTrigTime = i;
+ break;
+ }
}
}
- }
- botTrig = triggerData.getBotTrig();
- if (botTrig != 0) {
- for (int i = 0; i < 32; i++) {
- if ((1 << (31 - i) & botTrig) != 0) {
- botTrigTime = i;
- break;
+ botTrig = triggerData.getBotTrig();
+ if (botTrig != 0) {
+ for (int i = 0; i < 32; i++) {
+ if ((1 << (31 - i) & botTrig) != 0) {
+ botTrigTime = i;
+ break;
+ }
}
}
+ break;
}
}
}
@@ -280,8 +281,8 @@
for (SiTrackerHitStrip1D hit : hits) {
//===> IIdentifier id = hit.getSensor().getIdentifier();
//===> int layer = helper.getValue(id, "layer");
- int layer = ((HpsSiSensor) hit.getSensor()).getLayerNumber();
- int module = ((HpsSiSensor) hit.getSensor()).getModuleNumber();
+ int layer = ((HpsSiSensor) hit.getSensor()).getLayerNumber();
+ int module = ((HpsSiSensor) hit.getSensor()).getModuleNumber();
//===> int module = helper.getValue(id, "module");
// System.out.format("%d, %d, %d\n",hit.getCellID(),layer,module);
t0[module][layer - 1].fill(hit.getTime());
@@ -336,7 +337,7 @@
@Override
public void endOfData() {
- //plotterFrame.dispose();
+ //plotterFrame.dispose();
}
private int computePlotterRegion(int layer, int module) {
Modified: java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/ecal/plots/EcalHitPlots.java
=============================================================================
--- java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/ecal/plots/EcalHitPlots.java (original)
+++ java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/ecal/plots/EcalHitPlots.java Thu Jan 22 15:22:11 2015
@@ -8,8 +8,6 @@
import java.util.List;
-import org.hps.readout.ecal.TriggerData;
-import org.hps.readout.ecal.SSPData;
import org.hps.recon.ecal.ECalUtils;
import org.lcsim.event.CalorimeterHit;
import org.lcsim.event.EventHeader;
Modified: java/trunk/users/src/main/java/org/hps/users/celentan/DummyDriverRaw.java
=============================================================================
--- java/trunk/users/src/main/java/org/hps/users/celentan/DummyDriverRaw.java (original)
+++ java/trunk/users/src/main/java/org/hps/users/celentan/DummyDriverRaw.java Thu Jan 22 15:22:11 2015
@@ -7,8 +7,8 @@
import org.lcsim.util.Driver;
import org.lcsim.util.aida.AIDA;
-import org.hps.readout.ecal.TriggerData;
-import org.hps.readout.ecal.SSPData;
+import org.hps.readout.ecal.triggerbank.SSPData;
+import org.hps.readout.ecal.triggerbank.AbstractIntData;
import org.hps.recon.ecal.ECalUtils;
import org.lcsim.event.CalorimeterHit;
import org.lcsim.event.EventHeader;
@@ -48,7 +48,7 @@
botTrigTime =((SSPData)triggerData).getBotTrig();
System.out.println(orTrigTime+" "+topTrigTime+" "+botTrigTime);
}
- else{
+ else if (AbstractIntData.getTag(triggerData)==SSPData.BANK_TAG){
SSPData mData=new SSPData(triggerData);
orTrigTime=(mData).getOrTrig();
topTrigTime=(mData).getTopTrig();
Modified: java/trunk/users/src/main/java/org/hps/users/phansson/ROOTFlatTupleDriver.java
=============================================================================
--- java/trunk/users/src/main/java/org/hps/users/phansson/ROOTFlatTupleDriver.java (original)
+++ java/trunk/users/src/main/java/org/hps/users/phansson/ROOTFlatTupleDriver.java Thu Jan 22 15:22:11 2015
@@ -7,7 +7,6 @@
import hep.physics.vec.BasicHep3Vector;
import hep.physics.vec.Hep3Vector;
import hep.physics.vec.VecOp;
-
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
@@ -19,10 +18,9 @@
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
-
import org.hps.analysis.ecal.HPSMCParticlePlotsDriver;
-//===> import org.hps.conditions.deprecated.SvtUtils;
-import org.hps.readout.ecal.TriggerData;
+import org.hps.readout.ecal.triggerbank.AbstractIntData;
+import org.hps.readout.ecal.triggerbank.TestRunTriggerData;
import org.hps.recon.tracking.BeamlineConstants;
import org.hps.recon.tracking.EventQuality;
import org.hps.recon.tracking.HPSTrack;
@@ -58,6 +56,7 @@
/**
* Analysis class which makes a text file compatible with ROOT Tree.
+ *
* @author phansson <[log in to unmask]>
* @version $id: $
*/
@@ -69,11 +68,11 @@
private String trackCollectionName = "MatchedTracks";
private boolean doPrintBranchInfoLine = true; //firs tline in text file
private AIDA aida = AIDA.defaultInstance();
- private int totalEvents=0;
- private int totalTwoTrackEvents=0;
- private int totalMCEvents=0;
- private int totalTwoTrackMCEvents=0;
- private int nEventsWithGoodRegionCluster=0;
+ private int totalEvents = 0;
+ private int totalTwoTrackEvents = 0;
+ private int totalMCEvents = 0;
+ private int totalTwoTrackMCEvents = 0;
+ private int nEventsWithGoodRegionCluster = 0;
private boolean hideFrame = false;
private String outputPlotFileName;
private String ecalClusterCollectionName = "EcalClusters";
@@ -87,7 +86,7 @@
private TwoTrackVertexer vertexer = new TwoTrackVertexer();
private TwoTrackFringeVertexer fringeVertexer = new TwoTrackFringeVertexer();
private TwoParticleVertexer particleVertexer = new TwoParticleVertexer();
- private boolean _keepAllTracks = true;
+ private boolean _keepAllTracks = true;
private EventQuality.Quality trk_quality_def = EventQuality.Quality.MEDIUM;
private IPlotter _plotterParticleVertex;
private IPlotter _plotterTrackVertex;
@@ -138,289 +137,290 @@
private IHistogram1D _trkmatch_bot_plus_dx;
private IHistogram1D _trkmatch_top_minus_dx;
private IHistogram1D _trkmatch_bot_minus_dx;
-
-
+
private class CmpTrack implements Comparable<CmpTrack> {
+
private Track _track;
+
public CmpTrack(Track track) {
_track = track;
}
+
@Override
public int compareTo(CmpTrack t) {
- int v = ((Double)(t._track.getTrackStates().get(0).getMomentum()[0]*100000 - _track.getTrackStates().get(0).getMomentum()[0]*100000)).intValue();
- //System.out.printf("%s: _track = %f _t = %f => %d \n",this.getClass().getSimpleName(),_track.getTrackStates().get(0).getMomentum()[0],t._track.getTrackStates().get(0).getMomentum()[0],v);
- return v;
- }
- }
-
-
+ int v = ((Double) (t._track.getTrackStates().get(0).getMomentum()[0] * 100000 - _track.getTrackStates().get(0).getMomentum()[0] * 100000)).intValue();
+ //System.out.printf("%s: _track = %f _t = %f => %d \n",this.getClass().getSimpleName(),_track.getTrackStates().get(0).getMomentum()[0],t._track.getTrackStates().get(0).getMomentum()[0],v);
+ return v;
+ }
+ }
+
public void setDebug(boolean v) {
this._debug = v;
}
+
public void setOutputPlotFileName(String filename) {
outputPlotFileName = filename;
}
+
public void setOutputNameTextTuple(String filename) {
this.outputNameTextTuple = filename;
}
-
+
public void setHideFrame(boolean hide) {
hideFrame = hide;
}
-
+
public void setTrackCollectionName(String name) {
trackCollectionName = name;
}
-
+
public void setTargetPosition(double pos) {
targetPosition = pos;
}
-
-
-
+
public ROOTFlatTupleDriver() {
}
-
@Override
public void detectorChanged(Detector detector) {
createWriter();
- if(printWriter==null)
+ if (printWriter == null) {
System.out.println("printWriter is null");
-
+ }
+
fillTextTupleBranches();
makePlots();
-
+
printEcalInfo(detector);
}
-
-
+
@Override
public void process(EventHeader event) {
- if(this._debug)
+ if (this._debug) {
System.out.println(this.getClass().getSimpleName() + ": processing event " + totalEvents + " which has event nr " + event.getEventNumber());
-
-
-
+ }
+
totalEvents++;
-
+
this.vertexer.clear();
this.fringeVertexer.clear();
this.particleVertexer.clear();
-
-
+
List<Track> tracklist = null;
- if(event.hasCollection(Track.class,trackCollectionName)) {
+ if (event.hasCollection(Track.class, trackCollectionName)) {
tracklist = event.get(Track.class, trackCollectionName);
- if(_debug) System.out.println(this.getClass().getSimpleName() + ": Number of Tracks = " + tracklist.size() + " in event " + event.getEventNumber());
+ if (_debug) {
+ System.out.println(this.getClass().getSimpleName() + ": Number of Tracks = " + tracklist.size() + " in event " + event.getEventNumber());
+ }
} else {
- if(_debug) System.out.println(this.getClass().getSimpleName() + ": No track collection in event " + event.getEventNumber());
- return;
- }
-
-
+ if (_debug) {
+ System.out.println(this.getClass().getSimpleName() + ": No track collection in event " + event.getEventNumber());
+ }
+ return;
+ }
+
//if(tracklist.size()<2) {
- //if(_debug)
+ //if(_debug)
// System.out.printf("%s: event %d has only %d tracks \n",this.getClass().getSimpleName(),event.getEventNumber(),tracklist.size());
// System.exit(1);
// return;
//}
-
ArrayList<CmpTrack> tracks = new ArrayList<CmpTrack>();
- for(int i=0;i<tracklist.size();++i) {
+ for (int i = 0; i < tracklist.size(); ++i) {
Track trk = tracklist.get(i);
- if( _keepAllTracks) {
+ if (_keepAllTracks) {
tracks.add(new CmpTrack(trk));
- }
- else if(TrackUtils.isGoodTrack(trk, tracklist, trk_quality_def)) {
+ } else if (TrackUtils.isGoodTrack(trk, tracklist, trk_quality_def)) {
//System.out.printf("%s: trk momentum (%.3f,%.3f,%.3f) chi2=%.3f\n",this.getClass().getSimpleName(),trk.getTrackStates().get(0).getMomentum()[0],trk.getTrackStates().get(0).getMomentum()[1],trk.getTrackStates().get(0).getMomentum()[2],trk.getChi2());
- if(_debug) {
+ if (_debug) {
int cuts = TrackUtils.passTrackSelections(trk, tracklist, trk_quality_def);
- System.out.printf("%s: track cuts: \n%s\n",this.getClass().getSimpleName(),EventQuality.instance().print(cuts));
- System.out.printf("%s: trk momentum (%.3f,%.3f,%.3f) chi2=%.3f\n",this.getClass().getSimpleName(),trk.getTrackStates().get(0).getMomentum()[0],trk.getTrackStates().get(0).getMomentum()[1],trk.getTrackStates().get(0).getMomentum()[2],trk.getChi2());
- }
- if(trk.getChi2()>10. && _debug) {
- System.out.printf("%s: trk momentum (%.3f,%.3f,%.3f) chi2=%.3f\n",this.getClass().getSimpleName(),trk.getTrackStates().get(0).getMomentum()[0],trk.getTrackStates().get(0).getMomentum()[1],trk.getTrackStates().get(0).getMomentum()[2],trk.getChi2());
+ System.out.printf("%s: track cuts: \n%s\n", this.getClass().getSimpleName(), EventQuality.instance().print(cuts));
+ System.out.printf("%s: trk momentum (%.3f,%.3f,%.3f) chi2=%.3f\n", this.getClass().getSimpleName(), trk.getTrackStates().get(0).getMomentum()[0], trk.getTrackStates().get(0).getMomentum()[1], trk.getTrackStates().get(0).getMomentum()[2], trk.getChi2());
+ }
+ if (trk.getChi2() > 10. && _debug) {
+ System.out.printf("%s: trk momentum (%.3f,%.3f,%.3f) chi2=%.3f\n", this.getClass().getSimpleName(), trk.getTrackStates().get(0).getMomentum()[0], trk.getTrackStates().get(0).getMomentum()[1], trk.getTrackStates().get(0).getMomentum()[2], trk.getChi2());
int cuts = TrackUtils.passTrackSelections(trk, tracklist, trk_quality_def);
- System.out.printf("%s: track cuts: \n%s\n",this.getClass().getSimpleName(),EventQuality.instance().print(cuts));
+ System.out.printf("%s: track cuts: \n%s\n", this.getClass().getSimpleName(), EventQuality.instance().print(cuts));
//System.exit(0);
}
- tracks.add(new CmpTrack(trk));
- } else {
- if(_debug) System.out.println(this.getClass().getSimpleName() + ": trk failed track selections (event nr " + event.getEventNumber() + ")\n" + trk.toString());
- }
- }
-
+ tracks.add(new CmpTrack(trk));
+ } else {
+ if (_debug) {
+ System.out.println(this.getClass().getSimpleName() + ": trk failed track selections (event nr " + event.getEventNumber() + ")\n" + trk.toString());
+ }
+ }
+ }
+
Collections.sort(tracks);
-
+
Hep3Vector vtxPos = null;
Hep3Vector vtxPosFringe = null;
Hep3Vector vtxPosNonBend = null;
-
- if(tracks.size()>1) {
+
+ if (tracks.size() > 1) {
Track trk1 = tracks.get(0)._track;
Track trk2 = tracks.get(1)._track;
-
+
vertexer.setTracks(trk1, trk2);
- vertexer.fitVertex();
- Vertex vtx = vertexer.getFittedVertex();
- if (vtx != null) {
- vtxPos = vertexer.getFittedVertex().getPosition();
- fringeVertexer.setTracks(trk1, trk2);
- fringeVertexer.fitVertex();
- vtxPosFringe = fringeVertexer.getFittedVertex().getPosition();
-
- if(this._debug) {
- System.out.printf("%s: vtxPos=%s\n", this.getClass().getSimpleName(),vtxPos.toString());
- System.out.printf("%s: vtxPosFringe=%s\n", this.getClass().getSimpleName(),vtxPosFringe.toString());
- }
-
- if(vtxPos.x() != vtxPos.x()) {
- System.out.printf("%s: vtxPos is NaN -> Skip\n",this.getClass().getSimpleName());
- vtxPos = null;
- }
- if(vtxPosFringe.x() != vtxPosFringe.x()) {
- System.out.printf("%s: vtxPosFringe is NaN -> Skip\n",this.getClass().getSimpleName());
- vtxPos = null;
- }
-
- this._vtxpos_x.fill(vtxPos.x());
- this._vtxpos_y.fill(vtxPos.y());
- this._vtxpos_z.fill(vtxPos.z());
-
- if(vtxPosFringe!=null) {
- this._vtxposfr_x.fill(vtxPosFringe.x());
- this._vtxposfr_y.fill(vtxPosFringe.y());
- this._vtxposfr_z.fill(vtxPosFringe.z());
- }
- }
-
+ vertexer.fitVertex();
+ Vertex vtx = vertexer.getFittedVertex();
+ if (vtx != null) {
+ vtxPos = vertexer.getFittedVertex().getPosition();
+ fringeVertexer.setTracks(trk1, trk2);
+ fringeVertexer.fitVertex();
+ vtxPosFringe = fringeVertexer.getFittedVertex().getPosition();
+
+ if (this._debug) {
+ System.out.printf("%s: vtxPos=%s\n", this.getClass().getSimpleName(), vtxPos.toString());
+ System.out.printf("%s: vtxPosFringe=%s\n", this.getClass().getSimpleName(), vtxPosFringe.toString());
+ }
+
+ if (vtxPos.x() != vtxPos.x()) {
+ System.out.printf("%s: vtxPos is NaN -> Skip\n", this.getClass().getSimpleName());
+ vtxPos = null;
+ }
+ if (vtxPosFringe.x() != vtxPosFringe.x()) {
+ System.out.printf("%s: vtxPosFringe is NaN -> Skip\n", this.getClass().getSimpleName());
+ vtxPos = null;
+ }
+
+ this._vtxpos_x.fill(vtxPos.x());
+ this._vtxpos_y.fill(vtxPos.y());
+ this._vtxpos_z.fill(vtxPos.z());
+
+ if (vtxPosFringe != null) {
+ this._vtxposfr_x.fill(vtxPosFringe.x());
+ this._vtxposfr_y.fill(vtxPosFringe.y());
+ this._vtxposfr_z.fill(vtxPosFringe.z());
+ }
+ }
+
boolean useFringe = false;
StraightLineTrack[] slts = this.getSLTs(trk1, trk2, useFringe);
double zAtCross = this.getCrossingS(trk1, trk2);
double[] xyAtZ1 = slts[0].calculateXYAtZ(zAtCross);
double[] xyAtZ2 = slts[1].calculateXYAtZ(zAtCross);
- Hep3Vector[] vtxNonBend = {new BasicHep3Vector(xyAtZ1[0],xyAtZ1[1],zAtCross),new BasicHep3Vector(xyAtZ2[0],xyAtZ2[1],zAtCross)};
+ Hep3Vector[] vtxNonBend = {new BasicHep3Vector(xyAtZ1[0], xyAtZ1[1], zAtCross), new BasicHep3Vector(xyAtZ2[0], xyAtZ2[1], zAtCross)};
//System.out.printf("%s: vtxNonBend=%s\n", this.getClass().getSimpleName(),vtxNonBend.toString());
-
+
this._vtxposnonb_x.fill(vtxNonBend[0].x());
this._vtxposnonb_y.fill(vtxNonBend[0].y());
this._vtxposnonb_y.fill(vtxNonBend[1].y());
- this._vtxposnonb_dy.fill(vtxNonBend[0].y()-vtxNonBend[1].y());
+ this._vtxposnonb_dy.fill(vtxNonBend[0].y() - vtxNonBend[1].y());
this._vtxposnonb_z.fill(vtxNonBend[0].z());
this._vtxposnonb_xAtZ0.fill(slts[0].calculateXYAtZ(0.)[0]);
this._vtxposnonb_zAtTarget.fill(slts[0].getYZAtX(this.targetPosition)[1]);
this._vtxposnonb_angle1.fill(Math.atan(slts[0].dzdx()));
this._vtxposnonb_angle2.fill(Math.atan(slts[1].dzdx()));
-
+
vtxPosNonBend = vtxNonBend[0];
}
-
-
+
List<Cluster> clusters = new ArrayList<Cluster>();
- if(!event.hasCollection(Cluster.class, ecalClusterCollectionName)) {
- if(_debug) {
+ if (!event.hasCollection(Cluster.class, ecalClusterCollectionName)) {
+ if (_debug) {
System.out.println(this.getClass().getSimpleName() + ": event doesn't have a ecal cluster collection ");
}
} else {
- clusters = event.get(Cluster.class, ecalClusterCollectionName);
-
- if(_debug) {
+ clusters = event.get(Cluster.class, ecalClusterCollectionName);
+
+ if (_debug) {
System.out.println(this.getClass().getSimpleName() + ": found " + clusters.size() + " ecal clusters " + event.getEventNumber());
}
- boolean goodRegion = false;
- for(Cluster c : clusters) {
+ boolean goodRegion = false;
+ for (Cluster c : clusters) {
int iy = c.getCalorimeterHits().get(0).getIdentifierFieldValue("iy");
int ix = c.getCalorimeterHits().get(0).getIdentifierFieldValue("ix");
double E = c.getEnergy();
- int evtnr = event.getEventNumber();
+ int evtnr = event.getEventNumber();
int clsize = c.getSize();
- if( iy>0 && ix>0 && E>0.6) {
- //printWriter.format("%d %5.5f %5d %5d %5d ",evtnr,E,ix,iy,clsize);
- goodRegion = true;
- }
- }
- if( goodRegion ) nEventsWithGoodRegionCluster++;
-
- }
-
+ if (iy > 0 && ix > 0 && E > 0.6) {
+ //printWriter.format("%d %5.5f %5d %5d %5d ",evtnr,E,ix,iy,clsize);
+ goodRegion = true;
+ }
+ }
+ if (goodRegion) {
+ nEventsWithGoodRegionCluster++;
+ }
+
+ }
+
Hep3Vector vtxPosMC = null;
- MCParticle electron=null;
- MCParticle positron=null;
- if(event.hasCollection(MCParticle.class,this.MCParticleCollectionName)) {
+ MCParticle electron = null;
+ MCParticle positron = null;
+ if (event.hasCollection(MCParticle.class, this.MCParticleCollectionName)) {
totalMCEvents++;
- List<MCParticle> mcparticles = event.get(MCParticle.class,this.MCParticleCollectionName);
+ List<MCParticle> mcparticles = event.get(MCParticle.class, this.MCParticleCollectionName);
List<MCParticle> fsParticles = HPSMCParticlePlotsDriver.makeGenFSParticleList(mcparticles);
-
- for(MCParticle part : fsParticles) {
- if(ParticleTypeClassifier.isElectron(part.getPDGID())) {
- if(electron==null) {
+
+ for (MCParticle part : fsParticles) {
+ if (ParticleTypeClassifier.isElectron(part.getPDGID())) {
+ if (electron == null) {
electron = part;
} else {
- if(part.getEnergy()>electron.getEnergy()) {
+ if (part.getEnergy() > electron.getEnergy()) {
electron = part;
}
}
}
- if(ParticleTypeClassifier.isPositron(part.getPDGID())) {
- if(positron==null) {
+ if (ParticleTypeClassifier.isPositron(part.getPDGID())) {
+ if (positron == null) {
positron = part;
} else {
- if(part.getEnergy()>positron.getEnergy()) {
+ if (part.getEnergy() > positron.getEnergy()) {
positron = part;
}
}
}
}
- if(electron!=null && positron!=null) {
+ if (electron != null && positron != null) {
particleVertexer.setParticle(electron, positron);
particleVertexer.fitVertex();
vtxPosMC = particleVertexer.getFittedVertex().getPosition();
- if(this._debug) System.out.printf("%s: vtxPosMC=%s org1 %s org2 %s\n", this.getClass().getSimpleName(),vtxPosMC.toString(),electron.getOrigin().toString(),positron.getOrigin().toString());
+ if (this._debug) {
+ System.out.printf("%s: vtxPosMC=%s org1 %s org2 %s\n", this.getClass().getSimpleName(), vtxPosMC.toString(), electron.getOrigin().toString(), positron.getOrigin().toString());
+ }
this._partvtxpos_x.fill(vtxPosMC.x());
this._partvtxpos_y.fill(vtxPosMC.y());
this._partvtxpos_z.fill(vtxPosMC.z());
totalTwoTrackMCEvents++;
}
}
-
-
-
+
totalTwoTrackEvents++;
try {
this.fillTextTuple(electron, positron, tracks, vtxPosMC, vtxPos, vtxPosFringe, vtxPosNonBend, clusters, event);
} catch (IOException ex) {
Logger.getLogger(ROOTFlatTupleDriver.class.getName()).log(Level.SEVERE, null, ex);
}
-
- if(this._debug) System.out.println(this.getClass().getSimpleName() + ": # two track events so far = "+totalTwoTrackEvents);
+
+ if (this._debug) {
+ System.out.println(this.getClass().getSimpleName() + ": # two track events so far = " + totalTwoTrackEvents);
+ }
//System.exit(0);
-
- }
-
-
-
+
+ }
+
@Override
public void endOfData() {
-
- System.out.println(this.getClass().getSimpleName() + ": Total Number of Events = "+this.totalEvents);
- System.out.println(this.getClass().getSimpleName() + ": Total Number of Events filling tuple = "+this.totalTwoTrackEvents);
- System.out.println(this.getClass().getSimpleName() + ": Total Number of events with MC collection = "+this.totalMCEvents);
- System.out.println(this.getClass().getSimpleName() + ": Total Number of events with e+e- ID'd = "+this.totalTwoTrackMCEvents);
- System.out.println(this.getClass().getSimpleName() + ": Total Number of events with cl in good region = "+this.nEventsWithGoodRegionCluster);
-
-
+
+ System.out.println(this.getClass().getSimpleName() + ": Total Number of Events = " + this.totalEvents);
+ System.out.println(this.getClass().getSimpleName() + ": Total Number of Events filling tuple = " + this.totalTwoTrackEvents);
+ System.out.println(this.getClass().getSimpleName() + ": Total Number of events with MC collection = " + this.totalMCEvents);
+ System.out.println(this.getClass().getSimpleName() + ": Total Number of events with e+e- ID'd = " + this.totalTwoTrackMCEvents);
+ System.out.println(this.getClass().getSimpleName() + ": Total Number of events with cl in good region = " + this.nEventsWithGoodRegionCluster);
+
if (!"".equals(outputPlotFileName)) {
try {
aida.saveAs(outputPlotFileName);
@@ -428,87 +428,93 @@
Logger.getLogger(TrigRateDriver.class.getName()).log(Level.SEVERE, "Couldn't save aida plots to file " + outputPlotFileName, ex);
}
}
-
- if(printWriter==null) {
+
+ if (printWriter == null) {
//Fill branches to text file (this is because detectorChanged() is called only if there are events to process
createWriter();
fillTextTupleBranches();
}
-
-
- System.out.printf("%s: printWriter close \n",this.getClass().getSimpleName());
+
+ System.out.printf("%s: printWriter close \n", this.getClass().getSimpleName());
printWriter.close();
try {
fileWriter.close();
} catch (IOException ex) {
Logger.getLogger(ROOTFlatTupleDriver.class.getName()).log(Level.SEVERE, null, ex);
}
-
-
- }
-
-
-
-
+
+ }
+
private boolean isFileEmpty(String fileName) {
File f = new File(fileName);
return f.length() == 0; //return zero also in case file doesn't exist
}
-
-
+
private void fillTextTupleBranches() {
-
- if(!doPrintBranchInfoLine) {
+
+ if (!doPrintBranchInfoLine) {
throw new RuntimeException("Trying to fill tuple branches with flag being set to false?!");
}
-
- String br_line = "";
- br_line+="evtnr/I:";
- br_line+="ntrks_top/I:ntrks_bot/I:ntrks100_top/I:ntrks100_bot/I:ntrks200_top/I:ntrks200_bot/I:ntrks300_top/I:ntrks300_bot/I:ntrks400_top/I:ntrks400_bot/I:ntrks500_top/I:ntrks500_bot/I:";
- br_line+="e_px/F:e_py/F:e_pz/F:p_px/F:p_py/F:p_pz/F:";
-
- for(int itrk=1;itrk<=4;++itrk) {
+
+ String br_line = "";
+ br_line += "evtnr/I:";
+ br_line += "ntrks_top/I:ntrks_bot/I:ntrks100_top/I:ntrks100_bot/I:ntrks200_top/I:ntrks200_bot/I:ntrks300_top/I:ntrks300_bot/I:ntrks400_top/I:ntrks400_bot/I:ntrks500_top/I:ntrks500_bot/I:";
+ br_line += "e_px/F:e_py/F:e_pz/F:p_px/F:p_py/F:p_pz/F:";
+
+ for (int itrk = 1; itrk <= 4; ++itrk) {
String trk_str = String.format("trk%d", itrk);
- br_line+=""+trk_str+"_d0/F:"+trk_str+"_phi0/F:"+trk_str+"_R/F:"+trk_str+"_z0/F:"+trk_str+"_slope/F:";
- br_line+=""+trk_str+"_q/I:"+trk_str+"_chi2/F:"+trk_str+"_px/F:"+trk_str+"_py/F:"+trk_str+"_pz/F:"+trk_str+"_nhits/I:";
- for(int iLayer=1;iLayer<=5;++iLayer) br_line+=""+trk_str+"_hit"+iLayer+"_x/F:"+""+trk_str+"_hit"+iLayer+"_y/F:"+""+trk_str+"_hit"+iLayer+"_z/F:";
- for(int iLayer=1;iLayer<=5;++iLayer) {
- br_line+=""+trk_str+"_res"+iLayer+"_y/F:"+""+trk_str+"_res"+iLayer+"_z/F:";
- br_line+=""+trk_str+"_eres"+iLayer+"_y/F:"+""+trk_str+"_eres"+iLayer+"_z/F:";
- br_line+=""+trk_str+"_drdphi"+iLayer+"/F:"+""+trk_str+"_msdrphi"+iLayer+"/F:";
- br_line+=""+trk_str+"_dz"+iLayer+"/F:"+""+trk_str+"_msdz"+iLayer+"/F:";
+ br_line += "" + trk_str + "_d0/F:" + trk_str + "_phi0/F:" + trk_str + "_R/F:" + trk_str + "_z0/F:" + trk_str + "_slope/F:";
+ br_line += "" + trk_str + "_q/I:" + trk_str + "_chi2/F:" + trk_str + "_px/F:" + trk_str + "_py/F:" + trk_str + "_pz/F:" + trk_str + "_nhits/I:";
+ for (int iLayer = 1; iLayer <= 5; ++iLayer) {
+ br_line += "" + trk_str + "_hit" + iLayer + "_x/F:" + "" + trk_str + "_hit" + iLayer + "_y/F:" + "" + trk_str + "_hit" + iLayer + "_z/F:";
+ }
+ for (int iLayer = 1; iLayer <= 5; ++iLayer) {
+ br_line += "" + trk_str + "_res" + iLayer + "_y/F:" + "" + trk_str + "_res" + iLayer + "_z/F:";
+ br_line += "" + trk_str + "_eres" + iLayer + "_y/F:" + "" + trk_str + "_eres" + iLayer + "_z/F:";
+ br_line += "" + trk_str + "_drdphi" + iLayer + "/F:" + "" + trk_str + "_msdrphi" + iLayer + "/F:";
+ br_line += "" + trk_str + "_dz" + iLayer + "/F:" + "" + trk_str + "_msdz" + iLayer + "/F:";
//br_line+=""+trk_str+"_ures"+iLayer+"/F:"+""+trk_str+"_ureserr"+iLayer+"/F:";
}
- for(int iLayer=1;iLayer<=10;++iLayer) br_line+=""+trk_str+"_strip"+iLayer+"_u/F:"+""+trk_str+"_strip"+iLayer+"_time/F:"+""+trk_str+"_strip"+iLayer+"_E/F:";
-
- br_line+=""+trk_str+"_conv_y/F:"+trk_str+"_conv_z/F:";
- br_line+=""+trk_str+"_fr_conv_x/F:"+trk_str+"_fr_conv_y/F:"+trk_str+"_fr_conv_z/F:";
- br_line+=""+trk_str+"_target_y/F:"+trk_str+"_target_z/F:";
- br_line+=""+trk_str+"_fr_target_x/F:"+trk_str+"_fr_target_y/F:"+trk_str+"_fr_target_z/F:";
+ for (int iLayer = 1; iLayer <= 10; ++iLayer) {
+ br_line += "" + trk_str + "_strip" + iLayer + "_u/F:" + "" + trk_str + "_strip" + iLayer + "_time/F:" + "" + trk_str + "_strip" + iLayer + "_E/F:";
+ }
+
+ br_line += "" + trk_str + "_conv_y/F:" + trk_str + "_conv_z/F:";
+ br_line += "" + trk_str + "_fr_conv_x/F:" + trk_str + "_fr_conv_y/F:" + trk_str + "_fr_conv_z/F:";
+ br_line += "" + trk_str + "_target_y/F:" + trk_str + "_target_z/F:";
+ br_line += "" + trk_str + "_fr_target_x/F:" + trk_str + "_fr_target_y/F:" + trk_str + "_fr_target_z/F:";
//br_line+=""+trk_str+"_ecal_y/F:"+trk_str+"_ecal_z/F:";
- br_line+=""+trk_str+"_ecal_y/F:"+trk_str+"_ecal_z/F:"+trk_str+"_fr_ecal_x/F:"+trk_str+"_fr_ecal_y/F:"+trk_str+"_fr_ecal_z/F:";
- br_line+=""+trk_str+"_ecal_sm_y/F:"+trk_str+"_ecal_sm_z/F:"+trk_str+"_fr_ecal_sm_x/F:"+trk_str+"_fr_ecal_sm_y/F:"+trk_str+"_fr_ecal_sm_z/F:";
+ br_line += "" + trk_str + "_ecal_y/F:" + trk_str + "_ecal_z/F:" + trk_str + "_fr_ecal_x/F:" + trk_str + "_fr_ecal_y/F:" + trk_str + "_fr_ecal_z/F:";
+ br_line += "" + trk_str + "_ecal_sm_y/F:" + trk_str + "_ecal_sm_z/F:" + trk_str + "_fr_ecal_sm_x/F:" + trk_str + "_fr_ecal_sm_y/F:" + trk_str + "_fr_ecal_sm_z/F:";
//br_line+=""+trk_str+"_fr_ecal_x/F:"+trk_str+"_fr_ecal_y/F:"+trk_str+"_fr_ecal_z/F:";
//br_line+=""+trk_str+"_fr_ecal_x/F:";
-
+
}
//
- for(int iLayer=1;iLayer<=10;++iLayer) br_line+="top_strip"+iLayer+"_n/F:";
- for(int iLayer=1;iLayer<=10;++iLayer) br_line+="bot_strip"+iLayer+"_n/F:";
- for(int iLayer=1;iLayer<=10;iLayer+=2) br_line+="top_stereo"+iLayer+"_n/F:";
- for(int iLayer=1;iLayer<=10;iLayer+=2) br_line+="bot_stereo"+iLayer+"_n/F:";
- br_line+="vtx_truth_x/F:vtx_truth_y/F:vtx_truth_z/F:";
- br_line+="vtx_x/F:vtx_y/F:vtx_z/F:";
- br_line+="vtx_fr_x/F:vtx_fr_y/F:vtx_fr_z/F:";
- br_line+="vtx_nonbend_x/F:vtx_nonbend_y/F:vtx_nonbend_z/F:";
- br_line+="cl1_E/F:cl1_ix/I:cl1_iy/I:cl1_x/F:cl1_y/F:cl1_z/F:cl1_n/I:";
- br_line+="cl2_E/F:cl2_ix/I:cl2_iy/I:cl2_x/F:cl2_y/F:cl2_z/F:cl2_n/I:";
- br_line+="cl3_E/F:cl3_ix/I:cl3_iy/I:cl3_x/F:cl3_y/F:cl3_z/F:cl3_n/I:";
- br_line+="ncl_top/I:ncl_bot/I:";
- br_line+="trig_top/I:trig_bot/I";
-
- if(printWriter==null) {
+ for (int iLayer = 1; iLayer <= 10; ++iLayer) {
+ br_line += "top_strip" + iLayer + "_n/F:";
+ }
+ for (int iLayer = 1; iLayer <= 10; ++iLayer) {
+ br_line += "bot_strip" + iLayer + "_n/F:";
+ }
+ for (int iLayer = 1; iLayer <= 10; iLayer += 2) {
+ br_line += "top_stereo" + iLayer + "_n/F:";
+ }
+ for (int iLayer = 1; iLayer <= 10; iLayer += 2) {
+ br_line += "bot_stereo" + iLayer + "_n/F:";
+ }
+ br_line += "vtx_truth_x/F:vtx_truth_y/F:vtx_truth_z/F:";
+ br_line += "vtx_x/F:vtx_y/F:vtx_z/F:";
+ br_line += "vtx_fr_x/F:vtx_fr_y/F:vtx_fr_z/F:";
+ br_line += "vtx_nonbend_x/F:vtx_nonbend_y/F:vtx_nonbend_z/F:";
+ br_line += "cl1_E/F:cl1_ix/I:cl1_iy/I:cl1_x/F:cl1_y/F:cl1_z/F:cl1_n/I:";
+ br_line += "cl2_E/F:cl2_ix/I:cl2_iy/I:cl2_x/F:cl2_y/F:cl2_z/F:cl2_n/I:";
+ br_line += "cl3_E/F:cl3_ix/I:cl3_iy/I:cl3_x/F:cl3_y/F:cl3_z/F:cl3_n/I:";
+ br_line += "ncl_top/I:ncl_bot/I:";
+ br_line += "trig_top/I:trig_bot/I";
+
+ if (printWriter == null) {
System.out.println("hmm 1");
}
printWriter.println(br_line);
@@ -516,178 +522,196 @@
doPrintBranchInfoLine = false;
}
-
-
+
/**
* Find the closest ECal cluster in deltaR. Return null if no match
+ *
* @param trk
* @param clusters
* @return clostest cluster.
*/
-
private Cluster findEcalCluster(Track trk, List<Cluster> clusters) {
- Cluster matched_cluster = null;
- double drMin = 9999999.9;
- double drMax = 9999999.9;
- double dr;
- Hep3Vector pos_cl,pos_trk;
- for(Cluster cluster : clusters) {
- pos_cl = new BasicHep3Vector(cluster.getPosition());
- pos_trk = TrackUtils.extrapolateTrack(trk,pos_cl.z());
- dr = VecOp.sub(pos_cl, pos_trk).magnitude();
- if( dr < drMax) {
- if( dr < drMin ) {
- matched_cluster = cluster;
- drMin = dr;
- }
- }
- }
- return matched_cluster;
- }
-
+ Cluster matched_cluster = null;
+ double drMin = 9999999.9;
+ double drMax = 9999999.9;
+ double dr;
+ Hep3Vector pos_cl, pos_trk;
+ for (Cluster cluster : clusters) {
+ pos_cl = new BasicHep3Vector(cluster.getPosition());
+ pos_trk = TrackUtils.extrapolateTrack(trk, pos_cl.z());
+ dr = VecOp.sub(pos_cl, pos_trk).magnitude();
+ if (dr < drMax) {
+ if (dr < drMin) {
+ matched_cluster = cluster;
+ drMin = dr;
+ }
+ }
+ }
+ return matched_cluster;
+ }
+
private void fillTextTuple(MCParticle e, MCParticle p, List<CmpTrack> tracks, Hep3Vector vtxPosParticle, Hep3Vector vtxPos, Hep3Vector vtxPosFr, Hep3Vector vtxPosNonBend, List<Cluster> clusters, EventHeader event) throws IOException {
- if(doPrintBranchInfoLine) {
+ if (doPrintBranchInfoLine) {
throw new RuntimeException("Need to fill tuple branches first!?");
}
-
+
//Event info
- printWriter.format("%5d ",event.getEventNumber());
- if(tracks.size()>0) {
- for(int icut=0;icut<=5;++icut) {
- int ntrks[] = getNtracks(tracks,icut*0.1);
- printWriter.format("%5d %5d ",ntrks[0],ntrks[1]);
- this._ntrks_px.fill(0.1*icut, ntrks[0]+ntrks[1]);
- }
+ printWriter.format("%5d ", event.getEventNumber());
+ if (tracks.size() > 0) {
+ for (int icut = 0; icut <= 5; ++icut) {
+ int ntrks[] = getNtracks(tracks, icut * 0.1);
+ printWriter.format("%5d %5d ", ntrks[0], ntrks[1]);
+ this._ntrks_px.fill(0.1 * icut, ntrks[0] + ntrks[1]);
+ }
} else {
- printWriter.format("%5d %5d %5d %5d %5d %5d %5d %5d %5d %5d %5d %5d ", -9999999, -9999999, -9999999, -9999999, -9999999, -9999999, -9999999, -9999999, -9999999, -9999999, -9999999, -9999999 );
- }
-
+ printWriter.format("%5d %5d %5d %5d %5d %5d %5d %5d %5d %5d %5d %5d ", -9999999, -9999999, -9999999, -9999999, -9999999, -9999999, -9999999, -9999999, -9999999, -9999999, -9999999, -9999999);
+ }
+
//Truth
- if(e!=null && p!=null) printWriter.format("%5.5f %5.5f %5.5f %5.5f %5.5f %5.5f ", e.getPX(),e.getPY(),e.getPZ(), p.getPX(),p.getPY(),p.getPZ() );
- else printWriter.format("%5.5f %5.5f %5.5f %5.5f %5.5f %5.5f ", -9999999., -9999999., -9999999., -9999999., -9999999., -9999999. );
-
-
- for (int itrk=0;itrk<4;itrk++) {
+ if (e != null && p != null) {
+ printWriter.format("%5.5f %5.5f %5.5f %5.5f %5.5f %5.5f ", e.getPX(), e.getPY(), e.getPZ(), p.getPX(), p.getPY(), p.getPZ());
+ } else {
+ printWriter.format("%5.5f %5.5f %5.5f %5.5f %5.5f %5.5f ", -9999999., -9999999., -9999999., -9999999., -9999999., -9999999.);
+ }
+
+ for (int itrk = 0; itrk < 4; itrk++) {
Track trk1 = null;
- if(tracks.size()>itrk) trk1 = tracks.get(itrk)._track;
-
- if(trk1!=null) {
+ if (tracks.size() > itrk) {
+ trk1 = tracks.get(itrk)._track;
+ }
+
+ if (trk1 != null) {
SeedTrack st1 = (SeedTrack) trk1;
- HelicalTrackFit helix1 = st1.getSeedCandidate().getHelix();
+ HelicalTrackFit helix1 = st1.getSeedCandidate().getHelix();
List<TrackerHit> hitsOnTrack1 = trk1.getTrackerHits();
- HashMap<Integer,HelicalTrackHit> hits1 = getHitMap(hitsOnTrack1,helix1);
-
- printWriter.format("%5.5f %5.5f %5.5f %5.5f %5.5f ",helix1.dca(),helix1.phi0(),helix1.R(),helix1.z0(),helix1.slope());
- printWriter.format("%5d %5.5f %5.5f %5.5f %5.5f %5d ",trk1.getCharge(),trk1.getChi2(), trk1.getTrackStates().get(0).getMomentum()[0],trk1.getTrackStates().get(0).getMomentum()[1],trk1.getTrackStates().get(0).getMomentum()[2],hitsOnTrack1.size());
+ HashMap<Integer, HelicalTrackHit> hits1 = getHitMap(hitsOnTrack1, helix1);
+
+ printWriter.format("%5.5f %5.5f %5.5f %5.5f %5.5f ", helix1.dca(), helix1.phi0(), helix1.R(), helix1.z0(), helix1.slope());
+ printWriter.format("%5d %5.5f %5.5f %5.5f %5.5f %5d ", trk1.getCharge(), trk1.getChi2(), trk1.getTrackStates().get(0).getMomentum()[0], trk1.getTrackStates().get(0).getMomentum()[1], trk1.getTrackStates().get(0).getMomentum()[2], hitsOnTrack1.size());
// stupid but I want to keep one line per event so default in case there is not hits in all layers
- for(int iLayer=0;iLayer<5;++iLayer) {
- HelicalTrackHit hitOnLayer = hits1.get(iLayer*2+1);// = this.getHitOnLayer(iLayer, hitsOnTrack);
- if (hitOnLayer != null) printWriter.format("%5.5f %5.5f %5.5f ", hitOnLayer.getPosition()[0],hitOnLayer.getPosition()[1],hitOnLayer.getPosition()[2]);
- else printWriter.format("%5.5f %5.5f %5.5f ", -9999999.9, -9999999.9, -9999999.9);
+ for (int iLayer = 0; iLayer < 5; ++iLayer) {
+ HelicalTrackHit hitOnLayer = hits1.get(iLayer * 2 + 1);// = this.getHitOnLayer(iLayer, hitsOnTrack);
+ if (hitOnLayer != null) {
+ printWriter.format("%5.5f %5.5f %5.5f ", hitOnLayer.getPosition()[0], hitOnLayer.getPosition()[1], hitOnLayer.getPosition()[2]);
+ } else {
+ printWriter.format("%5.5f %5.5f %5.5f ", -9999999.9, -9999999.9, -9999999.9);
+ }
}
//Get the helix for residual calculation
- for(int iLayer=0;iLayer<5;++iLayer) {
- HelicalTrackHit hitOnLayer = hits1.get(iLayer*2+1);// = this.getHitOnLayer(iLayer, hitsOnTrack);
+ for (int iLayer = 0; iLayer < 5; ++iLayer) {
+ HelicalTrackHit hitOnLayer = hits1.get(iLayer * 2 + 1);// = this.getHitOnLayer(iLayer, hitsOnTrack);
if (hitOnLayer != null) {
//printWriter.format("\n%s\n","X11");
- Map<String,Double> res = TrackUtils.calculateTrackHitResidual(hitOnLayer, helix1, true);
- if( !res.isEmpty() ) {
- printWriter.format("%5.5f %5.5f ",res.get("resy"),res.get("resz"));
- printWriter.format("%5.5f %5.5f ",res.get("erry"),res.get("errz"));
- printWriter.format("%5.5f %5.5f ", res.get("drphi"),res.get("msdrphi"));
- printWriter.format("%5.5f %5.5f ", res.get("dz_res"),res.get("msdz"));
+ Map<String, Double> res = TrackUtils.calculateTrackHitResidual(hitOnLayer, helix1, true);
+ if (!res.isEmpty()) {
+ printWriter.format("%5.5f %5.5f ", res.get("resy"), res.get("resz"));
+ printWriter.format("%5.5f %5.5f ", res.get("erry"), res.get("errz"));
+ printWriter.format("%5.5f %5.5f ", res.get("drphi"), res.get("msdrphi"));
+ printWriter.format("%5.5f %5.5f ", res.get("dz_res"), res.get("msdz"));
} else {
printWriter.format("%5.5f %5.5f ", -9999999.9, -9999999.9);
printWriter.format("%5.5f %5.5f ", -9999999.9, -9999999.9);
printWriter.format("%5.5f %5.5f ", -9999999.9, -9999999.9);
- printWriter.format("%5.5f %5.5f ", -9999999.9, -9999999.9);
+ printWriter.format("%5.5f %5.5f ", -9999999.9, -9999999.9);
}
- }
- else {
+ } else {
printWriter.format("%5.5f %5.5f ", -9999999.9, -9999999.9);
printWriter.format("%5.5f %5.5f ", -9999999.9, -9999999.9);
printWriter.format("%5.5f %5.5f ", -9999999.9, -9999999.9);
printWriter.format("%5.5f %5.5f ", -9999999.9, -9999999.9);
}
}
-
- HashMap<Integer,List<HelicalTrackStrip>> striphits1 = this.getStripHitsMap(hitsOnTrack1);
- for(int iLayer=1;iLayer<=10;++iLayer) {
- HelicalTrackStrip strip=null;
- if(striphits1.containsKey(iLayer)) strip = striphits1.get(iLayer).get(0);
- if(strip!=null) {
- printWriter.format("%5.5f %5.5f %5.5f ", strip.umeas(),strip.time(),strip.dEdx()/DopedSilicon.ENERGY_EHPAIR);
+
+ HashMap<Integer, List<HelicalTrackStrip>> striphits1 = this.getStripHitsMap(hitsOnTrack1);
+ for (int iLayer = 1; iLayer <= 10; ++iLayer) {
+ HelicalTrackStrip strip = null;
+ if (striphits1.containsKey(iLayer)) {
+ strip = striphits1.get(iLayer).get(0);
}
- else {
+ if (strip != null) {
+ printWriter.format("%5.5f %5.5f %5.5f ", strip.umeas(), strip.time(), strip.dEdx() / DopedSilicon.ENERGY_EHPAIR);
+ } else {
printWriter.format("%5.5f %5.5f %5.5f ", -99999999.9, -99999999.9, -99999999.9);
}
}
//Track at converter
- Hep3Vector posAtConverter = TrackUtils.extrapolateTrack(trk1,BeamlineConstants.HARP_POSITION_TESTRUN);
- if(beamlinePosOk(posAtConverter)) printWriter.format("%5.5f %5.5f ", posAtConverter.x(),posAtConverter.y()); //note rotation from JLab->tracking
- else printWriter.format("%5.5f %5.5f ", -9999999.9,-9999999.9);
+ Hep3Vector posAtConverter = TrackUtils.extrapolateTrack(trk1, BeamlineConstants.HARP_POSITION_TESTRUN);
+ if (beamlinePosOk(posAtConverter)) {
+ printWriter.format("%5.5f %5.5f ", posAtConverter.x(), posAtConverter.y()); //note rotation from JLab->tracking
+ } else {
+ printWriter.format("%5.5f %5.5f ", -9999999.9, -9999999.9);
+ }
HPSTrack hpstrk1 = new HPSTrack(helix1);
Hep3Vector posAtConverterFringe1 = hpstrk1.getPositionAtZMap(100., BeamlineConstants.HARP_POSITION_TESTRUN, 5.0)[0];
- if (beamlinePosOk(posAtConverterFringe1)) printWriter.format("%5.5f %5.5f %5.5f ", posAtConverterFringe1.z(),posAtConverterFringe1.x(),posAtConverterFringe1.y()); //note rotation from JLab->tracking
- else printWriter.format("%5.5f %5.5f %5.5f ", -9999999.9,-9999999.9,-9999999.9);
-
- Hep3Vector posAtNomTarget1 = TrackUtils.extrapolateTrack(trk1,0);
- if(beamlinePosOk(posAtNomTarget1)) printWriter.format("%5.5f %5.5f ", posAtNomTarget1.x(),posAtNomTarget1.y()); //note rotation from JLab->tracking
- else printWriter.format("%5.5f %5.5f ", -9999999.9,-9999999.9);
+ if (beamlinePosOk(posAtConverterFringe1)) {
+ printWriter.format("%5.5f %5.5f %5.5f ", posAtConverterFringe1.z(), posAtConverterFringe1.x(), posAtConverterFringe1.y()); //note rotation from JLab->tracking
+ } else {
+ printWriter.format("%5.5f %5.5f %5.5f ", -9999999.9, -9999999.9, -9999999.9);
+ }
+
+ Hep3Vector posAtNomTarget1 = TrackUtils.extrapolateTrack(trk1, 0);
+ if (beamlinePosOk(posAtNomTarget1)) {
+ printWriter.format("%5.5f %5.5f ", posAtNomTarget1.x(), posAtNomTarget1.y()); //note rotation from JLab->tracking
+ } else {
+ printWriter.format("%5.5f %5.5f ", -9999999.9, -9999999.9);
+ }
Hep3Vector posAtNomTargetFringe1 = hpstrk1.getPositionAtZMap(100., 0.0, 5.0)[0];
- if (beamlinePosOk(posAtNomTargetFringe1)) printWriter.format("%5.5f %5.5f %5.5f ", posAtNomTargetFringe1.z(),posAtNomTargetFringe1.x(),posAtNomTargetFringe1.y()); //note rotation from JLab->tracking
- else printWriter.format("%5.5f %5.5f %5.5f ", -9999999.9,-9999999.9,-9999999.9);
-
- Hep3Vector posAtECal = TrackUtils.extrapolateTrack(trk1,BeamlineConstants.ECAL_FACE_TESTRUN);
+ if (beamlinePosOk(posAtNomTargetFringe1)) {
+ printWriter.format("%5.5f %5.5f %5.5f ", posAtNomTargetFringe1.z(), posAtNomTargetFringe1.x(), posAtNomTargetFringe1.y()); //note rotation from JLab->tracking
+ } else {
+ printWriter.format("%5.5f %5.5f %5.5f ", -9999999.9, -9999999.9, -9999999.9);
+ }
+
+ Hep3Vector posAtECal = TrackUtils.extrapolateTrack(trk1, BeamlineConstants.ECAL_FACE_TESTRUN);
Hep3Vector posAtECalFringe1 = hpstrk1.getPositionAtZMap(BeamlineConstants.DIPOLE_EDGE_TESTRUN - 100, BeamlineConstants.ECAL_FACE_TESTRUN, 5.0, false)[0];
- if(beamlinePosOk(posAtECal)) {
- //printWriter.format("%5.5f %5.5f ",posAtECal.x(),posAtECal.y()); //note rotation from JLab->tracking
- printWriter.format("%5.5f %5.5f %5.5f %5.5f %5.5f ",posAtECal.x(),posAtECal.y(),posAtECalFringe1.z(),posAtECalFringe1.x(),posAtECalFringe1.y()); //note rotation from JLab->tracking
- }
- else printWriter.format("%5.5f %5.5f %5.5f %5.5f %5.5f ",-9999999.9,-9999999.9,-9999999.9,-9999999.9,-9999999.9);
-
+ if (beamlinePosOk(posAtECal)) {
+ //printWriter.format("%5.5f %5.5f ",posAtECal.x(),posAtECal.y()); //note rotation from JLab->tracking
+ printWriter.format("%5.5f %5.5f %5.5f %5.5f %5.5f ", posAtECal.x(), posAtECal.y(), posAtECalFringe1.z(), posAtECalFringe1.x(), posAtECalFringe1.y()); //note rotation from JLab->tracking
+ } else {
+ printWriter.format("%5.5f %5.5f %5.5f %5.5f %5.5f ", -9999999.9, -9999999.9, -9999999.9, -9999999.9, -9999999.9);
+ }
+
Cluster matched_cluster = findEcalCluster(trk1, clusters);
- if(matched_cluster !=null) {
- double[] pos_cluster = matched_cluster.getPosition();
- posAtECal = TrackUtils.extrapolateTrack(trk1,pos_cluster[2]);
- if(beamlinePosOk(posAtECal)) {
- posAtECalFringe1 = hpstrk1.getPositionAtZMap(BeamlineConstants.DIPOLE_EDGE_TESTRUN - 100, pos_cluster[2], 5.0, false)[0];
- printWriter.format("%5.5f %5.5f %5.5f %5.5f %5.5f ",posAtECal.x(),posAtECal.y(),posAtECalFringe1.z(),posAtECalFringe1.x(),posAtECalFringe1.y()); //note rotation from JLab->tracking
- if(_debug) {
- System.out.printf("clpos:%5.5f %5.5f %5.5f trk: %5.5f %5.5f %5.5f %5.5f %5.5f \n",pos_cluster[0],pos_cluster[1],pos_cluster[2],posAtECal.x(),posAtECal.y(),posAtECalFringe1.z(),posAtECalFringe1.x(),posAtECalFringe1.y()); //note rotation from JLab->tracking
-
- if(clusters.size()==1) {
- if(pos_cluster[1] >0) {
- _trkmatch_top_dy.fill(pos_cluster[1] - posAtECal.y());
- if(trk1.getCharge()>0) {
- _trkmatch_top_plus_dx.fill(pos_cluster[0] - posAtECal.x());
- } else {
- _trkmatch_top_minus_dx.fill(pos_cluster[0] - posAtECal.x());
- }
- } else {
- _trkmatch_bot_dy.fill(pos_cluster[1] - posAtECal.y());
- if(trk1.getCharge()>0) {
- _trkmatch_bot_plus_dx.fill(pos_cluster[0] - posAtECal.x());
- } else {
- _trkmatch_bot_minus_dx.fill(pos_cluster[0] - posAtECal.x());
- }
- }
- }
- }
- }
- else printWriter.format("%5.5f %5.5f %5.5f %5.5f %5.5f ",-9999999.9,-9999999.9,-9999999.9,-9999999.9,-9999999.9);
- }
- else printWriter.format("%5.5f %5.5f %5.5f %5.5f %5.5f ",-9999999.9,-9999999.9,-9999999.9,-9999999.9,-9999999.9);
-
-
-
-
- if(beamlinePosOk(posAtConverter)) {
- if(TrackUtils.isTopTrack(trk1, 4)) {
- if(trk1.getCharge()>0) {
+ if (matched_cluster != null) {
+ double[] pos_cluster = matched_cluster.getPosition();
+ posAtECal = TrackUtils.extrapolateTrack(trk1, pos_cluster[2]);
+ if (beamlinePosOk(posAtECal)) {
+ posAtECalFringe1 = hpstrk1.getPositionAtZMap(BeamlineConstants.DIPOLE_EDGE_TESTRUN - 100, pos_cluster[2], 5.0, false)[0];
+ printWriter.format("%5.5f %5.5f %5.5f %5.5f %5.5f ", posAtECal.x(), posAtECal.y(), posAtECalFringe1.z(), posAtECalFringe1.x(), posAtECalFringe1.y()); //note rotation from JLab->tracking
+ if (_debug) {
+ System.out.printf("clpos:%5.5f %5.5f %5.5f trk: %5.5f %5.5f %5.5f %5.5f %5.5f \n", pos_cluster[0], pos_cluster[1], pos_cluster[2], posAtECal.x(), posAtECal.y(), posAtECalFringe1.z(), posAtECalFringe1.x(), posAtECalFringe1.y()); //note rotation from JLab->tracking
+
+ if (clusters.size() == 1) {
+ if (pos_cluster[1] > 0) {
+ _trkmatch_top_dy.fill(pos_cluster[1] - posAtECal.y());
+ if (trk1.getCharge() > 0) {
+ _trkmatch_top_plus_dx.fill(pos_cluster[0] - posAtECal.x());
+ } else {
+ _trkmatch_top_minus_dx.fill(pos_cluster[0] - posAtECal.x());
+ }
+ } else {
+ _trkmatch_bot_dy.fill(pos_cluster[1] - posAtECal.y());
+ if (trk1.getCharge() > 0) {
+ _trkmatch_bot_plus_dx.fill(pos_cluster[0] - posAtECal.x());
+ } else {
+ _trkmatch_bot_minus_dx.fill(pos_cluster[0] - posAtECal.x());
+ }
+ }
+ }
+ }
+ } else {
+ printWriter.format("%5.5f %5.5f %5.5f %5.5f %5.5f ", -9999999.9, -9999999.9, -9999999.9, -9999999.9, -9999999.9);
+ }
+ } else {
+ printWriter.format("%5.5f %5.5f %5.5f %5.5f %5.5f ", -9999999.9, -9999999.9, -9999999.9, -9999999.9, -9999999.9);
+ }
+
+ if (beamlinePosOk(posAtConverter)) {
+ if (TrackUtils.isTopTrack(trk1, 4)) {
+ if (trk1.getCharge() > 0) {
this._trk_y_at_conv_top_pos.fill(posAtConverter.x());
this._trk_z_at_conv_top_pos.fill(posAtConverter.y());
} else {
@@ -695,7 +719,7 @@
this._trk_z_at_conv_top_neg.fill(posAtConverter.y());
}
} else {
- if(trk1.getCharge()>0) {
+ if (trk1.getCharge() > 0) {
this._trk_y_at_conv_bot_pos.fill(posAtConverter.x());
this._trk_z_at_conv_bot_pos.fill(posAtConverter.y());
} else {
@@ -704,9 +728,9 @@
}
}
}
- if(beamlinePosOk(posAtConverterFringe1)) {
- if(TrackUtils.isTopTrack(trk1, 4)) {
- if(trk1.getCharge()>0) {
+ if (beamlinePosOk(posAtConverterFringe1)) {
+ if (TrackUtils.isTopTrack(trk1, 4)) {
+ if (trk1.getCharge() > 0) {
this._trk_y_at_conv_top_pos_fr.fill(posAtConverterFringe1.x());
this._trk_z_at_conv_top_pos_fr.fill(posAtConverterFringe1.y());
} else {
@@ -714,7 +738,7 @@
this._trk_z_at_conv_top_neg_fr.fill(posAtConverterFringe1.y());
}
} else {
- if(trk1.getCharge()>0) {
+ if (trk1.getCharge() > 0) {
this._trk_y_at_conv_bot_pos_fr.fill(posAtConverterFringe1.x());
this._trk_z_at_conv_bot_pos_fr.fill(posAtConverterFringe1.y());
} else {
@@ -723,98 +747,108 @@
}
}
}
-
-
-
- }
- else {
-
- printWriter.format("%5.5f %5.5f %5.5f %5.5f %5.5f ",-9999999.9,-9999999.9,-9999999.9,-9999999.9,-9999999.9);
- printWriter.format("%5d %5.5f %5.5f %5.5f %5.5f %5d ",-9999999,-9999999.9, -9999999.9,-9999999.9,-9999999.9,-9999999);
- for(int iLayer=0;iLayer<5;++iLayer) {
+
+ } else {
+
+ printWriter.format("%5.5f %5.5f %5.5f %5.5f %5.5f ", -9999999.9, -9999999.9, -9999999.9, -9999999.9, -9999999.9);
+ printWriter.format("%5d %5.5f %5.5f %5.5f %5.5f %5d ", -9999999, -9999999.9, -9999999.9, -9999999.9, -9999999.9, -9999999);
+ for (int iLayer = 0; iLayer < 5; ++iLayer) {
printWriter.format("%5.5f %5.5f %5.5f ", -9999999.9, -9999999.9, -9999999.9);
}
- for(int iLayer=0;iLayer<5;++iLayer) {
- printWriter.format("%5.5f %5.5f ", -9999999.9, -9999999.9);
- printWriter.format("%5.5f %5.5f ", -9999999.9, -9999999.9);
- printWriter.format("%5.5f %5.5f ", -9999999.9, -9999999.9);
- printWriter.format("%5.5f %5.5f ", -9999999.9, -9999999.9);
- }
- for(int iLayer=1;iLayer<=10;++iLayer) {
+ for (int iLayer = 0; iLayer < 5; ++iLayer) {
+ printWriter.format("%5.5f %5.5f ", -9999999.9, -9999999.9);
+ printWriter.format("%5.5f %5.5f ", -9999999.9, -9999999.9);
+ printWriter.format("%5.5f %5.5f ", -9999999.9, -9999999.9);
+ printWriter.format("%5.5f %5.5f ", -9999999.9, -9999999.9);
+ }
+ for (int iLayer = 1; iLayer <= 10; ++iLayer) {
printWriter.format("%5.5f %5.5f %5.5f ", -99999999.9, -99999999.9, -99999999.9);
}
-
- printWriter.format("%5.5f %5.5f ",-9999999.9,-9999999.9); //note rotation from JLab->tracking
- printWriter.format("%5.5f %5.5f %5.5f ",-9999999.9,-9999999.9,-9999999.9); //note rotation from JLab->tracking
- printWriter.format("%5.5f %5.5f ",-9999999.9,-9999999.9); //note rotation from JLab->tracking
- printWriter.format("%5.5f %5.5f %5.5f ",-9999999.9,-9999999.9,-9999999.9); //note rotation from JLab->tracking
- printWriter.format("%5.5f %5.5f %5.5f %5.5f %5.5f ",-9999999.9,-9999999.9,-9999999.9,-9999999.9,-9999999.9); //note rotation from JLab->tracking
- printWriter.format("%5.5f %5.5f %5.5f %5.5f %5.5f ",-9999999.9,-9999999.9,-9999999.9,-9999999.9,-9999999.9); //note rotation from JLab->tracking
-
+
+ printWriter.format("%5.5f %5.5f ", -9999999.9, -9999999.9); //note rotation from JLab->tracking
+ printWriter.format("%5.5f %5.5f %5.5f ", -9999999.9, -9999999.9, -9999999.9); //note rotation from JLab->tracking
+ printWriter.format("%5.5f %5.5f ", -9999999.9, -9999999.9); //note rotation from JLab->tracking
+ printWriter.format("%5.5f %5.5f %5.5f ", -9999999.9, -9999999.9, -9999999.9); //note rotation from JLab->tracking
+ printWriter.format("%5.5f %5.5f %5.5f %5.5f %5.5f ", -9999999.9, -9999999.9, -9999999.9, -9999999.9, -9999999.9); //note rotation from JLab->tracking
+ printWriter.format("%5.5f %5.5f %5.5f %5.5f %5.5f ", -9999999.9, -9999999.9, -9999999.9, -9999999.9, -9999999.9); //note rotation from JLab->tracking
+
}
}
//printWriter.format("\n%s\n","X1");
-
-
//printWriter.format("\n%s\n","X2");
-
-
-
-
- HashMap<Integer,List<SiTrackerHitStrip1D>> allstriphits = this.getAllStripHitsMap(event,true);
+ HashMap<Integer, List<SiTrackerHitStrip1D>> allstriphits = this.getAllStripHitsMap(event, true);
//System.out.printf("%s: %d strip hits in event\n",this.getClass().getSimpleName(),allstriphits.size());
- for(int iLayer=1;iLayer<=10;++iLayer) {
- if(allstriphits.containsKey(iLayer)) {
+ for (int iLayer = 1; iLayer <= 10; ++iLayer) {
+ if (allstriphits.containsKey(iLayer)) {
printWriter.format("%5d ", allstriphits.get(iLayer).size());
//System.out.printf("%s: layer %d has %d strip hits\n",this.getClass().getSimpleName(),iLayer,allstriphits.get(iLayer).size());
- }
- else {
+ } else {
printWriter.format("%5d ", -99999999);
//System.out.printf("%s: layer %d has 0 strip hits\n",this.getClass().getSimpleName(),iLayer);
}
}
- allstriphits = this.getAllStripHitsMap(event,false);
- for(int iLayer=1;iLayer<=10;++iLayer) {
- if(allstriphits.containsKey(iLayer)) printWriter.format("%5d ", allstriphits.get(iLayer).size());
- else printWriter.format("%5d ", -99999999);
+ allstriphits = this.getAllStripHitsMap(event, false);
+ for (int iLayer = 1; iLayer <= 10; ++iLayer) {
+ if (allstriphits.containsKey(iLayer)) {
+ printWriter.format("%5d ", allstriphits.get(iLayer).size());
+ } else {
+ printWriter.format("%5d ", -99999999);
+ }
}
List<HelicalTrackHit> stereoHits = new ArrayList<HelicalTrackHit>();
- if(event.hasCollection(HelicalTrackHit.class, stereoHitCollectionName)) {
+ if (event.hasCollection(HelicalTrackHit.class, stereoHitCollectionName)) {
stereoHits = event.get(HelicalTrackHit.class, stereoHitCollectionName);
- }
-
-
- HashMap<Integer,List<HelicalTrackHit>> allstereohits = getAllStereoHitsMap(stereoHits,true);
- for(int iLayer=1;iLayer<=10;iLayer+=2) {
- if(allstereohits.containsKey(iLayer)) printWriter.format("%5d ", allstereohits.get(iLayer).size());
- else printWriter.format("%5d ", -99999999);
- }
- allstereohits = getAllStereoHitsMap(stereoHits,false);
- for(int iLayer=1;iLayer<=10;iLayer+=2) {
- if(allstereohits.containsKey(iLayer)) printWriter.format("%5d ", allstereohits.get(iLayer).size());
- else printWriter.format("%5d ", -99999999);
+ }
+
+ HashMap<Integer, List<HelicalTrackHit>> allstereohits = getAllStereoHitsMap(stereoHits, true);
+ for (int iLayer = 1; iLayer <= 10; iLayer += 2) {
+ if (allstereohits.containsKey(iLayer)) {
+ printWriter.format("%5d ", allstereohits.get(iLayer).size());
+ } else {
+ printWriter.format("%5d ", -99999999);
+ }
+ }
+ allstereohits = getAllStereoHitsMap(stereoHits, false);
+ for (int iLayer = 1; iLayer <= 10; iLayer += 2) {
+ if (allstereohits.containsKey(iLayer)) {
+ printWriter.format("%5d ", allstereohits.get(iLayer).size());
+ } else {
+ printWriter.format("%5d ", -99999999);
+ }
}
//printWriter.format("\n%s\n","X4");
-
+
//Particle vtx
- if(vtxPosParticle!=null) printWriter.format("%5.5f %5.5f %5.5f ", vtxPosParticle.x(),vtxPosParticle.y(),vtxPosParticle.z() );
- else printWriter.format("%5.5f %5.5f %5.5f ", -9999999., -9999999., -9999999. );
+ if (vtxPosParticle != null) {
+ printWriter.format("%5.5f %5.5f %5.5f ", vtxPosParticle.x(), vtxPosParticle.y(), vtxPosParticle.z());
+ } else {
+ printWriter.format("%5.5f %5.5f %5.5f ", -9999999., -9999999., -9999999.);
+ }
//Track vtx
- if(vtxPos!=null) printWriter.format("%5.5f %5.5f %5.5f ", vtxPos.x(),vtxPos.y(),vtxPos.z() );
- else printWriter.format("%5.5f %5.5f %5.5f ", -9999999., -9999999., -9999999. );
- if(vtxPosFr!=null) printWriter.format("%5.5f %5.5f %5.5f ", vtxPosFr.x(),vtxPosFr.y(),vtxPosFr.z() );
- else printWriter.format("%5.5f %5.5f %5.5f ", -9999999., -9999999., -9999999. );
- if(vtxPosNonBend!=null) printWriter.format("%5.5f %5.5f %5.5f ", vtxPosNonBend.x(),vtxPosNonBend.y(),vtxPosNonBend.z() );
- else printWriter.format("%5.5f %5.5f %5.5f ", -9999999., -9999999., -9999999. );
- int ncl_t=0; int ncl_b=0;
- for(int i=0;i<3;++i) {
- if(clusters==null) {
- printWriter.format("%5.5f %5d %5d %5.5f %5.5f %5.5f %5d ",-999999.9,-999999,-999999,-999999.,-999999.,-999999.,-999999);
- }
- else if(clusters.size()<=i) {
- printWriter.format("%5.5f %5d %5d %5.5f %5.5f %5.5f %5d ",-999999.9,-999999,-999999,-999999.,-999999.,-999999.,-999999);
+ if (vtxPos != null) {
+ printWriter.format("%5.5f %5.5f %5.5f ", vtxPos.x(), vtxPos.y(), vtxPos.z());
+ } else {
+ printWriter.format("%5.5f %5.5f %5.5f ", -9999999., -9999999., -9999999.);
+ }
+ if (vtxPosFr != null) {
+ printWriter.format("%5.5f %5.5f %5.5f ", vtxPosFr.x(), vtxPosFr.y(), vtxPosFr.z());
+ } else {
+ printWriter.format("%5.5f %5.5f %5.5f ", -9999999., -9999999., -9999999.);
+ }
+ if (vtxPosNonBend != null) {
+ printWriter.format("%5.5f %5.5f %5.5f ", vtxPosNonBend.x(), vtxPosNonBend.y(), vtxPosNonBend.z());
+ } else {
+ printWriter.format("%5.5f %5.5f %5.5f ", -9999999., -9999999., -9999999.);
+ }
+ int ncl_t = 0;
+ int ncl_b = 0;
+ for (int i = 0; i < 3; ++i) {
+ if (clusters == null) {
+ printWriter.format("%5.5f %5d %5d %5.5f %5.5f %5.5f %5d ", -999999.9, -999999, -999999, -999999., -999999., -999999., -999999);
+ } else if (clusters.size() <= i) {
+ printWriter.format("%5.5f %5d %5d %5.5f %5.5f %5.5f %5d ", -999999.9, -999999, -999999, -999999., -999999., -999999., -999999);
} else {
//for(Cluster cl : clusters) {
int iy = clusters.get(i).getCalorimeterHits().get(0).getIdentifierFieldValue("iy");
@@ -822,166 +856,187 @@
double pos[] = clusters.get(i).getPosition();
double E = clusters.get(i).getEnergy();
int clsize = clusters.get(i).getSize();
- printWriter.format("%5.5f %5d %5d %5.5f %5.5f %5.5f %5d ",E,ix,iy,pos[0],pos[1],pos[2],clsize);
- if( iy > 0) ncl_t++;
- else ncl_b++;
- }
- }
- printWriter.format("%5d %5d ",ncl_t,ncl_b);
-
- GenericObject triggerData = getTriggerInfo(event);
- if(triggerData==null) {
- printWriter.format("%5d %5d",0,0);
- }
- else {
- printWriter.format("%5d %5d",TriggerData.getTopTrig(triggerData),TriggerData.getBotTrig(triggerData));
- if(_debug) {
- System.out.printf("trigger top %d bot %d OR %d AND %d\n", TriggerData.getTopTrig(triggerData), TriggerData.getBotTrig(triggerData),TriggerData.getOrTrig(triggerData),TriggerData.getAndTrig(triggerData));
- }
+ printWriter.format("%5.5f %5d %5d %5.5f %5.5f %5.5f %5d ", E, ix, iy, pos[0], pos[1], pos[2], clsize);
+ if (iy > 0) {
+ ncl_t++;
+ } else {
+ ncl_b++;
+ }
+ }
+ }
+ printWriter.format("%5d %5d ", ncl_t, ncl_b);
+
+ TestRunTriggerData triggerData = getTriggerInfo(event);
+ if (triggerData == null) {
+ printWriter.format("%5d %5d", 0, 0);
+ } else {
+ printWriter.format("%5d %5d", triggerData.getTopTrig(), triggerData.getBotTrig());
+ if (_debug) {
+ System.out.printf("trigger top %d bot %d OR %d AND %d\n", triggerData.getTopTrig(), triggerData.getBotTrig(), triggerData.getOrTrig(), triggerData.getAndTrig());
+ }
}
printWriter.println();
-
- }
-
-
+
+ }
+
/**
* Check that object is not null or undefined
+ *
* @param pos to check
* @return
*/
private boolean beamlinePosOk(Hep3Vector pos) {
- if( pos == null) {
- return false;
- } else if ( Double.isNaN(pos.x()) || Double.isNaN(pos.y()) || Double.isNaN(pos.z()) ) {
- return false;
- } else {
- return true;
- }
- }
-
- private GenericObject getTriggerInfo(EventHeader event) {
- if(event.hasCollection(TriggerData.class, triggerDecisionCollectionName)) {
-
- List<TriggerData> triggerDataList = event.get(TriggerData.class, "TriggerBank");
- if(triggerDataList.isEmpty()) {
- if(_debug)
- System.out.println( "Event has trigger bank exists but is empty");
- return null;
- } else {
- if(_debug)
- System.out.println( "Event has trigger bank");
- return triggerDataList.get(0);
- }
- }
- else if (event.hasCollection(GenericObject.class, triggerDecisionCollectionName)) {
- List<GenericObject> triggerList = event.get(GenericObject.class, triggerDecisionCollectionName);
- if (!triggerList.isEmpty()) {
- if(_debug)
- System.out.println( "Event has trigger generic bank");
- GenericObject triggerData = triggerList.get(0);
- return triggerData;
- }
- else {
- if(_debug)
- System.out.println( "Event has trigger generic bank exists but is empty");
- return null;
- }
- }
- else {
- if(_debug) {
- System.out.printf( "%s: Event %d has NO trigger bank\n",this.getClass().getSimpleName(),event.getEventNumber());
- }
- return null;
- }
-
- }
-
-
- private HashMap<Integer,HelicalTrackHit> getHitMap(List<TrackerHit> hits,HelicalTrackFit helix) {
- HashMap<Integer,HelicalTrackHit> map = new HashMap<Integer,HelicalTrackHit>();
- for(TrackerHit hit : hits) {
+ if (pos == null) {
+ return false;
+ } else if (Double.isNaN(pos.x()) || Double.isNaN(pos.y()) || Double.isNaN(pos.z())) {
+ return false;
+ } else {
+ return true;
+ }
+ }
+
+ private TestRunTriggerData getTriggerInfo(EventHeader event) {
+ if (event.hasCollection(AbstractIntData.class, triggerDecisionCollectionName)) {
+
+ List<AbstractIntData> triggerDataList = event.get(AbstractIntData.class, "TriggerBank");
+ for (AbstractIntData data : triggerDataList) {
+ if (data instanceof TestRunTriggerData) {
+ if (_debug) {
+ System.out.println("Event has trigger bank");
+ }
+ return (TestRunTriggerData) data;
+ }
+ }
+ if (_debug) {
+ System.out.println("Event has trigger bank exists but is empty");
+ }
+ return null;
+ } else if (event.hasCollection(GenericObject.class, triggerDecisionCollectionName)) {
+ List<GenericObject> triggerList = event.get(GenericObject.class, triggerDecisionCollectionName);
+ for (GenericObject data : triggerList) {
+ if (AbstractIntData.getTag(data) == TestRunTriggerData.BANK_TAG) {
+ if (_debug) {
+ System.out.println("Event has trigger generic bank");
+ }
+ return new TestRunTriggerData(data);
+ }
+ }
+ if (_debug) {
+ System.out.println("Event has trigger generic bank exists but is empty");
+ }
+ return null;
+ } else {
+ if (_debug) {
+ System.out.printf("%s: Event %d has NO trigger bank\n", this.getClass().getSimpleName(), event.getEventNumber());
+ }
+ return null;
+ }
+
+ }
+
+ private HashMap<Integer, HelicalTrackHit> getHitMap(List<TrackerHit> hits, HelicalTrackFit helix) {
+ HashMap<Integer, HelicalTrackHit> map = new HashMap<Integer, HelicalTrackHit>();
+ for (TrackerHit hit : hits) {
HelicalTrackHit hth = (HelicalTrackHit) hit;
map.put(hth.Layer(), hth);
}
return map;
}
-
-
- private HashMap<Integer,List<HelicalTrackStrip>> getStripHitsMap(List<TrackerHit> hits) {
- HashMap<Integer,List<HelicalTrackStrip>> map = new HashMap<Integer,List<HelicalTrackStrip>>();
- for(TrackerHit hit : hits) {
+
+ private HashMap<Integer, List<HelicalTrackStrip>> getStripHitsMap(List<TrackerHit> hits) {
+ HashMap<Integer, List<HelicalTrackStrip>> map = new HashMap<Integer, List<HelicalTrackStrip>>();
+ for (TrackerHit hit : hits) {
HelicalTrackHit hth = (HelicalTrackHit) hit;
HelicalTrackCross htc = (HelicalTrackCross) hth;
HelicalTrackStrip s1 = htc.getStrips().get(0);
HelicalTrackStrip s2 = htc.getStrips().get(1);
- if(!map.containsKey(s1.layer())) map.put(s1.layer(), new ArrayList<HelicalTrackStrip>());
- if(!map.containsKey(s2.layer())) map.put(s2.layer(), new ArrayList<HelicalTrackStrip>());
+ if (!map.containsKey(s1.layer())) {
+ map.put(s1.layer(), new ArrayList<HelicalTrackStrip>());
+ }
+ if (!map.containsKey(s2.layer())) {
+ map.put(s2.layer(), new ArrayList<HelicalTrackStrip>());
+ }
map.get(s1.layer()).add(s1);
map.get(s2.layer()).add(s2);
}
return map;
}
-
- private HashMap<Integer,List<SiTrackerHitStrip1D>> getAllStripHitsMap(EventHeader event, boolean top) {
- HashMap<Integer,List<SiTrackerHitStrip1D>> map = new HashMap<Integer,List<SiTrackerHitStrip1D>>();
- if(!event.hasCollection(SiTrackerHitStrip1D.class, this._stripClusterCollectionName)) {
+
+ private HashMap<Integer, List<SiTrackerHitStrip1D>> getAllStripHitsMap(EventHeader event, boolean top) {
+ HashMap<Integer, List<SiTrackerHitStrip1D>> map = new HashMap<Integer, List<SiTrackerHitStrip1D>>();
+ if (!event.hasCollection(SiTrackerHitStrip1D.class, this._stripClusterCollectionName)) {
return map;
}
List<SiTrackerHitStrip1D> strips = event.get(SiTrackerHitStrip1D.class, this._stripClusterCollectionName);
- if(this._debug) System.out.printf("%s: found %d strips in clollection, asking strips in the %s\n", this.getClass().getSimpleName(),strips.size(),(top?"top":"bottom"));
- for(SiTrackerHitStrip1D strip : strips) {
+ if (this._debug) {
+ System.out.printf("%s: found %d strips in clollection, asking strips in the %s\n", this.getClass().getSimpleName(), strips.size(), (top ? "top" : "bottom"));
+ }
+ for (SiTrackerHitStrip1D strip : strips) {
IDetectorElement de = strip.getSensor();
HpsSiSensor sensor = (HpsSiSensor) de;
int lyr = _ID.getLayer(de);
//===> if(!top && SvtUtils.getInstance().isTopLayer(sensor)) continue;
- if(!top && sensor.isTopLayer()) continue;
- //else if (top && !SvtUtils.getInstance().isTopLayer(sensor)) continue;
- else if (top && !sensor.isTopLayer()) continue;
- if(this._debug) System.out.printf("%s: strip \"%s\" at %s is selected\n", this.getClass().getSimpleName(),_ID.getName(de),strip.getPositionAsVector().toString());
- if(!map.containsKey(lyr)) {
+ if (!top && sensor.isTopLayer()) {
+ continue;
+ } //else if (top && !SvtUtils.getInstance().isTopLayer(sensor)) continue;
+ else if (top && !sensor.isTopLayer()) {
+ continue;
+ }
+ if (this._debug) {
+ System.out.printf("%s: strip \"%s\" at %s is selected\n", this.getClass().getSimpleName(), _ID.getName(de), strip.getPositionAsVector().toString());
+ }
+ if (!map.containsKey(lyr)) {
map.put(lyr, new ArrayList<SiTrackerHitStrip1D>());
}
map.get(lyr).add(strip);
}
-
+
return map;
}
-
- private HashMap<Integer,List<HelicalTrackHit>> getAllStereoHitsMap(List<HelicalTrackHit> stereoHits, boolean top) {
- HashMap<Integer,List<HelicalTrackHit>> map = new HashMap<Integer,List<HelicalTrackHit>>();
- if(stereoHits==null) {
+
+ private HashMap<Integer, List<HelicalTrackHit>> getAllStereoHitsMap(List<HelicalTrackHit> stereoHits, boolean top) {
+ HashMap<Integer, List<HelicalTrackHit>> map = new HashMap<Integer, List<HelicalTrackHit>>();
+ if (stereoHits == null) {
return map;
}
- if(this._debug) System.out.printf("%s: asking for stereo hits in the %s\n", this.getClass().getSimpleName(),(top?"top":"bottom"));
- for(HelicalTrackHit hit : stereoHits) {
- if(top && hit.z()<0) continue;
- if(!top && hit.z()>0) continue;
- if(this._debug) System.out.printf("%s: hit at xyz=%.3f,%.3f,%.3f is selected\n", this.getClass().getSimpleName(),hit.x(),hit.y(),hit.z());
- if(!map.containsKey(hit.Layer())) {
+ if (this._debug) {
+ System.out.printf("%s: asking for stereo hits in the %s\n", this.getClass().getSimpleName(), (top ? "top" : "bottom"));
+ }
+ for (HelicalTrackHit hit : stereoHits) {
+ if (top && hit.z() < 0) {
+ continue;
+ }
+ if (!top && hit.z() > 0) {
+ continue;
+ }
+ if (this._debug) {
+ System.out.printf("%s: hit at xyz=%.3f,%.3f,%.3f is selected\n", this.getClass().getSimpleName(), hit.x(), hit.y(), hit.z());
+ }
+ if (!map.containsKey(hit.Layer())) {
map.put(hit.Layer(), new ArrayList<HelicalTrackHit>());
}
map.get(hit.Layer()).add(hit);
}
return map;
}
-
+
private int[] getNtracks(List<CmpTrack> tracks, double min_px) {
//System.out.printf("%s: getNtracks for %d tracks with min_px=%.3f \n",this.getClass().getSimpleName(),tracks.size(),min_px);
- int n[] = {0,0};
- for(CmpTrack track : tracks) {
- if(track._track.getTrackStates().get(0).getMomentum()[0]<min_px) {
+ int n[] = {0, 0};
+ for (CmpTrack track : tracks) {
+ if (track._track.getTrackStates().get(0).getMomentum()[0] < min_px) {
continue;
}
//System.out.printf("%s: track had enough px=%f\n",this.getClass().getSimpleName(),track._track.getTrackStates().get(0).getMomentum()[0]);
-
+
List<TrackerHit> hitsOnTrack = track._track.getTrackerHits();
- for(TrackerHit hit : hitsOnTrack) {
+ for (TrackerHit hit : hitsOnTrack) {
double y = hit.getPosition()[1];
- if(y>0) {
+ if (y > 0) {
//System.out.printf("%s: this track (chi2=%f) is a top track\n",this.getClass().getSimpleName(),track._track.getChi2());
n[0]++;
break;
- } else if(y<0) {
+ } else if (y < 0) {
//System.out.printf("%s: this track (chi2=%f) is a bot track\n",this.getClass().getSimpleName(),track._track.getChi2());
n[1]++;
break;
@@ -993,9 +1048,7 @@
return n;
}
-
-
- private void makePlots() {
+ private void makePlots() {
_vtxpos_x = aida.histogram1D("Vertex position X", 100, -800, -500);
_vtxpos_y = aida.histogram1D("Vertex position Y", 100, 0, 40);
_vtxpos_z = aida.histogram1D("Vertex position Z", 100, -4, 4);
@@ -1014,51 +1067,48 @@
_vtxposnonb_angle1 = aida.histogram1D("SLT thetay non-bend (trk1)", 100, -0.05, 0.05);
_vtxposnonb_angle2 = aida.histogram1D("SLT thetay non-bend (trk2)", 100, -0.05, 0.05);
- _ntrks_px = aida.histogram2D("Track multiplicity vs px cut", 6, 0, 0.6,8,0,8);
-
- _trk_y_at_conv_top_pos = aida.histogram1D("Track y @ converter top +", 100, -30,60);
- _trk_z_at_conv_top_pos = aida.histogram1D("Track z @ converter top +", 100, -20,20);
+ _ntrks_px = aida.histogram2D("Track multiplicity vs px cut", 6, 0, 0.6, 8, 0, 8);
+
+ _trk_y_at_conv_top_pos = aida.histogram1D("Track y @ converter top +", 100, -30, 60);
+ _trk_z_at_conv_top_pos = aida.histogram1D("Track z @ converter top +", 100, -20, 20);
_trk_y_at_conv_top_pos_fr = aida.histogram1D("Track y @ converter top + (fr)", 100, -30, 60);
_trk_z_at_conv_top_pos_fr = aida.histogram1D("Track z @ converter top + (fr)", 100, -20, 20);
- _trk_y_at_conv_bot_pos = aida.histogram1D("Track y @ converter bot +", 100, -30,60);
- _trk_z_at_conv_bot_pos = aida.histogram1D("Track z @ converter bot +", 100, -20,20);
+ _trk_y_at_conv_bot_pos = aida.histogram1D("Track y @ converter bot +", 100, -30, 60);
+ _trk_z_at_conv_bot_pos = aida.histogram1D("Track z @ converter bot +", 100, -20, 20);
_trk_y_at_conv_bot_pos_fr = aida.histogram1D("Track y @ converter bot + (fr)", 100, -30, 60);
_trk_z_at_conv_bot_pos_fr = aida.histogram1D("Track z @ converter bot + (fr)", 100, -20, 20);
- _trk_y_at_conv_top_neg = aida.histogram1D("Track y @ converter top -", 100, -30,60);
- _trk_z_at_conv_top_neg = aida.histogram1D("Track z @ converter top -", 100, -20,20);
+ _trk_y_at_conv_top_neg = aida.histogram1D("Track y @ converter top -", 100, -30, 60);
+ _trk_z_at_conv_top_neg = aida.histogram1D("Track z @ converter top -", 100, -20, 20);
_trk_y_at_conv_top_neg_fr = aida.histogram1D("Track y @ converter top - (fr)", 100, -30, 60);
_trk_z_at_conv_top_neg_fr = aida.histogram1D("Track z @ converter top - (fr)", 100, -20, 20);
- _trk_y_at_conv_bot_neg = aida.histogram1D("Track y @ converter bot -", 100, -30,60);
- _trk_z_at_conv_bot_neg = aida.histogram1D("Track z @ converter bot -", 100, -20,20);
+ _trk_y_at_conv_bot_neg = aida.histogram1D("Track y @ converter bot -", 100, -30, 60);
+ _trk_z_at_conv_bot_neg = aida.histogram1D("Track z @ converter bot -", 100, -20, 20);
_trk_y_at_conv_bot_neg_fr = aida.histogram1D("Track y @ converter bot - (fr)", 100, -30, 60);
_trk_z_at_conv_bot_neg_fr = aida.histogram1D("Track z @ converter bot - (fr)", 100, -20, 20);
-
- _trkmatch_top_dy = aida.histogram1D("dy(cl,track) top", 50, -60,60);
- _trkmatch_top_dx = aida.histogram1D("dx(cl,track) top", 50, -60,60);
- _trkmatch_bot_dy = aida.histogram1D("dy(cl,track) bot", 50, -60,60);
- _trkmatch_bot_dx = aida.histogram1D("dx(cl,track) bot", 50, -60,60);
-
- _trkmatch_top_plus_dx = aida.histogram1D("dx(cl,track) top plus", 50, -60,60);
- _trkmatch_bot_plus_dx = aida.histogram1D("dx(cl,track) bot plus", 50, -60,60);
- _trkmatch_top_minus_dx = aida.histogram1D("dx(cl,track) top minus", 50, -60,60);
- _trkmatch_bot_minus_dx = aida.histogram1D("dx(cl,track) bot minus", 50, -60,60);
-
-
-
+ _trkmatch_top_dy = aida.histogram1D("dy(cl,track) top", 50, -60, 60);
+ _trkmatch_top_dx = aida.histogram1D("dx(cl,track) top", 50, -60, 60);
+ _trkmatch_bot_dy = aida.histogram1D("dy(cl,track) bot", 50, -60, 60);
+ _trkmatch_bot_dx = aida.histogram1D("dx(cl,track) bot", 50, -60, 60);
+
+ _trkmatch_top_plus_dx = aida.histogram1D("dx(cl,track) top plus", 50, -60, 60);
+ _trkmatch_bot_plus_dx = aida.histogram1D("dx(cl,track) bot plus", 50, -60, 60);
+ _trkmatch_top_minus_dx = aida.histogram1D("dx(cl,track) top minus", 50, -60, 60);
+ _trkmatch_bot_minus_dx = aida.histogram1D("dx(cl,track) bot minus", 50, -60, 60);
+
_plotterTrackVertex = aida.analysisFactory().createPlotterFactory().create();
- _plotterTrackVertex.createRegions(2,2);
+ _plotterTrackVertex.createRegions(2, 2);
_plotterTrackVertex.region(0).plot(_vtxpos_x);
_plotterTrackVertex.region(1).plot(_vtxpos_y);
_plotterTrackVertex.region(2).plot(_vtxpos_z);
_plotterTrackVertexFr = aida.analysisFactory().createPlotterFactory().create();
- _plotterTrackVertexFr.createRegions(2,2);
+ _plotterTrackVertexFr.createRegions(2, 2);
_plotterTrackVertexFr.region(0).plot(_vtxposfr_x);
_plotterTrackVertexFr.region(1).plot(_vtxposfr_y);
_plotterTrackVertexFr.region(2).plot(_vtxposfr_z);
_plotterTrackVertexNonBend = aida.analysisFactory().createPlotterFactory().create();
- _plotterTrackVertexNonBend.createRegions(2,4);
+ _plotterTrackVertexNonBend.createRegions(2, 4);
_plotterTrackVertexNonBend.region(0).plot(_vtxposnonb_x);
_plotterTrackVertexNonBend.region(1).plot(_vtxposnonb_y);
_plotterTrackVertexNonBend.region(2).plot(_vtxposnonb_z);
@@ -1068,15 +1118,15 @@
_plotterTrackVertexNonBend.region(6).plot(_vtxposnonb_angle1);
_plotterTrackVertexNonBend.region(7).plot(_vtxposnonb_angle2);
_plotterParticleVertex = aida.analysisFactory().createPlotterFactory().create();
- _plotterParticleVertex.createRegions(2,2);
+ _plotterParticleVertex.createRegions(2, 2);
_plotterParticleVertex.region(0).plot(_partvtxpos_x);
_plotterParticleVertex.region(1).plot(_partvtxpos_y);
_plotterParticleVertex.region(2).plot(_partvtxpos_z);
_plotterTrackMult = aida.analysisFactory().createPlotterFactory().create();
- _plotterTrackMult.createRegions(1,1);
+ _plotterTrackMult.createRegions(1, 1);
_plotterTrackMult.region(0).plot(_ntrks_px);
_plotterTrackAtConv = aida.analysisFactory().createPlotterFactory().create();
- _plotterTrackAtConv.createRegions(4,4);
+ _plotterTrackAtConv.createRegions(4, 4);
_plotterTrackAtConv.region(0).plot(_trk_y_at_conv_top_pos);
_plotterTrackAtConv.region(4).plot(_trk_z_at_conv_top_pos);
_plotterTrackAtConv.region(8).plot(_trk_y_at_conv_top_pos_fr);
@@ -1094,7 +1144,7 @@
_plotterTrackAtConv.region(11).plot(_trk_y_at_conv_bot_neg_fr);
_plotterTrackAtConv.region(15).plot(_trk_z_at_conv_bot_neg_fr);
_plotterTrackMatch = aida.analysisFactory().createPlotterFactory().create();
- _plotterTrackMatch.createRegions(2,3);
+ _plotterTrackMatch.createRegions(2, 3);
_plotterTrackMatch.region(0).plot(_trkmatch_top_plus_dx);
_plotterTrackMatch.region(1).plot(_trkmatch_top_minus_dx);
_plotterTrackMatch.region(2).plot(_trkmatch_bot_plus_dx);
@@ -1107,25 +1157,25 @@
_plotterTrackMult.setTitle("Track multiplicity");
_plotterTrackAtConv.setTitle("Track @ converter");
_plotterTrackMatch.setTitle("Track-cluster matching");
-
- for(int i=0;i<3;++i) {
+
+ for (int i = 0; i < 3; ++i) {
((PlotterRegion) _plotterParticleVertex.region(i)).getPlot().setAllowUserInteraction(true);
((PlotterRegion) _plotterParticleVertex.region(i)).getPlot().setAllowPopupMenus(true);
((PlotterRegion) _plotterTrackVertex.region(i)).getPlot().setAllowUserInteraction(true);
((PlotterRegion) _plotterTrackVertex.region(i)).getPlot().setAllowPopupMenus(true);
((PlotterRegion) _plotterTrackVertexNonBend.region(i)).getPlot().setAllowUserInteraction(true);
((PlotterRegion) _plotterTrackVertexNonBend.region(i)).getPlot().setAllowPopupMenus(true);
- ((PlotterRegion) _plotterTrackMatch.region(i)).getPlot().setAllowUserInteraction(true);
- ((PlotterRegion) _plotterTrackMatch.region(i)).getPlot().setAllowPopupMenus(true);
- if(i<2) {
- if(i==0) {
- ((PlotterRegion) _plotterTrackMult.region(i)).getPlot().setAllowUserInteraction(true);
- ((PlotterRegion) _plotterTrackMult.region(i)).getPlot().setAllowPopupMenus(true);
- }
- }
- }
-
- if(!this.hideFrame) {
+ ((PlotterRegion) _plotterTrackMatch.region(i)).getPlot().setAllowUserInteraction(true);
+ ((PlotterRegion) _plotterTrackMatch.region(i)).getPlot().setAllowPopupMenus(true);
+ if (i < 2) {
+ if (i == 0) {
+ ((PlotterRegion) _plotterTrackMult.region(i)).getPlot().setAllowUserInteraction(true);
+ ((PlotterRegion) _plotterTrackMult.region(i)).getPlot().setAllowPopupMenus(true);
+ }
+ }
+ }
+
+ if (!this.hideFrame) {
this._plotterParticleVertex.show();
this._plotterTrackVertex.show();
this._plotterTrackVertexFr.show();
@@ -1133,53 +1183,44 @@
//this._plotterTrackMult.show();
_plotterTrackAtConv.show();
_plotterTrackMatch.show();
- }
- }
-
-
+ }
+ }
+
private void createWriter() {
- try {
+ try {
fileWriter = new FileWriter(outputNameTextTuple);
} catch (IOException ex) {
Logger.getLogger(ROOTFlatTupleDriver.class.getName()).log(Level.SEVERE, null, ex);
}
printWriter = new PrintWriter(fileWriter);
}
-
-
-
+
/*
* Find the path length where the two helix cross in the non-bend plane
*/
-
private double getCrossingS(Track trk1, Track trk2) {
- double slope_1 = ((SeedTrack)trk1).getSeedCandidate().getHelix().slope();
- double slope_2 = ((SeedTrack)trk2).getSeedCandidate().getHelix().slope();
- double z0_1 = ((SeedTrack)trk1).getSeedCandidate().getHelix().z0();
- double z0_2 = ((SeedTrack)trk2).getSeedCandidate().getHelix().z0();
+ double slope_1 = ((SeedTrack) trk1).getSeedCandidate().getHelix().slope();
+ double slope_2 = ((SeedTrack) trk2).getSeedCandidate().getHelix().slope();
+ double z0_1 = ((SeedTrack) trk1).getSeedCandidate().getHelix().z0();
+ double z0_2 = ((SeedTrack) trk2).getSeedCandidate().getHelix().z0();
double s = getPathLengthCrossingPoint(slope_1, z0_1, slope_2, z0_2);
- double zAtCross = z0_1 + s*slope_1;
+ double zAtCross = z0_1 + s * slope_1;
//System.out.printf("%s: s1=%f z1=%f s2=%f z2=%f => path=%f and zAtCross=%f\n",this.getClass().getSimpleName(),slope_1,z0_1,slope_2,z0_2,s,zAtCross);
return zAtCross;
}
-
-
+
private StraightLineTrack[] getSLTs(Track trk1, Track trk2, boolean useFringe) {
// find the point on the x- and y-axis by
// 1) go outside the fringe region
// 2) assume straight lines
// 3) solve for the position where the z-position is at the crossing point
- double zStart = useFringe==true ? -100. : 0.;
- StraightLineTrack slt1 = TrackUtils.findSLTAtZ(trk1,zStart,useFringe);
- StraightLineTrack slt2 = TrackUtils.findSLTAtZ(trk2,zStart,useFringe);
- StraightLineTrack[] vv = {slt1,slt2};
+ double zStart = useFringe == true ? -100. : 0.;
+ StraightLineTrack slt1 = TrackUtils.findSLTAtZ(trk1, zStart, useFringe);
+ StraightLineTrack slt2 = TrackUtils.findSLTAtZ(trk2, zStart, useFringe);
+ StraightLineTrack[] vv = {slt1, slt2};
return vv;
}
-
-
-
-
-
+
/*
* Calculate the point where two 1-D lines cross
* Use SZ coordinate system nomenclature
@@ -1187,33 +1228,33 @@
* slope: slope of track in SZ plane
* z0: z-coordinate at which S=0
*/
- private double getPathLengthCrossingPoint(double slope_1,double z0_1,double slope_2,double z0_2) {
+ private double getPathLengthCrossingPoint(double slope_1, double z0_1, double slope_2, double z0_2) {
double s; //path length
- s = (z0_1-z0_2)/(slope_2-slope_1);
+ s = (z0_1 - z0_2) / (slope_2 - slope_1);
return s;
}
/**
* Print out informatoin about ecal geometry
+ *
* @param detector
*/
private void printEcalInfo(Detector detector) {
- Subdetector det = detector.getSubdetector("Ecal");
- if(det!=null) {
- System.out.printf("found %s with %d children:\n",det.getName(),det.getDetectorElement().getChildren().size());
- System.out.printf("%5s %5s %45s %45s\n","ix","iy","global pos"," translation");
- for(IDetectorElement idet : det.getDetectorElement().getChildren()) {
- //System.out.printf("%s\n",idet.getName());
- IIdentifierHelper helper = idet.getIdentifierHelper();
- IExpandedIdentifier expId = idet.getExpandedIdentifier();
- int ix = expId.getValue(helper.getFieldIndex("ix"));
- int iy = expId.getValue(helper.getFieldIndex("iy"));
- System.out.printf("%5d %5d %45s %45s\n",ix,iy, idet.getGeometry().getPosition().toString(),idet.getGeometry().getPhysicalVolume().getTranslation().toString());
- }
- }
- else {
- System.out.printf("found no ecal\n");
- }
- }
-
+ Subdetector det = detector.getSubdetector("Ecal");
+ if (det != null) {
+ System.out.printf("found %s with %d children:\n", det.getName(), det.getDetectorElement().getChildren().size());
+ System.out.printf("%5s %5s %45s %45s\n", "ix", "iy", "global pos", " translation");
+ for (IDetectorElement idet : det.getDetectorElement().getChildren()) {
+ //System.out.printf("%s\n",idet.getName());
+ IIdentifierHelper helper = idet.getIdentifierHelper();
+ IExpandedIdentifier expId = idet.getExpandedIdentifier();
+ int ix = expId.getValue(helper.getFieldIndex("ix"));
+ int iy = expId.getValue(helper.getFieldIndex("iy"));
+ System.out.printf("%5d %5d %45s %45s\n", ix, iy, idet.getGeometry().getPosition().toString(), idet.getGeometry().getPhysicalVolume().getTranslation().toString());
+ }
+ } else {
+ System.out.printf("found no ecal\n");
+ }
+ }
+
}
Modified: java/trunk/users/src/main/java/org/hps/users/phansson/TriggerTurnOnAnalysis.java
=============================================================================
--- java/trunk/users/src/main/java/org/hps/users/phansson/TriggerTurnOnAnalysis.java (original)
+++ java/trunk/users/src/main/java/org/hps/users/phansson/TriggerTurnOnAnalysis.java Thu Jan 22 15:22:11 2015
@@ -10,17 +10,15 @@
import hep.aida.IHistogramFactory;
import hep.aida.IPlotter;
import hep.physics.vec.Hep3Vector;
-
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
-
import org.hps.analysis.ecal.HPSMCParticlePlotsDriver;
-import org.hps.readout.ecal.TriggerData;
import org.lcsim.event.Cluster;
import org.lcsim.event.EventHeader;
+import org.lcsim.event.GenericObject;
import org.lcsim.event.MCParticle;
import org.lcsim.geometry.Detector;
import org.lcsim.util.Driver;
@@ -118,10 +116,10 @@
- List<TriggerData> trigger_data = null;
-
- if(event.hasCollection(TriggerData.class, triggerDataCollectionName)) {
- trigger_data = event.get(TriggerData.class, triggerDataCollectionName);
+ List<GenericObject> trigger_data = null;
+
+ if(event.hasCollection(GenericObject.class, triggerDataCollectionName)) {
+ trigger_data = event.get(GenericObject.class, triggerDataCollectionName);
if(_DEBUG) System.out.println(this.getClass().getSimpleName() + ": event " + event.getRunNumber() + " has trigger data");
}
else {
|