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  February 2016

HPS-SVN February 2016

Subject:

r4207 - in /java/branches/jeremy-dev: ./ analysis/ analysis/src/main/java/org/hps/analysis/dataquality/ analysis/src/main/java/org/hps/analysis/examples/ analysis/src/test/ conditions/ crawler/ datacat-client/ detector-data/ detector-data/detectors/HPS-PhysicsRun2016-1_5mm-v4-4/ detector-data/detectors/HPS-PhysicsRun2016-2mm-v4-4/ detector-data/detectors/HPS-PhysicsRun2016-3mm-v4-4/ detector-data/detectors/HPS-PhysicsRun2016-4mm-v4-4/ detector-data/detectors/HPS-PhysicsRun2016-Nominal-v4-4-fieldmap/ detector-data/detectors/HPS-PhysicsRun2016-Nominal-v4-4/ detector-model/ distribution/ ecal-event-display/ ecal-readout-sim/ ecal-recon/ ecal-recon/src/main/java/org/hps/recon/ecal/ evio/ evio/src/main/java/org/hps/evio/ integration-tests/ integration-tests/src/test/java/org/hps/test/it/ integration-tests/src/test/resources/org/hps/steering/test/ job/ logging/ logging/src/main/resources/org/hps/logging/config/ monitoring-app/ monitoring-app/src/main/java/org/hps/monitoring/application/ monitoring-drivers/ monitoring-drivers/src/main/java/org/hps/monitoring/ecal/plots/ monitoring-util/ monitoring-util/src/main/java/org/hps/monitoring/plotting/ parent/ plugin/ recon/ recon/src/main/java/org/hps/recon/filtering/ recon/src/main/java/org/hps/recon/utils/ record-util/ run-database/ steering-files/ steering-files/src/main/resources/org/hps/steering/monitoring/ steering-files/src/main/resources/org/hps/steering/production/ steering-files/src/main/resources/org/hps/steering/users/baltzell/ steering-files/src/main/resources/org/hps/steering/users/holly/ steering-files/src/main/resources/org/hps/steering/users/spaul/ tracking/ users/ users/src/main/java/org/hps/users/meeg/ users/src/main/java/org/hps/users/spaul/ users/src/main/java/org/hps/users/spaul/feecc/ users/src/main/java/org/hps/users/spaul/moller/ util/

From:

[log in to unmask]

Reply-To:

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

Date:

Fri, 12 Feb 2016 01:15:26 -0000

Content-Type:

text/plain

Parts/Attachments:

Parts/Attachments

text/plain (2391 lines)

Author: [log in to unmask]
Date: Thu Feb 11 17:15:20 2016
New Revision: 4207

Log:
Merge to dev branch from trunk.

Added:
    java/branches/jeremy-dev/analysis/src/main/java/org/hps/analysis/examples/VertexAnalysis.java
      - copied unchanged from r4202, java/trunk/analysis/src/main/java/org/hps/analysis/examples/VertexAnalysis.java
    java/branches/jeremy-dev/analysis/src/test/
      - copied from r4202, java/trunk/analysis/src/test/
    java/branches/jeremy-dev/detector-data/detectors/HPS-PhysicsRun2016-1_5mm-v4-4/
      - copied from r4202, java/trunk/detector-data/detectors/HPS-PhysicsRun2016-1_5mm-v4-4/
    java/branches/jeremy-dev/detector-data/detectors/HPS-PhysicsRun2016-2mm-v4-4/
      - copied from r4202, java/trunk/detector-data/detectors/HPS-PhysicsRun2016-2mm-v4-4/
    java/branches/jeremy-dev/detector-data/detectors/HPS-PhysicsRun2016-3mm-v4-4/
      - copied from r4202, java/trunk/detector-data/detectors/HPS-PhysicsRun2016-3mm-v4-4/
    java/branches/jeremy-dev/detector-data/detectors/HPS-PhysicsRun2016-4mm-v4-4/
      - copied from r4202, java/trunk/detector-data/detectors/HPS-PhysicsRun2016-4mm-v4-4/
    java/branches/jeremy-dev/detector-data/detectors/HPS-PhysicsRun2016-Nominal-v4-4/
      - copied from r4202, java/trunk/detector-data/detectors/HPS-PhysicsRun2016-Nominal-v4-4/
    java/branches/jeremy-dev/detector-data/detectors/HPS-PhysicsRun2016-Nominal-v4-4-fieldmap/
      - copied from r4202, java/trunk/detector-data/detectors/HPS-PhysicsRun2016-Nominal-v4-4-fieldmap/
    java/branches/jeremy-dev/monitoring-drivers/src/main/java/org/hps/monitoring/ecal/plots/EcalFeeMonitor.java
      - copied unchanged from r4202, java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/ecal/plots/EcalFeeMonitor.java
    java/branches/jeremy-dev/recon/src/main/java/org/hps/recon/filtering/CosmicPMTFilter.java
      - copied unchanged from r4202, java/trunk/recon/src/main/java/org/hps/recon/filtering/CosmicPMTFilter.java
    java/branches/jeremy-dev/steering-files/src/main/resources/org/hps/steering/users/baltzell/Cosmic.lcsim
      - copied unchanged from r4202, java/trunk/steering-files/src/main/resources/org/hps/steering/users/baltzell/Cosmic.lcsim
    java/branches/jeremy-dev/steering-files/src/main/resources/org/hps/steering/users/holly/EcalFeeViewer.lcsim
      - copied unchanged from r4202, java/trunk/steering-files/src/main/resources/org/hps/steering/users/holly/EcalFeeViewer.lcsim
    java/branches/jeremy-dev/steering-files/src/main/resources/org/hps/steering/users/spaul/MollerBeamtilt.lcsim
      - copied unchanged from r4202, java/trunk/steering-files/src/main/resources/org/hps/steering/users/spaul/MollerBeamtilt.lcsim
    java/branches/jeremy-dev/users/src/main/java/org/hps/users/spaul/moller/
      - copied from r4202, java/trunk/users/src/main/java/org/hps/users/spaul/moller/
Modified:
    java/branches/jeremy-dev/   (props changed)
    java/branches/jeremy-dev/analysis/pom.xml
    java/branches/jeremy-dev/analysis/src/main/java/org/hps/analysis/dataquality/TrackingMonitoring.java
    java/branches/jeremy-dev/analysis/src/main/java/org/hps/analysis/dataquality/V0Monitoring.java
    java/branches/jeremy-dev/conditions/   (props changed)
    java/branches/jeremy-dev/conditions/pom.xml
    java/branches/jeremy-dev/crawler/pom.xml
    java/branches/jeremy-dev/datacat-client/pom.xml
    java/branches/jeremy-dev/detector-data/pom.xml
    java/branches/jeremy-dev/detector-model/pom.xml
    java/branches/jeremy-dev/distribution/   (props changed)
    java/branches/jeremy-dev/distribution/pom.xml
    java/branches/jeremy-dev/ecal-event-display/pom.xml
    java/branches/jeremy-dev/ecal-readout-sim/pom.xml
    java/branches/jeremy-dev/ecal-recon/pom.xml
    java/branches/jeremy-dev/ecal-recon/src/main/java/org/hps/recon/ecal/FADCGenericHit.java
    java/branches/jeremy-dev/evio/pom.xml
    java/branches/jeremy-dev/evio/src/main/java/org/hps/evio/EvioToLcio.java
    java/branches/jeremy-dev/evio/src/main/java/org/hps/evio/RfFitterDriver.java
    java/branches/jeremy-dev/integration-tests/   (props changed)
    java/branches/jeremy-dev/integration-tests/pom.xml
    java/branches/jeremy-dev/integration-tests/src/test/java/org/hps/test/it/DataQualityMonitorTest.java
    java/branches/jeremy-dev/integration-tests/src/test/java/org/hps/test/it/ReconSteeringTest.java
    java/branches/jeremy-dev/integration-tests/src/test/resources/org/hps/steering/test/DataQualityTest.lcsim
    java/branches/jeremy-dev/job/pom.xml
    java/branches/jeremy-dev/logging/pom.xml
    java/branches/jeremy-dev/logging/src/main/resources/org/hps/logging/config/logging.properties
    java/branches/jeremy-dev/logging/src/main/resources/org/hps/logging/config/test_logging.properties
    java/branches/jeremy-dev/monitoring-app/   (props changed)
    java/branches/jeremy-dev/monitoring-app/pom.xml
    java/branches/jeremy-dev/monitoring-app/src/main/java/org/hps/monitoring/application/MonitoringApplication.java
    java/branches/jeremy-dev/monitoring-app/src/main/java/org/hps/monitoring/application/MonitoringApplicationFrame.java
    java/branches/jeremy-dev/monitoring-drivers/pom.xml
    java/branches/jeremy-dev/monitoring-util/pom.xml
    java/branches/jeremy-dev/monitoring-util/src/main/java/org/hps/monitoring/plotting/ExportPdf.java
    java/branches/jeremy-dev/parent/pom.xml
    java/branches/jeremy-dev/plugin/pom.xml
    java/branches/jeremy-dev/pom.xml
    java/branches/jeremy-dev/recon/pom.xml
    java/branches/jeremy-dev/recon/src/main/java/org/hps/recon/utils/TrackClusterMatcher.java
    java/branches/jeremy-dev/record-util/pom.xml
    java/branches/jeremy-dev/run-database/pom.xml
    java/branches/jeremy-dev/steering-files/pom.xml
    java/branches/jeremy-dev/steering-files/src/main/resources/org/hps/steering/monitoring/TriggerDiagnosticsMonitoring.lcsim
    java/branches/jeremy-dev/steering-files/src/main/resources/org/hps/steering/production/DataQualityRecon.lcsim   (contents, props changed)
    java/branches/jeremy-dev/tracking/pom.xml
    java/branches/jeremy-dev/users/pom.xml
    java/branches/jeremy-dev/users/src/main/java/org/hps/users/meeg/SvtChargeIntegrator.java   (contents, props changed)
    java/branches/jeremy-dev/users/src/main/java/org/hps/users/spaul/StyleUtil.java
    java/branches/jeremy-dev/users/src/main/java/org/hps/users/spaul/SumEverything.java
    java/branches/jeremy-dev/users/src/main/java/org/hps/users/spaul/feecc/ExtractFormFactors.java
    java/branches/jeremy-dev/users/src/main/java/org/hps/users/spaul/feecc/FEESpectrumGenerator.java
    java/branches/jeremy-dev/users/src/main/java/org/hps/users/spaul/feecc/MakeHistograms.java
    java/branches/jeremy-dev/users/src/main/java/org/hps/users/spaul/feecc/RemoveDuplicateParticles.java
    java/branches/jeremy-dev/users/src/main/java/org/hps/users/spaul/feecc/ShowCustomBinningXY.java
    java/branches/jeremy-dev/util/pom.xml

Modified: java/branches/jeremy-dev/analysis/pom.xml
 =============================================================================
--- java/branches/jeremy-dev/analysis/pom.xml	(original)
+++ java/branches/jeremy-dev/analysis/pom.xml	Thu Feb 11 17:15:20 2016
@@ -8,7 +8,7 @@
         <groupId>org.hps</groupId>
         <artifactId>hps-parent</artifactId>
         <relativePath>../parent/pom.xml</relativePath>
-        <version>3.5-SNAPSHOT</version>
+        <version>3.6-SNAPSHOT</version>
     </parent>
     <scm>
         <url>http://java.freehep.org/svn/repos/hps/list/java/trunk/analysis/</url>
@@ -21,4 +21,17 @@
             <artifactId>hps-recon</artifactId>
         </dependency>
     </dependencies>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <configuration>
+                    <excludes>
+                        <exclude>**/VertexAnalysisTest.java</exclude>
+                    </excludes>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
 </project>

Modified: java/branches/jeremy-dev/analysis/src/main/java/org/hps/analysis/dataquality/TrackingMonitoring.java
 =============================================================================
--- java/branches/jeremy-dev/analysis/src/main/java/org/hps/analysis/dataquality/TrackingMonitoring.java	(original)
+++ java/branches/jeremy-dev/analysis/src/main/java/org/hps/analysis/dataquality/TrackingMonitoring.java	Thu Feb 11 17:15:20 2016
@@ -165,7 +165,8 @@
     IHistogram2D chi2VsLambda;
     IHistogram2D chi2VsZ0;
 
-    IHistogram2D beamAngle2D;
+    IHistogram2D beamAngleXY;
+    IHistogram2D beamAngleThetaPhi;
 
     IHistogram1D L1Iso;
     IHistogram1D L12Iso;
@@ -288,7 +289,8 @@
         chi2VsLambda = aida.histogram2D(plotDir + trackCollectionName + "/" + triggerType + "/" + "chi2 vs lambda", 50, -lambdaCut, lambdaCut, 50, 0.0, 50.0);
         chi2VsZ0 = aida.histogram2D(plotDir + trackCollectionName + "/" + triggerType + "/" + "chi2 vs z0", 50, -z0Cut, z0Cut, 50, 0.0, 50.0);
 
-        beamAngle2D = aida.histogram2D(plotDir + trackCollectionName + "/" + triggerType + "/" + "angles around beam axis: theta vs phi", 100, -Math.PI, Math.PI, 100, 0, 0.25);
+        beamAngleXY = aida.histogram2D(plotDir + trackCollectionName + "/" + triggerType + "/" + "angles around beam axis: theta_y vs theta_x", 100, -0.1, 0.1, 100, -0.1, 0.1);
+        beamAngleThetaPhi = aida.histogram2D(plotDir + trackCollectionName + "/" + triggerType + "/" + "angles around beam axis: theta vs phi", 100, -Math.PI, Math.PI, 100, 0, 0.25);
 
         L1Iso = aida.histogram1D(plotDir + trackCollectionName + "/" + triggerType + "/" + "L1 isolation", 100, -5.0, 5.0);
         L12Iso = aida.histogram1D(plotDir + trackCollectionName + "/" + triggerType + "/" + "L1-2 isolation", 100, -5.0, 5.0);
@@ -423,7 +425,8 @@
             double beamPhi = Math.atan2(dirRotated.y(), dirRotated.x());
             double beamTheta = Math.acos(dirRotated.z());
 
-            beamAngle2D.fill(beamPhi, beamTheta);
+            beamAngleXY.fill(dirRotated.x(), dirRotated.y());
+            beamAngleThetaPhi.fill(beamPhi, beamTheta);
 
             Double[] isolations = TrackUtils.getIsolations(trk, hitToStrips, hitToRotated);
             double l1Iso = Double.MAX_VALUE;

