Print

Print


Author: [log in to unmask]
Date: Thu Jul  7 18:36:17 2016
New Revision: 4423

Log:
clean up truth tuples

Modified:
    java/trunk/analysis/src/main/java/org/hps/analysis/tuple/TupleDriver.java
    java/trunk/users/src/main/java/org/hps/users/meeg/SvtChargeIntegrator.java
    java/trunk/util/src/main/java/org/hps/util/CompareHistograms.java

Modified: java/trunk/analysis/src/main/java/org/hps/analysis/tuple/TupleDriver.java
 =============================================================================
--- java/trunk/analysis/src/main/java/org/hps/analysis/tuple/TupleDriver.java	(original)
+++ java/trunk/analysis/src/main/java/org/hps/analysis/tuple/TupleDriver.java	Thu Jul  7 18:36:17 2016
@@ -455,12 +455,71 @@
     }
 
     protected void addMCTridentVariables() {
-        String[] newVars = new String[]{"triStartX/D", "triStartY/D", "triStartZ/D",
-            "triEndX/D", "triEndY/D", "triEndZ/D",
-            "triPX/D", "triPY/D", "triPZ/D", "triP/D", "triM/D", "triE/D",
-            "pair1PX/D", "pair1PY/D", "pair1PZ/D", "pair1P/D", "pair1M/D", "pair1E/D",
-            "pair2PX/D", "pair2PY/D", "pair2PZ/D", "pair2P/D", "pair2M/D", "pair2E/D"};
+        addMCParticleVariables("tri");
+        addMCParticleVariables("triEle1");
+        addMCParticleVariables("triEle2");
+        addMCParticleVariables("triPos");
+        addMCPairVariables("triPair1");
+        addMCPairVariables("triPair2");
+    }
+
+    protected void addMCParticleVariables(String prefix) {
+        String[] newVars = new String[]{"StartX/D", "StartY/D", "StartZ/D",
+            "EndX/D", "EndY/D", "EndZ/D",
+            "PX/D", "PY/D", "PZ/D", "P/D", "M/D", "E/D"};
+
+        for (int i = 0; i < newVars.length; i++) {
+            newVars[i] = prefix + newVars[i];
+        }
         tupleVariables.addAll(Arrays.asList(newVars));
+    }
+
+    protected void addMCPairVariables(String prefix) {
+        String[] newVars = new String[]{"PX/D", "PY/D", "PZ/D", "P/D", "M/D", "E/D"};
+
+        for (int i = 0; i < newVars.length; i++) {
+            newVars[i] = prefix + newVars[i];
+        }
+        tupleVariables.addAll(Arrays.asList(newVars));
+    }
+
+    protected void fillMCParticleVariables(String prefix, MCParticle particle) {
+//        System.out.format("%d %x\n", particle.getGeneratorStatus(), particle.getSimulatorStatus().getValue());
+        Hep3Vector start = VecOp.mult(beamAxisRotation, particle.getOrigin());
+        Hep3Vector end;
+        try {
+            end = VecOp.mult(beamAxisRotation, particle.getEndPoint());
+        } catch (RuntimeException e) {
+            end = null;
+        }
+
+        Hep3Vector p = VecOp.mult(beamAxisRotation, particle.getMomentum());
+
+        tupleMap.put(prefix + "StartX/D", start.x());
+        tupleMap.put(prefix + "StartY/D", start.y());
+        tupleMap.put(prefix + "StartZ/D", start.z());
+        if (end != null) {
+            tupleMap.put(prefix + "EndX/D", end.x());
+            tupleMap.put(prefix + "EndY/D", end.y());
+            tupleMap.put(prefix + "EndZ/D", end.z());
+        }
+        tupleMap.put(prefix + "PX/D", p.x());
+        tupleMap.put(prefix + "PY/D", p.y());
+        tupleMap.put(prefix + "PZ/D", p.z());
+        tupleMap.put(prefix + "P/D", p.magnitude());
+        tupleMap.put(prefix + "M/D", particle.getMass());
+        tupleMap.put(prefix + "E/D", particle.getEnergy());
+    }
+
+    protected void fillMCPairVariables(String prefix, MCParticle ele, MCParticle pos) {
+        HepLorentzVector vtx = VecOp.add(ele.asFourVector(), pos.asFourVector());
+        Hep3Vector vtxP = VecOp.mult(beamAxisRotation, vtx.v3());
+        tupleMap.put(prefix + "PX/D", vtxP.x());
+        tupleMap.put(prefix + "PY/D", vtxP.y());
+        tupleMap.put(prefix + "PY/D", vtxP.z());
+        tupleMap.put(prefix + "P/D", vtxP.magnitude());
+        tupleMap.put(prefix + "M/D", vtx.magnitude());
+        tupleMap.put(prefix + "E/D", vtx.t());
     }
 
     protected void fillMCTridentVariables(EventHeader event) {
@@ -485,22 +544,7 @@
             return;
         }
 
