Author: [log in to unmask] Date: Tue Apr 7 19:10:15 2015 New Revision: 2664 Log: add basic DQM plots for pair/trident monitoring Added: java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/TridentMonitoring.java - copied, changed from r2663, java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/V0Monitoring.java Modified: java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/TrackingMonitoring.java java/trunk/steering-files/src/main/resources/org/hps/steering/production/DataQualityRecon.lcsim java/trunk/steering-files/src/main/resources/org/hps/steering/recon/HPS2014OfflineRecon.lcsim java/trunk/tracking/src/main/java/org/hps/recon/tracking/HitTimeTrackCheck.java Modified: java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/TrackingMonitoring.java ============================================================================= --- java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/TrackingMonitoring.java (original) +++ java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/TrackingMonitoring.java Tue Apr 7 19:10:15 2015 @@ -117,36 +117,42 @@ sumchisq += trk.getChi2(); int nStrips = 0; + int nSeedStrips = 0; double meanTime = 0; - double rmsTime = 0; - - int nSeedStrips = 0; - double rmsSeedTime = 0; + double meanSeedTime = 0; for (TrackerHit hit : trk.getTrackerHits()) { -// System.out.format("cross time: %f\n", hit.getTime()); Collection<TrackerHit> htsList = hittostrip.allFrom(hittorotated.from(hit)); for (TrackerHit hts : htsList) { nStrips++; meanTime += hts.getTime(); - rmsTime += hts.getTime() * hts.getTime(); -// rmsTime += Math.abs(hts.getTime()); - -// System.out.format("strip time: %f\n", hts.getTime()); int layer = ((HpsSiSensor) ((RawTrackerHit) hts.getRawHits().get(0)).getDetectorElement()).getLayerNumber(); if (layer <= 6) { nSeedStrips++; - rmsSeedTime += hts.getTime() * hts.getTime(); + meanSeedTime += hts.getTime(); } } } meanTime /= nStrips; -// rmsTime = Math.sqrt(rmsTime / nStrips); + meanSeedTime /= nSeedStrips; + + double rmsTime = 0; + double rmsSeedTime = 0; + for (TrackerHit hit : trk.getTrackerHits()) { + Collection<TrackerHit> htsList = hittostrip.allFrom(hittorotated.from(hit)); + for (TrackerHit hts : htsList) { + rmsTime += Math.pow(hts.getTime() - meanTime, 2); + int layer = ((HpsSiSensor) ((RawTrackerHit) hts.getRawHits().get(0)).getDetectorElement()).getLayerNumber(); + if (layer <= 6) { + rmsSeedTime += Math.pow(hts.getTime() - meanSeedTime, 2); + } + } + } rmsTime = Math.sqrt(rmsTime / nStrips); aida.histogram1D(plotDir + "Mean time of hits on track").fill(meanTime); aida.histogram1D(plotDir + "RMS time of hits on track").fill(rmsTime); aida.histogram2D(plotDir + "Track chi2 vs. RMS time of hits").fill(rmsTime, trk.getChi2()); - rmsSeedTime = Math.sqrt(rmsSeedTime/nSeedStrips); + rmsSeedTime = Math.sqrt(rmsSeedTime / nSeedStrips); aida.histogram1D(plotDir + "RMS time of hits on seed layers").fill(rmsSeedTime); // System.out.format("%d seed strips, RMS time %f\n", nSeedStrips, rmsSeedTime); Copied: java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/TridentMonitoring.java (from r2663, java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/V0Monitoring.java) ============================================================================= --- java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/V0Monitoring.java (original) +++ java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/TridentMonitoring.java Tue Apr 7 19:10:15 2015 @@ -5,29 +5,33 @@ import hep.aida.IFitResult; import hep.aida.IFitter; import hep.aida.IHistogram1D; -import hep.aida.IPlotter; -import hep.aida.IPlotterStyle; -import java.io.IOException; -import java.util.HashMap; +import hep.aida.IHistogram2D; +import java.util.ArrayList; +import java.util.Collection; import java.util.List; -import java.util.Map; import java.util.Map.Entry; -import java.util.logging.Level; -import java.util.logging.Logger; import org.lcsim.event.EventHeader; +import org.lcsim.event.LCRelation; import org.lcsim.event.ReconstructedParticle; +import org.lcsim.event.RelationalTable; +import org.lcsim.event.Track; +import org.lcsim.event.TrackerHit; import org.lcsim.event.Vertex; +import org.lcsim.event.base.BaseRelationalTable; import org.lcsim.geometry.Detector; /** - * DQM driver V0 particles (i.e. e+e- pars) plots - * things like number of vertex position an mass + * DQM driver V0 particles (i.e. e+e- pars) plots things like number of vertex + * position an mass * * @author mgraham on May 14, 2014 * */ -public class V0Monitoring extends DataQualityMonitor { - +public class TridentMonitoring extends DataQualityMonitor { + + private final String helicalTrackHitRelationsCollectionName = "HelicalTrackHitRelations"; + private final String rotatedHelicalTrackHitRelationsCollectionName = "RotatedHelicalTrackHitRelations"; + private double ebeam = 2.2; String finalStateParticlesColName = "FinalStateParticles"; String unconstrainedV0CandidatesColName = "UnconstrainedV0Candidates"; String beamConV0CandidatesColName = "BeamspotConstrainedV0Candidates"; @@ -44,54 +48,86 @@ double sumChi2 = 0.0; boolean debug = false; - private String plotDir = "V0Monitoring/"; + private String plotDir = "TridentMonitoring/"; + IHistogram2D trackTime2D; + IHistogram1D trackTimeDiff; + IHistogram2D vertexMassMomentum; + IHistogram2D vertexedTrackMomentum2D; + IHistogram2D vertexPxPy; + IHistogram1D goodVertexMass; @Override protected void detectorChanged(Detector detector) { - System.out.println("V0Monitoring::detectorChanged Setting up the plotter"); + System.out.println("TridentMonitoring::detectorChanged Setting up the plotter"); aida.tree().cd("/"); /* V0 Quantities */ /* Mass, vertex, chi^2 of fit */ /* beamspot constrained */ - IHistogram1D nV0 = aida.histogram1D(plotDir + "Number of V0 per event", 10, 0, 10); - IHistogram1D bsconMass = aida.histogram1D(plotDir + "BS Constrained Mass (GeV)", 100, 0, 0.200); - IHistogram1D bsconVx = aida.histogram1D(plotDir + "BS Constrained Vx (mm)", 50, -1, 1); - IHistogram1D bsconVy = aida.histogram1D(plotDir + "BS Constrained Vy (mm)", 50, -1, 1); - IHistogram1D bsconVz = aida.histogram1D(plotDir + "BS Constrained Vz (mm)", 50, -10, 10); - IHistogram1D bsconChi2 = aida.histogram1D(plotDir + "BS Constrained Chi2", 25, 0, 25); - /* target constrained */ - IHistogram1D tarconMass = aida.histogram1D(plotDir + "Target Constrained Mass (GeV)", 100, 0, 0.200); - IHistogram1D tarconVx = aida.histogram1D(plotDir + "Target Constrained Vx (mm)", 50, -1, 1); - IHistogram1D tarconVy = aida.histogram1D(plotDir + "Target Constrained Vy (mm)", 50, -1, 1); - IHistogram1D tarconVz = aida.histogram1D(plotDir + "Target Constrained Vz (mm)", 50, -10, 10); - IHistogram1D tarconChi2 = aida.histogram1D(plotDir + "Target Constrained Chi2", 25, 0, 25); +// IHistogram1D nV0 = aida.histogram1D(plotDir + "Number of V0 per event", 10, 0, 10); +// IHistogram1D bsconMass = aida.histogram1D(plotDir + "BS Constrained Mass (GeV)", 100, 0, 0.200); +// IHistogram1D bsconVx = aida.histogram1D(plotDir + "BS Constrained Vx (mm)", 50, -1, 1); +// IHistogram1D bsconVy = aida.histogram1D(plotDir + "BS Constrained Vy (mm)", 50, -1, 1); +// IHistogram1D bsconVz = aida.histogram1D(plotDir + "BS Constrained Vz (mm)", 50, -10, 10); +// IHistogram1D bsconChi2 = aida.histogram1D(plotDir + "BS Constrained Chi2", 25, 0, 25); +// /* target constrained */ +// IHistogram1D tarconMass = aida.histogram1D(plotDir + "Target Constrained Mass (GeV)", 100, 0, 0.200); +// IHistogram1D tarconVx = aida.histogram1D(plotDir + "Target Constrained Vx (mm)", 50, -1, 1); +// IHistogram1D tarconVy = aida.histogram1D(plotDir + "Target Constrained Vy (mm)", 50, -1, 1); +// IHistogram1D tarconVz = aida.histogram1D(plotDir + "Target Constrained Vz (mm)", 50, -10, 10); +// IHistogram1D tarconChi2 = aida.histogram1D(plotDir + "Target Constrained Chi2", 25, 0, 25); + trackTimeDiff = aida.histogram1D(plotDir + "Track time difference", 100, -25, 25); + trackTime2D = aida.histogram2D(plotDir + "Track time vs. track time", 100, -50, 100, 100, -50, 100); + vertexMassMomentum = aida.histogram2D(plotDir + "Vertex mass vs. vertex momentum", 100, 0, 4.0, 100, 0, 1.0); + vertexedTrackMomentum2D = aida.histogram2D(plotDir + "Positron vs. electron momentum", 100, 0, 2.5, 100, 0, 2.5); + vertexPxPy = aida.histogram2D(plotDir + "Vertex Py vs. Px", 100, -0.1, 0.2, 100, -0.1, 0.1); + goodVertexMass = aida.histogram1D(plotDir + "Good vertex mass", 100, 0, 0.5); } @Override public void process(EventHeader event) { /* make sure everything is there */ - if (!event.hasCollection(ReconstructedParticle.class, finalStateParticlesColName)) - return; - if (!event.hasCollection(ReconstructedParticle.class, unconstrainedV0CandidatesColName)) - return; - if (!event.hasCollection(ReconstructedParticle.class, beamConV0CandidatesColName)) - return; - if (!event.hasCollection(ReconstructedParticle.class, targetV0ConCandidatesColName)) - return; + if (!event.hasCollection(ReconstructedParticle.class, finalStateParticlesColName)) { + return; + } + if (!event.hasCollection(ReconstructedParticle.class, unconstrainedV0CandidatesColName)) { + return; + } + if (!event.hasCollection(ReconstructedParticle.class, beamConV0CandidatesColName)) { + return; + } + if (!event.hasCollection(ReconstructedParticle.class, targetV0ConCandidatesColName)) { + return; + } nRecoEvents++; + RelationalTable hittostrip = new BaseRelationalTable(RelationalTable.Mode.MANY_TO_MANY, RelationalTable.Weighting.UNWEIGHTED); + List<LCRelation> hitrelations = event.get(LCRelation.class, helicalTrackHitRelationsCollectionName); + for (LCRelation relation : hitrelations) { + if (relation != null && relation.getFrom() != null && relation.getTo() != null) { + hittostrip.add(relation.getFrom(), relation.getTo()); + } + } + + RelationalTable hittorotated = new BaseRelationalTable(RelationalTable.Mode.ONE_TO_ONE, RelationalTable.Weighting.UNWEIGHTED); + List<LCRelation> rotaterelations = event.get(LCRelation.class, rotatedHelicalTrackHitRelationsCollectionName); + for (LCRelation relation : rotaterelations) { + if (relation != null && relation.getFrom() != null && relation.getTo() != null) { + hittorotated.add(relation.getFrom(), relation.getTo()); + } + } + List<ReconstructedParticle> beamConstrainedV0List = event.get(ReconstructedParticle.class, beamConV0CandidatesColName); - aida.histogram1D(plotDir + "Number of V0 per event").fill(beamConstrainedV0List.size()); +// aida.histogram1D(plotDir + "Number of V0 per event").fill(beamConstrainedV0List.size()); for (ReconstructedParticle bsV0 : beamConstrainedV0List) { nTotV0++; Vertex bsVert = bsV0.getStartVertex(); - aida.histogram1D(plotDir + "BS Constrained Vx (mm)").fill(bsVert.getPosition().x()); - aida.histogram1D(plotDir + "BS Constrained Vy (mm)").fill(bsVert.getPosition().y()); - aida.histogram1D(plotDir + "BS Constrained Vz (mm)").fill(bsVert.getPosition().z()); - aida.histogram1D(plotDir + "BS Constrained Mass (GeV)").fill(bsV0.getMass()); - aida.histogram1D(plotDir + "BS Constrained Chi2").fill(bsVert.getChi2()); +// aida.histogram1D(plotDir + "BS Constrained Vx (mm)").fill(bsVert.getPosition().x()); +// aida.histogram1D(plotDir + "BS Constrained Vy (mm)").fill(bsVert.getPosition().y()); +// aida.histogram1D(plotDir + "BS Constrained Vz (mm)").fill(bsVert.getPosition().z()); +// aida.histogram1D(plotDir + "BS Constrained Mass (GeV)").fill(bsV0.getMass()); +// aida.histogram1D(plotDir + "BS Constrained Chi2").fill(bsVert.getChi2()); sumMass += bsV0.getMass(); sumVx += bsVert.getPosition().x(); sumVy += bsVert.getPosition().y(); @@ -102,19 +138,63 @@ List<ReconstructedParticle> targetConstrainedV0List = event.get(ReconstructedParticle.class, targetV0ConCandidatesColName); for (ReconstructedParticle tarV0 : targetConstrainedV0List) { Vertex tarVert = tarV0.getStartVertex(); - aida.histogram1D(plotDir + "Target Constrained Vx (mm)").fill(tarVert.getPosition().x()); - aida.histogram1D(plotDir + "Target Constrained Vy (mm)").fill(tarVert.getPosition().y()); - aida.histogram1D(plotDir + "Target Constrained Vz (mm)").fill(tarVert.getPosition().z()); - aida.histogram1D(plotDir + "Target Constrained Mass (GeV)").fill(tarV0.getMass()); - aida.histogram1D(plotDir + "Target Constrained Chi2").fill(tarVert.getChi2()); +// aida.histogram1D(plotDir + "Target Constrained Vx (mm)").fill(tarVert.getPosition().x()); +// aida.histogram1D(plotDir + "Target Constrained Vy (mm)").fill(tarVert.getPosition().y()); +// aida.histogram1D(plotDir + "Target Constrained Vz (mm)").fill(tarVert.getPosition().z()); +// aida.histogram1D(plotDir + "Target Constrained Mass (GeV)").fill(tarV0.getMass()); +// aida.histogram1D(plotDir + "Target Constrained Chi2").fill(tarVert.getChi2()); + List<Track> tracks = new ArrayList<Track>(); + ReconstructedParticle electron = null, positron = null; + for (ReconstructedParticle particle : tarV0.getParticles()) { + tracks.addAll(particle.getTracks()); + if (particle.getCharge() > 0) { + positron = particle; + } else if (particle.getCharge() < 0) { + electron = particle; + } else { + throw new RuntimeException("expected only electron and positron in vertex, got something with charge 0"); + } + } + if (tracks.size() != 2) { + throw new RuntimeException("expected two tracks in vertex, got " + tracks.size()); + } + List<Double> trackTimes = new ArrayList<Double>(); + for (Track track : tracks) { + int nStrips = 0; + double meanTime = 0; + for (TrackerHit hit : track.getTrackerHits()) { + Collection<TrackerHit> htsList = hittostrip.allFrom(hittorotated.from(hit)); + for (TrackerHit hts : htsList) { + nStrips++; + meanTime += hts.getTime(); + } + } + meanTime /= nStrips; + trackTimes.add(meanTime); + } + trackTime2D.fill(trackTimes.get(0), trackTimes.get(1)); + trackTimeDiff.fill(trackTimes.get(0) - trackTimes.get(1)); + boolean trackTimeDiffCut = Math.abs(trackTimes.get(0) - trackTimes.get(1)) < 5.0; + boolean pCut = electron.getMomentum().magnitude() > 0.4 && positron.getMomentum().magnitude() > 0.4; + boolean pTotCut = tarV0.getMomentum().magnitude() > 0.8 * 2.2 && tarV0.getMomentum().magnitude() < 2.2; + if (trackTimeDiffCut) { + vertexMassMomentum.fill(tarV0.getMomentum().magnitude(), tarV0.getMass()); + vertexedTrackMomentum2D.fill(electron.getMomentum().magnitude(), positron.getMomentum().magnitude()); + if (pCut && pTotCut) { + vertexPxPy.fill(tarV0.getMomentum().x(), tarV0.getMomentum().y()); + goodVertexMass.fill(tarV0.getMass()); + } + } +// System.out.println(tarV0.getTracks()) } } @Override public void printDQMData() { - System.out.println("V0Monitoring::printDQMData"); - for (Entry<String, Double> entry : monitoredQuantityMap.entrySet()) + System.out.println("TridentMonitoring::printDQMData"); + for (Entry<String, Double> entry : monitoredQuantityMap.entrySet()) { System.out.println(entry.getKey() + " = " + entry.getValue()); + } System.out.println("*******************************"); } @@ -127,63 +207,66 @@ IAnalysisFactory analysisFactory = IAnalysisFactory.create(); IFitFactory fitFactory = analysisFactory.createFitFactory(); IFitter fitter = fitFactory.createFitter("chi2"); - IHistogram1D bsconVx = aida.histogram1D(plotDir + "BS Constrained Vx (mm)"); - IHistogram1D bsconVy = aida.histogram1D(plotDir + "BS Constrained Vy (mm)"); - IHistogram1D bsconVz = aida.histogram1D(plotDir + "BS Constrained Vz (mm)"); - double[] init = {50.0, 0.0, 0.2, 1.0, 0.0}; - IFitResult resVx = fitVertexPosition(bsconVx, fitter, init, "range=\"(-0.5,0.5)\""); - double[] init2 = {50.0, 0.0, 0.04, 1.0, 0.0}; - IFitResult resVy = fitVertexPosition(bsconVy, fitter, init2, "range=\"(-0.2,0.2)\""); - double[] init3 = {50.0, 0.0, 3.0, 1.0, 0.0}; - IFitResult resVz = fitVertexPosition(bsconVz, fitter, init3, "range=\"(-6,6)\""); - - double[] parsVx = resVx.fittedParameters(); - double[] parsVy = resVy.fittedParameters(); - double[] parsVz = resVz.fittedParameters(); - - for (int i = 0; i < 5; i++) - System.out.println("Vertex Fit Parameters: " + resVx.fittedParameterNames()[i] + " = " + parsVx[i] + "; " + parsVy[i] + "; " + parsVz[i]); - - IPlotter plotter = analysisFactory.createPlotterFactory().create("Vertex Position"); - plotter.createRegions(1, 3); - IPlotterStyle pstyle = plotter.style(); - pstyle.legendBoxStyle().setVisible(false); - pstyle.dataStyle().fillStyle().setColor("green"); - pstyle.dataStyle().lineStyle().setColor("black"); - plotter.region(0).plot(bsconVx); - plotter.region(0).plot(resVx.fittedFunction()); - plotter.region(1).plot(bsconVy); - plotter.region(1).plot(resVy.fittedFunction()); - plotter.region(2).plot(bsconVz); - plotter.region(2).plot(resVz.fittedFunction()); - if(outputPlots){ - try { - plotter.writeToFile(outputPlotDir +"vertex.png"); - } catch (IOException ex) { - Logger.getLogger(V0Monitoring.class.getName()).log(Level.SEVERE, null, ex); - } - } - - monitoredQuantityMap.put(fpQuantNames[0], (double) nTotV0 / nRecoEvents); - monitoredQuantityMap.put(fpQuantNames[1], sumMass / nTotV0); -// monitoredQuantityMap.put(fpQuantNames[2], sumVx / nTotV0); -// monitoredQuantityMap.put(fpQuantNames[3], sumVy / nTotV0); -// monitoredQuantityMap.put(fpQuantNames[4], sumVz / nTotV0); - monitoredQuantityMap.put(fpQuantNames[2], parsVx[1]); - monitoredQuantityMap.put(fpQuantNames[3], parsVy[1]); - monitoredQuantityMap.put(fpQuantNames[4], parsVz[1]); - monitoredQuantityMap.put(fpQuantNames[5], parsVx[2]); - monitoredQuantityMap.put(fpQuantNames[6], parsVy[2]); - monitoredQuantityMap.put(fpQuantNames[7], parsVz[2]); - - monitoredQuantityMap.put(fpQuantNames[8], sumChi2 / nTotV0); +// IHistogram1D bsconVx = aida.histogram1D(plotDir + "BS Constrained Vx (mm)"); +// IHistogram1D bsconVy = aida.histogram1D(plotDir + "BS Constrained Vy (mm)"); +// IHistogram1D bsconVz = aida.histogram1D(plotDir + "BS Constrained Vz (mm)"); +// double[] init = {50.0, 0.0, 0.2, 1.0, 0.0}; +// IFitResult resVx = fitVertexPosition(bsconVx, fitter, init, "range=\"(-0.5,0.5)\""); +// double[] init2 = {50.0, 0.0, 0.04, 1.0, 0.0}; +// IFitResult resVy = fitVertexPosition(bsconVy, fitter, init2, "range=\"(-0.2,0.2)\""); +// double[] init3 = {50.0, 0.0, 3.0, 1.0, 0.0}; +// IFitResult resVz = fitVertexPosition(bsconVz, fitter, init3, "range=\"(-6,6)\""); +// +// double[] parsVx = resVx.fittedParameters(); +// double[] parsVy = resVy.fittedParameters(); +// double[] parsVz = resVz.fittedParameters(); +// +// for (int i = 0; i < 5; i++) { +// System.out.println("Vertex Fit Parameters: " + resVx.fittedParameterNames()[i] + " = " + parsVx[i] + "; " + parsVy[i] + "; " + parsVz[i]); +// } +// +// IPlotter plotter = analysisFactory.createPlotterFactory().create("Vertex Position"); +// plotter.createRegions(1, 3); +// IPlotterStyle pstyle = plotter.style(); +// pstyle.legendBoxStyle().setVisible(false); +// pstyle.dataStyle().fillStyle().setColor("green"); +// pstyle.dataStyle().lineStyle().setColor("black"); +// plotter.region(0).plot(bsconVx); +// plotter.region(0).plot(resVx.fittedFunction()); +// plotter.region(1).plot(bsconVy); +// plotter.region(1).plot(resVy.fittedFunction()); +// plotter.region(2).plot(bsconVz); +// plotter.region(2).plot(resVz.fittedFunction()); +// if (outputPlots) { +// try { +// plotter.writeToFile(outputPlotDir + "vertex.png"); +// } catch (IOException ex) { +// Logger.getLogger(TridentMonitoring.class.getName()).log(Level.SEVERE, null, ex); +// } +// } +// +// monitoredQuantityMap.put(fpQuantNames[0], (double) nTotV0 / nRecoEvents); +// monitoredQuantityMap.put(fpQuantNames[1], sumMass / nTotV0); +//// monitoredQuantityMap.put(fpQuantNames[2], sumVx / nTotV0); +//// monitoredQuantityMap.put(fpQuantNames[3], sumVy / nTotV0); +//// monitoredQuantityMap.put(fpQuantNames[4], sumVz / nTotV0); +// monitoredQuantityMap.put(fpQuantNames[2], parsVx[1]); +// monitoredQuantityMap.put(fpQuantNames[3], parsVy[1]); +// monitoredQuantityMap.put(fpQuantNames[4], parsVz[1]); +// monitoredQuantityMap.put(fpQuantNames[5], parsVx[2]); +// monitoredQuantityMap.put(fpQuantNames[6], parsVy[2]); +// monitoredQuantityMap.put(fpQuantNames[7], parsVz[2]); +// +// monitoredQuantityMap.put(fpQuantNames[8], sumChi2 / nTotV0); } @Override public void printDQMStrings() { for (int i = 0; i < 9; i++)//TODO: do this in a smarter way...loop over the map + { System.out.println("ALTER TABLE dqm ADD " + fpQuantNames[i] + " double;"); + } } IFitResult fitVertexPosition(IHistogram1D h1d, IFitter fitter, double[] init, String range) { Modified: java/trunk/steering-files/src/main/resources/org/hps/steering/production/DataQualityRecon.lcsim ============================================================================= --- java/trunk/steering-files/src/main/resources/org/hps/steering/production/DataQualityRecon.lcsim (original) +++ java/trunk/steering-files/src/main/resources/org/hps/steering/production/DataQualityRecon.lcsim Tue Apr 7 19:10:15 2015 @@ -15,6 +15,7 @@ <driver name="TrackMCEfficiency"/> <driver name="FinalStateMonitoring"/> <driver name="V0Monitoring"/> + <driver name="TridentMonitoring"/> <driver name="AidaSaveDriver"/> <driver name="CleanupDriver"/> </execute> @@ -48,6 +49,9 @@ <driver name="V0Monitoring" type="org.hps.analysis.dataquality.V0Monitoring"> <overwriteDB>false</overwriteDB> </driver> + <driver name="TridentMonitoring" type="org.hps.analysis.dataquality.TridentMonitoring"> + <overwriteDB>false</overwriteDB> + </driver> <driver name="CleanupDriver" type="org.lcsim.recon.tracking.digitization.sisim.config.ReadoutCleanupDriver"/> </drivers> Modified: java/trunk/steering-files/src/main/resources/org/hps/steering/recon/HPS2014OfflineRecon.lcsim ============================================================================= --- java/trunk/steering-files/src/main/resources/org/hps/steering/recon/HPS2014OfflineRecon.lcsim (original) +++ java/trunk/steering-files/src/main/resources/org/hps/steering/recon/HPS2014OfflineRecon.lcsim Tue Apr 7 19:10:15 2015 @@ -15,7 +15,7 @@ <driver name="EcalClusterer" /> <driver name="ReconParticle" /> <driver name="TrackDataDriver" /> - <driver name="GBLDriver"/> + <!--<driver name="GBLDriver"/>--> <driver name="LCIOWriter"/> <driver name="CleanupDriver"/> </execute> @@ -26,7 +26,7 @@ <driver name="RawTrackerHitSensorSetup" type="org.lcsim.recon.tracking.digitization.sisim.config.RawTrackerHitSensorSetup"/> <driver name="RawTrackerHitFitterDriver" type="org.hps.recon.tracking.RawTrackerHitFitterDriver"> <fitAlgorithm>Pileup</fitAlgorithm> - <useTimestamps>true</useTimestamps> + <useTimestamps>false</useTimestamps> <correctT0Shift>false</correctT0Shift> <useTruthTime>false</useTruthTime> <subtractTOF>true</subtractTOF> Modified: java/trunk/tracking/src/main/java/org/hps/recon/tracking/HitTimeTrackCheck.java ============================================================================= --- java/trunk/tracking/src/main/java/org/hps/recon/tracking/HitTimeTrackCheck.java (original) +++ java/trunk/tracking/src/main/java/org/hps/recon/tracking/HitTimeTrackCheck.java Tue Apr 7 19:10:15 2015 @@ -22,6 +22,7 @@ private int seedsPassed = 0; private int tracksChecked = 0; private int tracksPassed = 0; + private boolean debug = false; public HitTimeTrackCheck(double rmsTimeCut) { this.rmsTimeCut = rmsTimeCut; @@ -56,7 +57,7 @@ if (passCheck) { seedsPassed++; } - if (seedsChecked % 10000 == 0) { + if (debug && seedsChecked % 10000 == 0) { System.out.format("Checked %d seeds, %d passed (%d failed)\n", seedsChecked, seedsPassed, seedsChecked - seedsPassed); } return passCheck; @@ -91,7 +92,7 @@ if (passCheck) { tracksPassed++; } - if (tracksChecked % 100 == 0) { + if (debug && tracksChecked % 100 == 0) { System.out.format("Checked %d tracks, %d passed (%d failed)\n", tracksChecked, tracksPassed, tracksChecked - tracksPassed); } return passCheck;