Modified: java/branches/jeremy-dev/analysis/src/main/java/org/hps/analysis/dataquality/V0Monitoring.java
 =============================================================================
--- java/branches/jeremy-dev/analysis/src/main/java/org/hps/analysis/dataquality/V0Monitoring.java	(original)
+++ java/branches/jeremy-dev/analysis/src/main/java/org/hps/analysis/dataquality/V0Monitoring.java	Thu Feb 11 17:15:20 2016
@@ -135,6 +135,11 @@
     IHistogram2D mollerXVsVtxZ;
     IHistogram2D mollerYVsVtxZ;
     IHistogram2D mollerXVsVtxY;
+    
+    IHistogram1D mollerUx;
+    IHistogram1D mollerUy;
+    
+    
 
     IHistogram1D sumChargeHisto;
     IHistogram1D numChargeHisto;
@@ -240,6 +245,12 @@
         mollerXVsVtxZ = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Moller Vx vs Vz", 100, -5, 5, 100, -50, 50);
         mollerYVsVtxZ = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Moller Vy vs Vz", 100, -2, 2, 100, -50, 50);
         mollerXVsVtxY = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Moller Vx vs Vy", 100, -5, 5, 100, -2, 2);
+    
+        mollerUx = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Moller Pair Momentum Direction Ux", 100, .025, .035);
+        mollerUy = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Moller Pair Momentum Direction Uy", 100, -.005, .005);
+    
+        
+        
     }
 
     @Override
@@ -459,6 +470,10 @@
                 mollerXVsVtxZ.fill(bv.getPosition().x(), bv.getPosition().z());
                 mollerYVsVtxZ.fill(bv.getPosition().y(), bv.getPosition().z());
                 mollerXVsVtxY.fill(bv.getPosition().x(), bv.getPosition().y());
+                
+                mollerUx.fill((p1.x()+p2.x())/(p1.z()+p2.z()));
+                mollerUy.fill((p1.y()+p2.y())/(p1.z()+p2.z()));
+                
                 if (Math.abs(bv.getPosition().x()) < 2
                         && Math.abs(bv.getPosition().y()) < 0.5) {
                     mollerMassVtxCut.fill(bv.getParameters().get("invMass"));

Modified: java/branches/jeremy-dev/conditions/pom.xml
 =============================================================================
--- java/branches/jeremy-dev/conditions/pom.xml	(original)
+++ java/branches/jeremy-dev/conditions/pom.xml	Thu Feb 11 17:15:20 2016
@@ -8,7 +8,7 @@
         <groupId>org.hps</groupId>
         <artifactId>hps-parent</artifactId>
         <relativePath>../parent/pom.xml</relativePath>
-        <version>3.5-SNAPSHOT</version>
+        <version>3.6-SNAPSHOT</version>
     </parent>
     <scm>
         <url>http://java.freehep.org/svn/repos/hps/list/java/trunk/conditions/</url>

Modified: java/branches/jeremy-dev/crawler/pom.xml
 =============================================================================
--- java/branches/jeremy-dev/crawler/pom.xml	(original)
+++ java/branches/jeremy-dev/crawler/pom.xml	Thu Feb 11 17:15:20 2016
@@ -7,7 +7,7 @@
         <groupId>org.hps</groupId>
         <artifactId>hps-parent</artifactId>
         <relativePath>../parent/pom.xml</relativePath>
-        <version>3.5-SNAPSHOT</version>
+        <version>3.6-SNAPSHOT</version>
     </parent>
     <scm>
         <url>http://java.freehep.org/svn/repos/hps/list/java/trunk/crawler/</url>

Modified: java/branches/jeremy-dev/datacat-client/pom.xml
 =============================================================================
--- java/branches/jeremy-dev/datacat-client/pom.xml	(original)
+++ java/branches/jeremy-dev/datacat-client/pom.xml	Thu Feb 11 17:15:20 2016
@@ -7,7 +7,7 @@
         <groupId>org.hps</groupId>
         <artifactId>hps-parent</artifactId>
         <relativePath>../parent/pom.xml</relativePath>
-        <version>3.5-SNAPSHOT</version>
+        <version>3.6-SNAPSHOT</version>
     </parent>
     <scm>
         <url>http://java.freehep.org/svn/repos/hps/list/java/trunk/datacat-client/</url>

Modified: java/branches/jeremy-dev/detector-data/pom.xml
 =============================================================================
--- java/branches/jeremy-dev/detector-data/pom.xml	(original)
+++ java/branches/jeremy-dev/detector-data/pom.xml	Thu Feb 11 17:15:20 2016
@@ -8,7 +8,7 @@
         <groupId>org.hps</groupId>
         <artifactId>hps-parent</artifactId>
         <relativePath>../parent/pom.xml</relativePath>
-        <version>3.5-SNAPSHOT</version>
+        <version>3.6-SNAPSHOT</version>
     </parent>
     <scm>
         <url>http://java.freehep.org/svn/repos/hps/list/java/trunk/detector-data/</url>

Modified: java/branches/jeremy-dev/detector-model/pom.xml
 =============================================================================
--- java/branches/jeremy-dev/detector-model/pom.xml	(original)
+++ java/branches/jeremy-dev/detector-model/pom.xml	Thu Feb 11 17:15:20 2016
@@ -8,7 +8,7 @@
         <groupId>org.hps</groupId>
         <artifactId>hps-parent</artifactId>
         <relativePath>../parent/pom.xml</relativePath>
-        <version>3.5-SNAPSHOT</version>
+        <version>3.6-SNAPSHOT</version>
     </parent>
     <build>
         <plugins>

Modified: java/branches/jeremy-dev/distribution/pom.xml
 =============================================================================
--- java/branches/jeremy-dev/distribution/pom.xml	(original)
+++ java/branches/jeremy-dev/distribution/pom.xml	Thu Feb 11 17:15:20 2016
@@ -13,7 +13,7 @@
         <groupId>org.hps</groupId>
         <artifactId>hps-parent</artifactId>
         <relativePath>../parent/pom.xml</relativePath>
-        <version>3.5-SNAPSHOT</version>
+        <version>3.6-SNAPSHOT</version>
     </parent>    
     <scm>
         <url>http://java.freehep.org/svn/repos/hps/list/java/trunk/distribution/</url>
@@ -80,7 +80,7 @@
                         <binFileExtensions>
                                 <unix>.sh</unix>
                             </binFileExtensions>
-                            <extraJvmArguments>-Djava.util.logging.config.class=org.hps.logging.config.DefaultLoggingConfig</extraJvmArguments>
+                            <extraJvmArguments>-Xmx2g -Djava.util.logging.config.class=org.hps.logging.config.DefaultLoggingConfig</extraJvmArguments>
                             <programs>
                                 <program>
                                     <mainClass>org.hps.evio.EvioToLcio</mainClass>

Modified: java/branches/jeremy-dev/ecal-event-display/pom.xml
 =============================================================================
--- java/branches/jeremy-dev/ecal-event-display/pom.xml	(original)
+++ java/branches/jeremy-dev/ecal-event-display/pom.xml	Thu Feb 11 17:15:20 2016
@@ -7,7 +7,7 @@
         <groupId>org.hps</groupId>
         <artifactId>hps-parent</artifactId>
         <relativePath>../parent/pom.xml</relativePath>
-        <version>3.5-SNAPSHOT</version>
+        <version>3.6-SNAPSHOT</version>
     </parent>
     <scm>
         <url>http://java.freehep.org/svn/repos/hps/list/java/trunk/ecal-event-display/</url>

Modified: java/branches/jeremy-dev/ecal-readout-sim/pom.xml
 =============================================================================
--- java/branches/jeremy-dev/ecal-readout-sim/pom.xml	(original)
+++ java/branches/jeremy-dev/ecal-readout-sim/pom.xml	Thu Feb 11 17:15:20 2016
@@ -8,7 +8,7 @@
         <groupId>org.hps</groupId>
         <artifactId>hps-parent</artifactId>
         <relativePath>../parent/pom.xml</relativePath>
-        <version>3.5-SNAPSHOT</version>
+        <version>3.6-SNAPSHOT</version>
     </parent>
     <scm>
         <url>http://java.freehep.org/svn/repos/hps/list/java/trunk/ecal-readout-sim/</url>

Modified: java/branches/jeremy-dev/ecal-recon/pom.xml
 =============================================================================
--- java/branches/jeremy-dev/ecal-recon/pom.xml	(original)
+++ java/branches/jeremy-dev/ecal-recon/pom.xml	Thu Feb 11 17:15:20 2016
@@ -8,7 +8,7 @@
         <groupId>org.hps</groupId>
         <artifactId>hps-parent</artifactId>
         <relativePath>../parent/pom.xml</relativePath>
-        <version>3.5-SNAPSHOT</version>
+        <version>3.6-SNAPSHOT</version>
     </parent>
     <scm>
         <url>http://java.freehep.org/svn/repos/hps/list/java/trunk/ecal-recon/</url>

Modified: java/branches/jeremy-dev/ecal-recon/src/main/java/org/hps/recon/ecal/FADCGenericHit.java
 =============================================================================
--- java/branches/jeremy-dev/ecal-recon/src/main/java/org/hps/recon/ecal/FADCGenericHit.java	(original)
+++ java/branches/jeremy-dev/ecal-recon/src/main/java/org/hps/recon/ecal/FADCGenericHit.java	Thu Feb 11 17:15:20 2016
@@ -24,6 +24,14 @@
         this.slot = slot;
         this.channel = channel;
         this.data = data;
+    }
+    
+    public FADCGenericHit(GenericObject object) {
+        this.readoutMode = getReadoutMode(object);
+        this.crate = getCrate(object);
+        this.slot = getSlot(object);
+        this.channel = getChannel(object);
+        this.data = getData(object);
     }
 
     @Override
@@ -114,5 +122,5 @@
             data[i] = object.getIntVal(i+4);
         }
         return data;
-    }
+    }    
 }

Modified: java/branches/jeremy-dev/evio/pom.xml
 =============================================================================
--- java/branches/jeremy-dev/evio/pom.xml	(original)
+++ java/branches/jeremy-dev/evio/pom.xml	Thu Feb 11 17:15:20 2016
@@ -8,7 +8,7 @@
         <groupId>org.hps</groupId>
         <artifactId>hps-parent</artifactId>
         <relativePath>../parent/pom.xml</relativePath>
-        <version>3.5-SNAPSHOT</version>
+        <version>3.6-SNAPSHOT</version>
     </parent>
     <scm>
         <url>http://java.freehep.org/svn/repos/hps/list/java/trunk/evio/</url>

Modified: java/branches/jeremy-dev/evio/src/main/java/org/hps/evio/EvioToLcio.java
 =============================================================================
--- java/branches/jeremy-dev/evio/src/main/java/org/hps/evio/EvioToLcio.java	(original)
+++ java/branches/jeremy-dev/evio/src/main/java/org/hps/evio/EvioToLcio.java	Thu Feb 11 17:15:20 2016
@@ -22,6 +22,7 @@
 import org.apache.commons.cli.Options;
 import org.apache.commons.cli.ParseException;
 import org.apache.commons.cli.DefaultParser;
+import org.apache.commons.cli.PosixParser;
 import org.freehep.record.source.NoSuchRecordException;
 import org.hps.conditions.database.DatabaseConditionsManager;
 import org.hps.job.JobManager;
@@ -71,7 +72,7 @@
  * @author Jeremy McCormick <[log in to unmask]>
  * @author Sho Uemura <[log in to unmask]>
  */