-        Hep3Vector tridentStart = VecOp.mult(beamAxisRotation, trident.getOrigin());
-        Hep3Vector tridentEnd = VecOp.mult(beamAxisRotation, trident.getEndPoint());
-        Hep3Vector tridentP = VecOp.mult(beamAxisRotation, trident.getMomentum());
-
-        tupleMap.put("triStartX/D", tridentStart.x());
-        tupleMap.put("triStartY/D", tridentStart.y());
-        tupleMap.put("triStartZ/D", tridentStart.z());
-        tupleMap.put("triEndX/D", tridentEnd.x());
-        tupleMap.put("triEndY/D", tridentEnd.y());
-        tupleMap.put("triEndZ/D", tridentEnd.z());
-        tupleMap.put("triPX/D", tridentP.x());
-        tupleMap.put("triPY/D", tridentP.y());
-        tupleMap.put("triPZ/D", tridentP.z());
-        tupleMap.put("triP/D", tridentP.magnitude());
-        tupleMap.put("triM/D", trident.getMass());
-        tupleMap.put("triE/D", trident.getEnergy());
+        fillMCParticleVariables("tri", trident);
 
         for (MCParticle particle : tridentParticles) {
             switch (particle.getPDGID()) {
@@ -520,26 +564,20 @@
             }
         }
 
+        if (ele1 != null) {
+            fillMCParticleVariables("triEle1", ele1);
+        }
+        if (ele2 != null) {
+            fillMCParticleVariables("triEle2", ele2);
+        }
+        if (pos != null) {
+            fillMCParticleVariables("triPos", pos);
+        }
+
         if (pos != null && ele1 != null) {
-            {
-                HepLorentzVector vtx = VecOp.add(pos.asFourVector(), ele1.asFourVector());
-                Hep3Vector vtxP = VecOp.mult(beamAxisRotation, vtx.v3());
-                tupleMap.put("pair1PX/D", vtxP.x());
-                tupleMap.put("pair1PY/D", vtxP.y());
-                tupleMap.put("pair1PY/D", vtxP.z());
-                tupleMap.put("pair1P/D", vtxP.magnitude());
-                tupleMap.put("pair1M/D", vtx.magnitude());
-                tupleMap.put("pair1E/D", vtx.t());
-            }
+            fillMCPairVariables("triPair1", ele1, pos);
             if (ele2 != null) {
-                HepLorentzVector vtx = VecOp.add(pos.asFourVector(), ele2.asFourVector());
-                Hep3Vector vtxP = VecOp.mult(beamAxisRotation, vtx.v3());
-                tupleMap.put("pair2PX/D", vtxP.x());
-                tupleMap.put("pair2PY/D", vtxP.y());
-                tupleMap.put("pair2PY/D", vtxP.z());
-                tupleMap.put("pair2P/D", vtxP.magnitude());
-                tupleMap.put("pair2M/D", vtx.magnitude());
-                tupleMap.put("pair2E/D", vtx.t());
+                fillMCPairVariables("triPair2", ele2, pos);
             }
         }
 

