LISTSERV mailing list manager LISTSERV 16.5

Help for HPS-SVN Archives


HPS-SVN Archives

HPS-SVN Archives


HPS-SVN@LISTSERV.SLAC.STANFORD.EDU


View:

Message:

[

First

|

Previous

|

Next

|

Last

]

By Topic:

[

First

|

Previous

|

Next

|

Last

]

By Author:

[

First

|

Previous

|

Next

|

Last

]

Font:

Proportional Font

LISTSERV Archives

LISTSERV Archives

HPS-SVN Home

HPS-SVN Home

HPS-SVN  January 2015

HPS-SVN January 2015

Subject:

r1969 - in /java/trunk: analysis/src/main/java/org/hps/analysis/ecal/ ecal-readout-sim/src/main/java/org/hps/readout/ecal/ ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/ evio/src/main/java/org/hps/evio/ monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/ monitoring-drivers/src/main/java/org/hps/monitoring/ecal/plots/ users/src/main/java/org/hps/users/celentan/ users/src/main/java/org/hps/users/phansson/

From:

[log in to unmask]

Reply-To:

Notification of commits to the hps svn repository <[log in to unmask]>

Date:

Thu, 22 Jan 2015 23:22:27 -0000

Content-Type:

text/plain

Parts/Attachments:

Parts/Attachments

text/plain (2414 lines)

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 {

Top of Message | Previous Page | Permalink

Advanced Options


Options

Log In

Log In

Get Password

Get Password


Search Archives

Search Archives


Subscribe or Unsubscribe

Subscribe or Unsubscribe


Archives

November 2017
August 2017
July 2017
January 2017
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
December 2013
November 2013

ATOM RSS1 RSS2



LISTSERV.SLAC.STANFORD.EDU

Secured by F-Secure Anti-Virus CataList Email List Search Powered by the LISTSERV Email List Manager

Privacy Notice, Security Notice and Terms of Use