-public class EvioToLcio {
+public final class EvioToLcio {
 
     /**
      * The default steering resource, which basically does nothing except print event numbers.
@@ -113,6 +114,7 @@
      */
     private static Options OPTIONS = new Options();
     static {
+        OPTIONS.addOption(new Option("h", false, "print help and exit"));
         OPTIONS.addOption(new Option("d", true, "detector name (required)"));
         OPTIONS.getOption("d").setRequired(true);
         OPTIONS.addOption(new Option("f", true, "text file containing a list of EVIO files"));
@@ -251,19 +253,25 @@
     }
 
     public void parse(String[] args) {
-        // Parse the command line options.
+        
         if (args.length == 0) {
             this.printUsage();
         }
-        final CommandLineParser parser = new DefaultParser();
+        
+        final CommandLineParser parser = new PosixParser();
         CommandLine cl = null;
         try {
             cl = parser.parse(OPTIONS, args);
         } catch (final ParseException e) {
             throw new RuntimeException("Problem parsing command line options.", e);
         }
+        
+        if (cl.hasOption("h")) {
+            this.printUsage();
+        }
 
         // Set the log level.
+        // TODO: Remove this argument; use java logging prop instead.
         if (cl.hasOption("L")) {
             final Level level = Level.parse(cl.getOptionValue("L").toUpperCase());
 

Modified: java/branches/jeremy-dev/evio/src/main/java/org/hps/evio/RfFitterDriver.java
 =============================================================================
--- java/branches/jeremy-dev/evio/src/main/java/org/hps/evio/RfFitterDriver.java	(original)
+++ java/branches/jeremy-dev/evio/src/main/java/org/hps/evio/RfFitterDriver.java	Thu Feb 11 17:15:20 2016
@@ -1,9 +1,4 @@
 package org.hps.evio;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 import hep.aida.IAnalysisFactory;
 import hep.aida.IDataPointSet;
@@ -11,7 +6,9 @@
 import hep.aida.IFitResult;
 import hep.aida.IFitter;
 import hep.aida.IFunction;
-import hep.aida.IFunctionFactory;
+
+import java.util.ArrayList;
+import java.util.List;
 
 import org.hps.recon.ecal.FADCGenericHit;
 import org.lcsim.event.EventHeader;
@@ -19,145 +16,156 @@
 import org.lcsim.util.Driver;
 import org.lcsim.util.aida.AIDA;
 
-/*
+/**
  * Extract RF time from waveform and put into lcsim event.
  */
 public class RfFitterDriver extends Driver {
 
-	static final double NOISE=2.0; // units = FADC
-	static final int CRATE=46;
-	static final int SLOT=13;
-	static final int CHANNELS[]={0,1};
-	static final double NSPERSAMPLE=4;
-		
+    private static final double NOISE = 2.0; // units = FADC
+    private static final int CRATE = 46;
+    private static final int SLOT = 13;
+    private static final int CHANNELS[] = {0, 1};
+    private static final double NSPERSAMPLE = 4;
 
-	// boilerplate:
-    AIDA aida = AIDA.defaultInstance();
-    IAnalysisFactory analysisFactory = aida.analysisFactory();
-    IFunctionFactory functionFactory = analysisFactory.createFunctionFactory(null);
-    IFitFactory fitFactory = analysisFactory.createFitFactory();
-    IFitter fitter=fitFactory.createFitter();
-    IDataPointSet fitData=aida.analysisFactory().createDataPointSetFactory(null).create("RF ADC DataPointSet", 2);
-    
+    // boilerplate:
+    private AIDA aida = AIDA.defaultInstance();
+    private IAnalysisFactory analysisFactory = aida.analysisFactory();
+    //private IFunctionFactory functionFactory = analysisFactory.createFunctionFactory(null);
+    private IFitFactory fitFactory = analysisFactory.createFitFactory();
+    private IFitter fitter = fitFactory.createFitter();
+    private IDataPointSet fitData = aida.analysisFactory().createDataPointSetFactory(null).create("RF ADC DataPointSet", 2);
+
     // the function used to fit the RF pulse:
-    IFunction fitFunction=new RfFitFunction();
+    private IFunction fitFunction = new RfFitFunction();
 
-    /*
+    /**
      * Check the event for an RF pulse, and, if found, fit it to get RF time.
      */
-	public void process(EventHeader event) {
-		
-		List <RfHit> rfHits=new ArrayList<RfHit>();
-		
-		boolean foundRf=false;
-		double times[]={-9999,-9999};
-		
-		if (event.hasCollection(GenericObject.class,"FADCGenericHits")) {
+    public void process(EventHeader event) {
 
-			for (GenericObject gob : event.get(GenericObject.class,"FADCGenericHits")) {
-				FADCGenericHit hit=(FADCGenericHit)gob;
+        List<RfHit> rfHits = new ArrayList<RfHit>();
 
-				// ignore hits not from proper RF signals based on crate/slot/channel:
-				if (hit.getCrate()!=CRATE || hit.getSlot()!=SLOT) continue;
-				
-				for (int ii=0; ii<CHANNELS.length; ii++) {
-					if (hit.getChannel()==CHANNELS[ii]) {
+        boolean foundRf = false;
+        double times[] = {-9999, -9999};
 
-						// we found a RF readout, fit it:
-						foundRf=true;
-						times[ii] = fitPulse(hit);
+        if (event.hasCollection(GenericObject.class, "FADCGenericHits")) {
 
-						break;
-					}
-				}
-			}
-		}
-    	if (foundRf) rfHits.add(new RfHit(times));
-    	event.put("RFHits", rfHits, RfHit.class, 1);
-	}
+            for (GenericObject gob : event.get(GenericObject.class, "FADCGenericHits")) {
 
-	/*
-	 * Perform the fit to the RF pulse:
-	 */
-	public double fitPulse(FADCGenericHit hit) {
-		fitData.clear();
-		final int adcSamples[]=hit.getData();
-		//stores the number of peaks
-		int iz=0;
-		int peakBin[]={-999,-999};
-		final int threshold = 300;	
-		double fitThresh[]={-999,-999};
-		double pedVal[]={-999,-999};
-		
-		// Look for bins containing the peaks (2-3 peaks)
-		for (int ii=4; ii<adcSamples.length; ii++) {
-			// After 2 peaks, stop looking for more
-			if (iz==2){break;}
-			if ((adcSamples[ii+1]>0) && (adcSamples[ii-1]>0) && (adcSamples[ii]>threshold) && ii>8){
-				if ((adcSamples[ii]>adcSamples[ii+1]) && (adcSamples[ii]>=adcSamples[ii-1]) ){
-					
-					peakBin[iz]=ii;
-					iz++;
-				}
-			}
-		}
-		
-		
-		int jj=0;
-		// Choose peak closest to center of window (second peak, ik=1)
-		final int ik=1;
-		pedVal[ik] = (adcSamples[peakBin[ik]-6]+adcSamples[peakBin[ik]-7]+adcSamples[peakBin[ik]-8]+adcSamples[peakBin[ik]-9])/4.0;
-		fitThresh[ik]= (adcSamples[peakBin[ik]]+pedVal[ik])/3.0;
-	
-		// Initial values: we find/fit 3 points:
-		double itime[] = {-999,-999,-999};
-		double ifadc[] = {-999,-999,-999};
-		
-		// Find the points of the peak bin to peak bin-5 
-		for (int ll=0; ll<5; ll++){	
-			if ((adcSamples[peakBin[ik]-5+ll]) > fitThresh[ik]){
-				// One point is below fit threshold and two points are above	
-				if(jj==0 && (adcSamples[peakBin[ik]-6+ll] > pedVal[ik])){
-					final int zz=fitData.size();	
-					fitData.addPoint();
-					itime[zz] = peakBin[ik]-6+ll;
-					ifadc[zz] = adcSamples[peakBin[ik]-6+ll];
-					fitData.point(zz).coordinate(0).setValue(peakBin[ik]-6+ll);
-					fitData.point(zz).coordinate(1).setValue(adcSamples[peakBin[ik]-6+ll]);
-					fitData.point(zz).coordinate(1).setErrorMinus(NOISE);
-					fitData.point(zz).coordinate(1).setErrorPlus(NOISE);		
-					jj++;	
-				}
-				final int zz=fitData.size();	
-				fitData.addPoint();
-				itime[zz] = peakBin[ik]-5+ll;
-				ifadc[zz] = adcSamples[peakBin[ik]-5+ll];
-				fitData.point(zz).coordinate(0).setValue(peakBin[ik]-5+ll);
-				fitData.point(zz).coordinate(1).setValue(adcSamples[peakBin[ik]-5+ll]);
-				fitData.point(zz).coordinate(1).setErrorMinus(NOISE);
-				fitData.point(zz).coordinate(1).setErrorPlus(NOISE);
-					
-				jj++;
-				if (jj==3) {break;}					
-			}
-		}
-		
-		double islope = ((double)(ifadc[2]-ifadc[0]))/(itime[2]-itime[0]);
-		double icept = ifadc[1] - islope*itime[1];
-		// Initialize fit parameters:
-		fitFunction.setParameter("intercept",icept);
-		fitFunction.setParameter("slope",islope);
+                FADCGenericHit hit = null;
 
-		// this used to be turned on somewhere else on every event, dunno if it still is:
-		//Logger.getLogger("org.freehep.math.minuit").setLevel(Level.OFF);
-	
-		IFitResult fitResults = fitter.fit(fitData,fitFunction);
-		
-		// Read the time value at this location on the fit:
-		double halfVal = (adcSamples[peakBin[1]]+pedVal[1])/2.0;	
-	
-		return NSPERSAMPLE*(halfVal-fitResults.fittedParameter("intercept"))/fitResults.fittedParameter("slope");
-			
-	}
-		
+                /* Added conversion from GenericObject in case loading back from an LCIO file. --JM */
+                if (gob instanceof FADCGenericHit) {
+                    hit = (FADCGenericHit) gob;
+                } else {
+                    hit = new FADCGenericHit(gob);
+                }
+
+                // ignore hits not from proper RF signals based on crate/slot/channel:
+                if (hit.getCrate() != CRATE || hit.getSlot() != SLOT)
+                    continue;
+
+                for (int ii = 0; ii < CHANNELS.length; ii++) {
+                    if (hit.getChannel() == CHANNELS[ii]) {
+
+                        // we found a RF readout, fit it:
+                        foundRf = true;
+                        times[ii] = fitPulse(hit);
+
+                        break;
+                    }
+                }
+            }
+        }
+        if (foundRf) {
+            rfHits.add(new RfHit(times));
+        }
+        event.put("RFHits", rfHits, RfHit.class, 1);
+    }
+
+    /**
+     * Perform the fit to the RF pulse:
+     */
+    private double fitPulse(FADCGenericHit hit) {
+        fitData.clear();
+        final int adcSamples[] = hit.getData();
+        // stores the number of peaks
+        int iz = 0;
+        int peakBin[] = {-999, -999};
+        final int threshold = 300;
+        double fitThresh[] = {-999, -999};
+        double pedVal[] = {-999, -999};
+
+        // Look for bins containing the peaks (2-3 peaks)
+        for (int ii = 4; ii < adcSamples.length; ii++) {
+            // After 2 peaks, stop looking for more
+            if (iz == 2) {
+                break;
+            }
+            if ((adcSamples[ii + 1] > 0) && (adcSamples[ii - 1] > 0) && (adcSamples[ii] > threshold) && ii > 8) {
+                if ((adcSamples[ii] > adcSamples[ii + 1]) && (adcSamples[ii] >= adcSamples[ii - 1])) {
+
+                    peakBin[iz] = ii;
+                    iz++;
+                }
+            }
+        }
+
+        int jj = 0;
+        // Choose peak closest to center of window (second peak, ik=1)
+        final int ik = 1;
+        pedVal[ik] = (adcSamples[peakBin[ik] - 6] + adcSamples[peakBin[ik] - 7] + adcSamples[peakBin[ik] - 8] + adcSamples[peakBin[ik] - 9]) / 4.0;
+        fitThresh[ik] = (adcSamples[peakBin[ik]] + pedVal[ik]) / 3.0;
+
+        // Initial values: we find/fit 3 points:
+        double itime[] = {-999, -999, -999};
+        double ifadc[] = {-999, -999, -999};
+
+        // Find the points of the peak bin to peak bin-5
+        for (int ll = 0; ll < 5; ll++) {
+            if ((adcSamples[peakBin[ik] - 5 + ll]) > fitThresh[ik]) {
+                // One point is below fit threshold and two points are above
+                if (jj == 0 && (adcSamples[peakBin[ik] - 6 + ll] > pedVal[ik])) {
+                    final int zz = fitData.size();
+                    fitData.addPoint();
+                    itime[zz] = peakBin[ik] - 6 + ll;
+                    ifadc[zz] = adcSamples[peakBin[ik] - 6 + ll];
+                    fitData.point(zz).coordinate(0).setValue(peakBin[ik] - 6 + ll);
+                    fitData.point(zz).coordinate(1).setValue(adcSamples[peakBin[ik] - 6 + ll]);
+                    fitData.point(zz).coordinate(1).setErrorMinus(NOISE);
+                    fitData.point(zz).coordinate(1).setErrorPlus(NOISE);
+                    jj++;
+                }
+                final int zz = fitData.size();
+                fitData.addPoint();
+                itime[zz] = peakBin[ik] - 5 + ll;
+                ifadc[zz] = adcSamples[peakBin[ik] - 5 + ll];
+                fitData.point(zz).coordinate(0).setValue(peakBin[ik] - 5 + ll);
+                fitData.point(zz).coordinate(1).setValue(adcSamples[peakBin[ik] - 5 + ll]);
+                fitData.point(zz).coordinate(1).setErrorMinus(NOISE);
+                fitData.point(zz).coordinate(1).setErrorPlus(NOISE);
+
+                jj++;
+                if (jj == 3) {
+                    break;
+                }
+            }
+        }
+
+        double islope = ((double) (ifadc[2] - ifadc[0])) / (itime[2] - itime[0]);
+        double icept = ifadc[1] - islope * itime[1];
+        // Initialize fit parameters:
+        fitFunction.setParameter("intercept", icept);
+        fitFunction.setParameter("slope", islope);
+
+        // this used to be turned on somewhere else on every event, dunno if it still is:
+        // Logger.getLogger("org.freehep.math.minuit").setLevel(Level.OFF);
+
+        IFitResult fitResults = fitter.fit(fitData, fitFunction);
+
+        // Read the time value at this location on the fit:
+        double halfVal = (adcSamples[peakBin[1]] + pedVal[1]) / 2.0;
+
+        return NSPERSAMPLE * (halfVal - fitResults.fittedParameter("intercept")) / fitResults.fittedParameter("slope");
+    }
 }

Modified: java/branches/jeremy-dev/integration-tests/pom.xml
 =============================================================================
--- java/branches/jeremy-dev/integration-tests/pom.xml	(original)
+++ java/branches/jeremy-dev/integration-tests/pom.xml	Thu Feb 11 17:15:20 2016
@@ -23,7 +23,7 @@
         <dependency>
             <groupId>org.hps</groupId>
             <artifactId>hps-test-data</artifactId>
-            <version>1.0.0-SNAPSHOT</version>
+            <version>1.0-SNAPSHOT</version>
             <scope>test</scope>
             <classifier>archive</classifier>
             <type>jar</type>
@@ -31,7 +31,7 @@
         <dependency>
             <groupId>org.hps</groupId>
             <artifactId>hps-test-data</artifactId>
-            <version>1.0.0-SNAPSHOT</version>
+            <version>1.0-SNAPSHOT</version>
             <scope>test</scope>
             <type>jar</type>
         </dependency>
@@ -51,7 +51,8 @@
                 <version>2.19</version>
                 <configuration>
                     <argLine>-server -Xmx2g -XX:MaxPermSize=512m -Djava.util.logging.config.class=org.hps.logging.config.TestLoggingConfig</argLine>
-                    <forkMode>always</forkMode>
+                    <forkCount>1</forkCount>
+                    <reuseForks>false</reuseForks>
                     <includes>
                         <include>org/hps/test/it/*Test.java</include>
                     </includes>

Modified: java/branches/jeremy-dev/integration-tests/src/test/java/org/hps/test/it/DataQualityMonitorTest.java
 =============================================================================
--- java/branches/jeremy-dev/integration-tests/src/test/java/org/hps/test/it/DataQualityMonitorTest.java	(original)
+++ java/branches/jeremy-dev/integration-tests/src/test/java/org/hps/test/it/DataQualityMonitorTest.java	Thu Feb 11 17:15:20 2016
@@ -17,16 +17,14 @@
 
     private static final String CLASS_NAME = DataQualityMonitorTest.class.getSimpleName();
     private static final File OUTPUT_DIR = new File("./target/test-output/" + CLASS_NAME);
-    private static final File OUTPUT_FILE = new File(OUTPUT_DIR.getAbsolutePath() + File.separator + CLASS_NAME);
-    private static final File AIDA_FILE = new File(OUTPUT_FILE.getAbsolutePath() + ".aida");
+    private static final File OUTPUT_FILE = new File(OUTPUT_DIR.getAbsolutePath() + File.separator + CLASS_NAME + ".aida");
     private static final String STEERING_RESOURCE = "/org/hps/steering/test/DataQualityTest.lcsim";
 
     public void setUp() {
         
-        System.out.println("Setting up DQM Test");
         // Delete files if they already exist.     
-        if (AIDA_FILE.exists())
-            AIDA_FILE.delete();
+        if (OUTPUT_FILE.exists())
+            OUTPUT_FILE.delete();
 
         // Create output dir.
         OUTPUT_DIR.mkdirs();
@@ -36,11 +34,12 @@
 
     public void testQualityMonitor() {
         File dataFile = new TestDataUtility().getTestData("DataQualityMonitorTest.slcio");
-        System.out.println("running data quality job with steering resource " + STEERING_RESOURCE);
+        System.out.println("running data quality job with steering resource " + STEERING_RESOURCE + " ...");
         JobManager jobManager = new JobManager();
         jobManager.addVariableDefinition("outputFile", OUTPUT_FILE.getPath());
         jobManager.addInputFile(dataFile);
         jobManager.setup(STEERING_RESOURCE);
         jobManager.run();
+        System.out.println("Done!");
     }
 }

Modified: java/branches/jeremy-dev/integration-tests/src/test/java/org/hps/test/it/ReconSteeringTest.java
 =============================================================================
--- java/branches/jeremy-dev/integration-tests/src/test/java/org/hps/test/it/ReconSteeringTest.java	(original)
+++ java/branches/jeremy-dev/integration-tests/src/test/java/org/hps/test/it/ReconSteeringTest.java	Thu Feb 11 17:15:20 2016
@@ -1,100 +1,41 @@
 package org.hps.test.it;
 
 import java.io.File;
-import java.io.IOException;
-import java.net.URL;
 
 import junit.framework.TestCase;
 
 import org.hps.data.test.TestDataUtility;
 import org.hps.job.JobManager;
-import org.lcsim.util.cache.FileCache;
 import org.lcsim.util.test.TestUtil.TestOutputFile;
 
 /**
- * Test that production MC recon steering files are not broken by running an LCSim job on them
- * using an LCIO file.
+ * Run a test job on Eng Run 2015 data.
  * 
  * @author Jeremy McCormick, SLAC
  */
 public class ReconSteeringTest extends TestCase {
     
-    /**
-     * List of steering files to run.
-     */
-    final static String[] STEERING_FILES = {
-        "EngineeringRun2014EcalRecon_Pass1.lcsim",
-        "EngineeringRun2014EcalRecon.lcsim",
-        "EngineeringRun2015EcalRecon.lcsim",
-        "EngineeringRun2015FullRecon.lcsim",
-        "EngineeringRun2015FullRecon_Pass2.lcsim",
-        "EngineeringRun2015HitRecon.lcsim",
-        "HPSTrackingDefaultsRecon.lcsim"
-    };
-            
-    /**
-     * Test recon steering files.
-     * @throws Exception if any error occurs running the recon job
-     */
-    public void testSteeringFiles() {
+    final static String STEERING_RESOURCE = "/org/hps/steering/recon/EngineeringRun2015FullRecon.lcsim";
+              
+    public void testReconSteering() throws Exception {
         
-        File inputFile = new TestDataUtility().getTestData("tritrigv1-egsv3-triv2-g4v1_s2d6_HPS-EngRun2015-Nominal-v3_3.4.0_pairs1_1.slcio");
-        
-        for (String steeringFile : STEERING_FILES) {
-            
-            // Run the reconstruction steering file.
-            File outputFile = null;
-            try {
-                outputFile = new TestOutputFile(new File(steeringFile).getName().replace(".lcsim", ""));
-                runSteering("/org/hps/steering/recon/" + steeringFile, inputFile, outputFile);
-            } catch (Throwable e) {
-                System.err.println("Job with steering " + steeringFile + " failed!");
-                throw new RuntimeException("Recon job failed.", e);
-            }
-            
-            Runtime runtime = Runtime.getRuntime();
-            
-            int mb = 1024 * 1024;
-            
-            System.out.println("total memory: " + runtime.totalMemory() / mb);
-            System.out.println("free memory: " + runtime.freeMemory() / mb);
-            System.out.println("max memory: " + runtime.maxMemory() / mb);
-            System.out.println("used memory: " + (runtime.totalMemory() - runtime.freeMemory()) / mb);
-            
-            System.gc();
-            
-            // Create DQM output for QA.
-            try {
-                runDQM(outputFile);
-            } catch (Throwable e) {
-                throw new RuntimeException("The DQM job failed.", e);
-            }
-        }
-    }
-       
-    private void runSteering(String steeringFile, File inputFile, File outputFile) {
-        System.out.println("Testing steering file " + steeringFile + " ...");
+        File inputFile = new TestDataUtility().getTestData("run_5772_data_only.slcio");
+                           
+        File outputFile = null;
+        outputFile = new TestOutputFile(new File(STEERING_RESOURCE).getName().replace(".lcsim", ""));
+        System.out.println("Testing steering " + STEERING_RESOURCE + " ...");
         JobManager job = new JobManager();
         job.addVariableDefinition("outputFile", outputFile.getPath());
-        job.addVariableDefinition("detector", "HPS-EngRun2015-Nominal-v3");
-        job.addVariableDefinition("run", "5772");
-        job.addVariableDefinition("isMC", "true");
         job.addInputFile(inputFile);
-        job.setup(steeringFile);
+        job.setup(STEERING_RESOURCE);
         job.run();
-        System.out.println("Job with steering " + steeringFile + " successfully processed " + job.getLCSimLoop().getTotalCountableConsumed() + " events.");
-    }
-    
-    private void runDQM(File outputFile) {
-        System.out.println("Running DQM on " + outputFile.getPath() + " ...");
-        JobManager job = new JobManager();
-        File inputFile = new File(outputFile.getPath() + ".slcio");
-        job.addInputFile(inputFile);
-        job.addVariableDefinition("outputFile", outputFile.getPath().replace(".slcio", ""));
-        job.setup("/org/hps/steering/production/DataQualityRecon.lcsim");
-        job.run();
-        System.out.println("DQM processed " + job.getLCSimLoop().getTotalCountableConsumed() + " events from " + outputFile + ".");
+        System.out.println("Done processing " + job.getLCSimLoop().getTotalCountableConsumed() + " events.");
+                            
+        Runtime runtime = Runtime.getRuntime();
+        int mb = 1024 * 1024; 
+        System.out.printf("total memory: %d mb\n", runtime.totalMemory() / mb); 
+        System.out.printf("free memory: %d mb\n", runtime.freeMemory() / mb);
+        System.out.printf("max memory: %d mb\n", runtime.maxMemory() / mb);
+        System.out.printf("used memory: %d mb\n", (runtime.totalMemory() - runtime.freeMemory()) / mb);
     }
 }
-
-

Modified: java/branches/jeremy-dev/integration-tests/src/test/resources/org/hps/steering/test/DataQualityTest.lcsim
 =============================================================================
--- java/branches/jeremy-dev/integration-tests/src/test/resources/org/hps/steering/test/DataQualityTest.lcsim	(original)
+++ java/branches/jeremy-dev/integration-tests/src/test/resources/org/hps/steering/test/DataQualityTest.lcsim	Thu Feb 11 17:15:20 2016
@@ -18,13 +18,12 @@
         <driver name="CleanupDriver"/>
     </execute>    
     <drivers>    
-        <!--    <driver name="DQMDatabaseDriver" type="org.hps.analysis.dataquality.DQMDatabaseDriver"/> -->
         <driver name="EventMarkerDriver" type="org.lcsim.job.EventMarkerDriver">
-            <eventInterval>1</eventInterval>
+            <eventInterval>100</eventInterval>
         </driver>        
         <driver name="RawTrackerHitSensorSetup" type="org.lcsim.recon.tracking.digitization.sisim.config.RawTrackerHitSensorSetup"/>
         <driver name="AidaSaveDriver" type="org.lcsim.job.AidaSaveDriver">
-            <outputFileName>${outputFile}.root</outputFileName>
+            <outputFileName>${outputFile}</outputFileName>
         </driver>
         <driver name="SVTMonitoring" type="org.hps.analysis.dataquality.SvtMonitoring">
             <overwriteDB>false</overwriteDB>
@@ -48,6 +47,5 @@
             <overwriteDB>false</overwriteDB>
         </driver>
         <driver name="CleanupDriver" type="org.lcsim.recon.tracking.digitization.sisim.config.ReadoutCleanupDriver"/>
-
     </drivers>
 </lcsim>

Modified: java/branches/jeremy-dev/job/pom.xml
 =============================================================================
--- java/branches/jeremy-dev/job/pom.xml	(original)
+++ java/branches/jeremy-dev/job/pom.xml	Thu Feb 11 17:15:20 2016
@@ -7,7 +7,7 @@
         <groupId>org.hps</groupId>
         <artifactId>hps-parent</artifactId>
         <relativePath>../parent/pom.xml</relativePath>
-        <version>3.5-SNAPSHOT</version>
+        <version>3.6-SNAPSHOT</version>
     </parent>
     <scm>
         <url>http://java.freehep.org/svn/repos/hps/list/java/trunk/job/</url>

Modified: java/branches/jeremy-dev/logging/pom.xml
 =============================================================================
--- java/branches/jeremy-dev/logging/pom.xml	(original)
+++ java/branches/jeremy-dev/logging/pom.xml	Thu Feb 11 17:15:20 2016
@@ -7,7 +7,7 @@
         <groupId>org.hps</groupId>
         <artifactId>hps-parent</artifactId>
         <relativePath>../parent/pom.xml</relativePath>
-        <version>3.5-SNAPSHOT</version>
+        <version>3.6-SNAPSHOT</version>
     </parent>
     <scm>
         <url>http://java.freehep.org/svn/repos/hps/list/java/trunk/logging/</url>

Modified: java/branches/jeremy-dev/logging/src/main/resources/org/hps/logging/config/logging.properties
 =============================================================================
--- java/branches/jeremy-dev/logging/src/main/resources/org/hps/logging/config/logging.properties	(original)
+++ java/branches/jeremy-dev/logging/src/main/resources/org/hps/logging/config/logging.properties	Thu Feb 11 17:15:20 2016
@@ -16,6 +16,9 @@
 # configure the console handler
 java.util.logging.ConsoleHandler.level = ALL
 java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
+
+# turn minuit logging off
+org.freehep.math.minuit = OFF
 
 # lcsim job
 org.lcsim.job.level = CONFIG

Modified: java/branches/jeremy-dev/logging/src/main/resources/org/hps/logging/config/test_logging.properties
 =============================================================================
--- java/branches/jeremy-dev/logging/src/main/resources/org/hps/logging/config/test_logging.properties	(original)
+++ java/branches/jeremy-dev/logging/src/main/resources/org/hps/logging/config/test_logging.properties	Thu Feb 11 17:15:20 2016
@@ -16,7 +16,10 @@
 # configure the console handler
 java.util.logging.ConsoleHandler.level = ALL
 java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
-f
+
+# turn minuit off
+org.freehep.math.minuit = OFF
+
 # lcsim job
 org.lcsim.job.level = WARNING
 org.lcsim.job.EventMarkerDriver.level = OFF

Modified: java/branches/jeremy-dev/monitoring-app/pom.xml
 =============================================================================
--- java/branches/jeremy-dev/monitoring-app/pom.xml	(original)
+++ java/branches/jeremy-dev/monitoring-app/pom.xml	Thu Feb 11 17:15:20 2016
@@ -7,7 +7,7 @@
         <groupId>org.hps</groupId>
         <artifactId>hps-parent</artifactId>
         <relativePath>../parent/pom.xml</relativePath>
-        <version>3.5-SNAPSHOT</version>
+        <version>3.6-SNAPSHOT</version>
     </parent>
     <scm>
         <url>http://java.freehep.org/svn/repos/hps/list/java/trunk/monitoring-app/</url>

Modified: java/branches/jeremy-dev/monitoring-app/src/main/java/org/hps/monitoring/application/MonitoringApplication.java
 =============================================================================
--- java/branches/jeremy-dev/monitoring-app/src/main/java/org/hps/monitoring/application/MonitoringApplication.java	(original)
+++ java/branches/jeremy-dev/monitoring-app/src/main/java/org/hps/monitoring/application/MonitoringApplication.java	Thu Feb 11 17:15:20 2016
@@ -954,7 +954,7 @@
 
             // Add listener to push conditions changes to conditions panel.
             final List<ConditionsListener> conditionsListeners = new ArrayList<ConditionsListener>();
-            conditionsListeners.add(this.frame.getConditionsPanel().new ConditionsPanelListener());
+            //conditionsListeners.add(this.frame.getConditionsPanel().new ConditionsPanelListener());
 
             // Instantiate the event processing wrapper.
             this.processing = new EventProcessing(this, processors, drivers, conditionsListeners);

Modified: java/branches/jeremy-dev/monitoring-app/src/main/java/org/hps/monitoring/application/MonitoringApplicationFrame.java
 =============================================================================
--- java/branches/jeremy-dev/monitoring-app/src/main/java/org/hps/monitoring/application/MonitoringApplicationFrame.java	(original)
+++ java/branches/jeremy-dev/monitoring-app/src/main/java/org/hps/monitoring/application/MonitoringApplicationFrame.java	Thu Feb 11 17:15:20 2016
@@ -37,7 +37,7 @@
     /**
      * The conditions panel.
      */
-    private final ConditionsPanel conditionsPanel;
+    //private final ConditionsPanel conditionsPanel;
 
     /**
      * The dashboard panel.
@@ -150,8 +150,8 @@
         tableTabbedPane.addTab("Trigger Diagnostics", this.triggerPanel);
 
         // Add the conditions panel.
-        this.conditionsPanel = new ConditionsPanel();
-        tableTabbedPane.addTab("Detector Conditions", this.conditionsPanel);
+        //this.conditionsPanel = new ConditionsPanel();
+        //tableTabbedPane.addTab("Detector Conditions", this.conditionsPanel);
 
         // Vertical split pane in left panel.
         this.leftSplitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, this.dashboardPanel, tableTabbedPane);
@@ -209,9 +209,9 @@
      *
      * @return the conditions panel
      */
-    ConditionsPanel getConditionsPanel() {
-        return this.conditionsPanel;
-    }
+    //ConditionsPanel getConditionsPanel() {
+    //    return this.conditionsPanel;
+    //}
 
     /**
      * Get the panel for the dashboard.

Modified: java/branches/jeremy-dev/monitoring-drivers/pom.xml
 =============================================================================
--- java/branches/jeremy-dev/monitoring-drivers/pom.xml	(original)
+++ java/branches/jeremy-dev/monitoring-drivers/pom.xml	Thu Feb 11 17:15:20 2016
@@ -7,7 +7,7 @@
         <groupId>org.hps</groupId>
         <artifactId>hps-parent</artifactId>
         <relativePath>../parent/pom.xml</relativePath>
-        <version>3.5-SNAPSHOT</version>
+        <version>3.6-SNAPSHOT</version>
     </parent>
     <scm>
         <url>http://java.freehep.org/svn/repos/hps/list/java/trunk/monitoring-drivers/</url>

Modified: java/branches/jeremy-dev/monitoring-util/pom.xml
 =============================================================================
--- java/branches/jeremy-dev/monitoring-util/pom.xml	(original)
+++ java/branches/jeremy-dev/monitoring-util/pom.xml	Thu Feb 11 17:15:20 2016
@@ -7,7 +7,7 @@
         <groupId>org.hps</groupId>
         <artifactId>hps-parent</artifactId>
         <relativePath>../parent/pom.xml</relativePath>
-        <version>3.5-SNAPSHOT</version>
+        <version>3.6-SNAPSHOT</version>
     </parent>
     <scm>
         <url>http://java.freehep.org/svn/repos/hps/list/java/trunk/monitoring-util/</url>

Modified: java/branches/jeremy-dev/monitoring-util/src/main/java/org/hps/monitoring/plotting/ExportPdf.java
 =============================================================================
--- java/branches/jeremy-dev/monitoring-util/src/main/java/org/hps/monitoring/plotting/ExportPdf.java	(original)
+++ java/branches/jeremy-dev/monitoring-util/src/main/java/org/hps/monitoring/plotting/ExportPdf.java	Thu Feb 11 17:15:20 2016
@@ -8,6 +8,9 @@
 import java.awt.image.BufferedImage;
 import java.io.FileOutputStream;
 import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
 import java.util.List;
 import java.util.logging.Logger;
 
@@ -70,9 +73,23 @@
         } catch (DocumentException e) {
             throw new IOException(e);
         }
+        
+        // Sort plotters so output appears the same every time.
+        ArrayList<IPlotter> sortedPlotters = new ArrayList<IPlotter>(plotters);
+        Collections.sort(sortedPlotters, new Comparator<IPlotter>() {
+           public int compare(IPlotter object1, IPlotter object2) {
+               if (object1.title() == null) {
+                   return -1;
+               }
+               if (object2.title() == null) {
+                   return 1;
+               }
+               return object1.title().compareTo(object2.title());
+           }
+        });
 
         // Write the graphics from each plotter on a new page.
-        for (IPlotter plotter : plotters) {
+        for (IPlotter plotter : sortedPlotters) {
             plotter.refresh();
             document.newPage();
             writePage(document, writer, plotter);

Modified: java/branches/jeremy-dev/parent/pom.xml
 =============================================================================
--- java/branches/jeremy-dev/parent/pom.xml	(original)
+++ java/branches/jeremy-dev/parent/pom.xml	Thu Feb 11 17:15:20 2016
@@ -6,13 +6,13 @@
     <groupId>org.hps</groupId>
     <artifactId>hps-parent</artifactId>
     <packaging>pom</packaging>
-    <version>3.5-SNAPSHOT</version>
+    <version>3.6-SNAPSHOT</version>
     <name>parent</name>
     <description>HPS Java parent POM</description>
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <org.lcsim.cacheDir>${user.home}</org.lcsim.cacheDir>
-        <lcsimVersion>3.1.7-SNAPSHOT</lcsimVersion>
+        <lcsimVersion>3.2-SNAPSHOT</lcsimVersion>
         <skipSite>false</skipSite>
         <skipPlugin>false</skipPlugin>
     </properties>
@@ -142,117 +142,117 @@
             <dependency>
                 <groupId>org.hps</groupId>
                 <artifactId>hps-util</artifactId>
-                <version>${project.version}</version>
+                <version>3.6-SNAPSHOT</version>
             </dependency>
             <dependency>
                 <groupId>org.hps</groupId>
                 <artifactId>hps-detector-data</artifactId>
-                <version>${project.version}</version>
+                <version>3.6-SNAPSHOT</version>
             </dependency>
             <dependency>
                 <groupId>org.hps</groupId>
                 <artifactId>hps-detector-model</artifactId>
-                <version>${project.version}</version>
+                <version>3.6-SNAPSHOT</version>
             </dependency>
             <dependency>
                 <groupId>org.hps</groupId>
                 <artifactId>hps-conditions</artifactId>
-                <version>${project.version}</version>
+                <version>3.6-SNAPSHOT</version>
             </dependency>
             <dependency>
                 <groupId>org.hps</groupId>
                 <artifactId>hps-ecal-recon</artifactId>
-                <version>${project.version}</version>
+                <version>3.6-SNAPSHOT</version>
             </dependency>
             <dependency>
                 <groupId>org.hps</groupId>
                 <artifactId>hps-ecal-readout-sim</artifactId>
-                <version>${project.version}</version>
+                <version>3.6-SNAPSHOT</version>
             </dependency>
             <dependency>
                 <groupId>org.hps</groupId>
                 <artifactId>hps-tracking</artifactId>
-                <version>${project.version}</version>
+                <version>3.6-SNAPSHOT</version>
             </dependency>
             <dependency>
                 <groupId>org.hps</groupId>
                 <artifactId>hps-evio</artifactId>
-                <version>${project.version}</version>
+                <version>3.6-SNAPSHOT</version>
             </dependency>
             <dependency>
                 <groupId>org.hps</groupId>
                 <artifactId>hps-recon</artifactId>
-                <version>${project.version}</version>
+                <version>3.6-SNAPSHOT</version>
             </dependency>
             <dependency>
                 <groupId>org.hps</groupId>
                 <artifactId>hps-analysis</artifactId>
-                <version>${project.version}</version>
+                <version>3.6-SNAPSHOT</version>
             </dependency>
             <dependency>
                 <groupId>org.hps</groupId>
                 <artifactId>hps-monitoring-drivers</artifactId>
-                <version>${project.version}</version>
+                <version>3.6-SNAPSHOT</version>
             </dependency>
             <dependency>
                 <groupId>org.hps</groupId>
                 <artifactId>hps-monitoring-app</artifactId>
-                <version>${project.version}</version>
+                <version>3.6-SNAPSHOT</version>
             </dependency>
             <dependency>
                 <groupId>org.hps</groupId>
                 <artifactId>hps-users</artifactId>
-                <version>${project.version}</version>
+                <version>3.6-SNAPSHOT</version>
             </dependency>
             <dependency>
                 <groupId>org.hps</groupId>
                 <artifactId>hps-steering-files</artifactId>
-                <version>${project.version}</version>
+                <version>3.6-SNAPSHOT</version>
             </dependency>
             <dependency>
                 <groupId>org.hps</groupId>
                 <artifactId>hps-distribution</artifactId>
-                <version>${project.version}</version>
+                <version>3.6-SNAPSHOT</version>
             </dependency>
             <dependency>
                 <groupId>org.hps</groupId>
                 <artifactId>hps-ecal-event-display</artifactId>
-                <version>${project.version}</version>
+                <version>3.6-SNAPSHOT</version>
             </dependency>
             <dependency>
                 <groupId>org.hps</groupId>
                 <artifactId>hps-record-util</artifactId>
-                <version>${project.version}</version>
+                <version>3.6-SNAPSHOT</version>
             </dependency>
             <dependency>
                 <groupId>org.hps</groupId>
                 <artifactId>hps-monitoring-util</artifactId>
-                <version>${project.version}</version>
+                <version>3.6-SNAPSHOT</version>
             </dependency>
             <dependency>
                 <groupId>org.hps</groupId>
                 <artifactId>hps-run-database</artifactId>
-                <version>${project.version}</version>
+                <version>3.6-SNAPSHOT</version>
             </dependency>
             <dependency>
                 <groupId>org.hps</groupId>
                 <artifactId>hps-crawler</artifactId>
-                <version>${project.version}</version>
+                <version>3.6-SNAPSHOT</version>
             </dependency>
             <dependency>
                 <groupId>org.hps</groupId>
                 <artifactId>hps-datacat-client</artifactId>
-                <version>${project.version}</version>
+                <version>3.6-SNAPSHOT</version>
             </dependency>
             <dependency>
                 <groupId>org.hps</groupId>
                 <artifactId>hps-job</artifactId>
-                <version>${project.version}</version>
+                <version>3.6-SNAPSHOT</version>
             </dependency>
             <dependency>
                 <groupId>org.hps</groupId>
                 <artifactId>hps-logging</artifactId>
-                <version>${project.version}</version>
+                <version>3.6-SNAPSHOT</version>
             </dependency>
             <!-- Next are external dependencies used in multiple modules. -->
             <dependency>
@@ -283,7 +283,7 @@
             <dependency>
                 <groupId>jfreechart-aida-experimental</groupId>
                 <artifactId>jfreechart-aida-experimental</artifactId>
-                <version>1.8-SNAPSHOT</version>
+                <version>1.8</version>
                 <exclusions>
                     <exclusion>
                         <groupId>jdom</groupId>
@@ -346,7 +346,7 @@
                 <artifactId>maven-surefire-report-plugin</artifactId>
                 <version>2.17</version>
             </plugin>
-            <!--
+            <!--            
             <plugin>
                 <groupId>org.kuali.maven.plugins</groupId>
                 <artifactId>graph-maven-plugin</artifactId>
@@ -411,7 +411,7 @@
                         </lifecycleMappingMetadata>
                     </configuration>
                 </plugin>
-                <!--
+                <!--                
                 <plugin>
                     <groupId>org.kuali.maven.plugins</groupId>
                     <artifactId>graph-maven-plugin</artifactId>

Modified: java/branches/jeremy-dev/plugin/pom.xml
 =============================================================================
--- java/branches/jeremy-dev/plugin/pom.xml	(original)
+++ java/branches/jeremy-dev/plugin/pom.xml	Thu Feb 11 17:15:20 2016
@@ -7,7 +7,7 @@
         <groupId>org.hps</groupId>
         <artifactId>hps-parent</artifactId>
         <relativePath>../parent/pom.xml</relativePath>
-        <version>3.5-SNAPSHOT</version>
+        <version>3.6-SNAPSHOT</version>
     </parent>
     <scm>
         <url>http://java.freehep.org/svn/repos/hps/list/java/trunk/plugin/</url>

Modified: java/branches/jeremy-dev/pom.xml
 =============================================================================
--- java/branches/jeremy-dev/pom.xml	(original)
+++ java/branches/jeremy-dev/pom.xml	Thu Feb 11 17:15:20 2016
@@ -9,7 +9,7 @@
         <groupId>org.hps</groupId>
         <artifactId>hps-parent</artifactId>
         <relativePath>parent/pom.xml</relativePath>
-        <version>3.5-SNAPSHOT</version>
+        <version>3.6-SNAPSHOT</version>
     </parent>
     <scm>
         <url>svn://svn.freehep.org/hps/java/trunk/</url>

Modified: java/branches/jeremy-dev/recon/pom.xml
 =============================================================================
--- java/branches/jeremy-dev/recon/pom.xml	(original)
+++ java/branches/jeremy-dev/recon/pom.xml	Thu Feb 11 17:15:20 2016
@@ -8,7 +8,7 @@
         <groupId>org.hps</groupId>
         <artifactId>hps-parent</artifactId>
         <relativePath>../parent/pom.xml</relativePath>
-        <version>3.5-SNAPSHOT</version>
+        <version>3.6-SNAPSHOT</version>
     </parent>
     <scm>
         <url>http://java.freehep.org/svn/repos/hps/list/java/trunk/recon/</url>

Modified: java/branches/jeremy-dev/recon/src/main/java/org/hps/recon/utils/TrackClusterMatcher.java
 =============================================================================
--- java/branches/jeremy-dev/recon/src/main/java/org/hps/recon/utils/TrackClusterMatcher.java	(original)
+++ java/branches/jeremy-dev/recon/src/main/java/org/hps/recon/utils/TrackClusterMatcher.java	Thu Feb 11 17:15:20 2016
@@ -69,7 +69,7 @@
      * Rafo's parameterization of cluster-seed x/y position residuals as function of energy.
      * 
      * Derived using GBL/seed tracks, non-analytic extrapolation, uncorrected cluster positions,
-     * and EngRun2015-Nominal-v3-4-fieldmap detector.
+     * and EngRun2015-Nominal-v4-4-fieldmap detector.
      * 
      *  f = p0+e*(p1+e*(p2+e*(p3+e*(p4+e*p5))))
      */
@@ -83,14 +83,14 @@
     private static final double dxMeanBotElecGBL[] = {-6.63558, 83.7763,-460.451, 1275.63,-1702.83, 873.913 };
     private static final double dxSigmBotElecGBL[] = { 47.0029,-411.784, 1586.52,-3083.37, 2985.58,-1145.53 };
     
-    private static final double dyMeanTopPosiGBL[] = { 0.71245, 5.57585,-6.50267,-8.21688, 39.8607,-43.9661 };
+    private static final double dyMeanTopPosiGBL[] = { 0.31245, 5.57585,-6.50267,-8.21688, 39.8607,-43.9661 };
     private static final double dySigmTopPosiGBL[] = { 33.0213,-275.174, 1168.77,-2642.34, 3045.52,-1406.21 };
-    private static final double dyMeanBotPosiGBL[] = {-5.532,   74.9738,-383.972, 977.849,-1250.28, 637.75  };
+    private static final double dyMeanBotPosiGBL[] = {-7.032,   74.9738,-383.972, 977.849,-1250.28, 637.75  };
     private static final double dySigmBotPosiGBL[] = { 19.019, -83.9253, 133.813, 119.883,-546.951, 405.207 };
     
-    private static final double dyMeanTopElecGBL[] = { 2.88498,-20.4101, 62.9689, 25.6386,-259.957, 207.145 };
+    private static final double dyMeanTopElecGBL[] = { 2.48498,-20.4101, 62.9689, 25.6386,-259.957, 207.145 };
     private static final double dySigmTopElecGBL[] = { 8.65583, 120.676,-1166.43, 3811.72,-5383.19, 2787.42 };
-    private static final double dyMeanBotElecGBL[] = {-9.02276, 112.329,-489.761, 953.037,-829.96,  260.772 };
+    private static final double dyMeanBotElecGBL[] = {-10.5228, 112.329,-489.761, 953.037,-829.96,  260.772 };
     private static final double dySigmBotElecGBL[] = { 23.4856,-108.19,  158.7,   189.261,-682.034, 459.15  };
 
     private static final double dxMeanTopPosiSeed[] ={ 11.6245,-28.5061, 13.0332, 59.9465,-21.1014,-63.6126 };
@@ -103,17 +103,15 @@
     private static final double dxMeanBotElecSeed[] ={-3.44302, 12.4687, 4.09878,-30.0057,-13.3151, 40.2707 };
     private static final double dxSigmBotElecSeed[] ={ 48.4089,-385.494, 1341.37,-2271.52, 1814.02,-526.555 };
 
-    private static final double dyMeanTopPosiSeed[] ={-0.127741,10.4944, -18.242,-12.9155, 81.0116,-73.9773 };
+    private static final double dyMeanTopPosiSeed[] ={-0.527741,10.4944, -18.242,-12.9155, 81.0116,-73.9773 };
     private static final double dySigmTopPosiSeed[] ={ 37.3097, -357.55, 1607.03,-3709.55, 4282.36,-1957.91 };
-    private static final double dyMeanBotPosiSeed[] ={ 2.24392,-55.2003,  405.04,-1250.64, 1731.47,-887.262 };
+    private static final double dyMeanBotPosiSeed[] ={ 0.74392,-55.2003,  405.04,-1250.64, 1731.47,-887.262 };
     private static final double dySigmBotPosiSeed[] ={ 25.5776,-199.731,  754.59,-1408.72, 1240.36,-400.912 };
 
-    private static final double dyMeanTopElecSeed[] ={ 3.25429,-24.0858, 69.0145, 34.1213,-297.752, 239.939 };
+    private static final double dyMeanTopElecSeed[] ={ 2.85429,-24.0858, 69.0145, 34.1213,-297.752, 239.939 };
     private static final double dySigmTopElecSeed[] ={ 19.9111,-53.2699,-261.915,  1593.2,-2774.01, 1605.54 };
-    private static final double dyMeanBotElecSeed[] ={-7.72963, 98.1346, -427.91, 840.225,-751.188, 250.792 };
+    private static final double dyMeanBotElecSeed[] ={-9.22963, 98.1346, -427.91, 840.225,-751.188, 250.792 };
     private static final double dySigmBotElecSeed[] ={ 21.7909,-85.4757,-56.9423, 977.522,-1902.05, 1137.92 };
-
-
     /**
      * Z position to start extrapolation from
      */

Modified: java/branches/jeremy-dev/record-util/pom.xml
 =============================================================================
--- java/branches/jeremy-dev/record-util/pom.xml	(original)
+++ java/branches/jeremy-dev/record-util/pom.xml	Thu Feb 11 17:15:20 2016
@@ -7,7 +7,7 @@
         <groupId>org.hps</groupId>
         <artifactId>hps-parent</artifactId>
         <relativePath>../parent/pom.xml</relativePath>
-        <version>3.5-SNAPSHOT</version>
+        <version>3.6-SNAPSHOT</version>
     </parent>
     <scm>
         <url>http://java.freehep.org/svn/repos/hps/list/java/trunk/record-util/</url>

Modified: java/branches/jeremy-dev/run-database/pom.xml
 =============================================================================
--- java/branches/jeremy-dev/run-database/pom.xml	(original)
+++ java/branches/jeremy-dev/run-database/pom.xml	Thu Feb 11 17:15:20 2016
@@ -7,7 +7,7 @@
         <groupId>org.hps</groupId>
         <artifactId>hps-parent</artifactId>
         <relativePath>../parent/pom.xml</relativePath>
-        <version>3.5-SNAPSHOT</version>
+        <version>3.6-SNAPSHOT</version>
     </parent>
     <scm>
         <url>http://java.freehep.org/svn/repos/hps/list/java/trunk/run-database/</url>

Modified: java/branches/jeremy-dev/steering-files/pom.xml
 =============================================================================
--- java/branches/jeremy-dev/steering-files/pom.xml	(original)
+++ java/branches/jeremy-dev/steering-files/pom.xml	Thu Feb 11 17:15:20 2016
@@ -8,7 +8,7 @@
         <groupId>org.hps</groupId>
         <artifactId>hps-parent</artifactId>
         <relativePath>../parent/pom.xml</relativePath>
-        <version>3.5-SNAPSHOT</version>
+        <version>3.6-SNAPSHOT</version>
     </parent>
     <scm>
         <url>http://java.freehep.org/svn/repos/hps/list/java/trunk/steering-files/</url>

Modified: java/branches/jeremy-dev/steering-files/src/main/resources/org/hps/steering/monitoring/TriggerDiagnosticsMonitoring.lcsim
 =============================================================================
--- java/branches/jeremy-dev/steering-files/src/main/resources/org/hps/steering/monitoring/TriggerDiagnosticsMonitoring.lcsim	(original)
+++ java/branches/jeremy-dev/steering-files/src/main/resources/org/hps/steering/monitoring/TriggerDiagnosticsMonitoring.lcsim	Thu Feb 11 17:15:20 2016
@@ -19,7 +19,7 @@
         <driver name="ConditionsDriver" type="org.hps.conditions.ConditionsDriver">
             <tag>pass0</tag>
         </driver>        
-        <driver name="DAQConfig" type="org.hps.recon.ecal.daqconfig.DAQConfigDriver"/>        
+        <driver name="DAQConfig" type="org.hps.record.daqconfig.DAQConfigDriver"/>
         <driver name="EcalRawConverter" type="org.hps.recon.ecal.EcalRawConverterDriver">
             <ecalCollectionName>EcalCalHits</ecalCollectionName>
             <use2014Gain>false</use2014Gain>

Modified: java/branches/jeremy-dev/steering-files/src/main/resources/org/hps/steering/production/DataQualityRecon.lcsim
 =============================================================================
--- java/branches/jeremy-dev/steering-files/src/main/resources/org/hps/steering/production/DataQualityRecon.lcsim	(original)
+++ java/branches/jeremy-dev/steering-files/src/main/resources/org/hps/steering/production/DataQualityRecon.lcsim	Thu Feb 11 17:15:20 2016
@@ -59,6 +59,7 @@
         <driver name="TridentMonitoringGBLPairs1"/>     
         <!--           -->
         <driver name="AidaSaveDriver"/>
+        <driver name="AidaToRootSaveDriver"/>
         <driver name="CleanupDriver"/>
     </execute>    
     <drivers>    
@@ -68,7 +69,10 @@
         <driver name="RawTrackerHitSensorSetup" type="org.lcsim.recon.tracking.digitization.sisim.config.RawTrackerHitSensorSetup">
             <readoutCollections>SVTRawTrackerHits</readoutCollections>
         </driver>
-        <driver name="AidaSaveDriver" type="org.lcsim.job.AidaSaveDriver">
+         <driver name="AidaSaveDriver" type="org.lcsim.job.AidaSaveDriver">
+            <outputFileName>${outputFile}.aida</outputFileName>
+        </driver>
+        <driver name="AidaToRootSaveDriver" type="org.lcsim.job.AidaSaveDriver">
             <outputFileName>${outputFile}.root</outputFileName>
         </driver>
 

Modified: java/branches/jeremy-dev/tracking/pom.xml
 =============================================================================
--- java/branches/jeremy-dev/tracking/pom.xml	(original)
+++ java/branches/jeremy-dev/tracking/pom.xml	Thu Feb 11 17:15:20 2016
@@ -8,7 +8,7 @@
         <groupId>org.hps</groupId>
         <artifactId>hps-parent</artifactId>
         <relativePath>../parent/pom.xml</relativePath>
-        <version>3.5-SNAPSHOT</version>
+        <version>3.6-SNAPSHOT</version>
     </parent>
     <scm>
         <url>http://java.freehep.org/svn/repos/hps/list/java/trunk/tracking/</url>

Modified: java/branches/jeremy-dev/users/pom.xml
 =============================================================================
--- java/branches/jeremy-dev/users/pom.xml	(original)
+++ java/branches/jeremy-dev/users/pom.xml	Thu Feb 11 17:15:20 2016
@@ -7,7 +7,7 @@
         <groupId>org.hps</groupId>
         <artifactId>hps-parent</artifactId>
         <relativePath>../parent/pom.xml</relativePath>
-        <version>3.5-SNAPSHOT</version>
+        <version>3.6-SNAPSHOT</version>
     </parent>
     <scm>
         <url>http://java.freehep.org/svn/repos/hps/list/java/trunk/users/</url>

Modified: java/branches/jeremy-dev/users/src/main/java/org/hps/users/meeg/SvtChargeIntegrator.java
 =============================================================================
--- java/branches/jeremy-dev/users/src/main/java/org/hps/users/meeg/SvtChargeIntegrator.java	(original)
+++ java/branches/jeremy-dev/users/src/main/java/org/hps/users/meeg/SvtChargeIntegrator.java	Thu Feb 11 17:15:20 2016
@@ -129,6 +129,9 @@
                         if (tiTimeOffset == 0) {
                             continue;
                         }
+                        if (tiTimeOffset == 0) {
+                            continue;
+                        }
                     }
 
                     try {

Modified: java/branches/jeremy-dev/users/src/main/java/org/hps/users/spaul/StyleUtil.java
 =============================================================================
--- java/branches/jeremy-dev/users/src/main/java/org/hps/users/spaul/StyleUtil.java	(original)
+++ java/branches/jeremy-dev/users/src/main/java/org/hps/users/spaul/StyleUtil.java	Thu Feb 11 17:15:20 2016
@@ -1,9 +1,16 @@
 package org.hps.users.spaul;
 
+import java.awt.Component;
+import java.awt.Graphics2D;
+import java.awt.image.BufferedImage;
+import java.io.File;
 import java.util.Arrays;
 import java.util.Random;
 
+import javax.imageio.ImageIO;
+
 import hep.aida.*;
+import hep.aida.ref.plotter.PlotterUtilities;
 
 public class StyleUtil {
 	
@@ -27,14 +34,16 @@
 		r.style().yAxisStyle().labelStyle().setFontSize(16);
 		r.style().yAxisStyle().tickLabelStyle().setFontSize(14);
 		//	r.style().statisticsBoxStyle().set;
-		//System.out.println(Arrays.toString());
+		//debugPrint());
 		r.style().legendBoxStyle().textStyle().setFontSize(16);
+		r.style().statisticsBoxStyle().textStyle().setFontSize(16);
 		
 		//r.style().dataStyle().showInLegendBox(false);
+		
 		r.style().legendBoxStyle().boxStyle().foregroundStyle().setOpacity(1.0);
 		r.style().dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
 		r.style().dataStyle().fillStyle().setParameter("showZeroHeightBins", "false");
-		System.out.println(Arrays.toString(r.style().statisticsBoxStyle().boxStyle().backgroundStyle().availableParameters()));
+		//debugPrint(r.style().dataStyle().availableParameters()));
 		//r.style().dataStyle().setParameter("showDataInStatisticsBox", "false");
 		r.style().setParameter("hist2DStyle", "colorMap");
 		//r.style().dataBoxStyle()
@@ -62,15 +71,38 @@
 		region.style().dataStyle().lineStyle().setParameter("colorRotateMethod", "regionOverlayIndex");
 		region.style().dataStyle().lineStyle().setParameter("colorRotate", "black, red, green, blue");
 		region.style().dataStyle().lineStyle().setParameter("thickness", "3");
+		region.style().dataStyle().outlineStyle().setParameter("colorRotateMethod", "regionOverlayIndex");
+		//debug = true;
+		debugPrint(region.style().dataStyle().outlineStyle().availableParameters());
+		region.style().dataStyle().outlineStyle().setParameter("colorRotate", "black, red, green, blue");
+		region.style().dataStyle().outlineStyle().setParameter("thickness", "3");
 		region.style().dataStyle().errorBarStyle().setVisible(false);
-		System.out.println(Arrays.toString(region.style().dataStyle().lineStyle().availableParameterOptions("colorRotateMethod")));
+		debugPrint(region.style().dataStyle().lineStyle().availableParameterOptions("colorRotateMethod"));
+	}
+	public static void setSize(IPlotter p, int width, int height){
+		p.setParameter("plotterWidth", width +"");
+		p.setParameter("plotterHeight", height +"");
 	}
 	
+	public static void setLog(IPlotterRegion r){
+
+		r.style().yAxisStyle().setParameter("scale", "log");
+		r.style().gridStyle().setUnits(100);
+		debugPrint(r.style().gridStyle().availableParameters()); 
+		
+	}
+	static boolean debug = false;
+	static void debugPrint(String[] stuff){
+		if(debug){
+			System.out.println(Arrays.toString(stuff));
+		}
+	}
 	public static void main(String arg[]){
 		IAnalysisFactory af = IAnalysisFactory.create();
 		IHistogramFactory hf = af.createHistogramFactory(af.createTreeFactory().create());
 		
 		IPlotter p = af.createPlotterFactory().create();
+		debugPrint(p.availableParameters());
 		p.createRegions(1, 2);
 		IHistogram1D h1 = hf.createHistogram1D("blah", 100, -5, 5);
 		IHistogram1D h2 = hf.createHistogram1D("bleh", 100, -5, 5);
@@ -99,9 +131,65 @@
 		
 		p.show();
 		
+		p = af.createPlotterFactory().create();
+		debugPrint(p.availableParameters());
+		p.createRegions(1, 2);
+		
+		p.region(0).plot(h1);
+		setLog(p.region(0));
+		
+		
+		
+		p.show();
 	}
 	public static void hideLegendAndStats(IPlotterRegion r){
 		r.style().statisticsBoxStyle().setVisible(false);
 		r.style().legendBoxStyle().setVisible(false);
 	}
+	public static IPlotterStyle smoothCurveStyle(IPlotterFactory pf) {
+		IPlotterStyle style = pf.createPlotterStyle();
+		debugPrint(style.dataStyle().availableParameters());
+		
+		style.dataStyle().markerStyle().setVisible(false);
+		
+		return style;
+	}
+	public static void writeToFile(IPlotter plotter, String filename, String filetype){
+		//JFrame frame = new JFrame()
+		//if(plotter.)
+		//plotter.hide();
+		//plotter.show();
+		//PlotterUtilities.writeToFile(plotter, filename, filetype, null);
+		try {
+			
+			
+			//PlotterUtilities.writeToFile(plotter, filename, filetype, null);
+			Thread.sleep(1000);
+			Component c = PlotterUtilities.componentForPlotter(plotter);
+			int width = Integer.parseInt(plotter.parameterValue("plotterWidth"));
+			int height = Integer.parseInt(plotter.parameterValue("plotterHeight"));
+			if(width <= 0){
+				width = 300;
+				plotter.setParameter("plotterWidth", Integer.toString(width));
+			}
+			if(height <= 0){
+				height = 300;
+
+				plotter.setParameter("plotterHeight", Integer.toString(height));
+			}
+			
+			c.setSize(width, height);
+			BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
+			Graphics2D graphics2D = image.createGraphics();
+			c.paint(graphics2D);
+			ImageIO.write(image,filetype, new File(filename));
+			Runtime.getRuntime().exec("open " + filename);
+			System.out.println("saved");
+			
+		} catch (Exception e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		
+	}
 }

Modified: java/branches/jeremy-dev/users/src/main/java/org/hps/users/spaul/SumEverything.java
 =============================================================================
--- java/branches/jeremy-dev/users/src/main/java/org/hps/users/spaul/SumEverything.java	(original)
+++ java/branches/jeremy-dev/users/src/main/java/org/hps/users/spaul/SumEverything.java	Thu Feb 11 17:15:20 2016
@@ -3,6 +3,7 @@
 import java.io.File;
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Arrays;
 
 import hep.aida.IAnalysisFactory;
 import hep.aida.IHistogram1D;
@@ -17,12 +18,14 @@
 // and put the sums in separate files in a folder called "sums"
 public class SumEverything {
 	public static void main(String arg[]) throws IllegalArgumentException, IOException{
-		if(arg.length > 1){
+		if(arg.length == 2){
 			twoArg(arg[0], arg[1]);
 		}
-		else{
+		else if(arg.length == 1){
 			oneArg(arg[0]);
 		}
+		else 
+			polyArg(arg);
 	}
 	static void oneArg(final String indir) throws IllegalArgumentException, IOException{
 		File outdir = new File(indir + "/sums");
@@ -64,53 +67,76 @@
 
 	}
 
+
+
 	static void twoArg(String indir, String out) throws IllegalArgumentException, IOException{
+
+		run(new File(indir).listFiles(), out);
+	}
+	static void run(File[] files, String out) throws IllegalArgumentException, IOException{
+		
+		long timeStart = System.currentTimeMillis();
 		IAnalysisFactory af = IAnalysisFactory.create();
 		ITreeFactory tf = af.createTreeFactory();
 		new File(out).delete();
-		ITree tree0 = tf.create(out, "xml", false, true);
-		IHistogramFactory hf = af.createHistogramFactory(tree0);
-
-
+		ITree outtree = tf.create(out, "xml", false, true);
+		//IHistogramFactory hf = af.createHistogramFactory(outtree);
 		int j = 0;
-		for(File s : new File(indir).listFiles()){
+		String names[] = null;
+		for(File s : files){
 			if(!s.getAbsolutePath().endsWith("aida"))
 				continue;
 			try{
-				ITree tree = af.createTreeFactory().create(s.getAbsolutePath(),"xml");
+				ITree tree = tf.create(s.getAbsolutePath(),"xml");
 
 
 				if(j == 0){
-					String [] names = tree.listObjectNames();
-					tree0.mount("/tmp", tree, "/");
+					names = tree.listObjectNames("/", true);
+					System.out.println(Arrays.toString(names));
+					outtree.mount("/tmp", tree, "/");
 					for(String name : names){
+						if(name.endsWith("/")){
+							outtree.mkdirs(name);
+							continue;
+						}
 						Object o = tree.find(name);
 						if(o instanceof IHistogram1D || o instanceof IHistogram2D)
-							tree0.cp("/tmp/" + name, name);
+							outtree.cp("/tmp" + name, name);
 					}
-					tree0.unmount("/tmp");
-					tree.close();
+					outtree.unmount("/tmp");
+					//tree.close();
 
 				}
 				else{
 					//tree.
-					String [] names = tree.listObjectNames();
-					tree0.mount("/tmp", tree, "/");
+					//String [] names = tree.listObjectNames("/", true);
+					//outtree.mount("/tmp", tree, "/");
+					//System.out.println(Arrays.toString(names));
 					for(String name : names){
-						Object o = tree.find(name);
-						if(o instanceof IHistogram1D)
-							((IHistogram1D)tree0.find(name)).add((IHistogram1D)o);
+						if(name.endsWith("/"))
+							continue;
+						Object o = null;
+						try{
+							o = tree.find(name);
+						} catch(IllegalArgumentException e){
+							System.err.println("couldn't find object called " + name +  " in file " + s);
+							throw e;
+						}
+						if(o instanceof IHistogram1D){
+							if(((IHistogram1D)o).allEntries() != 0)
+							((IHistogram1D)outtree.find(name)).add((IHistogram1D)o);
+						}
 						if(o instanceof IHistogram2D)
-							((IHistogram2D)tree0.find(name)).add((IHistogram2D)o);
+							if(((IHistogram2D)o).allEntries() != 0)
+							((IHistogram2D)outtree.find(name)).add((IHistogram2D)o);
 					}
-					tree0.unmount("/tmp");
-					tree.close();
+					//outtree.unmount("/tmp");
+					//tree.close();
 				}
 
 				tree.close();
 				j++;
-				System.out.println(j + " files have been read");
-
+				System.out.println(j + " files have been read (" +(System.currentTimeMillis()-timeStart)/j + " ms per event");
 
 			} catch(IllegalArgumentException e){
 				//print the filename
@@ -118,7 +144,28 @@
 
 				e.printStackTrace();
 			}
-			tree0.commit();
+
+			outtree.commit();
+			System.out.println("summed file " + out +" commited.  Total time = " + (System.currentTimeMillis()-timeStart)/1000 + " seconds");
+		}
+	}
+
+	static void polyArg(String[] arg) throws IllegalArgumentException, IOException{
+		ArrayList<File> files = new ArrayList<File>();
+		boolean nextIsOutput = false;
+		for(String a : arg){
+			if(a.equals("-o")){
+				nextIsOutput = true; 
+				continue;
+			}
+			if(nextIsOutput){
+				run(files.toArray(new File[0]), a);
+				nextIsOutput = false;
+				files.clear();
+				continue;
+			}
+			files.add(new File(a));
+
 		}
 	}
 }

Modified: java/branches/jeremy-dev/users/src/main/java/org/hps/users/spaul/feecc/ExtractFormFactors.java
 =============================================================================
--- java/branches/jeremy-dev/users/src/main/java/org/hps/users/spaul/feecc/ExtractFormFactors.java	(original)
+++ java/branches/jeremy-dev/users/src/main/java/org/hps/users/spaul/feecc/ExtractFormFactors.java	Thu Feb 11 17:15:20 2016
@@ -36,7 +36,8 @@
 
 			IDataPointSetFactory dpsf = af.createDataPointSetFactory(treeNew);
 
-			IPlotter p = af.createPlotterFactory().create(outpaths[config]);
+			IPlotterFactory pf = af.createPlotterFactory();
+			IPlotter p = pf.create(outpaths[config]);
 
 
 			int Nsets = arg.length/10;
@@ -152,7 +153,9 @@
 
 				//p.region(0).plot(dps_iso);
 			}
-			p.region(0).plot(dpsTheory);
+			
+			IPlotterStyle style = StyleUtil.smoothCurveStyle(pf);
+			p.region(0).plot(dpsTheory, style);
 			StyleUtil.stylize(p.region(0), "Form Factors", "Q^2 (GeV^2)", "|F(Q^2)|^2");
 			p.show();
 		}

Modified: java/branches/jeremy-dev/users/src/main/java/org/hps/users/spaul/feecc/FEESpectrumGenerator.java
 =============================================================================
--- java/branches/jeremy-dev/users/src/main/java/org/hps/users/spaul/feecc/FEESpectrumGenerator.java	(original)
+++ java/branches/jeremy-dev/users/src/main/java/org/hps/users/spaul/feecc/FEESpectrumGenerator.java	Thu Feb 11 17:15:20 2016
@@ -145,7 +145,7 @@
 			
 			thetaHist = hf.createHistogram1D("theta", "theta", thetaBins);
 			
-			EHist = hf.createHistogram1D("energy", 50, 0, 1.3);
+			EHist = hf.createHistogram1D("energy", 200, 0, 1.3);
 			IPlotter p = af.createPlotterFactory().create();
 			p.createRegions(2,1);
 			p.region(0).plot(thetaHist);
@@ -166,8 +166,9 @@
 			
 			if(phep[3] > .5*E){
 				StdhepEvent event = new StdhepEvent(nevhep, nhep, isthep, idhep, jmohep, jdahep, phep, vhep);
+				double smear = .02;
 				if(display)
-					EHist.fill(phep[3]*(1+random.nextGaussian()*.045));
+					EHist.fill(phep[3]*(1+random.nextGaussian()*smear));
 				writer.writeRecord(event);
 			}
 			else{ // if the event has enough energy loss,

Modified: java/branches/jeremy-dev/users/src/main/java/org/hps/users/spaul/feecc/MakeHistograms.java
 =============================================================================
--- java/branches/jeremy-dev/users/src/main/java/org/hps/users/spaul/feecc/MakeHistograms.java	(original)
+++ java/branches/jeremy-dev/users/src/main/java/org/hps/users/spaul/feecc/MakeHistograms.java	Thu Feb 11 17:15:20 2016
@@ -59,7 +59,7 @@
 			String input = arg[0];
 			String output = arg[1];
 			cb = new CustomBinning(new File(arg[2]));
-			if(arg.length == 5)
+			if(arg[arg.length -1].equals("display"))
 				display = true;
 			IAnalysisFactory af = IAnalysisFactory.create();
 			ITree tree = af.createTreeFactory().create(output,"xml",false,true);
@@ -73,7 +73,10 @@
 			hack.setDetectorName("HPS-EngRun2015-Nominal-v3");
 			hack.setFreeze(true);
 			hack.setRunNumber(Integer.parseInt(arg[3]));
+			
 			hack.initialize();
+			beamTiltY = Double.parseDouble(arg[4]);
+			beamTiltX = Double.parseDouble(arg[5]);
 			LCIOReader reader = new LCIOReader(new File(input));
 			//reader.open(input);
 			//reader.
@@ -98,13 +101,14 @@
 
 	static IHistogram2D h1, h2, h2a, h2b, h2c;
 	static IHistogram2D h4,h4a;
-	static IHistogram1D h3, h3a, h3_t, h3_b;
+	static IHistogram1D h3, /*h3a,*/ h3_t, h3_b;
 	static IHistogram1D h5, h5a; 
-	static IHistogram2D h6, h6a;
+	//static IHistogram2D h6, h6a;
 	static IHistogram1D h7, h7a;
 	static IHistogram1D h8;
 	static IHistogram1D h9_t, h9_b;
 	static IHistogram1D h10_t, h10_b;
+	private static IHistogram1D h4y;
 
 	private static void extractHistograms(ITree tree0) {
 		h1 = (IHistogram2D) tree0.find("theta vs energy");
@@ -115,7 +119,7 @@
 		h2c = (IHistogram2D) tree0.find("theta vs phi alt");
 
 		h3 = (IHistogram1D) tree0.find("theta");
-		h3a = (IHistogram1D) tree0.find("theta isolated ");
+		//h3a = (IHistogram1D) tree0.find("theta isolated ");
 		h3_t = (IHistogram1D) tree0.find("theta top");
 		h3_b = (IHistogram1D) tree0.find("theta bottom");
 		
@@ -125,8 +129,8 @@
 		h5 = (IHistogram1D) tree0.find("energy top");
 		h5 = (IHistogram1D) tree0.find("energy bottom");
 
-		h6 = (IHistogram2D) tree0.find("cluster");
-		h6a = (IHistogram2D) tree0.find("cluster matched");
+//		h6 = (IHistogram2D) tree0.find("cluster");
+//		h6a = (IHistogram2D) tree0.find("cluster matched");
 		h7 = (IHistogram1D) tree0.find("y top");
 		h7a = (IHistogram1D) tree0.find("y bottom");
 		h8 = (IHistogram1D) tree0.find("seed energy");
@@ -176,7 +180,7 @@
 		h2c = hf.createHistogram2D("theta vs phi alt", "theta vs phi alt", thetaBins, phiBins);
 
 		h3 = hf.createHistogram1D("theta", "theta", thetaBins);
-		h3a = hf.createHistogram1D("theta isolated ", "theta isolated", thetaBins);
+//		h3a = hf.createHistogram1D("theta isolated ", "theta isolated", thetaBins);
 
 		h3_t = hf.createHistogram1D("theta top", "theta top", thetaBins);
 		h3_b = hf.createHistogram1D("theta bottom", "theta bottom", thetaBins);
@@ -184,7 +188,8 @@
 		
 		h4 = hf.createHistogram2D("px\\/pz vs py\\/pz", 300, -.16, .24, 300, -.2, .2);
 		h4a = hf.createHistogram2D("px\\/pz vs py\\/pz cut", 300, -.16, .24, 300, -.2, .2);
-
+		h4y = hf.createHistogram1D("py\\pz", 1200, -.06, .06);
+		
 		h5 = hf.createHistogram1D("energy top", 75, 0, 1.5);
 		h5a = hf.createHistogram1D("energy bottom", 75, 0, 1.5);
 		
@@ -192,8 +197,8 @@
 		h9_t = hf.createHistogram1D("pz top", 75, 0, 1.5);
 		h9_b = hf.createHistogram1D("pz bottom", 75, 0, 1.5);
 		
-		h6 = hf.createHistogram2D("cluster", 47, -23.5, 23.5, 11, -5.5, 5.5);
-		h6a = hf.createHistogram2D("cluster matched", 47, -23.5, 23.5, 11, -5.5, 5.5);
+//		h6 = hf.createHistogram2D("cluster", 47, -23.5, 23.5, 11, -5.5, 5.5);
+//		h6a = hf.createHistogram2D("cluster matched", 47, -23.5, 23.5, 11, -5.5, 5.5);
 
 		h7 = hf.createHistogram1D("y top", 500, 0, 100);
 
@@ -210,12 +215,15 @@
 		p.createRegions(2,2);
 		p.region(0).plot(h2);
 		StyleUtil.stylize(p.region(0), "theta", "phi");
-		p.region(1).plot(h3a);
+//		p.region(1).plot(h3a);
 		StyleUtil.stylize(p.region(1), "theta", "# of particles");
-		p.region(2).plot(h3);
-		StyleUtil.stylize(p.region(2), "theta", "# of particles");
+		p.region(2).plot(h9_t);
+		p.region(2).plot(h9_b);
+		StyleUtil.noFillHistogramBars(p.region(2));
+		StyleUtil.stylize(p.region(2), "pztilt" ,"pztilt", "# of particles");
 		p.region(3).plot(h5);
 		p.region(3).plot(h5a);
+		StyleUtil.noFillHistogramBars(p.region(3));
 		StyleUtil.stylize(p.region(3), "energy", "# of particles");
 
 		p.show();
@@ -252,9 +260,9 @@
 
 		IPlotter p6 = pf.create("efficiency");
 		p6.createRegions(1,2);
-		p6.region(0).plot(h6);
+//		p6.region(0).plot(h6);
 		StyleUtil.stylize(p6.region(0), "ix", "iy");
-		p6.region(1).plot(h6a);
+//		p6.region(1).plot(h6a);
 		StyleUtil.stylize(p6.region(1), "ix", "iy");
 		p6.show();
 
@@ -279,15 +287,22 @@
 		p9.region(0).plot(h3_b);
 		StyleUtil.stylize(p9.region(0), "theta", "theta", "# of particles");
 		StyleUtil.noFillHistogramBars(p9.region(0));
-				StyleUtil.stylize(p6.region(1), "ix", "iy");
+				//StyleUtil.stylize(p6.region(1), "ix", "iy");
 		p9.show();
 		
 		IPlotter p10 = pf.create("seed energy");
 		//p6.createRegions(1,2);
+		p10.createRegions(2,1);
 		p10.region(0).plot(h8);
 		StyleUtil.stylize(p10.region(0), "seed energy", "seed energy (GeV)", "# of particles");
+		
+		p10.region(1).plot(h10_t);
+		p10.region(1).plot(h10_b);
+		StyleUtil.noFillHistogramBars(p10.region(1));
+		StyleUtil.stylize(p10.region(1), "clust size", "n ecal hits", "# of particles");
+		
 		//StyleUtil.noFillHistogramBars(p10.region(0));
-				StyleUtil.stylize(p6.region(1), "ix", "iy");
+				//StyleUtil.stylize(p6.region(1), "ix", "iy");
 		p10.show();
 
 	}
@@ -307,80 +322,37 @@
 		List<ReconstructedParticle> particles = event.get(ReconstructedParticle.class, "FinalStateParticles");
 		particles = RemoveDuplicateParticles.removeDuplicateParticles(particles);
 		outer : for(ReconstructedParticle p : particles){
-			//check if this is a duplicate particle (ie, different track same cluster)
-			/*for(ParticleInfo cand : candidates){
-				if(p.getEnergy() == cand.E && cand.isGood == true)
-					continue outer;
-			}*/
+			
 
 			boolean isGood = addParticle(p);
-			if(!isGood){
-				if(p.getClusters().size()!= 0)
-					candidates.add(new ParticleInfo(0, p.getEnergy(), p.getClusters().get(0).getCalorimeterHits().get(0).getTime(), false));
-
-			}
-
-		}
-		for(ParticleInfo c : candidates){
-			if(c.isGood){
-				boolean isIsolated = true;
-				for(ParticleInfo c2 :candidates){
-					//try to remove events that have possible mollers in them. 
-					//correct for this later.  
-					if(Math.abs(c2.t - c.t) < 2.5 && c2.E < .3 && c2 != c){
-						isIsolated = false;
-						break;
-					}
-				}
-				if(isIsolated){
-					h3a.fill(c.theta);
-				}
-			}
-		}
-		candidates.clear();
-		processEventEfficiency(particles);
-	}
-
-	private static void processEventEfficiency(List<ReconstructedParticle> parts) {
-		for(ReconstructedParticle p : parts){
-			if(p.getClusters().size() == 0)
-				continue;
-			if(!(p.getEnergy() > eMin && p.getEnergy() < eMax))
-				continue;
-			Cluster c = p.getClusters().get(0);
-			if(!EcalUtil.fid_ECal(c) || c.getCalorimeterHits().size() < 3)
-				continue;
-			//good cluster?  now continue
-			int ixiy[] = EcalUtil.getCrystalIndex(c); 
-
-			h6.fill(ixiy[0], ixiy[1]);
-			if(p.getTracks().size() == 0)
-				continue;
-			Track t = p.getTracks().get(0);
-			if(t.getChi2()> maxChi2)
-				continue;
-			h6a.fill(ixiy[0], ixiy[1]);
-
-		}
-	}
+			
+
+		}
+		
+	}
+
+	
 
 	static double eMin = .8;
 	static double eMax = 1.2;
 	static double beamEnergy = 1.057;
 
-	static double beamTilt = .03057;
+	static double beamTiltX = .03057;
+	static double beamTiltY;
 	static double maxChi2 = 50;
 	//maximum difference between the reconstructed energy and momentum
-	static double maxdE = .3;
+	static double maxdE = .5;
 
 	static double seedEnergyCut = .4;
 
 
-	static ArrayList<ParticleInfo> candidates = new ArrayList();
 	static boolean addParticle(ReconstructedParticle part){
-
-
-
+		if(part.getTracks().size() != 0){
+			if(part.getMomentum().magnitudeSquared() > .8
+					&& part.getTracks().get(0).getChi2() > maxChi2){
+				h4y.fill(part.getMomentum().y()/part.getMomentum().z());
+			}
+		}
 		if(part.getCharge() != -1)
 			return false;
 		if(part.getClusters().size() == 0)
@@ -422,6 +394,12 @@
 		
 		if(EcalUtil.fid_ECal(c)){
 			
+			if(c.getPosition()[1] > 0){
+				h5.fill(c.getEnergy());
+			}
+			else{ 
+				h5a.fill(c.getEnergy());
+			}
 			if(part.getTracks().size() == 0)
 				return false;
 			Track t = part.getTracks().get(0);
@@ -430,12 +408,7 @@
 			}
 			if(!TrackType.isGBL(t.getType()))
 				return false;
-			if(c.getPosition()[1] > 0){
-				h5.fill(c.getEnergy());
-			}
-			else{ 
-				h5a.fill(c.getEnergy());
-			}
+			
 			
 			
 			Hep3Vector p = part.getMomentum();
@@ -443,9 +416,12 @@
 
 
 			double px = p.x(), pz = p.z();
-			double pxtilt = px*Math.cos(beamTilt)-pz*Math.sin(beamTilt);
+			double pxtilt = px*Math.cos(beamTiltX)-pz*Math.sin(beamTiltX);
 			double py = p.y();
-			double pztilt = pz*Math.cos(beamTilt)+px*Math.sin(beamTilt);
+			double pztilt = pz*Math.cos(beamTiltX)+px*Math.sin(beamTiltX);
+			
+			double pytilt = py*Math.cos(beamTiltY)-pztilt*Math.sin(beamTiltY);
+			pztilt = pz*Math.cos(beamTiltY) + pytilt*Math.sin(beamTiltY);
 
 			if(Math.abs(pztilt - c.getEnergy()) > maxdE)
 				return false;
@@ -454,8 +430,8 @@
 			else
 				h9_b.fill(pztilt);
 
-			double theta = Math.atan(Math.hypot(pxtilt, py)/pztilt);
-			double phi =Math.atan2(py, pxtilt);
+			double theta = Math.atan(Math.hypot(pxtilt, pytilt)/pztilt);
+			double phi =Math.atan2(pytilt, pxtilt);
 			boolean inRange = cb.inRange(theta, phi);
 			if(inRange)
 				h1.fill(theta, c.getEnergy());
@@ -470,6 +446,7 @@
 				h2c.fill(theta, phi);
 
 				h4.fill(px/pz, py/pz);
+				//h4y.fill(py/pz);
 
 				if(inRange){
 
@@ -492,7 +469,6 @@
 					
 					
 					h4a.fill(px/pz, py/pz);
-					candidates.add(new ParticleInfo(theta, c.getEnergy(), c.getCalorimeterHits().get(0).getTime(), true));
 				}
 
 
@@ -502,16 +478,5 @@
 		}
 		return false;
 	}
-	static class ParticleInfo{
-		double theta;
-		double E;
-		double t;
-		boolean isGood;
-		ParticleInfo(double theta, double E, double t, boolean isGood){
-			this.theta = theta;
-			this.E = E;
-			this.t = t;
-			this.isGood = isGood;
-		}
-	}
+	
 }

Modified: java/branches/jeremy-dev/users/src/main/java/org/hps/users/spaul/feecc/RemoveDuplicateParticles.java
 =============================================================================
--- java/branches/jeremy-dev/users/src/main/java/org/hps/users/spaul/feecc/RemoveDuplicateParticles.java	(original)
+++ java/branches/jeremy-dev/users/src/main/java/org/hps/users/spaul/feecc/RemoveDuplicateParticles.java	Thu Feb 11 17:15:20 2016
@@ -56,7 +56,7 @@
 			return false;
 		if(p.getTracks().size() == 1 && p.getTracks().size() == 0)
 			return true;
-		if(TrackType.isGBL(p.getTracks().get(0).getType()) && !TrackType.isGBL(p.getTracks().get(0).getType()))
+		if(TrackType.isGBL(p.getTracks().get(0).getType()) && !TrackType.isGBL(p2.getTracks().get(0).getType()))
 				return true;
 		
 		if(p.getTracks().get(0).getChi2() < p2.getTracks().get(0).getChi2()){

Modified: java/branches/jeremy-dev/users/src/main/java/org/hps/users/spaul/feecc/ShowCustomBinningXY.java
 =============================================================================
--- java/branches/jeremy-dev/users/src/main/java/org/hps/users/spaul/feecc/ShowCustomBinningXY.java	(original)
+++ java/branches/jeremy-dev/users/src/main/java/org/hps/users/spaul/feecc/ShowCustomBinningXY.java	Thu Feb 11 17:15:20 2016
@@ -24,28 +24,29 @@
 
 				double nK = 10;
 				for(int sign = -1; sign <=1; sign +=2){
-					for(int k = 0; k< nK; k++){
-						drawLineFromPolar(theta1, sign*(phi1+(phi2-phi1)*k/nK), theta1, sign*(phi1+(phi2-phi1)*(k+1)/nK),g);
-					}
-					for(int k = 0; k< nK; k++){
-						drawLineFromPolar(theta1 + (theta2-theta1)*k/nK, sign*phi2, theta1 + (theta2-theta1)*(k+1)/nK, sign*phi2,g);
-					}
-					for(int k = 0; k< nK; k++){
-						drawLineFromPolar(theta2, sign*(phi2+(phi1-phi2)*k/nK), theta2, sign*(phi2+(phi1-phi2)*(k+1)/nK),g);
-					}
-					for(int k = 0; k< nK; k++){
-						drawLineFromPolar(theta2 + (theta1-theta2)*k/nK, sign*phi1, theta2 + (theta1-theta2)*(k+1)/nK, sign*phi1,g);
+
+					Polygon p = new Polygon();
+					for(int k = 0; k< nK; k++){
+						drawLineFromPolar(theta1, sign*(phi1+(phi2-phi1)*k/nK), theta1, sign*(phi1+(phi2-phi1)*(k+1)/nK),g,p);
+					}
+					for(int k = 0; k< nK; k++){
+						drawLineFromPolar(theta1 + (theta2-theta1)*k/nK, sign*phi2, theta1 + (theta2-theta1)*(k+1)/nK, sign*phi2,g,p);
+					}
+					for(int k = 0; k< nK; k++){
+						drawLineFromPolar(theta2, sign*(phi2+(phi1-phi2)*k/nK), theta2, sign*(phi2+(phi1-phi2)*(k+1)/nK),g, p);
+					}
+					for(int k = 0; k< nK; k++){
+						drawLineFromPolar(theta2 + (theta1-theta2)*k/nK, sign*phi1, theta2 + (theta1-theta2)*(k+1)/nK, sign*phi1,g, p);
 					}
 					
-					closePolarFigure(g, i%2 == 0 ? altBin1 : altBin2, i%2 == 0 ? fillBin1 : fillBin2);
+					closePolarFigure(g, i%2 == 0 ? altBin1 : altBin2, i%2 == 0 ? fillBin1 : fillBin2, p);
 				}
 
 			}
 		}
 	}
-	Polygon p = null;
 	private void drawLineFromPolar(double theta1, double phi1, double theta2,
-			double phi2, Graphics g) {
+			double phi2, Graphics g, Polygon p) {
 		double[] xy1 = toXY(theta1, phi1);
 		double[] xy2 = toXY(theta2, phi2);
 
@@ -57,19 +58,24 @@
 				getY(xy2[1]));*/
 		p.addPoint(getX(xy2[0]), getY(xy2[1]));
 	}
