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); } }