Modified: java/trunk/users/src/main/java/org/hps/users/meeg/SvtChargeIntegrator.java
 =============================================================================
--- java/trunk/users/src/main/java/org/hps/users/meeg/SvtChargeIntegrator.java	(original)
+++ java/trunk/users/src/main/java/org/hps/users/meeg/SvtChargeIntegrator.java	Thu Jul  7 18:36:17 2016
@@ -113,9 +113,17 @@
             String line;
             System.err.println("myaData header: " + br.readLine()); //discard the first line
             if (perRun) {
-                System.out.println("run_num\tnominal_position\tnEvents\ttotalQ\ttotalQ_withbias\ttotalQ_atnom\ttotalQ_noerror\tgatedQ\tgatedQ_withbias\tgatedQ_atnom\tgatedQ_noerror\tgoodQ\tgoodQ_withbias\tgoodQ_atnom\tgoodQ_noerror");
+                if (cl.hasOption("e")) {
+                    System.out.println("run_num\tnominal_position\tnEvents\ttotalQ\ttotalQ_withbias\ttotalQ_atnom\ttotalQ_noerror\tgatedQ\tgatedQ_withbias\tgatedQ_atnom\tgatedQ_noerror\tgoodQ\tgoodQ_withbias\tgoodQ_atnom\tgoodQ_noerror");
+                } else {
+                    System.out.println("run_num\tnominal_position\tnEvents\ttotalQ\ttotalQ_withbias\ttotalQ_atnom\tgatedQ\tgatedQ_withbias\tgatedQ_atnom\tgoodQ\tgoodQ_withbias\tgoodQ_atnom");
+                }
             } else {
-                System.out.println("run_num\tfile_num\tnominal_position\tnEvents\ttotalQ\ttotalQ_withbias\ttotalQ_atnom\ttotalQ_noerror\tgatedQ\tgatedQ_withbias\tgatedQ_atnom\tgatedQ_noerror\tgoodQ\tgoodQ_withbias\tgoodQ_atnom\tgoodQ_noerror");
+                if (cl.hasOption("e")) {
+                    System.out.println("run_num\tfile_num\tnominal_position\tnEvents\ttotalQ\ttotalQ_withbias\ttotalQ_atnom\ttotalQ_noerror\tgatedQ\tgatedQ_withbias\tgatedQ_atnom\tgatedQ_noerror\tgoodQ\tgoodQ_withbias\tgoodQ_atnom\tgoodQ_noerror");
+                } else {
+                    System.out.println("run_num\tfile_num\tnominal_position\tnEvents\ttotalQ\ttotalQ_withbias\ttotalQ_atnom\tgatedQ\tgatedQ_withbias\tgatedQ_atnom\tgoodQ\tgoodQ_withbias\tgoodQ_atnom");
+                }
             }
 
             int currentRun = 0;