-	private void closePolarFigure(Graphics g, Color outlineColor, Color fillColor){
+	private void closePolarFigure(Graphics g, Color outlineColor, Color fillColor, Polygon p){
 		g.setColor(fillColor);
 		g.fillPolygon(p);
 		g.setColor(outlineColor);
 		g.drawPolygon(p);
-		p = null;
-		
-	}
-	double tilt = .03057;
+		
+	}
+	double xtilt =  .0294;
+	double ytilt = -.00082;
 	double[] toXY(double theta, double phi){
-		double ux = Math.cos(phi)*Math.sin(theta)*Math.cos(tilt)+Math.cos(theta)*Math.sin(tilt);
+		double ux = Math.cos(phi)*Math.sin(theta)*Math.cos(xtilt)+Math.cos(theta)*Math.sin(xtilt);
 		double uy = Math.sin(phi)*Math.sin(theta);
-		double uz = Math.cos(theta)*Math.cos(tilt)-Math.cos(phi)*Math.sin(theta)*Math.sin(tilt);
+		double uz = Math.cos(theta)*Math.cos(xtilt)-Math.cos(phi)*Math.sin(theta)*Math.sin(xtilt);
+		
+		double temp = Math.cos(ytilt)*uy+Math.sin(ytilt)*uz;
+		uz = Math.cos(ytilt)*uz-Math.sin(ytilt)*uy;
+		uy = temp;
+		
 		double pxpz = ux/uz;
 		double pypz = uy/uz;
 		return new double[]{pxpz, pypz};
@@ -224,4 +230,19 @@
 			g.drawLine(getX(0), getY(i/100.), getX(0) + 5, getY(i/100.));
 		}
 	}
+	public void paint(Graphics g){
+		super.paint(g);
+		drawBeamspot(g);
+	}
+	
+	void drawBeamspot(Graphics g){
+		g.setColor(Color.red);
+		int x = getX(xtilt), y = getY(ytilt);
+		g.drawLine(x+10, y, x-10, y);
+		g.drawLine(x+10, y+1, x-10, y+1);
+		g.drawLine(x+10, y-1, x-10, y-1);
+		g.drawLine(x, y-10, x, y+10);
+		g.drawLine(x+1, y-10, x+1, y+10);
+		g.drawLine(x-1, y-10, x-1, y+10);
+	}
 }

Modified: java/branches/jeremy-dev/util/pom.xml
 =============================================================================
--- java/branches/jeremy-dev/util/pom.xml	(original)
+++ java/branches/jeremy-dev/util/pom.xml	Thu Feb 11 17:15:20 2016
@@ -7,7 +7,7 @@
         <groupId>org.hps</groupId>
         <artifactId>hps-parent</artifactId>
         <relativePath>../parent/pom.xml</relativePath>
-        <version>3.5-SNAPSHOT</version>
+        <version>3.6-SNAPSHOT</version>
     </parent>
     <scm>
         <url>http://java.freehep.org/svn/repos/hps/list/java/trunk/util/</url>

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