@@ -375,11 +383,19 @@
                 }
                 if (perRun) {
                     int nEvents = Integer.parseInt(record.get(9));
-                    System.out.format("%d\t%s\t%d\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\n", runNum, nominalPosition, nEvents, totalCharge, totalChargeWithBias, totalChargeWithBiasAtNominal, totalChargeWithBiasAtNominalNoError, totalGatedCharge, totalGatedChargeWithBias, totalGatedChargeWithBiasAtNominal, totalGatedChargeWithBiasAtNominalNoError, totalGoodCharge, totalGoodChargeWithBias, totalGoodChargeWithBiasAtNominal, totalGoodChargeWithBiasAtNominalNoError);
+                    if (cl.hasOption("e")) {
+                        System.out.format("%d\t%s\t%d\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\n", runNum, nominalPosition, nEvents, totalCharge, totalChargeWithBias, totalChargeWithBiasAtNominal, totalChargeWithBiasAtNominalNoError, totalGatedCharge, totalGatedChargeWithBias, totalGatedChargeWithBiasAtNominal, totalGatedChargeWithBiasAtNominalNoError, totalGoodCharge, totalGoodChargeWithBias, totalGoodChargeWithBiasAtNominal, totalGoodChargeWithBiasAtNominalNoError);
+                    } else {
+                        System.out.format("%d\t%s\t%d\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\n", runNum, nominalPosition, nEvents, totalCharge, totalChargeWithBias, totalChargeWithBiasAtNominal, totalGatedCharge, totalGatedChargeWithBias, totalGatedChargeWithBiasAtNominal, totalGoodCharge, totalGoodChargeWithBias, totalGoodChargeWithBiasAtNominal);
+                    }
                 } else {
                     int fileNum = Integer.parseInt(record.get(1));
                     int nEvents = Integer.parseInt(record.get(2));
-                    System.out.format("%d\t%d\t%s\t%d\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\n", runNum, fileNum, nominalPosition, nEvents, totalCharge, totalChargeWithBias, totalChargeWithBiasAtNominal, totalChargeWithBiasAtNominalNoError, totalGatedCharge, totalGatedChargeWithBias, totalGatedChargeWithBiasAtNominal, totalGatedChargeWithBiasAtNominalNoError, totalGoodCharge, totalGoodChargeWithBias, totalGoodChargeWithBiasAtNominal, totalGoodChargeWithBiasAtNominalNoError);
+                    if (cl.hasOption("e")) {
+                        System.out.format("%d\t%d\t%s\t%d\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\n", runNum, fileNum, nominalPosition, nEvents, totalCharge, totalChargeWithBias, totalChargeWithBiasAtNominal, totalChargeWithBiasAtNominalNoError, totalGatedCharge, totalGatedChargeWithBias, totalGatedChargeWithBiasAtNominal, totalGatedChargeWithBiasAtNominalNoError, totalGoodCharge, totalGoodChargeWithBias, totalGoodChargeWithBiasAtNominal, totalGoodChargeWithBiasAtNominalNoError);
+                    } else {
+                        System.out.format("%d\t%d\t%s\t%d\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\n", runNum, fileNum, nominalPosition, nEvents, totalCharge, totalChargeWithBias, totalChargeWithBiasAtNominal, totalGatedCharge, totalGatedChargeWithBias, totalGatedChargeWithBiasAtNominal, totalGoodCharge, totalGoodChargeWithBias, totalGoodChargeWithBiasAtNominal);
+                    }
                 }
             }
         } catch (Exception ex) {

Modified: java/trunk/util/src/main/java/org/hps/util/CompareHistograms.java
 =============================================================================
--- java/trunk/util/src/main/java/org/hps/util/CompareHistograms.java	(original)
+++ java/trunk/util/src/main/java/org/hps/util/CompareHistograms.java	Thu Jul  7 18:36:17 2016
@@ -7,7 +7,7 @@
 import org.apache.commons.math.MathException;
 import org.apache.commons.math.stat.descriptive.StatisticalSummaryValues;
 import org.apache.commons.math.stat.inference.TTestImpl;
-import org.apache.commons.math3.distribution.KolmogorovSmirnovDistribution;
+import org.apache.commons.math3.stat.inference.KolmogorovSmirnovTest;
 
 /**
  *
@@ -81,7 +81,7 @@
             }
         }
         int n = (int) Math.ceil(Math.sqrt((reference.allEntries() * test.allEntries()) / (reference.allEntries() + test.allEntries())));
-        KolmogorovSmirnovDistribution dist = new KolmogorovSmirnovDistribution(n);
-        return 1.0 - dist.cdf(integralMax);
+        KolmogorovSmirnovTest dist = new KolmogorovSmirnovTest();
+        return 1.0 - dist.cdf(integralMax, n);
     }
 }