Author: [log in to unmask] Date: Tue Mar 1 11:15:40 2016 New Revision: 4272 Log: Merge trunk changes into dev branch. Added: java/branches/jeremy-dev/conditions/src/main/java/org/hps/conditions/beam/ - copied from r4271, java/trunk/conditions/src/main/java/org/hps/conditions/beam/ java/branches/jeremy-dev/conditions/src/test/java/org/hps/conditions/beam/ - copied from r4271, java/trunk/conditions/src/test/java/org/hps/conditions/beam/ java/branches/jeremy-dev/steering-files/src/main/resources/org/hps/steering/users/holly/EngineeringRun2015EcalRecon_noTwalk.lcsim - copied unchanged from r4271, java/trunk/steering-files/src/main/resources/org/hps/steering/users/holly/EngineeringRun2015EcalRecon_noTwalk.lcsim Removed: java/branches/jeremy-dev/datacat-client/ 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/DataQualityMonitor.java java/branches/jeremy-dev/analysis/src/main/java/org/hps/analysis/dataquality/EcalMonitoring.java java/branches/jeremy-dev/analysis/src/main/java/org/hps/analysis/dataquality/FinalStateMonitoring.java java/branches/jeremy-dev/analysis/src/main/java/org/hps/analysis/dataquality/TridentMonitoring.java 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/plots/AddPlots.java java/branches/jeremy-dev/conditions/ (props changed) java/branches/jeremy-dev/conditions/pom.xml java/branches/jeremy-dev/conditions/src/main/java/org/hps/conditions/api/ConditionsRecord.java java/branches/jeremy-dev/conditions/src/main/java/org/hps/conditions/cli/AbstractCommand.java java/branches/jeremy-dev/conditions/src/main/java/org/hps/conditions/cli/CommandLineTool.java java/branches/jeremy-dev/conditions/src/main/java/org/hps/conditions/database/ConnectionParameters.java java/branches/jeremy-dev/conditions/src/main/java/org/hps/conditions/database/DatabaseConditionsManager.java java/branches/jeremy-dev/conditions/src/main/java/org/hps/conditions/svt/MotorPositionLoader.java java/branches/jeremy-dev/conditions/src/main/java/org/hps/conditions/svt/SvtBiasConditionsLoader.java java/branches/jeremy-dev/conditions/src/main/java/org/hps/conditions/svt/SvtConditionsLoader.java java/branches/jeremy-dev/crawler/pom.xml java/branches/jeremy-dev/crawler/src/main/java/org/hps/crawler/DatacatAddFile.java java/branches/jeremy-dev/crawler/src/main/java/org/hps/crawler/DatacatCrawler.java java/branches/jeremy-dev/crawler/src/main/java/org/hps/crawler/MetadataWriter.java 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/EcalRawConverterDriver.java java/branches/jeremy-dev/ecal-recon/src/main/java/org/hps/recon/ecal/EcalRunningPedestalDriver.java java/branches/jeremy-dev/evio/pom.xml java/branches/jeremy-dev/evio/src/main/java/org/hps/evio/BasicEvioFileReader.java java/branches/jeremy-dev/evio/src/main/java/org/hps/evio/EvioToLcio.java java/branches/jeremy-dev/evio/src/main/java/org/hps/evio/LCSimEngRunEventBuilder.java java/branches/jeremy-dev/integration-tests/ (props changed) java/branches/jeremy-dev/job/pom.xml java/branches/jeremy-dev/job/src/main/java/org/hps/job/DatabaseConditionsManagerSetup.java java/branches/jeremy-dev/logging/pom.xml 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/Main.java java/branches/jeremy-dev/monitoring-drivers/pom.xml java/branches/jeremy-dev/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SvtHitPlots.java java/branches/jeremy-dev/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/trackrecon/PlotAndFitUtilities.java java/branches/jeremy-dev/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/trackrecon/V0ReconPlots.java java/branches/jeremy-dev/monitoring-util/pom.xml 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/record-util/pom.xml java/branches/jeremy-dev/record-util/src/main/java/org/hps/record/evio/EvioEventSkimmer.java java/branches/jeremy-dev/record-util/src/main/java/org/hps/record/evio/EvioFileProducer.java java/branches/jeremy-dev/run-database/pom.xml java/branches/jeremy-dev/run-database/src/main/java/org/hps/run/database/RunDatabaseCommandLine.java java/branches/jeremy-dev/steering-files/pom.xml 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/tracking/src/main/java/org/hps/recon/tracking/HelicalTrackHitDriver.java java/branches/jeremy-dev/tracking/src/main/java/org/hps/svt/alignment/BuildCompact.java java/branches/jeremy-dev/tracking/src/main/java/org/hps/svt/alignment/BuildMillepedeCompact.java java/branches/jeremy-dev/tracking/src/main/java/org/hps/svt/alignment/MillepedeCompactDump.java java/branches/jeremy-dev/users/pom.xml java/branches/jeremy-dev/users/src/main/java/org/hps/users/jeremym/EvioFileScanner.java java/branches/jeremy-dev/users/src/main/java/org/hps/users/meeg/FilterMCBunches.java java/branches/jeremy-dev/users/src/main/java/org/hps/users/meeg/MergeMCBunches.java 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/omoreno/LheToStdhep.java java/branches/jeremy-dev/users/src/main/java/org/hps/users/phansson/testrun/dataMCPlots.java java/branches/jeremy-dev/users/src/main/java/org/hps/users/phansson/testrun/ecalPlots.java java/branches/jeremy-dev/users/src/main/java/org/hps/users/phansson/testrun/trigRate.java java/branches/jeremy-dev/users/src/main/java/org/hps/users/phansson/tools/DumpAIDATextFiles.java java/branches/jeremy-dev/users/src/main/java/org/hps/users/phansson/tools/mergeSimpleAIDA.java java/branches/jeremy-dev/util/pom.xml java/branches/jeremy-dev/util/src/main/java/org/hps/util/CalculateAcceptanceFromMadGraph.java java/branches/jeremy-dev/util/src/main/java/org/hps/util/ConvertToStdhep.java java/branches/jeremy-dev/util/src/main/java/org/hps/util/DumpLHEEventsToASCII.java Modified: java/branches/jeremy-dev/analysis/pom.xml ============================================================================= --- java/branches/jeremy-dev/analysis/pom.xml (original) +++ java/branches/jeremy-dev/analysis/pom.xml Tue Mar 1 11:15:40 2016 @@ -8,7 +8,7 @@ <groupId>org.hps</groupId> <artifactId>hps-parent</artifactId> <relativePath>../parent/pom.xml</relativePath> - <version>3.6-SNAPSHOT</version> + <version>3.7-SNAPSHOT</version> </parent> <scm> <url>http://java.freehep.org/svn/repos/hps/list/java/trunk/analysis/</url> Modified: java/branches/jeremy-dev/analysis/src/main/java/org/hps/analysis/dataquality/DataQualityMonitor.java ============================================================================= --- java/branches/jeremy-dev/analysis/src/main/java/org/hps/analysis/dataquality/DataQualityMonitor.java (original) +++ java/branches/jeremy-dev/analysis/src/main/java/org/hps/analysis/dataquality/DataQualityMonitor.java Tue Mar 1 11:15:40 2016 @@ -91,7 +91,7 @@ printDQMData(); if (printDQMStrings) printDQMStrings(); - LOGGER.info("Should I write to the database? " + connectToDB); + LOGGER.info("Write to database = " + connectToDB); if (connectToDB) { LOGGER.info("Connecting To Database...getting DQMDBManager"); manager = DQMDatabaseManager.getInstance(); Modified: java/branches/jeremy-dev/analysis/src/main/java/org/hps/analysis/dataquality/EcalMonitoring.java ============================================================================= --- java/branches/jeremy-dev/analysis/src/main/java/org/hps/analysis/dataquality/EcalMonitoring.java (original) +++ java/branches/jeremy-dev/analysis/src/main/java/org/hps/analysis/dataquality/EcalMonitoring.java Tue Mar 1 11:15:40 2016 @@ -8,6 +8,7 @@ import java.util.logging.Logger; import org.apache.commons.math.stat.StatUtils; +import org.hps.conditions.beam.BeamEnergy.BeamEnergyCollection; import org.hps.recon.ecal.cluster.ClusterUtilities; import org.lcsim.event.CalorimeterHit; import org.lcsim.event.Cluster; @@ -73,13 +74,10 @@ boolean fillHitPlots = true; String[] ecalQuantNames = {"avg_N_hits", "avg_Hit_Energy", "avg_N_clusters", "avg_N_hitsPerCluster", "avg_Cluster_Energy", "avg_ClusterTime"}; - double beamEnergy = 1.1; double maxFactor = 1.5; - public void setBeamEnergy(double e){ - beamEnergy = e; - } + private final String plotHitsDir = "EcalHits/"; private final String plotClustersDir = "EcalClusters/"; @@ -104,6 +102,10 @@ @Override protected void detectorChanged(Detector detector) { + BeamEnergyCollection beamEnergyCollection = + this.getConditionsManager().getCachedConditions(BeamEnergyCollection.class, "beam_energies").getCachedData(); + double beamEnergy = beamEnergyCollection.get(0).getBeamEnergy(); + //this.getConditionsManager().getCachedConditions(org.hps.conditions.EcalChannelCollection.class, "ecal_channels"). LOGGER.info("EcalMonitoring::detectorChanged Setting up the plotter"); aida.tree().cd("/"); if (fillHitPlots) { @@ -273,5 +275,5 @@ public void printDQMStrings() { } - + } Modified: java/branches/jeremy-dev/analysis/src/main/java/org/hps/analysis/dataquality/FinalStateMonitoring.java ============================================================================= --- java/branches/jeremy-dev/analysis/src/main/java/org/hps/analysis/dataquality/FinalStateMonitoring.java (original) +++ java/branches/jeremy-dev/analysis/src/main/java/org/hps/analysis/dataquality/FinalStateMonitoring.java Tue Mar 1 11:15:40 2016 @@ -17,6 +17,7 @@ import java.util.logging.Level; import java.util.logging.Logger; +import org.hps.conditions.beam.BeamEnergy.BeamEnergyCollection; import org.hps.recon.ecal.cluster.ClusterUtilities; import org.hps.recon.tracking.TrackType; import org.hps.recon.tracking.TrackUtils; @@ -60,7 +61,7 @@ double sumdelY = 0.0; double sumEoverP = 0.0; private final String plotDir = "FinalStateParticles/"; - double beamEnergy = 1.05; //GeV + // double beamEnergy = 1.05; //GeV double maxFactor = 1.5; double feeMomentumCut = 0.75; //this number, multiplied by the beam energy, is the actual cut @@ -98,15 +99,18 @@ IHistogram1D nUnAssTracksHisto; - public void setBeamEnergy(double e){ - this.beamEnergy = e; - } + public void setFinalStateParticlesColName(String fsp) { this.finalStateParticlesColName = fsp; } @Override protected void detectorChanged(Detector detector) { + BeamEnergyCollection beamEnergyCollection = + this.getConditionsManager().getCachedConditions(BeamEnergyCollection.class, "beam_energies").getCachedData(); + double beamEnergy = beamEnergyCollection.get(0).getBeamEnergy(); + + LOGGER.info("Setting up the plotter"); aida.tree().cd("/"); String trkType="SeedTrack/"; Modified: java/branches/jeremy-dev/analysis/src/main/java/org/hps/analysis/dataquality/TridentMonitoring.java ============================================================================= --- java/branches/jeremy-dev/analysis/src/main/java/org/hps/analysis/dataquality/TridentMonitoring.java (original) +++ java/branches/jeremy-dev/analysis/src/main/java/org/hps/analysis/dataquality/TridentMonitoring.java Tue Mar 1 11:15:40 2016 @@ -14,6 +14,8 @@ import java.util.List; import java.util.Map.Entry; import java.util.logging.Logger; + +import org.hps.conditions.beam.BeamEnergy.BeamEnergyCollection; import org.hps.recon.ecal.cluster.ClusterUtilities; import org.hps.recon.particle.ReconParticleDriver; import org.hps.recon.tracking.TrackType; @@ -73,37 +75,8 @@ private final static Logger LOGGER = Logger.getLogger(TridentMonitoring.class.getPackage().getName()); - private double ebeam = 1.05; - - public void setBeamEnergy(double ebeam){ - this.ebeam = ebeam; - - plotsMinMass = 0.03 * ebeam; - plotsMaxMass = 0.04 * ebeam; - - - //v0 plot ranges - v0PzMax = 1.25 * ebeam;//GeV - v0PzMin = 0.1;// GeV - v0PyMax = 0.04 * ebeam;//GeV absolute value - v0PxMax = 0.04 * ebeam;//GeV absolute value - - //v0 cuts - v0PzMaxCut = 1.25 * ebeam;//GeV - v0PzMinCut = 0.1;// GeV - v0PyCut = 0.04 * ebeam;//GeV absolute value - v0PxCut = 0.04 * ebeam;//GeV absolute value - - // track quality cuts - beamPCut = 0.85 * ebeam; - minPCut = 0.05; -// private double trkPyMax = 0.2; -// private double trkPxMax = 0.2; - radCut = 0.8 * ebeam; - - - } - + + private final BasicHep3Matrix beamAxisRotation = new BasicHep3Matrix(); // private static final int nCuts = 9; // private final String[] cutNames = {"Trk Quality", @@ -246,45 +219,48 @@ private final IHistogram1D[][] cutVertexZ = new IHistogram1D[Cut.nCuts][2]; private final IHistogram2D[][] cutVertexZVsMass = new IHistogram2D[Cut.nCuts][2]; - private double plotsMinMass = 0.03 * ebeam; - private double plotsMaxMass = 0.04 * ebeam; + private final double plotsMinMass = 0.03; + private final double plotsMaxMass = 0.04; //clean up event first private final int nTrkMax = 5; private final int nPosMax = 1; private final double maxChi2SeedTrack = 7.0; - private final double maxChi2GBLTrack = 15.0; - private final double maxVertChi2 = 7.0; + private double maxChi2GBLTrack = 15.0; + private double maxUnconVertChi2 = 7.0; + private double maxBsconVertChi2 = 1000.0; //disable by default //v0 plot ranges - private double v0PzMax = 1.25 * ebeam;//GeV - private double v0PzMin = 0.1;// GeV - private double v0PyMax = 0.04 * ebeam;//GeV absolute value - private double v0PxMax = 0.04 * ebeam;//GeV absolute value + private final double v0PzMax = 1.25;//GeV + private final double v0PzMin = 0.1;// GeV + private final double v0PyMax = 0.04;//GeV absolute value + private final double v0PxMax = 0.04;//GeV absolute value private final double v0VzMax = 50.0;// mm from target...someday make mass dependent private final double v0VyMax = 2.0;// mm from target...someday make mass dependent private final double v0VxMax = 2.0;// mm from target...someday make mass dependent //v0 cuts - private double v0PzMaxCut = 1.25 * ebeam;//GeV - private double v0PzMinCut = 0.1;// GeV - private double v0PyCut = 0.04 * ebeam;//GeV absolute value - private double v0PxCut = 0.04 * ebeam;//GeV absolute value - private final double v0VzCut = 50.0;// mm from target...someday make mass dependent - private final double v0VyCut = 2.0;// mm from target...someday make mass dependent - private final double v0VxCut = 2.0;// mm from target...someday make mass dependent - + private final double v0PzMaxCut = 1.25;//GeV + private final double v0PzMinCut = 0.1;// GeV + private final double v0PyCut = 0.04;//GeV absolute value + private final double v0PxCut = 0.04;//GeV absolute value + private final double v0UnconVzCut = 50.0;// mm from target...someday make mass dependent + private double v0UnconVyCut = 2.0;// mm from target...someday make mass dependent + private double v0UnconVxCut = 2.0;// mm from target...someday make mass dependent + private double v0BsconVyCut = 10.0; //disable by default + private double v0BsconVxCut = 10.0; //disable by default + // track quality cuts - private double beamPCut = 0.85 * ebeam; - private double minPCut = 0.05; + private final double beamPCut = 0.85; + private final double minPCut = 0.05; // private double trkPyMax = 0.2; // private double trkPxMax = 0.2; - private double radCut = 0.8 * ebeam; + private final double radCut = 0.8; private final double trkTimeDiff = 5.0; private final double clusterTimeDiffCut = 2.5; - private final double l1IsoMin = 1.0; + private double l1IsoMin = 0.5; private double[] beamSize = {0.001, 0.130, 0.050}; //rough estimate from harp scans during engineering run production running @@ -298,13 +274,56 @@ private float nRecoV0 = 0; private final float[] nPassCut = new float[Cut.nCuts]; - - + public void setMaxChi2GBLTrack(double maxChi2GBLTrack) { + this.maxChi2GBLTrack = maxChi2GBLTrack; + } + + public void setMaxUnconVertChi2(double maxUnconVertChi2) { + this.maxUnconVertChi2 = maxUnconVertChi2; + } + + public void setMaxBsconVertChi2(double maxBsconVertChi2) { + this.maxBsconVertChi2 = maxBsconVertChi2; + } + + public void setV0UnconVyCut(double v0UnconVyCut) { + this.v0UnconVyCut = v0UnconVyCut; + } + + public void setV0UnconVxCut(double v0UnconVxCut) { + this.v0UnconVxCut = v0UnconVxCut; + } + + public void setV0BsconVyCut(double v0BsconVyCut) { + this.v0BsconVyCut = v0BsconVyCut; + } + + public void setV0BsconVxCut(double v0BsconVxCut) { + this.v0BsconVxCut = v0BsconVxCut; + } + + public void setL1IsoMin(double l1IsoMin) { + this.l1IsoMin = l1IsoMin; + } + + public void setBeamSizeX(double beamSizeX) { + this.beamSize[1] = beamSizeX; + } + + public void setBeamSizeY(double beamSizeY) { + this.beamSize[2] = beamSizeY; + } + + + double ebeam; @Override protected void detectorChanged(Detector detector) { LOGGER.info("TridendMonitoring::detectorChanged Setting up the plotter"); beamAxisRotation.setActiveEuler(Math.PI / 2, -0.0305, -Math.PI / 2); + BeamEnergyCollection beamEnergyCollection = + this.getConditionsManager().getCachedConditions(BeamEnergyCollection.class, "beam_energies").getCachedData(); + ebeam = beamEnergyCollection.get(0).getBeamEnergy(); aida.tree().cd("/"); String trkType = "SeedTrack/"; if (isGBL) { @@ -329,15 +348,15 @@ // triTrackTimeDiff = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Trident: Track time difference", 100, -10, 10); // triTrackTime2D = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Trident: Track time vs. track time", 100, -10, 10, 100, -10, 10); - triTrackMomentum2D = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Trident: Positron vs. electron momentum", 100, 0, v0PzMax, 100, 0, v0PzMax); + triTrackMomentum2D = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Trident: Positron vs. electron momentum", 100, 0, v0PzMax * ebeam, 100, 0, v0PzMax * ebeam); triDeltaP = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Trident: Positron - electron momentum", 100, -1., 1.0); - triSumP = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Trident: Positron + electron momentum", 100, v0PzMin, v0PzMax); + triSumP = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Trident: Positron + electron momentum", 100, v0PzMin * ebeam, v0PzMax * ebeam); triPyEleVsPyPos = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Trident: Py(e) vs Py(p)", 50, -0.04, 0.04, 50, -0.04, 0.04); triPxEleVsPxPos = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Trident: Px(e) vs Px(p)", 50, -0.04, 0.04, 50, -0.04, 0.04); - triMassMomentum = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Trident: Vertex mass vs. vertex momentum", 100, v0PzMin, v0PzMax, 100, 0, 0.1); - triZVsMomentum = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Trident: Vertex Z vs. vertex momentum", 100, v0PzMin, v0PzMax, 100, -v0VzMax, v0VzMax); - triMass = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Trident: Vertex mass", 100, 0, 0.11); + triMassMomentum = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Trident: Vertex mass vs. vertex momentum", 100, v0PzMin * ebeam, v0PzMax * ebeam, 100, 0, 0.1); + triZVsMomentum = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Trident: Vertex Z vs. vertex momentum", 100, v0PzMin * ebeam, v0PzMax * ebeam, 100, -v0VzMax, v0VzMax); + triMass = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Trident: Vertex mass", 100, 0, 0.1 * ebeam); triZVsMass = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Trident: Vertex Z vs. mass", 100, 0, 0.11, 100, -v0VzMax, v0VzMax); // triX = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Trident: Vertex X", 100, -v0VxMax, v0VxMax); // triY = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Trident: Vertex Y", 100, -v0VyMax, v0VyMax); @@ -354,9 +373,9 @@ triRadTrackTimeDiff = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Radiative trident: Track time difference", 100, -10, 10); triRadTrackTime2D = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Radiative trident: Track time vs. track time", 100, -10, 10, 100, -10, 10); - triRadTrackMomentum2D = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Radiative trident: Positron vs. electron momentum", 100, 0, v0PzMax, 100, 0, v0PzMax); + triRadTrackMomentum2D = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Radiative trident: Positron vs. electron momentum", 100, 0, v0PzMax * ebeam, 100, 0, v0PzMax * ebeam); triRadDeltaP = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Radiative trident: Positron - electron momentum", 100, -1., 1.0); - triRadSumP = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Radiative trident: Positron + electron momentum", 100, v0PzMin, v0PzMax); + triRadSumP = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Radiative trident: Positron + electron momentum", 100, v0PzMin * ebeam, v0PzMax * ebeam); triRadPyEleVsPyPos = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Radiative trident: Py(e) vs Py(p)", 50, -0.04, 0.04, 50, -0.04, 0.04); triRadPxEleVsPxPos = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Radiative trident: Px(e) vs Px(p)", 50, -0.04, 0.04, 50, -0.04, 0.04); @@ -369,23 +388,23 @@ // triRadZ = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Radiative trident: Vertex Z", 100, -v0VzMax, v0VzMax); // triRadXY = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Radiative trident: Vertex Y vs. X", 100, -v0VxMax, v0VxMax, 100, -v0VyMax, v0VyMax); // triRadZY = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Radiative trident: Vertex Z vs. Y", 100, -v0VyMax, v0VyMax, 100, -v0VzMax, v0VzMax); - triRadPx = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Radiative trident: Vertex Px", 100, -v0PxMax, v0PxMax); - triRadPy = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Radiative trident: Vertex Py", 100, -v0PyMax, v0PyMax); - triRadPz = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Radiative trident: Vertex Pz", 100, v0PzMin, v0PzMax); - triRadPxPy = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Radiative trident: Vertex Py vs. Px", 100, -v0PxMax, v0PxMax, 100, -v0PyMax, v0PyMax); + triRadPx = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Radiative trident: Vertex Px", 100, -v0PxMax * ebeam, v0PxMax * ebeam); + triRadPy = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Radiative trident: Vertex Py", 100, -v0PyMax * ebeam, v0PyMax * ebeam); + triRadPz = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Radiative trident: Vertex Pz", 100, v0PzMin * ebeam, v0PzMax * ebeam); + triRadPxPy = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Radiative trident: Vertex Py vs. Px", 100, -v0PxMax * ebeam, v0PxMax * ebeam, 100, -v0PyMax * ebeam, v0PyMax * ebeam); triRadU = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Radiative trident: Vertex Px over Ptot", 100, -0.1, 0.1); triRadV = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Radiative trident: Vertex Py over Ptot", 100, -0.1, 0.1); // vertTrackTimeDiff = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Vertex: Track time difference", 100, -10, 10); // vertTrackTime2D = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Vertex: Track time vs. track time", 100, -10, 10, 100, -10, 10); - vertTrackMomentum2D = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Vertex: Positron vs. electron momentum", 100, 0, v0PzMax, 100, 0, v0PzMax); + vertTrackMomentum2D = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Vertex: Positron vs. electron momentum", 100, 0, v0PzMax * ebeam, 100, 0, v0PzMax * ebeam); vertDeltaP = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Vertex: Positron - electron momentum", 100, -1., 1.0); - vertSumP = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Vertex: Positron + electron momentum", 100, v0PzMin, v0PzMax); + vertSumP = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Vertex: Positron + electron momentum", 100, v0PzMin * ebeam, v0PzMax * ebeam); vertPyEleVsPyPos = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Vertex: Py(e) vs Py(p)", 50, -0.04, 0.04, 50, -0.04, 0.04); vertPxEleVsPxPos = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Vertex: Px(e) vs Px(p)", 50, -0.04, 0.04, 50, -0.04, 0.04); - vertMassMomentum = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Vertex: Vertex mass vs. vertex momentum", 100, v0PzMin, v0PzMax, 100, 0, 0.1); - vertZVsMomentum = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Vertex: Vertex Z vs. vertex momentum", 100, v0PzMin, v0PzMax, 100, -v0VzMax, v0VzMax); + vertMassMomentum = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Vertex: Vertex mass vs. vertex momentum", 100, v0PzMin * ebeam, v0PzMax * ebeam, 100, 0, 0.1); + vertZVsMomentum = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Vertex: Vertex Z vs. vertex momentum", 100, v0PzMin * ebeam, v0PzMax * ebeam, 100, -v0VzMax, v0VzMax); vertMass = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Vertex: Vertex mass", 100, 0, 0.11); vertZVsMass = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Vertex: Vertex Z vs. mass", 100, 0, 0.11, 100, -v0VzMax, v0VzMax); // vertX = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Vertex: Vertex X", 100, -v0VxMax, v0VxMax); @@ -403,14 +422,14 @@ vertRadTrackTimeDiff = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Radiative vertex: Track time difference", 100, -10, 10); vertRadTrackTime2D = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Radiative vertex: Track time vs. track time", 100, -10, 10, 100, -10, 10); - vertRadTrackMomentum2D = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Radiative vertex: Positron vs. electron momentum", 100, 0, v0PzMax, 100, 0, v0PzMax); + vertRadTrackMomentum2D = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Radiative vertex: Positron vs. electron momentum", 100, 0, v0PzMax * ebeam, 100, 0, v0PzMax * ebeam); vertRadDeltaP = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Radiative vertex: Positron - electron momentum", 100, -1., 1.0); - vertRadSumP = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Radiative vertex: Positron + electron momentum", 100, v0PzMin, v0PzMax); + vertRadSumP = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Radiative vertex: Positron + electron momentum", 100, v0PzMin * ebeam, v0PzMax * ebeam); vertRadPyEleVsPyPos = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Radiative vertex: Py(e) vs Py(p)", 50, -0.04, 0.04, 50, -0.04, 0.04); vertRadPxEleVsPxPos = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Radiative vertex: Px(e) vs Px(p)", 50, -0.04, 0.04, 50, -0.04, 0.04); - vertRadMassMomentum = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Radiative vertex: Vertex mass vs. vertex momentum", 100, v0PzMin, v0PzMax, 100, 0, 0.1); - vertRadZVsMomentum = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Radiative vertex: Vertex Z vs. vertex momentum", 100, v0PzMin, v0PzMax, 100, -v0VzMax, v0VzMax); + vertRadMassMomentum = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Radiative vertex: Vertex mass vs. vertex momentum", 100, v0PzMin * ebeam, v0PzMax * ebeam, 100, 0, 0.1); + vertRadZVsMomentum = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Radiative vertex: Vertex Z vs. vertex momentum", 100, v0PzMin * ebeam, v0PzMax * ebeam, 100, -v0VzMax, v0VzMax); vertRadMass = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Radiative vertex: Vertex mass", 100, 0, 0.11); vertRadZVsMass = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Radiative vertex: Vertex Z vs. mass", 100, 0, 0.11, 100, -v0VzMax, v0VzMax); vertRadX = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Radiative vertex: Vertex X", 100, -v0VxMax, v0VxMax); @@ -418,10 +437,10 @@ vertRadZ = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Radiative vertex: Vertex Z", 100, -v0VzMax, v0VzMax); vertRadXY = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Radiative vertex: Vertex Y vs. X", 100, -v0VxMax, v0VxMax, 100, -v0VyMax, v0VyMax); vertRadZY = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Radiative vertex: Vertex Z vs. Y", 100, -v0VyMax, v0VyMax, 100, -v0VzMax, v0VzMax); - vertRadPx = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Radiative vertex: Vertex Px", 100, -v0PxMax, v0PxMax); - vertRadPy = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Radiative vertex: Vertex Py", 100, -v0PyMax, v0PyMax); - vertRadPz = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Radiative vertex: Vertex Pz", 100, v0PzMin, v0PzMax); - vertRadPxPy = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Radiative vertex: Vertex Py vs. Px", 100, -v0PxMax, v0PxMax, 100, -v0PyMax, v0PyMax); + vertRadPx = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Radiative vertex: Vertex Px", 100, -v0PxMax * ebeam, v0PxMax * ebeam); + vertRadPy = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Radiative vertex: Vertex Py", 100, -v0PyMax * ebeam, v0PyMax * ebeam); + vertRadPz = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Radiative vertex: Vertex Pz", 100, v0PzMin * ebeam, v0PzMax * ebeam); + vertRadPxPy = aida.histogram2D(plotDir + trkType + triggerType + "/" + "Radiative vertex: Vertex Py vs. Px", 100, -v0PxMax * ebeam, v0PxMax * ebeam, 100, -v0PyMax * ebeam, v0PyMax * ebeam); vertRadU = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Radiative vertex: Vertex Px over Ptot", 100, -0.1, 0.1); vertRadV = aida.histogram1D(plotDir + trkType + triggerType + "/" + "Radiative vertex: Vertex Py over Ptot", 100, -0.1, 0.1); @@ -559,6 +578,14 @@ minL1Iso = Math.min(eleL1Iso, posL1Iso); } + BilliorVertexer vtxFitter = new BilliorVertexer(TrackUtils.getBField(event.getDetector()).y()); + vtxFitter.setBeamSize(beamSize); + List<BilliorTrack> billiorTracks = new ArrayList<BilliorTrack>(); + billiorTracks.add(new BilliorTrack(electron.getTracks().get(0))); + billiorTracks.add(new BilliorTrack(positron.getTracks().get(0))); + vtxFitter.doBeamSpotConstraint(true); + BilliorVertex bsconVertex = vtxFitter.fitVertex(billiorTracks); + //start applying cuts EnumSet<Cut> bits = EnumSet.noneOf(Cut.class); @@ -567,13 +594,13 @@ bits.add(Cut.TRK_QUALITY); } - boolean v0QualityCut = uncVert.getChi2() < maxVertChi2; + boolean v0QualityCut = uncVert.getChi2() < maxUnconVertChi2 && bsconVertex.getChi2() < maxBsconVertChi2; if (v0QualityCut) { bits.add(Cut.VTX_QUALITY); } - boolean vertexMomentumCut = v0MomRot.z() < v0PzMaxCut && v0MomRot.z() > v0PzMinCut && Math.abs(v0MomRot.x()) < v0PxCut && Math.abs(v0MomRot.y()) < v0PyCut; - boolean vertexPositionCut = Math.abs(v0Vtx.x()) < v0VxCut && Math.abs(v0Vtx.y()) < v0VyCut && Math.abs(v0Vtx.z()) < v0VzCut; + boolean vertexMomentumCut = v0MomRot.z() < v0PzMaxCut * ebeam && v0MomRot.z() > v0PzMinCut * ebeam && Math.abs(v0MomRot.x()) < v0PxCut * ebeam && Math.abs(v0MomRot.y()) < v0PyCut * ebeam; + boolean vertexPositionCut = Math.abs(v0Vtx.x()) < v0UnconVxCut && Math.abs(v0Vtx.y()) < v0UnconVyCut && Math.abs(v0Vtx.z()) < v0UnconVzCut && Math.abs(bsconVertex.getPosition().x()) < v0BsconVxCut && Math.abs(bsconVertex.getPosition().y()) < v0BsconVyCut; if (vertexMomentumCut && vertexPositionCut) { bits.add(Cut.VERTEX_CUTS); } @@ -584,8 +611,8 @@ } boolean topBottomCut = electron.getMomentum().y() * positron.getMomentum().y() < 0; - boolean pMinCut = electron.getMomentum().magnitude() > minPCut && positron.getMomentum().magnitude() > minPCut; - boolean pMaxCut = electron.getMomentum().magnitude() < beamPCut && positron.getMomentum().magnitude() < beamPCut; + boolean pMinCut = electron.getMomentum().magnitude() > minPCut * ebeam && positron.getMomentum().magnitude() > minPCut * ebeam; + boolean pMaxCut = electron.getMomentum().magnitude() < beamPCut * ebeam && positron.getMomentum().magnitude() < beamPCut * ebeam; if (topBottomCut && pMaxCut && pMinCut) { bits.add(Cut.TRACK_CUTS); } @@ -628,7 +655,7 @@ EnumSet<Cut> allButThisCut = EnumSet.allOf(Cut.class); allButThisCut.remove(cut); if (bits.containsAll(allButThisCut)) { - if (uncV0.getMass() > plotsMinMass && uncV0.getMass() < plotsMaxMass) { + if (uncV0.getMass() > plotsMinMass * ebeam && uncV0.getMass() < plotsMaxMass * ebeam) { switch (cut) { case ISOLATION: l1Iso.fill(minL1Iso); @@ -657,7 +684,7 @@ } } if (!bits.contains(cut)) { - if (uncV0.getMass() > plotsMinMass && uncV0.getMass() < plotsMaxMass) { + if (uncV0.getMass() > plotsMinMass * ebeam && uncV0.getMass() < plotsMaxMass * ebeam) { cutVertexZ[cut.ordinal()][VERTEX].fill(v0Vtx.z()); } cutVertexMass[cut.ordinal()][VERTEX].fill(uncV0.getMass()); @@ -669,7 +696,7 @@ allTriCutsButThisCut.remove(cut); if (bits.containsAll(allTriCutsButThisCut)) { if (!bits.contains(cut)) { - if (uncV0.getMass() > plotsMinMass && uncV0.getMass() < plotsMaxMass) { + if (uncV0.getMass() > plotsMinMass * ebeam && uncV0.getMass() < plotsMaxMass * ebeam) { cutVertexZ[cut.ordinal()][TRIDENT].fill(v0Vtx.z()); } cutVertexMass[cut.ordinal()][TRIDENT].fill(uncV0.getMass()); @@ -730,7 +757,7 @@ // triV.fill(pBestV0Rot.y() / pBestV0Rot.magnitude()); // triXY.fill(v0Vtx.x(), v0Vtx.y()); // triZY.fill(v0Vtx.y(), v0Vtx.z()); - if (bestCandidate.getMomentum().magnitude() > radCut) { + if (bestCandidate.getMomentum().magnitude() > radCut * ebeam) { triRadTrackTime2D.fill(tEle, tPos); triRadTrackTimeDiff.fill(tEle - tPos); // triRadZVsMomentum.fill(bestCandidate.getMomentum().magnitude(), v0Vtx.z()); @@ -799,7 +826,7 @@ // vertV.fill(pBestV0Rot.y() / pBestV0Rot.magnitude()); vertXY.fill(v0Vtx.x(), v0Vtx.y()); vertZY.fill(v0Vtx.y(), v0Vtx.z()); - if (bestCandidate.getMomentum().magnitude() > radCut) { + if (bestCandidate.getMomentum().magnitude() > radCut * ebeam) { BilliorVertexer vtxFitter = new BilliorVertexer(TrackUtils.getBField(event.getDetector()).y()); vtxFitter.setBeamSize(beamSize); @@ -808,6 +835,8 @@ billiorTracks.add(new BilliorTrack(positron.getTracks().get(0))); vtxFitter.doBeamSpotConstraint(true); BilliorVertex bsconVertex = vtxFitter.fitVertex(billiorTracks); + vtxFitter.doTargetConstraint(true); + BilliorVertex tarconVertex = vtxFitter.fitVertex(billiorTracks); vertRadUnconBsconChi2.fill(unconVertex.getChi2(), bsconVertex.getChi2()); vertRadTrackTime2D.fill(tEle, tPos); 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 Tue Mar 1 11:15:40 2016 @@ -18,7 +18,7 @@ import java.util.Map.Entry; import java.util.logging.Level; import java.util.logging.Logger; - +import org.hps.conditions.beam.BeamEnergy.BeamEnergyCollection; import org.hps.recon.tracking.TrackType; import org.hps.recon.tracking.TrackUtils; import org.hps.recon.vertexing.BilliorTrack; @@ -41,590 +41,624 @@ */ public class V0Monitoring extends DataQualityMonitor { - private static Logger LOGGER = Logger.getLogger(V0Monitoring.class.getPackage().getName()); - - String finalStateParticlesColName = "FinalStateParticles"; - String unconstrainedV0CandidatesColName = "UnconstrainedV0Candidates"; - String beamConV0CandidatesColName = "BeamspotConstrainedV0Candidates"; - String targetV0ConCandidatesColName = "TargetConstrainedV0Candidates"; - String[] fpQuantNames = {"nV0_per_Event", "avg_BSCon_mass", "avg_BSCon_Vx", "avg_BSCon_Vy", "avg_BSCon_Vz", "sig_BSCon_Vx", "sig_BSCon_Vy", "sig_BSCon_Vz", "avg_BSCon_Chi2"}; - //some counters - int nRecoEvents = 0; - int nTotV0 = 0; - int nTot2Ele = 0; - //some summers - double sumMass = 0.0; - double sumVx = 0.0; - double sumVy = 0.0; - double sumVz = 0.0; - double sumChi2 = 0.0; - - /* V0 Quantities */ - /* Mass, vertex, chi^2 of fit */ - /* unconstrained */ - IHistogram1D unconMass; - IHistogram1D unconVx; - IHistogram1D unconVy; - IHistogram1D unconVz; - IHistogram1D unconChi2; - IHistogram2D unconVzVsChi2; - IHistogram2D unconChi2VsTrkChi2; - /* beamspot constrained */ - - IHistogram1D nV0; - - IHistogram1D v0Time; - IHistogram1D v0Dt; - IHistogram2D trigTimeV0Time; - IHistogram1D trigTime; - - IHistogram1D bsconMass; - IHistogram1D bsconVx; - IHistogram1D bsconVy; - IHistogram1D bsconVz; - IHistogram1D bsconChi2; - IHistogram2D bsconVzVsChi2; - IHistogram2D bsconChi2VsTrkChi2; - /* target constrained */ - IHistogram1D tarconMass; - IHistogram1D tarconVx; - IHistogram1D tarconVy; - IHistogram1D tarconVz; - IHistogram1D tarconChi2; - IHistogram2D tarconVzVsChi2; - IHistogram2D tarconChi2VsTrkChi2; - - IHistogram2D pEleVspPos; - IHistogram2D pEleVspPosWithCut; - IHistogram2D pyEleVspyPos; - IHistogram2D pxEleVspxPos; - - IHistogram2D VtxZVsMass; - IHistogram2D VtxYVsVtxZ; - IHistogram2D VtxXVsVtxZ; - IHistogram2D VtxXVsVtxY; - IHistogram2D VtxXVsVtxPx; - IHistogram2D VtxYVsVtxPy; - IHistogram2D VtxZVsVtxPx; - IHistogram2D VtxZVsVtxPy; - IHistogram2D VtxZVsVtxPz; - - IHistogram2D VtxZVsL1Iso; - IHistogram2D VtxZVsTrkChi2; - - IHistogram2D pEleVspEle; - IHistogram2D phiEleVsphiEle; - IHistogram2D pyEleVspyEle; - IHistogram2D pxEleVspxEle; - IHistogram2D pEleVspEleNoBeam; - IHistogram2D pyEleVspyEleNoBeam; - IHistogram2D pxEleVspxEleNoBeam; - IHistogram2D pEleVspEleMoller; - IHistogram2D pEleVsthetaMoller; - IHistogram2D thetaEleVsthetaMoller; - IHistogram2D pEleVspEleBeamBeam; - IHistogram2D pEleVsthetaBeamBeam; - IHistogram2D thetaEleVsthetaBeamBeam; - - IHistogram1D mollerMass; - IHistogram1D mollerMassVtxCut; - IHistogram1D mollerVx; - IHistogram1D mollerVy; - IHistogram1D mollerVz; - IHistogram1D mollerVzVtxCut; - IHistogram2D mollerXVsVtxZ; - IHistogram2D mollerYVsVtxZ; - IHistogram2D mollerXVsVtxY; - - IHistogram1D mollerUx; - IHistogram1D mollerUy; - - - - IHistogram1D sumChargeHisto; - IHistogram1D numChargeHisto; - - private final String plotDir = "V0Monitoring/"; - - double beamEnergy = 1.05; //GeV - private final BasicHep3Matrix beamAxisRotation = new BasicHep3Matrix(); - - double maxFactor = 1.25; - - - double thetaMax = 0.06; - double thetaMin = 0.015; - - public void setBeamEnergy(double e){ - this.beamEnergy = e; - feeMomentumCut = 0.75*beamEnergy; //GeV - - v0ESumMinCut = 0.8 * beamEnergy; - v0ESumMaxCut = 1.25 * beamEnergy; - /*double v0MaxPCut = 1.1;//GeV - double molPSumMin = 0.85; - double molPSumMax = 1.3; - double beambeamCut = 0.85; - */ - v0MaxPCut = 1.05*beamEnergy;//GeV - molPSumMin = 0.80*beamEnergy; - molPSumMax = 1.25*beamEnergy; - beambeamCut = 0.80*beamEnergy; - - } - - double feeMomentumCut, v0ESumMinCut, v0MaxPCut, v0ESumMaxCut, - molPSumMin, molPSumMax, beambeamCut; - - - - @Override - protected void detectorChanged(Detector detector) { - setBeamEnergy(beamEnergy); - - - - beamAxisRotation.setActiveEuler(Math.PI / 2, -0.0305, -Math.PI / 2); - - LOGGER.info("Setting up the plotter"); - aida.tree().cd("/"); - String xtra = "Extras"; - String trkType = "SeedTrack/"; - if (isGBL) - trkType = "GBLTrack/"; - - double maxMass = .2*beamEnergy; - double maxMassMoller = .1*Math.sqrt(beamEnergy); - /* V0 Quantities */ - /* Mass, vertex, chi^2 of fit */ - /* unconstrained */ - unconMass = aida.histogram1D(plotDir + trkType + triggerType + "/" + unconstrainedV0CandidatesColName + "/" + "Invariant Mass (GeV)", 100, 0, maxMass); - unconVx = aida.histogram1D(plotDir + trkType + triggerType + "/" + unconstrainedV0CandidatesColName + "/" + "Vx (mm)", 50, -10, 10); - unconVy = aida.histogram1D(plotDir + trkType + triggerType + "/" + unconstrainedV0CandidatesColName + "/" + "Vy (mm)", 50, -10, 10); - unconVz = aida.histogram1D(plotDir + trkType + triggerType + "/" + unconstrainedV0CandidatesColName + "/" + "Vz (mm)", 50, -50, 50); - unconChi2 = aida.histogram1D(plotDir + trkType + triggerType + "/" + unconstrainedV0CandidatesColName + "/" + "Chi2", 25, 0, 25); - unconVzVsChi2 = aida.histogram2D(plotDir + trkType + triggerType + "/" + unconstrainedV0CandidatesColName + "/" + "Vz vs. Chi2", 25, 0, 25, 50, -50, 50); - unconChi2VsTrkChi2 = aida.histogram2D(plotDir + trkType + triggerType + "/" + unconstrainedV0CandidatesColName + "/" + "Chi2 vs. total track chi2", 50, 0, 50, 50, 0, 25); - /* beamspot constrained */ - bsconMass = aida.histogram1D(plotDir + trkType + triggerType + "/" + beamConV0CandidatesColName + "/" + "Mass (GeV)", 100, 0, maxMass); - bsconVx = aida.histogram1D(plotDir + trkType + triggerType + "/" + beamConV0CandidatesColName + "/" + "Vx (mm)", 50, -10, 10); - bsconVy = aida.histogram1D(plotDir + trkType + triggerType + "/" + beamConV0CandidatesColName + "/" + "Vy (mm)", 50, -10, 10); - bsconVz = aida.histogram1D(plotDir + trkType + triggerType + "/" + beamConV0CandidatesColName + "/" + "Vz (mm)", 50, -50, 50); - bsconChi2 = aida.histogram1D(plotDir + trkType + triggerType + "/" + beamConV0CandidatesColName + "/" + "Chi2", 25, 0, 25); - bsconVzVsChi2 = aida.histogram2D(plotDir + trkType + triggerType + "/" + beamConV0CandidatesColName + "/" + "Vz vs. Chi2", 25, 0, 25, 50, -50, 50); - bsconChi2VsTrkChi2 = aida.histogram2D(plotDir + trkType + triggerType + "/" + beamConV0CandidatesColName + "/" + "Chi2 vs. total track chi2", 50, 0, 50, 50, 0, 25); - /* target constrained */ - tarconMass = aida.histogram1D(plotDir + trkType + triggerType + "/" + targetV0ConCandidatesColName + "/" + "Mass (GeV)", 100, 0, maxMass); - tarconVx = aida.histogram1D(plotDir + trkType + triggerType + "/" + targetV0ConCandidatesColName + "/" + "Vx (mm)", 50, -1, 1); - tarconVy = aida.histogram1D(plotDir + trkType + triggerType + "/" + targetV0ConCandidatesColName + "/" + "Vy (mm)", 50, -1, 1); - tarconVz = aida.histogram1D(plotDir + trkType + triggerType + "/" + targetV0ConCandidatesColName + "/" + "Vz (mm)", 50, -10, 10); - tarconChi2 = aida.histogram1D(plotDir + trkType + triggerType + "/" + targetV0ConCandidatesColName + "/" + "Chi2", 25, 0, 25); - tarconVzVsChi2 = aida.histogram2D(plotDir + trkType + triggerType + "/" + targetV0ConCandidatesColName + "/" + "Vz vs. Chi2", 25, 0, 25, 50, -50, 50); - tarconChi2VsTrkChi2 = aida.histogram2D(plotDir + trkType + triggerType + "/" + targetV0ConCandidatesColName + "/" + "Chi2 vs. total track chi2", 50, 0, 50, 50, 0, 25); - - nV0 = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Number of V0 per event", 10, 0, 10); - v0Time = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "V0 mean time", 100, -25, 25); - v0Dt = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "V0 time difference", 100, -25, 25); - trigTimeV0Time = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Trigger phase vs. V0 mean time", 100, -25, 25, 6, 0, 24); - trigTime = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Trigger phase", 6, 0, 24); - - pEleVspPos = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "P(e) vs P(p)", 50, 0, beamEnergy * maxFactor, 50, 0, beamEnergy * maxFactor); - pEleVspPosWithCut = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "P(e) vs P(p): Radiative", 50, 0, beamEnergy * maxFactor, 50, 0, beamEnergy * maxFactor); - pyEleVspyPos = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Py(e) vs Py(p)", 50, -0.04*beamEnergy, 0.04*beamEnergy, 50, -0.04*beamEnergy, 0.04*beamEnergy); - pxEleVspxPos = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Px(e) vs Px(p)", 50, -0.04*beamEnergy, 0.04*beamEnergy, 50, -0.04*beamEnergy, 0.04*beamEnergy); - VtxZVsMass = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Vz vs Mass", 50, 0, maxMass, 50, -50, 80); - VtxXVsVtxZ = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Vx vs Vz", 100, -10, 10, 100, -50, 80); - VtxYVsVtxZ = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Vy vs Vz", 100, -5, 5, 100, -50, 80); - VtxXVsVtxY = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Vx vs Vy", 100, -10, 10, 100, -5, 5); - VtxXVsVtxPx = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Vx vs Px", 100, -0.1, 0.1, 100, -10, 10); - VtxYVsVtxPy = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Vy vs Py", 100, -0.1, 0.1, 100, -5, 5); - VtxZVsVtxPx = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Vz vs Px", 100, -0.1, 0.1, 100, -50, 80); - VtxZVsVtxPy = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Vz vs Py", 100, -0.1, 0.1, 100, -50, 80); - VtxZVsVtxPz = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Vz vs Pz", 100, 0.0, beamEnergy * maxFactor, 100, -50, 80); - VtxZVsL1Iso = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Vz vs L1 Isolation", 100, 0.0, 5.0, 50, -50, 80); - VtxZVsTrkChi2 = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Vz vs Track Chi2", 50, 0, 50, 50, -50, 80); - pEleVspEle = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/P(e) vs P(e)", 50, 0, beamEnergy * maxFactor, 50, 0, beamEnergy * maxFactor); - phiEleVsphiEle = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/phi(e) vs phi(e)", 50, -Math.PI, Math.PI, 50, -Math.PI, Math.PI); - pyEleVspyEle = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Py(e) vs Py(e)", 50, -0.04*beamEnergy, 0.04*beamEnergy, 50, -0.04*beamEnergy, 0.04*beamEnergy); - pxEleVspxEle = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Px(e) vs Px(e)", 50, -0.02*beamEnergy, 0.06*beamEnergy, 50, -0.02*beamEnergy, 0.06*beamEnergy); - pEleVspEleNoBeam = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/P(e) vs P(e) NoBeam", 50, 0, beambeamCut, 50, 0, beambeamCut); - pEleVspEleMoller = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/P(e) vs P(e) Moller", 50, 0, beambeamCut, 50, 0, beambeamCut); - pEleVspEleBeamBeam = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/P(e) vs P(e) BeamBeam", 50, beambeamCut, beamEnergy * maxFactor, 50, beambeamCut, beamEnergy * maxFactor); - pyEleVspyEleNoBeam = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Py(e) vs Py(e) NoBeam", 50, -0.04*beamEnergy, 0.04*beamEnergy, 50, -0.04*beamEnergy, 0.04*beamEnergy); - pxEleVspxEleNoBeam = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Px(e) vs Px(e) NoBeam", 50, -0.02*beamEnergy, 0.06*beamEnergy, 50, -0.02*beamEnergy, 0.06*beamEnergy); - sumChargeHisto = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Total Charge of Event", 5, -2, 3); - numChargeHisto = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Number of Charged Particles", 6, 0, 6); - - pEleVsthetaMoller = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/P(e) vs Theta Moller", 50, 0, beambeamCut, 50, thetaMin, thetaMax); - thetaEleVsthetaMoller = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Theta vs Theta Moller", 50, thetaMin, thetaMax, 50, thetaMin, thetaMax); - pEleVsthetaBeamBeam = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/P(e) vs Theta BeamBeam", 50, beambeamCut, beamEnergy * maxFactor, 50, thetaMin, thetaMax); - thetaEleVsthetaBeamBeam = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Theta vs Theta BeamBeam", 50, thetaMin, thetaMax, 50, thetaMin, thetaMax); - - mollerMass = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Moller Mass (GeV)", 100, 0, maxMassMoller); - mollerMassVtxCut = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Moller Mass (GeV): VtxCut", 100, 0, maxMassMoller); - mollerVx = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Moller Vx (mm)", 50, -10, 10); - mollerVy = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Moller Vy (mm)", 50, -2, 2); - mollerVz = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Moller Vz (mm)", 50, -50, 50); - mollerVzVtxCut = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Moller Vz (mm): VtxCut", 50, -50, 50); - 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, .015, .045); - mollerUy = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Moller Pair Momentum Direction Uy", 100, -.01, .01); - - - - } - - @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; - - //check to see if this event is from the correct trigger (or "all"); - if (!matchTrigger(event)) - return; - - nRecoEvents++; - - RelationalTable hitToStrips = TrackUtils.getHitToStripsTable(event); - RelationalTable hitToRotated = TrackUtils.getHitToRotatedTable(event); - - List<ReconstructedParticle> unonstrainedV0List = event.get(ReconstructedParticle.class, unconstrainedV0CandidatesColName); - for (ReconstructedParticle uncV0 : unonstrainedV0List) { - if (isGBL != TrackType.isGBL(uncV0.getType())) - continue; - Vertex uncVert = uncV0.getStartVertex(); - Hep3Vector pVtxRot = VecOp.mult(beamAxisRotation, uncV0.getMomentum()); - Hep3Vector vtxPosRot = VecOp.mult(beamAxisRotation, uncVert.getPosition()); - double theta = Math.acos(pVtxRot.z() / pVtxRot.magnitude()); - double phi = Math.atan2(pVtxRot.y(), pVtxRot.x()); - unconVx.fill(vtxPosRot.x()); - unconVy.fill(vtxPosRot.y()); - unconVz.fill(vtxPosRot.z()); - unconMass.fill(uncV0.getMass()); - unconChi2.fill(uncVert.getChi2()); - unconVzVsChi2.fill(uncVert.getChi2(), vtxPosRot.z()); - unconChi2VsTrkChi2.fill(Math.max(uncV0.getParticles().get(0).getTracks().get(0).getChi2(), uncV0.getParticles().get(1).getTracks().get(0).getChi2()), uncVert.getChi2()); - - VtxZVsMass.fill(uncV0.getMass(), vtxPosRot.z()); - VtxXVsVtxZ.fill(vtxPosRot.x(), vtxPosRot.z()); - VtxYVsVtxZ.fill(vtxPosRot.y(), vtxPosRot.z()); - VtxXVsVtxY.fill(vtxPosRot.x(), vtxPosRot.y()); - VtxXVsVtxPx.fill(pVtxRot.x(), vtxPosRot.x()); - VtxYVsVtxPy.fill(pVtxRot.y(), vtxPosRot.y()); - VtxZVsVtxPx.fill(pVtxRot.x(), vtxPosRot.z()); - VtxZVsVtxPy.fill(pVtxRot.y(), vtxPosRot.z()); - VtxZVsVtxPz.fill(pVtxRot.z(), vtxPosRot.z()); - - //this always has 2 tracks. - List<ReconstructedParticle> trks = uncV0.getParticles(); -// Track ele = trks.get(0).getTracks().get(0); -// Track pos = trks.get(1).getTracks().get(0); -// //if track #0 has charge>0 it's the electron! This seems mixed up, but remember the track -// //charge is assigned assuming a positive B-field, while ours is negative -// if (trks.get(0).getCharge() > 0) { -// pos = trks.get(0).getTracks().get(0); -// ele = trks.get(1).getTracks().get(0); -// } -// aida.histogram2D(plotDir + trkType + triggerType + "/" + "P(e) vs P(p)").fill(getMomentum(ele), getMomentum(pos)); -// aida.histogram2D(plotDir + trkType + triggerType + "/" + "Px(e) vs Px(p)").fill(ele.getTrackStates().get(0).getMomentum()[1], pos.getTrackStates().get(0).getMomentum()[1]); -// aida.histogram2D(plotDir + trkType + triggerType + "/" + "Py(e) vs Py(p)").fill(ele.getTrackStates().get(0).getMomentum()[2], pos.getTrackStates().get(0).getMomentum()[2]); - ReconstructedParticle ele = trks.get(0); - ReconstructedParticle pos = trks.get(1); - //ReconParticles have the charge correct. - if (trks.get(0).getCharge() > 0) { - pos = trks.get(0); - ele = trks.get(1); - } - if (ele.getCharge() < 0 && pos.getCharge() > 0) { - VtxZVsTrkChi2.fill(Math.max(uncV0.getParticles().get(0).getTracks().get(0).getChi2(), uncV0.getParticles().get(1).getTracks().get(0).getChi2()), uncVert.getPosition().z()); - - Double[] eleIso = TrackUtils.getIsolations(ele.getTracks().get(0), hitToStrips, hitToRotated); - Double[] posIso = TrackUtils.getIsolations(pos.getTracks().get(0), hitToStrips, hitToRotated); - if (eleIso[0] != null && posIso[0] != null) { - double eleL1Iso = Math.min(Math.abs(eleIso[0]), Math.abs(eleIso[1])); - double posL1Iso = Math.min(Math.abs(posIso[0]), Math.abs(posIso[1])); - double minL1Iso = Math.min(eleL1Iso, posL1Iso); - VtxZVsL1Iso.fill(minL1Iso, uncVert.getPosition().z()); - } - - double pe = ele.getMomentum().magnitude(); - double pp = pos.getMomentum().magnitude(); - Hep3Vector pEleRot = VecOp.mult(beamAxisRotation, ele.getMomentum()); - Hep3Vector pPosRot = VecOp.mult(beamAxisRotation, pos.getMomentum()); - - pEleVspPos.fill(pe, pp); - pxEleVspxPos.fill(pEleRot.x(), pPosRot.x()); - pyEleVspyPos.fill(pEleRot.y(), pPosRot.y()); - if (pe < v0MaxPCut && pp < v0MaxPCut && (pe + pp) > v0ESumMinCut && (pe + pp) < v0ESumMaxCut)//enrich radiative-like events - - pEleVspPosWithCut.fill(pe, pp); - } - - double eleT = TrackUtils.getTrackTime(ele.getTracks().get(0), hitToStrips, hitToRotated); - double posT = TrackUtils.getTrackTime(pos.getTracks().get(0), hitToStrips, hitToRotated); - double meanT = (eleT + posT) / 2.0; - v0Time.fill(meanT); - v0Dt.fill(eleT - posT); - trigTimeV0Time.fill(meanT, event.getTimeStamp() % 24); - trigTime.fill(event.getTimeStamp() % 24); - } - - List<ReconstructedParticle> beamConstrainedV0List = event.get(ReconstructedParticle.class, beamConV0CandidatesColName); - nV0.fill(beamConstrainedV0List.size()); - for (ReconstructedParticle bsV0 : beamConstrainedV0List) { - - if (isGBL != TrackType.isGBL(bsV0.getType())) - continue; - nTotV0++; - Vertex bsVert = bsV0.getStartVertex(); - Hep3Vector vtxPosRot = VecOp.mult(beamAxisRotation, bsVert.getPosition()); - bsconVx.fill(vtxPosRot.x()); - bsconVy.fill(vtxPosRot.y()); - bsconVz.fill(vtxPosRot.z()); - bsconMass.fill(bsV0.getMass()); - bsconChi2.fill(bsVert.getChi2()); - bsconVzVsChi2.fill(bsVert.getChi2(), vtxPosRot.z()); - bsconChi2VsTrkChi2.fill(Math.max(bsV0.getParticles().get(0).getTracks().get(0).getChi2(), bsV0.getParticles().get(1).getTracks().get(0).getChi2()), bsVert.getChi2()); - sumMass += bsV0.getMass(); - sumVx += vtxPosRot.x(); - sumVy += vtxPosRot.y(); - sumVz += vtxPosRot.z(); - sumChi2 += bsVert.getChi2(); - } - - List<ReconstructedParticle> targetConstrainedV0List = event.get(ReconstructedParticle.class, targetV0ConCandidatesColName); - for (ReconstructedParticle tarV0 : targetConstrainedV0List) { - - if (isGBL != TrackType.isGBL(tarV0.getType())) - continue; - - Vertex tarVert = tarV0.getStartVertex(); - Hep3Vector vtxPosRot = VecOp.mult(beamAxisRotation, tarVert.getPosition()); - tarconVx.fill(vtxPosRot.x()); - tarconVy.fill(vtxPosRot.y()); - tarconVz.fill(vtxPosRot.z()); - tarconMass.fill(tarV0.getMass()); - tarconChi2.fill(tarVert.getChi2()); - tarconVzVsChi2.fill(tarVert.getChi2(), vtxPosRot.z()); - tarconChi2VsTrkChi2.fill(Math.max(tarV0.getParticles().get(0).getTracks().get(0).getChi2(), tarV0.getParticles().get(1).getTracks().get(0).getChi2()), tarVert.getChi2()); - } - List<ReconstructedParticle> finalStateParticles = event.get(ReconstructedParticle.class, finalStateParticlesColName); - if (debug) - LOGGER.info("This events has " + finalStateParticles.size() + " final state particles"); - - ReconstructedParticle ele1 = null; - ReconstructedParticle ele2 = null; - int sumCharge = 0; - int numChargedParticles = 0; - for (ReconstructedParticle fsPart : finalStateParticles) { - if (isGBL != TrackType.isGBL(fsPart.getType())) - continue; - if (debug) - LOGGER.info("PDGID = " + fsPart.getParticleIDUsed() + "; charge = " + fsPart.getCharge() + "; pz = " + fsPart.getMomentum().x()); - double charge = fsPart.getCharge(); - sumCharge += charge; - if (charge != 0) { - numChargedParticles++; - if (charge < 1) - if (ele1 == null) - ele1 = fsPart; - else if (!hasSharedStrips(ele1, fsPart, hitToStrips, hitToRotated)) - ele2 = fsPart; - } - } - sumChargeHisto.fill(sumCharge); - numChargeHisto.fill(numChargedParticles); - - if (ele1 != null && ele2 != null) { - Hep3Vector p1 = VecOp.mult(beamAxisRotation, ele1.getMomentum()); - Hep3Vector p2 = VecOp.mult(beamAxisRotation, ele2.getMomentum()); -// Hep3Vector beamAxis = new BasicHep3Vector(Math.sin(0.0305), 0, Math.cos(0.0305)); -// LOGGER.info(p1); -// LOGGER.info(VecOp.mult(rot, p1)); - - double theta1 = Math.acos(p1.z() / p1.magnitude()); - double theta2 = Math.acos(p2.z() / p2.magnitude()); - double phi1 = Math.atan2(p1.y(), p1.x()); - double phi2 = Math.atan2(p2.y(), p2.x()); - phiEleVsphiEle.fill(phi1, phi2); - pEleVspEle.fill(ele1.getMomentum().magnitude(), ele2.getMomentum().magnitude()); - pyEleVspyEle.fill(ele1.getMomentum().y(), ele2.getMomentum().y()); - pxEleVspxEle.fill(ele1.getMomentum().x(), ele2.getMomentum().x()); - //remove beam electrons - if (ele1.getMomentum().magnitude() < beambeamCut && ele2.getMomentum().magnitude() < beambeamCut) { - pEleVspEleNoBeam.fill(ele1.getMomentum().magnitude(), ele2.getMomentum().magnitude()); - pyEleVspyEleNoBeam.fill(ele1.getMomentum().y(), ele2.getMomentum().y()); - pxEleVspxEleNoBeam.fill(ele1.getMomentum().x(), ele2.getMomentum().x()); - } - //look at beam-beam events - if (ele1.getMomentum().magnitude() > beambeamCut && ele2.getMomentum().magnitude() > beambeamCut) { - pEleVspEleBeamBeam.fill(ele1.getMomentum().magnitude(), ele2.getMomentum().magnitude()); - pEleVsthetaBeamBeam.fill(p1.magnitude(), theta1); - pEleVsthetaBeamBeam.fill(p2.magnitude(), theta2); - thetaEleVsthetaBeamBeam.fill(theta1, theta2); - } - - //look at "Moller" events (if that's what they really are - if (ele1.getMomentum().magnitude() + ele2.getMomentum().magnitude() > molPSumMin - && ele1.getMomentum().magnitude() + ele2.getMomentum().magnitude() < molPSumMax - && (p1.magnitude() < beambeamCut && p2.magnitude() < beambeamCut)) { - - Track ele1trk = ele1.getTracks().get(0); - Track ele2trk = ele2.getTracks().get(0); - SeedTrack stEle1 = TrackUtils.makeSeedTrackFromBaseTrack(ele1trk); - SeedTrack stEle2 = TrackUtils.makeSeedTrackFromBaseTrack(ele2trk); - BilliorTrack btEle1 = new BilliorTrack(stEle1.getSeedCandidate().getHelix()); - BilliorTrack btEle2 = new BilliorTrack(stEle2.getSeedCandidate().getHelix()); - BilliorVertex bv = fitVertex(btEle1, btEle2); -// LOGGER.info("ee vertex: "+bv.toString()); - mollerMass.fill(bv.getParameters().get("invMass")); - mollerVx.fill(bv.getPosition().x()); - mollerVy.fill(bv.getPosition().y()); - mollerVz.fill(bv.getPosition().z()); - mollerXVsVtxZ.fill(bv.getPosition().x(), bv.getPosition().z()); - mollerYVsVtxZ.fill(bv.getPosition().y(), bv.getPosition().z()); - mollerXVsVtxY.fill(bv.getPosition().x(), bv.getPosition().y()); - - double ux = (ele1.getMomentum().x()+ele2.getMomentum().x())/(ele1.getMomentum().z()+ele2.getMomentum().z()); - double uy = (ele1.getMomentum().y()+ele2.getMomentum().y())/(ele1.getMomentum().z()+ele2.getMomentum().z()); - mollerUx.fill(ux); - mollerUy.fill(uy); - - if (Math.abs(bv.getPosition().x()) < 2 - && Math.abs(bv.getPosition().y()) < 0.5) { - mollerMassVtxCut.fill(bv.getParameters().get("invMass")); - mollerVzVtxCut.fill(bv.getPosition().z()); - } - pEleVspEleMoller.fill(p1.magnitude(), p2.magnitude()); - pEleVsthetaMoller.fill(p1.magnitude(), theta1); - pEleVsthetaMoller.fill(p2.magnitude(), theta2); - thetaEleVsthetaMoller.fill(theta1, theta2); - } - } - } - - @Override - public void printDQMData() { - LOGGER.info("V0Monitoring::printDQMData"); - for (Entry<String, Double> entry : monitoredQuantityMap.entrySet()) - LOGGER.info(entry.getKey() + " = " + entry.getValue()); - LOGGER.info("*******************************"); - } - - /** - * Calculate the averages here and fill the map - */ - @Override - public void calculateEndOfRunQuantities() { - - IAnalysisFactory analysisFactory = IAnalysisFactory.create(); - IFitFactory fitFactory = analysisFactory.createFitFactory(); - IFitter fitter = fitFactory.createFitter("chi2"); - 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)\""); - - if (resVx != null && resVy != null & resVz != null) { - double[] parsVx = resVx.fittedParameters(); - double[] parsVy = resVy.fittedParameters(); - double[] parsVz = resVz.fittedParameters(); - - for (int i = 0; i < 5; i++) - LOGGER.info("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[2], sumVx / nTotV0); -// monitoredQuantityMap.put(fpQuantNames[3], sumVy / nTotV0); -// monitoredQuantityMap.put(fpQuantNames[4], sumVz / nTotV0); - monitoredQuantityMap.put(beamConV0CandidatesColName + " " + triggerType + " " + fpQuantNames[2], parsVx[1]); - monitoredQuantityMap.put(beamConV0CandidatesColName + " " + triggerType + " " + fpQuantNames[3], parsVy[1]); - monitoredQuantityMap.put(beamConV0CandidatesColName + " " + triggerType + " " + fpQuantNames[4], parsVz[1]); - monitoredQuantityMap.put(beamConV0CandidatesColName + " " + triggerType + " " + fpQuantNames[5], parsVx[2]); - monitoredQuantityMap.put(beamConV0CandidatesColName + " " + triggerType + " " + fpQuantNames[6], parsVy[2]); - monitoredQuantityMap.put(beamConV0CandidatesColName + " " + triggerType + " " + fpQuantNames[7], parsVz[2]); - } - monitoredQuantityMap.put(beamConV0CandidatesColName + " " + triggerType + " " + fpQuantNames[0], (double) nTotV0 / nRecoEvents); - monitoredQuantityMap.put(beamConV0CandidatesColName + " " + triggerType + " " + fpQuantNames[1], sumMass / nTotV0); - monitoredQuantityMap.put(beamConV0CandidatesColName + " " + triggerType + " " + 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 - LOGGER.info("ALTER TABLE dqm ADD " + fpQuantNames[i] + " double;"); - } - - IFitResult fitVertexPosition(IHistogram1D h1d, IFitter fitter, double[] init, String range - ) { - IFitResult ifr = null; - try { - ifr = fitter.fit(h1d, "g+p1", init, range); - } catch (RuntimeException ex) { - LOGGER.info(this.getClass().getSimpleName() + ": caught exception in fitGaussian"); - } - return ifr; - } - - private BilliorVertex fitVertex(BilliorTrack electron, BilliorTrack positron) { - // Create a vertex fitter from the magnetic field. - double bField = 0.24; - double[] beamSize = {0.001, 0.2, 0.02}; - BilliorVertexer vtxFitter = new BilliorVertexer(bField); - // TODO: The beam size should come from the conditions database. - vtxFitter.setBeamSize(beamSize); - - // Perform the vertexing based on the specified constraint. - vtxFitter.doBeamSpotConstraint(false); - - // Add the electron and positron tracks to a track list for - // the vertex fitter. - List<BilliorTrack> billiorTracks = new ArrayList<BilliorTrack>(); - - billiorTracks.add(electron); - - billiorTracks.add(positron); - - // Find and return a vertex based on the tracks. - return vtxFitter.fitVertex(billiorTracks); - } - - private static boolean hasSharedStrips(ReconstructedParticle vertex, RelationalTable hittostrip, RelationalTable hittorotated) { - return hasSharedStrips(vertex.getParticles().get(0), vertex.getParticles().get(1), hittostrip, hittorotated); - } - - private static boolean hasSharedStrips(ReconstructedParticle fs1, ReconstructedParticle fs2, RelationalTable hittostrip, RelationalTable hittorotated) { - return TrackUtils.hasSharedStrips(fs1.getTracks().get(0), fs2.getTracks().get(0), hittostrip, hittorotated); - } + private static Logger LOGGER = Logger.getLogger(V0Monitoring.class.getPackage().getName()); + + String finalStateParticlesColName = "FinalStateParticles"; + String unconstrainedV0CandidatesColName = "UnconstrainedV0Candidates"; + String beamConV0CandidatesColName = "BeamspotConstrainedV0Candidates"; + String targetV0ConCandidatesColName = "TargetConstrainedV0Candidates"; + String[] fpQuantNames = {"nV0_per_Event", "avg_BSCon_mass", "avg_BSCon_Vx", "avg_BSCon_Vy", "avg_BSCon_Vz", "sig_BSCon_Vx", "sig_BSCon_Vy", "sig_BSCon_Vz", "avg_BSCon_Chi2"}; + //some counters + int nRecoEvents = 0; + int nTotV0 = 0; + int nTot2Ele = 0; + //some summers + double sumMass = 0.0; + double sumVx = 0.0; + double sumVy = 0.0; + double sumVz = 0.0; + double sumChi2 = 0.0; + + /* V0 Quantities */ + /* Mass, vertex, chi^2 of fit */ + /* unconstrained */ + IHistogram1D unconMass; + IHistogram1D unconVx; + IHistogram1D unconVy; + IHistogram1D unconVz; + IHistogram1D unconChi2; + IHistogram2D unconVzVsChi2; + IHistogram2D unconChi2VsTrkChi2; + /* beamspot constrained */ + + IHistogram1D nV0; + + IHistogram1D v0Time; + IHistogram1D v0Dt; + IHistogram2D trigTimeV0Time; + IHistogram1D trigTime; + + IHistogram1D bsconMass; + IHistogram1D bsconVx; + IHistogram1D bsconVy; + IHistogram1D bsconVz; + IHistogram1D bsconChi2; + IHistogram2D bsconVzVsChi2; + IHistogram2D bsconChi2VsTrkChi2; + /* target constrained */ + IHistogram1D tarconMass; + IHistogram1D tarconVx; + IHistogram1D tarconVy; + IHistogram1D tarconVz; + IHistogram1D tarconChi2; + IHistogram2D tarconVzVsChi2; + IHistogram2D tarconChi2VsTrkChi2; + + IHistogram2D pEleVspPos; + IHistogram1D pEle; + IHistogram1D pPos; + + IHistogram2D pEleVspPosWithCut; + IHistogram2D pyEleVspyPos; + IHistogram2D pxEleVspxPos; + + IHistogram2D VtxZVsMass; + IHistogram2D VtxYVsVtxZ; + IHistogram2D VtxXVsVtxZ; + IHistogram2D VtxXVsVtxY; + IHistogram2D VtxXVsVtxPx; + IHistogram2D VtxYVsVtxPy; + IHistogram2D VtxZVsVtxPx; + IHistogram2D VtxZVsVtxPy; + IHistogram2D VtxZVsVtxPz; + + IHistogram2D VtxZVsL1Iso; + IHistogram2D VtxZVsTrkChi2; + + IHistogram2D pEleVspEle; + IHistogram2D phiEleVsphiEle; + IHistogram2D pyEleVspyEle; + IHistogram2D pxEleVspxEle; + IHistogram2D pEleVspEleNoBeam; + IHistogram2D pyEleVspyEleNoBeam; + IHistogram2D pxEleVspxEleNoBeam; + IHistogram2D pEleVspEleMoller; + IHistogram2D pEleVsthetaMoller; + IHistogram2D thetaEleVsthetaMoller; + IHistogram2D pEleVspEleBeamBeam; + IHistogram2D pEleVsthetaBeamBeam; + IHistogram2D thetaEleVsthetaBeamBeam; + + IHistogram1D mollerMass; + IHistogram1D mollerMassVtxCut; + IHistogram1D mollerVx; + IHistogram1D mollerVy; + IHistogram1D mollerVz; + IHistogram1D mollerVzVtxCut; + IHistogram2D mollerXVsVtxZ; + IHistogram2D mollerYVsVtxZ; + IHistogram2D mollerXVsVtxY; + + IHistogram1D mollerUx; + IHistogram1D mollerUy; + + + + IHistogram1D sumChargeHisto; + IHistogram1D numChargeHisto; + + private final String plotDir = "V0Monitoring/"; + + private final BasicHep3Matrix beamAxisRotation = new BasicHep3Matrix(); + + double maxFactor = 1.25; + + + double thetaMax = 0.06; + double thetaMin = 0.015; + + + + double feeMomentumCut, v0ESumMinCut, v0MaxPCut, v0ESumMaxCut, + molPSumMin, molPSumMax, beambeamCut; + + + + @Override + protected void detectorChanged(Detector detector) { + + BeamEnergyCollection beamEnergyCollection = + this.getConditionsManager().getCachedConditions(BeamEnergyCollection.class, "beam_energies").getCachedData(); + double beamEnergy = beamEnergyCollection.get(0).getBeamEnergy(); + feeMomentumCut = 0.75*beamEnergy; //GeV + + v0ESumMinCut = 0.8 * beamEnergy; + v0ESumMaxCut = 1.25 * beamEnergy; + + v0MaxPCut = 1.05*beamEnergy;//GeV + molPSumMin = 0.80*beamEnergy; + molPSumMax = 1.25*beamEnergy; + beambeamCut = 0.80*beamEnergy; + + + + beamAxisRotation.setActiveEuler(Math.PI / 2, -0.0305, -Math.PI / 2); + + LOGGER.info("Setting up the plotter"); + aida.tree().cd("/"); + String xtra = "Extras"; + String trkType = "SeedTrack/"; + if (isGBL) + trkType = "GBLTrack/"; + + double maxMass = .2*beamEnergy; + double maxMassMoller = .1*Math.sqrt(beamEnergy); + /* V0 Quantities */ + /* Mass, vertex, chi^2 of fit */ + /* unconstrained */ + unconMass = aida.histogram1D(plotDir + trkType + triggerType + "/" + unconstrainedV0CandidatesColName + "/" + "Invariant Mass (GeV)", 100, 0, maxMass); + unconVx = aida.histogram1D(plotDir + trkType + triggerType + "/" + unconstrainedV0CandidatesColName + "/" + "Vx (mm)", 50, -10, 10); + unconVy = aida.histogram1D(plotDir + trkType + triggerType + "/" + unconstrainedV0CandidatesColName + "/" + "Vy (mm)", 50, -10, 10); + unconVz = aida.histogram1D(plotDir + trkType + triggerType + "/" + unconstrainedV0CandidatesColName + "/" + "Vz (mm)", 50, -50, 50); + unconChi2 = aida.histogram1D(plotDir + trkType + triggerType + "/" + unconstrainedV0CandidatesColName + "/" + "Chi2", 25, 0, 25); + unconVzVsChi2 = aida.histogram2D(plotDir + trkType + triggerType + "/" + unconstrainedV0CandidatesColName + "/" + "Vz vs. Chi2", 25, 0, 25, 50, -50, 50); + unconChi2VsTrkChi2 = aida.histogram2D(plotDir + trkType + triggerType + "/" + unconstrainedV0CandidatesColName + "/" + "Chi2 vs. total track chi2", 50, 0, 50, 50, 0, 25); + /* beamspot constrained */ + bsconMass = aida.histogram1D(plotDir + trkType + triggerType + "/" + beamConV0CandidatesColName + "/" + "Mass (GeV)", 100, 0, maxMass); + bsconVx = aida.histogram1D(plotDir + trkType + triggerType + "/" + beamConV0CandidatesColName + "/" + "Vx (mm)", 50, -10, 10); + bsconVy = aida.histogram1D(plotDir + trkType + triggerType + "/" + beamConV0CandidatesColName + "/" + "Vy (mm)", 50, -10, 10); + bsconVz = aida.histogram1D(plotDir + trkType + triggerType + "/" + beamConV0CandidatesColName + "/" + "Vz (mm)", 50, -50, 50); + bsconChi2 = aida.histogram1D(plotDir + trkType + triggerType + "/" + beamConV0CandidatesColName + "/" + "Chi2", 25, 0, 25); + bsconVzVsChi2 = aida.histogram2D(plotDir + trkType + triggerType + "/" + beamConV0CandidatesColName + "/" + "Vz vs. Chi2", 25, 0, 25, 50, -50, 50); + bsconChi2VsTrkChi2 = aida.histogram2D(plotDir + trkType + triggerType + "/" + beamConV0CandidatesColName + "/" + "Chi2 vs. total track chi2", 50, 0, 50, 50, 0, 25); + /* target constrained */ + tarconMass = aida.histogram1D(plotDir + trkType + triggerType + "/" + targetV0ConCandidatesColName + "/" + "Mass (GeV)", 100, 0, maxMass); + tarconVx = aida.histogram1D(plotDir + trkType + triggerType + "/" + targetV0ConCandidatesColName + "/" + "Vx (mm)", 50, -1, 1); + tarconVy = aida.histogram1D(plotDir + trkType + triggerType + "/" + targetV0ConCandidatesColName + "/" + "Vy (mm)", 50, -1, 1); + tarconVz = aida.histogram1D(plotDir + trkType + triggerType + "/" + targetV0ConCandidatesColName + "/" + "Vz (mm)", 50, -10, 10); + tarconChi2 = aida.histogram1D(plotDir + trkType + triggerType + "/" + targetV0ConCandidatesColName + "/" + "Chi2", 25, 0, 25); + tarconVzVsChi2 = aida.histogram2D(plotDir + trkType + triggerType + "/" + targetV0ConCandidatesColName + "/" + "Vz vs. Chi2", 25, 0, 25, 50, -50, 50); + tarconChi2VsTrkChi2 = aida.histogram2D(plotDir + trkType + triggerType + "/" + targetV0ConCandidatesColName + "/" + "Chi2 vs. total track chi2", 50, 0, 50, 50, 0, 25); + + nV0 = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Number of V0 per event", 10, 0, 10); + v0Time = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "V0 mean time", 100, -25, 25); + v0Dt = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "V0 time difference", 100, -25, 25); + trigTimeV0Time = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Trigger phase vs. V0 mean time", 100, -25, 25, 6, 0, 24); + trigTime = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Trigger phase", 6, 0, 24); + + pEleVspPos = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "P(e) vs P(p)", 50, 0, beamEnergy * maxFactor, 50, 0, beamEnergy * maxFactor); + + + pEle = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "P(e)", 50, 0, beamEnergy * maxFactor); + pPos = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "P(p)", 50, 0, beamEnergy * maxFactor); + + pEleVspPosWithCut = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "P(e) vs P(p): Radiative", 50, 0, beamEnergy * maxFactor, 50, 0, beamEnergy * maxFactor); + pyEleVspyPos = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Py(e) vs Py(p)", 50, -0.04*beamEnergy, 0.04*beamEnergy, 50, -0.04*beamEnergy, 0.04*beamEnergy); + pxEleVspxPos = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Px(e) vs Px(p)", 50, -0.04*beamEnergy, 0.04*beamEnergy, 50, -0.04*beamEnergy, 0.04*beamEnergy); + VtxZVsMass = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Vz vs Mass", 50, 0, maxMass, 50, -50, 80); + VtxXVsVtxZ = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Vx vs Vz", 100, -10, 10, 100, -50, 80); + VtxYVsVtxZ = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Vy vs Vz", 100, -5, 5, 100, -50, 80); + VtxXVsVtxY = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Vx vs Vy", 100, -10, 10, 100, -5, 5); + VtxXVsVtxPx = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Vx vs Px", 100, -0.1, 0.1, 100, -10, 10); + VtxYVsVtxPy = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Vy vs Py", 100, -0.1, 0.1, 100, -5, 5); + VtxZVsVtxPx = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Vz vs Px", 100, -0.1, 0.1, 100, -50, 80); + VtxZVsVtxPy = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Vz vs Py", 100, -0.1, 0.1, 100, -50, 80); + VtxZVsVtxPz = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Vz vs Pz", 100, 0.0, beamEnergy * maxFactor, 100, -50, 80); + VtxZVsL1Iso = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Vz vs L1 Isolation", 100, 0.0, 5.0, 50, -50, 80); + VtxZVsTrkChi2 = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Vz vs Track Chi2", 50, 0, 50, 50, -50, 80); + phiEleVsphiEle = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/phi(e) vs phi(e)", 50, -Math.PI, Math.PI, 50, -Math.PI, Math.PI); + pyEleVspyEle = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Py(e) vs Py(e)", 50, -0.04*beamEnergy, 0.04*beamEnergy, 50, -0.04*beamEnergy, 0.04*beamEnergy); + pxEleVspxEle = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Px(e) vs Px(e)", 50, -0.02*beamEnergy, 0.06*beamEnergy, 50, -0.02*beamEnergy, 0.06*beamEnergy); + + // electron vs electron momentum with different cuts + // 1) no cut + // 2) cut out FEE + // 3) cut out FEE and also cut on momentum sum + // 4) cut out everything except FEE coincidentals + pEleVspEle = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/P(e) vs P(e)", 50, 0, beamEnergy * maxFactor, 50, 0, beamEnergy * maxFactor); + pEleVspEleNoBeam = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/P(e) vs P(e) NoBeam", 50, 0, beambeamCut, 50, 0, beambeamCut); + pEleVspEleMoller = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/P(e) vs P(e) Moller", 50, 0, beambeamCut, 50, 0, beambeamCut); + pEleVspEleBeamBeam = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/P(e) vs P(e) BeamBeam", 50, beambeamCut, beamEnergy * maxFactor, 50, beambeamCut, beamEnergy * maxFactor); + + pyEleVspyEleNoBeam = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Py(e) vs Py(e) NoBeam", 50, -0.04*beamEnergy, 0.04*beamEnergy, 50, -0.04*beamEnergy, 0.04*beamEnergy); + pxEleVspxEleNoBeam = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Px(e) vs Px(e) NoBeam", 50, -0.02*beamEnergy, 0.06*beamEnergy, 50, -0.02*beamEnergy, 0.06*beamEnergy); + sumChargeHisto = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Total Charge of Event", 5, -2, 3); + numChargeHisto = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "Number of Charged Particles", 6, 0, 6); + + pEleVsthetaMoller = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/P(e) vs Theta Moller", 50, 0, beambeamCut, 50, thetaMin, thetaMax); + thetaEleVsthetaMoller = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Theta vs Theta Moller", 50, thetaMin, thetaMax, 50, thetaMin, thetaMax); + pEleVsthetaBeamBeam = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/P(e) vs Theta BeamBeam", 50, beambeamCut, beamEnergy * maxFactor, 50, thetaMin, thetaMax); + thetaEleVsthetaBeamBeam = aida.histogram2D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Theta vs Theta BeamBeam", 50, thetaMin, thetaMax, 50, thetaMin, thetaMax); + + mollerMass = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Moller Mass (GeV)", 100, 0, maxMassMoller); + mollerMassVtxCut = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Moller Mass (GeV): VtxCut", 100, 0, maxMassMoller); + mollerVx = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Moller Vx (mm)", 50, -10, 10); + mollerVy = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Moller Vy (mm)", 50, -2, 2); + mollerVz = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Moller Vz (mm)", 50, -50, 50); + mollerVzVtxCut = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Moller Vz (mm): VtxCut", 50, -50, 50); + 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, .015, .045); + mollerUy = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Moller Pair Momentum Direction Uy", 100, -.01, .01); + + mollerHiP = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/P(high)", 100, 0, beamEnergy*maxFactor); + mollerLoP = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/P(low)", 100, 0, beamEnergy*maxFactor); + + mollerEitherP = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/P(either)", 100, 0, beamEnergy*maxFactor); + mollerPsum = aida.histogram1D(plotDir + trkType + triggerType + "/" + xtra + "/" + "2 Electron/Psum", 100, 0, beamEnergy*maxFactor); + + } + + IHistogram1D mollerHiP, mollerLoP, mollerEitherP, mollerPsum; + + @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; + + //check to see if this event is from the correct trigger (or "all"); + if (!matchTrigger(event)) + return; + + nRecoEvents++; + + RelationalTable hitToStrips = TrackUtils.getHitToStripsTable(event); + RelationalTable hitToRotated = TrackUtils.getHitToRotatedTable(event); + + List<ReconstructedParticle> unonstrainedV0List = event.get(ReconstructedParticle.class, unconstrainedV0CandidatesColName); + for (ReconstructedParticle uncV0 : unonstrainedV0List) { + if (isGBL != TrackType.isGBL(uncV0.getType())) + continue; + Vertex uncVert = uncV0.getStartVertex(); + Hep3Vector pVtxRot = VecOp.mult(beamAxisRotation, uncV0.getMomentum()); + Hep3Vector vtxPosRot = VecOp.mult(beamAxisRotation, uncVert.getPosition()); + double theta = Math.acos(pVtxRot.z() / pVtxRot.magnitude()); + double phi = Math.atan2(pVtxRot.y(), pVtxRot.x()); + unconVx.fill(vtxPosRot.x()); + unconVy.fill(vtxPosRot.y()); + unconVz.fill(vtxPosRot.z()); + unconMass.fill(uncV0.getMass()); + unconChi2.fill(uncVert.getChi2()); + unconVzVsChi2.fill(uncVert.getChi2(), vtxPosRot.z()); + unconChi2VsTrkChi2.fill(Math.max(uncV0.getParticles().get(0).getTracks().get(0).getChi2(), uncV0.getParticles().get(1).getTracks().get(0).getChi2()), uncVert.getChi2()); + + VtxZVsMass.fill(uncV0.getMass(), vtxPosRot.z()); + VtxXVsVtxZ.fill(vtxPosRot.x(), vtxPosRot.z()); + VtxYVsVtxZ.fill(vtxPosRot.y(), vtxPosRot.z()); + VtxXVsVtxY.fill(vtxPosRot.x(), vtxPosRot.y()); + VtxXVsVtxPx.fill(pVtxRot.x(), vtxPosRot.x()); + VtxYVsVtxPy.fill(pVtxRot.y(), vtxPosRot.y()); + VtxZVsVtxPx.fill(pVtxRot.x(), vtxPosRot.z()); + VtxZVsVtxPy.fill(pVtxRot.y(), vtxPosRot.z()); + VtxZVsVtxPz.fill(pVtxRot.z(), vtxPosRot.z()); + + //this always has 2 tracks. + List<ReconstructedParticle> trks = uncV0.getParticles(); + // Track ele = trks.get(0).getTracks().get(0); + // Track pos = trks.get(1).getTracks().get(0); + // //if track #0 has charge>0 it's the electron! This seems mixed up, but remember the track + // //charge is assigned assuming a positive B-field, while ours is negative + // if (trks.get(0).getCharge() > 0) { + // pos = trks.get(0).getTracks().get(0); + // ele = trks.get(1).getTracks().get(0); + // } + // aida.histogram2D(plotDir + trkType + triggerType + "/" + "P(e) vs P(p)").fill(getMomentum(ele), getMomentum(pos)); + // aida.histogram2D(plotDir + trkType + triggerType + "/" + "Px(e) vs Px(p)").fill(ele.getTrackStates().get(0).getMomentum()[1], pos.getTrackStates().get(0).getMomentum()[1]); + // aida.histogram2D(plotDir + trkType + triggerType + "/" + "Py(e) vs Py(p)").fill(ele.getTrackStates().get(0).getMomentum()[2], pos.getTrackStates().get(0).getMomentum()[2]); + ReconstructedParticle ele = trks.get(0); + ReconstructedParticle pos = trks.get(1); + //ReconParticles have the charge correct. + if (trks.get(0).getCharge() > 0) { + pos = trks.get(0); + ele = trks.get(1); + } + if (ele.getCharge() < 0 && pos.getCharge() > 0) { + VtxZVsTrkChi2.fill(Math.max(uncV0.getParticles().get(0).getTracks().get(0).getChi2(), uncV0.getParticles().get(1).getTracks().get(0).getChi2()), uncVert.getPosition().z()); + + Double[] eleIso = TrackUtils.getIsolations(ele.getTracks().get(0), hitToStrips, hitToRotated); + Double[] posIso = TrackUtils.getIsolations(pos.getTracks().get(0), hitToStrips, hitToRotated); + if (eleIso[0] != null && posIso[0] != null) { + double eleL1Iso = Math.min(Math.abs(eleIso[0]), Math.abs(eleIso[1])); + double posL1Iso = Math.min(Math.abs(posIso[0]), Math.abs(posIso[1])); + double minL1Iso = Math.min(eleL1Iso, posL1Iso); + VtxZVsL1Iso.fill(minL1Iso, uncVert.getPosition().z()); + } + + double pe = ele.getMomentum().magnitude(); + double pp = pos.getMomentum().magnitude(); + Hep3Vector pEleRot = VecOp.mult(beamAxisRotation, ele.getMomentum()); + Hep3Vector pPosRot = VecOp.mult(beamAxisRotation, pos.getMomentum()); + + pEleVspPos.fill(pe, pp); + pEle.fill(pe); + pPos.fill(pp); + + + pxEleVspxPos.fill(pEleRot.x(), pPosRot.x()); + pyEleVspyPos.fill(pEleRot.y(), pPosRot.y()); + if (pe < v0MaxPCut && pp < v0MaxPCut && (pe + pp) > v0ESumMinCut && (pe + pp) < v0ESumMaxCut)//enrich radiative-like events + + pEleVspPosWithCut.fill(pe, pp); + } + + double eleT = TrackUtils.getTrackTime(ele.getTracks().get(0), hitToStrips, hitToRotated); + double posT = TrackUtils.getTrackTime(pos.getTracks().get(0), hitToStrips, hitToRotated); + double meanT = (eleT + posT) / 2.0; + v0Time.fill(meanT); + v0Dt.fill(eleT - posT); + trigTimeV0Time.fill(meanT, event.getTimeStamp() % 24); + trigTime.fill(event.getTimeStamp() % 24); + } + + List<ReconstructedParticle> beamConstrainedV0List = event.get(ReconstructedParticle.class, beamConV0CandidatesColName); + nV0.fill(beamConstrainedV0List.size()); + for (ReconstructedParticle bsV0 : beamConstrainedV0List) { + + if (isGBL != TrackType.isGBL(bsV0.getType())) + continue; + nTotV0++; + Vertex bsVert = bsV0.getStartVertex(); + Hep3Vector vtxPosRot = VecOp.mult(beamAxisRotation, bsVert.getPosition()); + bsconVx.fill(vtxPosRot.x()); + bsconVy.fill(vtxPosRot.y()); + bsconVz.fill(vtxPosRot.z()); + bsconMass.fill(bsV0.getMass()); + bsconChi2.fill(bsVert.getChi2()); + bsconVzVsChi2.fill(bsVert.getChi2(), vtxPosRot.z()); + bsconChi2VsTrkChi2.fill(Math.max(bsV0.getParticles().get(0).getTracks().get(0).getChi2(), bsV0.getParticles().get(1).getTracks().get(0).getChi2()), bsVert.getChi2()); + sumMass += bsV0.getMass(); + sumVx += vtxPosRot.x(); + sumVy += vtxPosRot.y(); + sumVz += vtxPosRot.z(); + sumChi2 += bsVert.getChi2(); + } + + List<ReconstructedParticle> targetConstrainedV0List = event.get(ReconstructedParticle.class, targetV0ConCandidatesColName); + for (ReconstructedParticle tarV0 : targetConstrainedV0List) { + + if (isGBL != TrackType.isGBL(tarV0.getType())) + continue; + + Vertex tarVert = tarV0.getStartVertex(); + Hep3Vector vtxPosRot = VecOp.mult(beamAxisRotation, tarVert.getPosition()); + tarconVx.fill(vtxPosRot.x()); + tarconVy.fill(vtxPosRot.y()); + tarconVz.fill(vtxPosRot.z()); + tarconMass.fill(tarV0.getMass()); + tarconChi2.fill(tarVert.getChi2()); + tarconVzVsChi2.fill(tarVert.getChi2(), vtxPosRot.z()); + tarconChi2VsTrkChi2.fill(Math.max(tarV0.getParticles().get(0).getTracks().get(0).getChi2(), tarV0.getParticles().get(1).getTracks().get(0).getChi2()), tarVert.getChi2()); + } + List<ReconstructedParticle> finalStateParticles = event.get(ReconstructedParticle.class, finalStateParticlesColName); + if (debug) + LOGGER.info("This events has " + finalStateParticles.size() + " final state particles"); + + ReconstructedParticle ele1 = null; + ReconstructedParticle ele2 = null; + int sumCharge = 0; + int numChargedParticles = 0; + for (ReconstructedParticle fsPart : finalStateParticles) { + if (isGBL != TrackType.isGBL(fsPart.getType())) + continue; + if (debug) + LOGGER.info("PDGID = " + fsPart.getParticleIDUsed() + "; charge = " + fsPart.getCharge() + "; pz = " + fsPart.getMomentum().x()); + double charge = fsPart.getCharge(); + sumCharge += charge; + if (charge != 0) { + numChargedParticles++; + if (charge < 1) + if (ele1 == null) + ele1 = fsPart; + else if (!hasSharedStrips(ele1, fsPart, hitToStrips, hitToRotated)) + ele2 = fsPart; + } + } + sumChargeHisto.fill(sumCharge); + numChargeHisto.fill(numChargedParticles); + + if (ele1 != null && ele2 != null) { + Hep3Vector p1 = VecOp.mult(beamAxisRotation, ele1.getMomentum()); + Hep3Vector p2 = VecOp.mult(beamAxisRotation, ele2.getMomentum()); + // Hep3Vector beamAxis = new BasicHep3Vector(Math.sin(0.0305), 0, Math.cos(0.0305)); + // LOGGER.info(p1); + // LOGGER.info(VecOp.mult(rot, p1)); + + double theta1 = Math.acos(p1.z() / p1.magnitude()); + double theta2 = Math.acos(p2.z() / p2.magnitude()); + double phi1 = Math.atan2(p1.y(), p1.x()); + double phi2 = Math.atan2(p2.y(), p2.x()); + phiEleVsphiEle.fill(phi1, phi2); + pEleVspEle.fill(ele1.getMomentum().magnitude(), ele2.getMomentum().magnitude()); + pyEleVspyEle.fill(ele1.getMomentum().y(), ele2.getMomentum().y()); + pxEleVspxEle.fill(ele1.getMomentum().x(), ele2.getMomentum().x()); + //remove beam electrons + if (ele1.getMomentum().magnitude() < beambeamCut && ele2.getMomentum().magnitude() < beambeamCut) { + pEleVspEleNoBeam.fill(ele1.getMomentum().magnitude(), ele2.getMomentum().magnitude()); + pyEleVspyEleNoBeam.fill(ele1.getMomentum().y(), ele2.getMomentum().y()); + pxEleVspxEleNoBeam.fill(ele1.getMomentum().x(), ele2.getMomentum().x()); + } + //look at beam-beam events + if (ele1.getMomentum().magnitude() > beambeamCut && ele2.getMomentum().magnitude() > beambeamCut) { + pEleVspEleBeamBeam.fill(ele1.getMomentum().magnitude(), ele2.getMomentum().magnitude()); + pEleVsthetaBeamBeam.fill(p1.magnitude(), theta1); + pEleVsthetaBeamBeam.fill(p2.magnitude(), theta2); + thetaEleVsthetaBeamBeam.fill(theta1, theta2); + } + + //look at "Moller" events (if that's what they really are + if (ele1.getMomentum().magnitude() + ele2.getMomentum().magnitude() > molPSumMin + && ele1.getMomentum().magnitude() + ele2.getMomentum().magnitude() < molPSumMax + && (p1.magnitude() < beambeamCut && p2.magnitude() < beambeamCut)) { + + Track ele1trk = ele1.getTracks().get(0); + Track ele2trk = ele2.getTracks().get(0); + SeedTrack stEle1 = TrackUtils.makeSeedTrackFromBaseTrack(ele1trk); + SeedTrack stEle2 = TrackUtils.makeSeedTrackFromBaseTrack(ele2trk); + BilliorTrack btEle1 = new BilliorTrack(stEle1.getSeedCandidate().getHelix()); + BilliorTrack btEle2 = new BilliorTrack(stEle2.getSeedCandidate().getHelix()); + BilliorVertex bv = fitVertex(btEle1, btEle2, TrackUtils.getBField(event.getDetector()).magnitude()); + // LOGGER.info("ee vertex: "+bv.toString()); + double invMass = bv.getParameters().get("invMass"); + mollerMass.fill(invMass); + mollerVx.fill(bv.getPosition().x()); + mollerVy.fill(bv.getPosition().y()); + mollerVz.fill(bv.getPosition().z()); + mollerXVsVtxZ.fill(bv.getPosition().x(), bv.getPosition().z()); + mollerYVsVtxZ.fill(bv.getPosition().y(), bv.getPosition().z()); + mollerXVsVtxY.fill(bv.getPosition().x(), bv.getPosition().y()); + + double ux = (ele1.getMomentum().x()+ele2.getMomentum().x())/(ele1.getMomentum().z()+ele2.getMomentum().z()); + double uy = (ele1.getMomentum().y()+ele2.getMomentum().y())/(ele1.getMomentum().z()+ele2.getMomentum().z()); + mollerUx.fill(ux); + mollerUy.fill(uy); + + //higher and lower energy electrons in moller pair + double pt1 = ele1.getMomentum().magnitude(); + double pt2 = ele2.getMomentum().magnitude(); + double ph = (pt1>pt2) ? pt1 : pt2; + double pl = (pt1>pt2) ? pt2 : pt1; + + mollerHiP.fill(ph); + mollerLoP.fill(pl); + + mollerEitherP.fill(ph); + mollerEitherP.fill(pl); + mollerPsum.fill(pt1+pt2); + + + if (Math.abs(bv.getPosition().x()) < 2 + && Math.abs(bv.getPosition().y()) < 0.5) { + mollerMassVtxCut.fill(invMass); + mollerVzVtxCut.fill(bv.getPosition().z()); + } + pEleVspEleMoller.fill(p1.magnitude(), p2.magnitude()); + pEleVsthetaMoller.fill(p1.magnitude(), theta1); + pEleVsthetaMoller.fill(p2.magnitude(), theta2); + thetaEleVsthetaMoller.fill(theta1, theta2); + } + } + } + + @Override + public void printDQMData() { + LOGGER.info("V0Monitoring::printDQMData"); + for (Entry<String, Double> entry : monitoredQuantityMap.entrySet()) + LOGGER.info(entry.getKey() + " = " + entry.getValue()); + LOGGER.info("*******************************"); + } + + /** + * Calculate the averages here and fill the map + */ + @Override + public void calculateEndOfRunQuantities() { + + IAnalysisFactory analysisFactory = IAnalysisFactory.create(); + IFitFactory fitFactory = analysisFactory.createFitFactory(); + IFitter fitter = fitFactory.createFitter("chi2"); + 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)\""); + + if (resVx != null && resVy != null & resVz != null) { + double[] parsVx = resVx.fittedParameters(); + double[] parsVy = resVy.fittedParameters(); + double[] parsVz = resVz.fittedParameters(); + + for (int i = 0; i < 5; i++) + LOGGER.info("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[2], sumVx / nTotV0); + // monitoredQuantityMap.put(fpQuantNames[3], sumVy / nTotV0); + // monitoredQuantityMap.put(fpQuantNames[4], sumVz / nTotV0); + monitoredQuantityMap.put(beamConV0CandidatesColName + " " + triggerType + " " + fpQuantNames[2], parsVx[1]); + monitoredQuantityMap.put(beamConV0CandidatesColName + " " + triggerType + " " + fpQuantNames[3], parsVy[1]); + monitoredQuantityMap.put(beamConV0CandidatesColName + " " + triggerType + " " + fpQuantNames[4], parsVz[1]); + monitoredQuantityMap.put(beamConV0CandidatesColName + " " + triggerType + " " + fpQuantNames[5], parsVx[2]); + monitoredQuantityMap.put(beamConV0CandidatesColName + " " + triggerType + " " + fpQuantNames[6], parsVy[2]); + monitoredQuantityMap.put(beamConV0CandidatesColName + " " + triggerType + " " + fpQuantNames[7], parsVz[2]); + } + monitoredQuantityMap.put(beamConV0CandidatesColName + " " + triggerType + " " + fpQuantNames[0], (double) nTotV0 / nRecoEvents); + monitoredQuantityMap.put(beamConV0CandidatesColName + " " + triggerType + " " + fpQuantNames[1], sumMass / nTotV0); + monitoredQuantityMap.put(beamConV0CandidatesColName + " " + triggerType + " " + 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 + LOGGER.info("ALTER TABLE dqm ADD " + fpQuantNames[i] + " double;"); + } + + IFitResult fitVertexPosition(IHistogram1D h1d, IFitter fitter, double[] init, String range + ) { + IFitResult ifr = null; + try { + ifr = fitter.fit(h1d, "g+p1", init, range); + } catch (RuntimeException ex) { + LOGGER.info(this.getClass().getSimpleName() + ": caught exception in fitGaussian"); + } + return ifr; + } + + private BilliorVertex fitVertex(BilliorTrack electron, BilliorTrack positron, double bField) { + // Create a vertex fitter from the magnetic field. + double[] beamSize = {0.001, 0.2, 0.02}; + BilliorVertexer vtxFitter = new BilliorVertexer(bField); + // TODO: The beam size should come from the conditions database. + vtxFitter.setBeamSize(beamSize); + + // Perform the vertexing based on the specified constraint. + vtxFitter.doBeamSpotConstraint(false); + + // Add the electron and positron tracks to a track list for + // the vertex fitter. + List<BilliorTrack> billiorTracks = new ArrayList<BilliorTrack>(); + + billiorTracks.add(electron); + + billiorTracks.add(positron); + + // Find and return a vertex based on the tracks. + return vtxFitter.fitVertex(billiorTracks); + } + + private static boolean hasSharedStrips(ReconstructedParticle vertex, RelationalTable hittostrip, RelationalTable hittorotated) { + return hasSharedStrips(vertex.getParticles().get(0), vertex.getParticles().get(1), hittostrip, hittorotated); + } + + private static boolean hasSharedStrips(ReconstructedParticle fs1, ReconstructedParticle fs2, RelationalTable hittostrip, RelationalTable hittorotated) { + return TrackUtils.hasSharedStrips(fs1.getTracks().get(0), fs2.getTracks().get(0), hittostrip, hittorotated); + } } Modified: java/branches/jeremy-dev/analysis/src/main/java/org/hps/analysis/plots/AddPlots.java ============================================================================= --- java/branches/jeremy-dev/analysis/src/main/java/org/hps/analysis/plots/AddPlots.java (original) +++ java/branches/jeremy-dev/analysis/src/main/java/org/hps/analysis/plots/AddPlots.java Tue Mar 1 11:15:40 2016 @@ -15,7 +15,7 @@ import java.util.logging.Logger; import org.apache.commons.cli.CommandLine; -import org.apache.commons.cli.DefaultParser; +import org.apache.commons.cli.PosixParser; import org.apache.commons.cli.HelpFormatter; import org.apache.commons.cli.Options; import org.lcsim.util.aida.AIDA; @@ -43,7 +43,7 @@ } public static void main(String[] args) throws Exception { - CommandLine cl = new DefaultParser().parse(OPTIONS, args); + CommandLine cl = new PosixParser().parse(OPTIONS, args); if (cl.getArgList().isEmpty()) { throw new RuntimeException("No input AIDA files to add."); } Modified: java/branches/jeremy-dev/conditions/pom.xml ============================================================================= --- java/branches/jeremy-dev/conditions/pom.xml (original) +++ java/branches/jeremy-dev/conditions/pom.xml Tue Mar 1 11:15:40 2016 @@ -8,7 +8,7 @@ <groupId>org.hps</groupId> <artifactId>hps-parent</artifactId> <relativePath>../parent/pom.xml</relativePath> - <version>3.6-SNAPSHOT</version> + <version>3.7-SNAPSHOT</version> </parent> <scm> <url>http://java.freehep.org/svn/repos/hps/list/java/trunk/conditions/</url> @@ -37,6 +37,7 @@ <exclude>org/hps/conditions/api/ConditionsTagTest.java</exclude> <exclude>org/hps/conditions/HPSJAVA_529_Test.java</exclude> <exclude>org/hps/conditions/dummy/**.java</exclude> + <exclude>org/hps/conditions/beam/BeamEnergyTest.java</exclude> </excludes> </configuration> </plugin> Modified: java/branches/jeremy-dev/conditions/src/main/java/org/hps/conditions/api/ConditionsRecord.java ============================================================================= --- java/branches/jeremy-dev/conditions/src/main/java/org/hps/conditions/api/ConditionsRecord.java (original) +++ java/branches/jeremy-dev/conditions/src/main/java/org/hps/conditions/api/ConditionsRecord.java Tue Mar 1 11:15:40 2016 @@ -249,11 +249,11 @@ record = keyRecords.get(0); } else { if (action.equals(MultipleCollectionsAction.LAST_UPDATED)) { - record = sortedByUpdated().get(this.size() - 1); + record = keyRecords.sortedByUpdated().get(keyRecords.size() - 1); } else if (action.equals(MultipleCollectionsAction.LAST_CREATED)) { - record = sortedByCreated().get(this.size() - 1); + record = keyRecords.sortedByCreated().get(keyRecords.size() - 1); } else if (action.equals(MultipleCollectionsAction.LATEST_RUN_START)) { - record = sortedByRunStart().get(this.size() - 1); + record = keyRecords.sortedByRunStart().get(keyRecords.size() - 1); } else if (action.equals(MultipleCollectionsAction.ERROR)) { throw new RuntimeException("Multiple ConditionsRecord object found for conditions key " + key + "."); } Modified: java/branches/jeremy-dev/conditions/src/main/java/org/hps/conditions/cli/AbstractCommand.java ============================================================================= --- java/branches/jeremy-dev/conditions/src/main/java/org/hps/conditions/cli/AbstractCommand.java (original) +++ java/branches/jeremy-dev/conditions/src/main/java/org/hps/conditions/cli/AbstractCommand.java Tue Mar 1 11:15:40 2016 @@ -1,7 +1,7 @@ package org.hps.conditions.cli; import org.apache.commons.cli.CommandLine; -import org.apache.commons.cli.DefaultParser; +import org.apache.commons.cli.PosixParser; import org.apache.commons.cli.HelpFormatter; import org.apache.commons.cli.Options; import org.apache.commons.cli.ParseException; @@ -32,7 +32,7 @@ /** * The parser for the options. */ - private final DefaultParser parser = new DefaultParser(); + private final PosixParser parser = new PosixParser(); /** * Class constructor. Modified: java/branches/jeremy-dev/conditions/src/main/java/org/hps/conditions/cli/CommandLineTool.java ============================================================================= --- java/branches/jeremy-dev/conditions/src/main/java/org/hps/conditions/cli/CommandLineTool.java (original) +++ java/branches/jeremy-dev/conditions/src/main/java/org/hps/conditions/cli/CommandLineTool.java Tue Mar 1 11:15:40 2016 @@ -11,7 +11,7 @@ import org.apache.commons.cli.Option; 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.hps.conditions.database.DatabaseConditionsManager; import org.lcsim.conditions.ConditionsManager.ConditionsNotFoundException; @@ -79,7 +79,7 @@ /** * The options parser. */ - private final DefaultParser parser = new DefaultParser(); + private final PosixParser parser = new PosixParser(); /** * Exit with the given status. Modified: java/branches/jeremy-dev/conditions/src/main/java/org/hps/conditions/database/ConnectionParameters.java ============================================================================= --- java/branches/jeremy-dev/conditions/src/main/java/org/hps/conditions/database/ConnectionParameters.java (original) +++ java/branches/jeremy-dev/conditions/src/main/java/org/hps/conditions/database/ConnectionParameters.java Tue Mar 1 11:15:40 2016 @@ -13,7 +13,8 @@ import java.util.logging.Logger; /** - * This class encapsulates the parameters for connecting to a database, including host name, port, user and password. + * This class encapsulates the parameters for connecting to a database, + * including host name, port, user and password. * * @author Jeremy McCormick, SLAC */ @@ -28,6 +29,12 @@ * Number of connection retries allowed. */ private static final int MAX_ATTEMPTS = 10; + + /** + * Wait time (in millis) for the first retry. The nth retry waits for + * n*RETRY_WAIT millis. + */ + private static final int RETRY_WAIT = 5000; /** * Configure the connection parameters from a properties file. @@ -46,7 +53,8 @@ } /** - * Configure the connection parameters from an <code>InputStream</code> of properties. + * Configure the connection parameters from an <code>InputStream</code> of + * properties. * * @param in the InputStream of the properties * @return the connection parameters @@ -71,7 +79,8 @@ } /** - * Configure the connection parameters from an embedded classpath resource which should be a properties file. + * Configure the connection parameters from an embedded classpath resource + * which should be a properties file. * * @param resource the resource path * @return the connection parameters @@ -146,8 +155,8 @@ } /** - * Create a database connection from these parameters. The caller becomes the "owner" and is responsible for closing - * it when finished. + * Create a database connection from these parameters. The caller becomes + * the "owner" and is responsible for closing it when finished. * * @return the new <code>Connection</code> object */ @@ -166,7 +175,7 @@ throw new RuntimeException("Failed to connect to database after " + attempt + " attempts: " + this.getConnectionString(), x); } try { - Thread.sleep(attempt * 1000); + Thread.sleep(attempt * RETRY_WAIT); } catch (InterruptedException ex) { Logger.getLogger(ConnectionParameters.class.getName()).log(Level.SEVERE, null, ex); } @@ -247,13 +256,13 @@ String getUser() { return this.user; } - + /** * Convert to human readable string. - * + * * @return this object converted to a string */ - public String toString() { + public String toString() { return "ConnectionParameters { database: " + database + ", hostname: " + hostname + ", password: " + password + ", port: " + port + ", user: " + user + " }"; } Modified: java/branches/jeremy-dev/conditions/src/main/java/org/hps/conditions/database/DatabaseConditionsManager.java ============================================================================= --- java/branches/jeremy-dev/conditions/src/main/java/org/hps/conditions/database/DatabaseConditionsManager.java (original) +++ java/branches/jeremy-dev/conditions/src/main/java/org/hps/conditions/database/DatabaseConditionsManager.java Tue Mar 1 11:15:40 2016 @@ -348,7 +348,7 @@ * Close the database connection. */ public synchronized void closeConnection() { - //LOGGER.finer("closing connection"); + LOGGER.fine("closing connection"); if (this.connection != null) { try { if (!this.connection.isClosed()) { @@ -360,7 +360,7 @@ } this.connection = null; this.isConnected = false; - //LOGGER.finer("connection closed"); + LOGGER.fine("connection closed"); } /** Modified: java/branches/jeremy-dev/conditions/src/main/java/org/hps/conditions/svt/MotorPositionLoader.java ============================================================================= --- java/branches/jeremy-dev/conditions/src/main/java/org/hps/conditions/svt/MotorPositionLoader.java (original) +++ java/branches/jeremy-dev/conditions/src/main/java/org/hps/conditions/svt/MotorPositionLoader.java Tue Mar 1 11:15:40 2016 @@ -16,7 +16,7 @@ import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.HelpFormatter; import org.apache.commons.cli.Options; -import org.apache.commons.cli.DefaultParser; +import org.apache.commons.cli.PosixParser; /** * Load SVT motor positions from a MYA dump, figure out time ranges (same position for > 10 seconds), and then convert @@ -195,7 +195,7 @@ */ void run(final String args[]) { - final DefaultParser parser = new DefaultParser(); + final PosixParser parser = new PosixParser(); CommandLine cl = null; try { Modified: java/branches/jeremy-dev/conditions/src/main/java/org/hps/conditions/svt/SvtBiasConditionsLoader.java ============================================================================= --- java/branches/jeremy-dev/conditions/src/main/java/org/hps/conditions/svt/SvtBiasConditionsLoader.java (original) +++ java/branches/jeremy-dev/conditions/src/main/java/org/hps/conditions/svt/SvtBiasConditionsLoader.java Tue Mar 1 11:15:40 2016 @@ -23,7 +23,7 @@ import org.apache.commons.cli.Option; 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.hps.conditions.api.ConditionsRecord; import org.hps.conditions.database.DatabaseConditionsManager; import org.hps.conditions.run.RunRange; @@ -176,7 +176,7 @@ // options.addOption(new Option("b", true, "beam current file")); options.addOption(new Option("s", false, "Show plots")); - final CommandLineParser parser = new DefaultParser(); + final CommandLineParser parser = new PosixParser(); CommandLine cl = null; try { cl = parser.parse(options, args); Modified: java/branches/jeremy-dev/conditions/src/main/java/org/hps/conditions/svt/SvtConditionsLoader.java ============================================================================= --- java/branches/jeremy-dev/conditions/src/main/java/org/hps/conditions/svt/SvtConditionsLoader.java (original) +++ java/branches/jeremy-dev/conditions/src/main/java/org/hps/conditions/svt/SvtConditionsLoader.java Tue Mar 1 11:15:40 2016 @@ -8,7 +8,7 @@ import org.apache.commons.cli.Option; 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.hps.conditions.api.ConditionsRecord; import org.hps.conditions.api.TableMetaData; import org.hps.conditions.database.DatabaseConditionsManager; @@ -60,7 +60,7 @@ final Options options = setupCommandLineOptions(); // Parse the command line arguments - final CommandLineParser parser = new DefaultParser(); + final CommandLineParser parser = new PosixParser(); final CommandLine commandLine; try { commandLine = parser.parse(options, args); Modified: java/branches/jeremy-dev/crawler/pom.xml ============================================================================= --- java/branches/jeremy-dev/crawler/pom.xml (original) +++ java/branches/jeremy-dev/crawler/pom.xml Tue Mar 1 11:15:40 2016 @@ -7,7 +7,7 @@ <groupId>org.hps</groupId> <artifactId>hps-parent</artifactId> <relativePath>../parent/pom.xml</relativePath> - <version>3.6-SNAPSHOT</version> + <version>3.7-SNAPSHOT</version> </parent> <scm> <url>http://java.freehep.org/svn/repos/hps/list/java/trunk/crawler/</url> Modified: java/branches/jeremy-dev/crawler/src/main/java/org/hps/crawler/DatacatAddFile.java ============================================================================= --- java/branches/jeremy-dev/crawler/src/main/java/org/hps/crawler/DatacatAddFile.java (original) +++ java/branches/jeremy-dev/crawler/src/main/java/org/hps/crawler/DatacatAddFile.java Tue Mar 1 11:15:40 2016 @@ -6,7 +6,7 @@ import java.util.logging.Logger; import org.apache.commons.cli.CommandLine; -import org.apache.commons.cli.DefaultParser; +import org.apache.commons.cli.PosixParser; import org.apache.commons.cli.HelpFormatter; import org.apache.commons.cli.Options; import org.apache.commons.cli.ParseException; @@ -55,7 +55,7 @@ /** * The options parser. */ - private final DefaultParser parser = new DefaultParser(); + private final PosixParser parser = new PosixParser(); /** * Parse command line options. Modified: java/branches/jeremy-dev/crawler/src/main/java/org/hps/crawler/DatacatCrawler.java ============================================================================= --- java/branches/jeremy-dev/crawler/src/main/java/org/hps/crawler/DatacatCrawler.java (original) +++ java/branches/jeremy-dev/crawler/src/main/java/org/hps/crawler/DatacatCrawler.java Tue Mar 1 11:15:40 2016 @@ -13,7 +13,7 @@ import java.util.logging.Logger; import org.apache.commons.cli.CommandLine; -import org.apache.commons.cli.DefaultParser; +import org.apache.commons.cli.PosixParser; import org.apache.commons.cli.HelpFormatter; import org.apache.commons.cli.Options; import org.apache.commons.cli.ParseException; @@ -83,7 +83,7 @@ /** * The options parser. */ - private final DefaultParser parser = new DefaultParser(); + private final PosixParser parser = new PosixParser(); /** * Parse command line options. Modified: java/branches/jeremy-dev/crawler/src/main/java/org/hps/crawler/MetadataWriter.java ============================================================================= --- java/branches/jeremy-dev/crawler/src/main/java/org/hps/crawler/MetadataWriter.java (original) +++ java/branches/jeremy-dev/crawler/src/main/java/org/hps/crawler/MetadataWriter.java Tue Mar 1 11:15:40 2016 @@ -9,7 +9,7 @@ import java.util.logging.Logger; import org.apache.commons.cli.CommandLine; -import org.apache.commons.cli.DefaultParser; +import org.apache.commons.cli.PosixParser; import org.apache.commons.cli.HelpFormatter; import org.apache.commons.cli.Options; import org.apache.commons.cli.ParseException; @@ -39,7 +39,7 @@ private MetadataWriter parse(final String[] args) { try { - final CommandLine cl = new DefaultParser().parse(OPTIONS, args); + final CommandLine cl = new PosixParser().parse(OPTIONS, args); // Print help. if (cl.hasOption("h") || args.length == 0) { 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 Tue Mar 1 11:15:40 2016 @@ -8,7 +8,7 @@ <groupId>org.hps</groupId> <artifactId>hps-parent</artifactId> <relativePath>../parent/pom.xml</relativePath> - <version>3.6-SNAPSHOT</version> + <version>3.7-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 Tue Mar 1 11:15:40 2016 @@ -8,7 +8,7 @@ <groupId>org.hps</groupId> <artifactId>hps-parent</artifactId> <relativePath>../parent/pom.xml</relativePath> - <version>3.6-SNAPSHOT</version> + <version>3.7-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 Tue Mar 1 11:15:40 2016 @@ -13,7 +13,7 @@ <groupId>org.hps</groupId> <artifactId>hps-parent</artifactId> <relativePath>../parent/pom.xml</relativePath> - <version>3.6-SNAPSHOT</version> + <version>3.7-SNAPSHOT</version> </parent> <scm> <url>http://java.freehep.org/svn/repos/hps/list/java/trunk/distribution/</url> 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 Tue Mar 1 11:15:40 2016 @@ -7,7 +7,7 @@ <groupId>org.hps</groupId> <artifactId>hps-parent</artifactId> <relativePath>../parent/pom.xml</relativePath> - <version>3.6-SNAPSHOT</version> + <version>3.7-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 Tue Mar 1 11:15:40 2016 @@ -8,7 +8,7 @@ <groupId>org.hps</groupId> <artifactId>hps-parent</artifactId> <relativePath>../parent/pom.xml</relativePath> - <version>3.6-SNAPSHOT</version> + <version>3.7-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 Tue Mar 1 11:15:40 2016 @@ -8,7 +8,7 @@ <groupId>org.hps</groupId> <artifactId>hps-parent</artifactId> <relativePath>../parent/pom.xml</relativePath> - <version>3.6-SNAPSHOT</version> + <version>3.7-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/EcalRawConverterDriver.java ============================================================================= --- java/branches/jeremy-dev/ecal-recon/src/main/java/org/hps/recon/ecal/EcalRawConverterDriver.java (original) +++ java/branches/jeremy-dev/ecal-recon/src/main/java/org/hps/recon/ecal/EcalRawConverterDriver.java Tue Mar 1 11:15:40 2016 @@ -18,14 +18,18 @@ import org.lcsim.util.Driver; /** - * This class is used to convert between collections of {@link org.lcsim.event.RawCalorimeterHit} - * and {@link org.lcsim.event.RawTrackerHit}, objects with ADC/sample information, and - * collections of {@link org.lcsim.event.CalorimeterHit}, objects with energy/time information. - * - * org.hps.recon.ecal.EcalRawConverter is called to do most of the lower level work. - * - * -*/ + * This <code>Driver</code> converts raw ECal data collections to {@link org.lcsim.event.CalorimeterHit} collections + * with energy and time information. The {@link EcalRawConverter} does most of the low-level work. + * <p> + * The following input collections are used: + * <ul> + * <li>EcalReadoutHits<li> + * <li>EcalReadoutExtraDataRelations</li> + * <li>EcalRunningPedestals</li> + * </ul> + * <p> + * The results are by default written to the <b>EcalCalHits</b> output collection. + */ public class EcalRawConverterDriver extends Driver { // To import database conditions Modified: java/branches/jeremy-dev/ecal-recon/src/main/java/org/hps/recon/ecal/EcalRunningPedestalDriver.java ============================================================================= --- java/branches/jeremy-dev/ecal-recon/src/main/java/org/hps/recon/ecal/EcalRunningPedestalDriver.java (original) +++ java/branches/jeremy-dev/ecal-recon/src/main/java/org/hps/recon/ecal/EcalRunningPedestalDriver.java Tue Mar 1 11:15:40 2016 @@ -18,18 +18,21 @@ import org.lcsim.util.Driver; /** - * Calculate a running pedestal average for every channel from Mode7 FADCs. Uses - * pedestals from the database if not available from the data. - * - * May 2015: Updated to also work on Mode1 data. - * - * TODO: Use Logger. + * This <code>Driver</code> takes Mode-1 or Mode-7 ECal data and computes a running pedestal + * average for every channel. Pedestals from the database will be used if this is not available. + * <p> + * The following input collections are used: + * <ul> + * <li>EcalReadoutHits</li> + * <li>EcalReadoutExtraDataRelations</li> + * </ul> + * <p> + * Results are by default written to the <b>EcalRunningPedestals</b> output collection. * * TODO: Timestamps from EVIO for some runs appear to not be monotonically increasing. * This interferes with minLookbackTime, so it defaults to disabled and its setter - * is left private for now. + * is left private for now. (Should be a JIRA item??? --JM) * - * @version $Id: ECalRunningPedestalDriver.java,v 1.0 2015/02/10 00:00:00 * @author <[log in to unmask]> */ public class EcalRunningPedestalDriver extends Driver { Modified: java/branches/jeremy-dev/evio/pom.xml ============================================================================= --- java/branches/jeremy-dev/evio/pom.xml (original) +++ java/branches/jeremy-dev/evio/pom.xml Tue Mar 1 11:15:40 2016 @@ -8,7 +8,7 @@ <groupId>org.hps</groupId> <artifactId>hps-parent</artifactId> <relativePath>../parent/pom.xml</relativePath> - <version>3.6-SNAPSHOT</version> + <version>3.7-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/BasicEvioFileReader.java ============================================================================= --- java/branches/jeremy-dev/evio/src/main/java/org/hps/evio/BasicEvioFileReader.java (original) +++ java/branches/jeremy-dev/evio/src/main/java/org/hps/evio/BasicEvioFileReader.java Tue Mar 1 11:15:40 2016 @@ -8,7 +8,7 @@ import org.apache.commons.cli.Option; 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.hps.record.evio.EvioEventUtilities; import org.hps.record.triggerbank.AbstractIntData.IntBankDefinition; import org.hps.record.triggerbank.HeadBankData; @@ -33,7 +33,7 @@ if (args.length == 0) { printUsage(options); } - final CommandLineParser parser = new DefaultParser(); + final CommandLineParser parser = new PosixParser(); CommandLine cl = null; try { cl = parser.parse(options, args); 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 Tue Mar 1 11:15:40 2016 @@ -21,7 +21,6 @@ import org.apache.commons.cli.Option; 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; Modified: java/branches/jeremy-dev/evio/src/main/java/org/hps/evio/LCSimEngRunEventBuilder.java ============================================================================= --- java/branches/jeremy-dev/evio/src/main/java/org/hps/evio/LCSimEngRunEventBuilder.java (original) +++ java/branches/jeremy-dev/evio/src/main/java/org/hps/evio/LCSimEngRunEventBuilder.java Tue Mar 1 11:15:40 2016 @@ -107,7 +107,7 @@ * @param run the run number */ private void setTiTimeOffsetForRun(int run) { - currentTiTimeOffset = null; /* Reset TI offset to null indicating it is not available for the run. */ + currentTiTimeOffset = null; RunManager runManager = RunManager.getRunManager(); if (runManager.getRun() != null) { if (runManager.runExists()) { @@ -121,6 +121,10 @@ } else { LOGGER.info("Run manager is not initialized; TI time offset not available."); } + try { + RunManager.getRunManager().closeConnection(); + } catch (Exception e) { + } } /** Modified: java/branches/jeremy-dev/job/pom.xml ============================================================================= --- java/branches/jeremy-dev/job/pom.xml (original) +++ java/branches/jeremy-dev/job/pom.xml Tue Mar 1 11:15:40 2016 @@ -7,7 +7,7 @@ <groupId>org.hps</groupId> <artifactId>hps-parent</artifactId> <relativePath>../parent/pom.xml</relativePath> - <version>3.6-SNAPSHOT</version> + <version>3.7-SNAPSHOT</version> </parent> <scm> <url>http://java.freehep.org/svn/repos/hps/list/java/trunk/job/</url> Modified: java/branches/jeremy-dev/job/src/main/java/org/hps/job/DatabaseConditionsManagerSetup.java ============================================================================= --- java/branches/jeremy-dev/job/src/main/java/org/hps/job/DatabaseConditionsManagerSetup.java (original) +++ java/branches/jeremy-dev/job/src/main/java/org/hps/job/DatabaseConditionsManagerSetup.java Tue Mar 1 11:15:40 2016 @@ -59,10 +59,13 @@ */ @Override public void configure() { - + + LOGGER.info("configuring conditions system"); + // Initialize the db conditions manager. + DatabaseConditionsManager.resetInstance(); DatabaseConditionsManager conditionsManager = DatabaseConditionsManager.getInstance(); - + if (enableRunManager) { LOGGER.config("adding run manager conditions listener"); conditionsManager.addConditionsListener(RunManager.getRunManager()); @@ -82,6 +85,8 @@ for (ConditionsListener listener : listeners) { conditionsManager.addConditionsListener(listener); } + + LOGGER.info("done configuring conditions system"); } /** @@ -91,10 +96,12 @@ */ @Override public void postInitialize() { + LOGGER.config("conditions setup post init"); if (DatabaseConditionsManager.getInstance().isInitialized() || this.freeze) { LOGGER.config("Job manager is freezing the conditions system."); DatabaseConditionsManager.getInstance().freeze(); } + LOGGER.config("done with post init"); } /** @@ -104,7 +111,9 @@ */ @Override public void cleanup() { - + + LOGGER.config("conditions cleanup"); + // Close the conditions database connection. Connection connection = DatabaseConditionsManager.getInstance().getConnection(); try { @@ -119,5 +128,7 @@ if (enableRunManager) { RunManager.getRunManager().closeConnection(); } + + LOGGER.config("done cleaning up"); } } Modified: java/branches/jeremy-dev/logging/pom.xml ============================================================================= --- java/branches/jeremy-dev/logging/pom.xml (original) +++ java/branches/jeremy-dev/logging/pom.xml Tue Mar 1 11:15:40 2016 @@ -7,7 +7,7 @@ <groupId>org.hps</groupId> <artifactId>hps-parent</artifactId> <relativePath>../parent/pom.xml</relativePath> - <version>3.6-SNAPSHOT</version> + <version>3.7-SNAPSHOT</version> </parent> <scm> <url>http://java.freehep.org/svn/repos/hps/list/java/trunk/logging/</url> 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 Tue Mar 1 11:15:40 2016 @@ -7,7 +7,7 @@ <groupId>org.hps</groupId> <artifactId>hps-parent</artifactId> <relativePath>../parent/pom.xml</relativePath> - <version>3.6-SNAPSHOT</version> + <version>3.7-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/Main.java ============================================================================= --- java/branches/jeremy-dev/monitoring-app/src/main/java/org/hps/monitoring/application/Main.java (original) +++ java/branches/jeremy-dev/monitoring-app/src/main/java/org/hps/monitoring/application/Main.java Tue Mar 1 11:15:40 2016 @@ -8,7 +8,7 @@ import org.apache.commons.cli.Option; 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.hps.monitoring.application.model.Configuration; /** @@ -29,7 +29,7 @@ final Options options = new Options(); options.addOption(new Option("h", false, "Print help.")); options.addOption(new Option("c", true, "Load a properties file with configuration parameters.")); - final CommandLineParser parser = new DefaultParser(); + final CommandLineParser parser = new PosixParser(); // Parse command line arguments. final CommandLine cl; 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 Tue Mar 1 11:15:40 2016 @@ -7,7 +7,7 @@ <groupId>org.hps</groupId> <artifactId>hps-parent</artifactId> <relativePath>../parent/pom.xml</relativePath> - <version>3.6-SNAPSHOT</version> + <version>3.7-SNAPSHOT</version> </parent> <scm> <url>http://java.freehep.org/svn/repos/hps/list/java/trunk/monitoring-drivers/</url> Modified: java/branches/jeremy-dev/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SvtHitPlots.java ============================================================================= --- java/branches/jeremy-dev/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SvtHitPlots.java (original) +++ java/branches/jeremy-dev/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SvtHitPlots.java Tue Mar 1 11:15:40 2016 @@ -216,13 +216,13 @@ plotters.get("Raw hit counts/Event").createRegions(2, 2); hitCountPlots.put("Raw hit counts/Event", - histogramFactory.createHistogram1D("Raw hit counts", 100, 0, 100)); + histogramFactory.createHistogram1D("Raw hit counts", 100, 0, 500)); plotters.get("Raw hit counts/Event").region(0).plot(hitCountPlots.get("Raw hit counts/Event"), SvtPlotUtils.createStyle(plotterFactory, "Number of Raw Hits", "")); hitCountPlots.put("SVT top raw hit counts/Event", - histogramFactory.createHistogram1D("SVT top raw hit counts", 100, 0, 100)); + histogramFactory.createHistogram1D("SVT top raw hit counts", 100, 0, 300)); plotters.get("Raw hit counts/Event").region(2).plot(hitCountPlots.get("SVT top raw hit counts/Event"), SvtPlotUtils.createStyle(plotterFactory, "Number of Raw Hits in Top Volume", "")); hitCountPlots.put("SVT bottom raw hit counts/Event", - histogramFactory.createHistogram1D("SVT bottom raw hit counts", 100, 0, 100)); + histogramFactory.createHistogram1D("SVT bottom raw hit counts", 100, 0, 300)); plotters.get("Raw hit counts/Event").region(3).plot(hitCountPlots.get("SVT bottom raw hit counts/Event"), SvtPlotUtils.createStyle(plotterFactory, "Number of Raw Bits in the Bottom Volume", "")); plotters.put("First sample distributions (pedestal shifts)", plotterFactory.create("First sample distributions (pedestal shifts)")); Modified: java/branches/jeremy-dev/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/trackrecon/PlotAndFitUtilities.java ============================================================================= --- java/branches/jeremy-dev/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/trackrecon/PlotAndFitUtilities.java (original) +++ java/branches/jeremy-dev/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/trackrecon/PlotAndFitUtilities.java Tue Mar 1 11:15:40 2016 @@ -50,7 +50,7 @@ static void plot(IPlotter plotter, IBaseHistogram histogram, IPlotterStyle style, int region) { if (style == null) style = getPlotterStyle(histogram); - System.out.println("Putting plot in region " + region); + //System.out.println("Putting plot in region " + region); plotter.region(region).plot(histogram, style); } Modified: java/branches/jeremy-dev/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/trackrecon/V0ReconPlots.java ============================================================================= --- java/branches/jeremy-dev/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/trackrecon/V0ReconPlots.java (original) +++ java/branches/jeremy-dev/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/trackrecon/V0ReconPlots.java Tue Mar 1 11:15:40 2016 @@ -58,7 +58,7 @@ @Override protected void detectorChanged(Detector detector) { - System.out.println("V0Monitoring::detectorChanged Setting up the plotter"); + //System.out.println("V0Monitoring::detectorChanged Setting up the plotter"); IAnalysisFactory fac = aida.analysisFactory(); IPlotterFactory pfac = fac.createPlotterFactory("V0 Recon"); 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 Tue Mar 1 11:15:40 2016 @@ -7,7 +7,7 @@ <groupId>org.hps</groupId> <artifactId>hps-parent</artifactId> <relativePath>../parent/pom.xml</relativePath> - <version>3.6-SNAPSHOT</version> + <version>3.7-SNAPSHOT</version> </parent> <scm> <url>http://java.freehep.org/svn/repos/hps/list/java/trunk/monitoring-util/</url> Modified: java/branches/jeremy-dev/parent/pom.xml ============================================================================= --- java/branches/jeremy-dev/parent/pom.xml (original) +++ java/branches/jeremy-dev/parent/pom.xml Tue Mar 1 11:15:40 2016 @@ -6,13 +6,14 @@ <groupId>org.hps</groupId> <artifactId>hps-parent</artifactId> <packaging>pom</packaging> - <version>3.6-SNAPSHOT</version> + <version>3.7-SNAPSHOT</version> <name>parent</name> <description>HPS Java parent POM</description> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <org.lcsim.cacheDir>${user.home}</org.lcsim.cacheDir> - <lcsimVersion>3.2-SNAPSHOT</lcsimVersion> + <lcsimVersion>3.2</lcsimVersion> <skipSite>false</skipSite> <skipPlugin>false</skipPlugin> </properties> @@ -142,117 +143,112 @@ <dependency> <groupId>org.hps</groupId> <artifactId>hps-util</artifactId> - <version>3.6-SNAPSHOT</version> + <version>3.7-SNAPSHOT</version> </dependency> <dependency> <groupId>org.hps</groupId> <artifactId>hps-detector-data</artifactId> - <version>3.6-SNAPSHOT</version> + <version>3.7-SNAPSHOT</version> </dependency> <dependency> <groupId>org.hps</groupId> <artifactId>hps-detector-model</artifactId> - <version>3.6-SNAPSHOT</version> + <version>3.7-SNAPSHOT</version> </dependency> <dependency> <groupId>org.hps</groupId> <artifactId>hps-conditions</artifactId> - <version>3.6-SNAPSHOT</version> + <version>3.7-SNAPSHOT</version> </dependency> <dependency> <groupId>org.hps</groupId> <artifactId>hps-ecal-recon</artifactId> - <version>3.6-SNAPSHOT</version> + <version>3.7-SNAPSHOT</version> </dependency> <dependency> <groupId>org.hps</groupId> <artifactId>hps-ecal-readout-sim</artifactId> - <version>3.6-SNAPSHOT</version> + <version>3.7-SNAPSHOT</version> </dependency> <dependency> <groupId>org.hps</groupId> <artifactId>hps-tracking</artifactId> - <version>3.6-SNAPSHOT</version> + <version>3.7-SNAPSHOT</version> </dependency> <dependency> <groupId>org.hps</groupId> <artifactId>hps-evio</artifactId> - <version>3.6-SNAPSHOT</version> + <version>3.7-SNAPSHOT</version> </dependency> <dependency> <groupId>org.hps</groupId> <artifactId>hps-recon</artifactId> - <version>3.6-SNAPSHOT</version> + <version>3.7-SNAPSHOT</version> </dependency> <dependency> <groupId>org.hps</groupId> <artifactId>hps-analysis</artifactId> - <version>3.6-SNAPSHOT</version> + <version>3.7-SNAPSHOT</version> </dependency> <dependency> <groupId>org.hps</groupId> <artifactId>hps-monitoring-drivers</artifactId> - <version>3.6-SNAPSHOT</version> + <version>3.7-SNAPSHOT</version> </dependency> <dependency> <groupId>org.hps</groupId> <artifactId>hps-monitoring-app</artifactId> - <version>3.6-SNAPSHOT</version> + <version>3.7-SNAPSHOT</version> </dependency> <dependency> <groupId>org.hps</groupId> <artifactId>hps-users</artifactId> - <version>3.6-SNAPSHOT</version> + <version>3.7-SNAPSHOT</version> </dependency> <dependency> <groupId>org.hps</groupId> <artifactId>hps-steering-files</artifactId> - <version>3.6-SNAPSHOT</version> + <version>3.7-SNAPSHOT</version> </dependency> <dependency> <groupId>org.hps</groupId> <artifactId>hps-distribution</artifactId> - <version>3.6-SNAPSHOT</version> + <version>3.7-SNAPSHOT</version> </dependency> <dependency> <groupId>org.hps</groupId> <artifactId>hps-ecal-event-display</artifactId> - <version>3.6-SNAPSHOT</version> + <version>3.7-SNAPSHOT</version> </dependency> <dependency> <groupId>org.hps</groupId> <artifactId>hps-record-util</artifactId> - <version>3.6-SNAPSHOT</version> + <version>3.7-SNAPSHOT</version> </dependency> <dependency> <groupId>org.hps</groupId> <artifactId>hps-monitoring-util</artifactId> - <version>3.6-SNAPSHOT</version> + <version>3.7-SNAPSHOT</version> </dependency> <dependency> <groupId>org.hps</groupId> <artifactId>hps-run-database</artifactId> - <version>3.6-SNAPSHOT</version> + <version>3.7-SNAPSHOT</version> </dependency> <dependency> <groupId>org.hps</groupId> <artifactId>hps-crawler</artifactId> - <version>3.6-SNAPSHOT</version> - </dependency> - <dependency> - <groupId>org.hps</groupId> - <artifactId>hps-datacat-client</artifactId> - <version>3.6-SNAPSHOT</version> + <version>3.7-SNAPSHOT</version> </dependency> <dependency> <groupId>org.hps</groupId> <artifactId>hps-job</artifactId> - <version>3.6-SNAPSHOT</version> + <version>3.7-SNAPSHOT</version> </dependency> <dependency> <groupId>org.hps</groupId> <artifactId>hps-logging</artifactId> - <version>3.6-SNAPSHOT</version> + <version>3.7-SNAPSHOT</version> </dependency> <!-- Next are external dependencies used in multiple modules. --> <dependency> @@ -298,7 +294,7 @@ <dependency> <groupId>srs</groupId> <artifactId>org-srs-datacat-client</artifactId> - <version>0.5-SNAPSHOT</version> + <version>0.5-TEST3</version> </dependency> </dependencies> </dependencyManagement> @@ -504,9 +500,6 @@ <role>release manager</role> </roles> <timezone>-8</timezone> - <properties> - <aim>jeremyslac</aim> - </properties> </developer> <developer> <name>Norman Graf</name> @@ -517,9 +510,6 @@ <role>developer</role> </roles> <timezone>-8</timezone> - <properties> - <aim>ngraf137</aim> - </properties> </developer> <developer> <name>Maurik Holtrop</name> Modified: java/branches/jeremy-dev/plugin/pom.xml ============================================================================= --- java/branches/jeremy-dev/plugin/pom.xml (original) +++ java/branches/jeremy-dev/plugin/pom.xml Tue Mar 1 11:15:40 2016 @@ -7,7 +7,7 @@ <groupId>org.hps</groupId> <artifactId>hps-parent</artifactId> <relativePath>../parent/pom.xml</relativePath> - <version>3.6-SNAPSHOT</version> + <version>3.7-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 Tue Mar 1 11:15:40 2016 @@ -9,7 +9,7 @@ <groupId>org.hps</groupId> <artifactId>hps-parent</artifactId> <relativePath>parent/pom.xml</relativePath> - <version>3.6-SNAPSHOT</version> + <version>3.7-SNAPSHOT</version> </parent> <scm> <url>svn://svn.freehep.org/hps/java/trunk/</url> @@ -107,7 +107,6 @@ <module>analysis</module> <module>conditions</module> <module>crawler</module> - <module>datacat-client</module> <module>detector-data</module> <module>detector-model</module> <module>distribution</module> Modified: java/branches/jeremy-dev/recon/pom.xml ============================================================================= --- java/branches/jeremy-dev/recon/pom.xml (original) +++ java/branches/jeremy-dev/recon/pom.xml Tue Mar 1 11:15:40 2016 @@ -8,7 +8,7 @@ <groupId>org.hps</groupId> <artifactId>hps-parent</artifactId> <relativePath>../parent/pom.xml</relativePath> - <version>3.6-SNAPSHOT</version> + <version>3.7-SNAPSHOT</version> </parent> <scm> <url>http://java.freehep.org/svn/repos/hps/list/java/trunk/recon/</url> 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 Tue Mar 1 11:15:40 2016 @@ -7,7 +7,7 @@ <groupId>org.hps</groupId> <artifactId>hps-parent</artifactId> <relativePath>../parent/pom.xml</relativePath> - <version>3.6-SNAPSHOT</version> + <version>3.7-SNAPSHOT</version> </parent> <scm> <url>http://java.freehep.org/svn/repos/hps/list/java/trunk/record-util/</url> Modified: java/branches/jeremy-dev/record-util/src/main/java/org/hps/record/evio/EvioEventSkimmer.java ============================================================================= --- java/branches/jeremy-dev/record-util/src/main/java/org/hps/record/evio/EvioEventSkimmer.java (original) +++ java/branches/jeremy-dev/record-util/src/main/java/org/hps/record/evio/EvioEventSkimmer.java Tue Mar 1 11:15:40 2016 @@ -14,7 +14,7 @@ import org.apache.commons.cli.CommandLine; 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.jlab.coda.jevio.EventWriter; import org.jlab.coda.jevio.EvioEvent; import org.jlab.coda.jevio.EvioReader; @@ -51,7 +51,7 @@ */ public static void main(String[] args) { - DefaultParser parser = new DefaultParser(); + PosixParser parser = new PosixParser(); CommandLine commandLine = null; try { Modified: java/branches/jeremy-dev/record-util/src/main/java/org/hps/record/evio/EvioFileProducer.java ============================================================================= --- java/branches/jeremy-dev/record-util/src/main/java/org/hps/record/evio/EvioFileProducer.java (original) +++ java/branches/jeremy-dev/record-util/src/main/java/org/hps/record/evio/EvioFileProducer.java Tue Mar 1 11:15:40 2016 @@ -16,7 +16,7 @@ import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.HelpFormatter; import org.apache.commons.cli.Options; -import org.apache.commons.cli.DefaultParser; +import org.apache.commons.cli.PosixParser; import org.jlab.coda.et.EtAttachment; import org.jlab.coda.et.EtConstants; import org.jlab.coda.et.EtEvent; @@ -195,7 +195,7 @@ public void run(final String[] args) { // Command line parser. - final DefaultParser parser = new DefaultParser(); + final PosixParser parser = new PosixParser(); try { 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 Tue Mar 1 11:15:40 2016 @@ -7,7 +7,7 @@ <groupId>org.hps</groupId> <artifactId>hps-parent</artifactId> <relativePath>../parent/pom.xml</relativePath> - <version>3.6-SNAPSHOT</version> + <version>3.7-SNAPSHOT</version> </parent> <scm> <url>http://java.freehep.org/svn/repos/hps/list/java/trunk/run-database/</url> @@ -24,4 +24,17 @@ <artifactId>org-srs-datacat-client</artifactId> </dependency> </dependencies> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <configuration> + <excludes> + <exclude>org/hps/run/database/RunBuilderTest.java</exclude> + </excludes> + </configuration> + </plugin> + </plugins> + </build> </project> Modified: java/branches/jeremy-dev/run-database/src/main/java/org/hps/run/database/RunDatabaseCommandLine.java ============================================================================= --- java/branches/jeremy-dev/run-database/src/main/java/org/hps/run/database/RunDatabaseCommandLine.java (original) +++ java/branches/jeremy-dev/run-database/src/main/java/org/hps/run/database/RunDatabaseCommandLine.java Tue Mar 1 11:15:40 2016 @@ -4,7 +4,7 @@ import java.net.URISyntaxException; import org.apache.commons.cli.CommandLine; -import org.apache.commons.cli.DefaultParser; +import org.apache.commons.cli.PosixParser; import org.apache.commons.cli.HelpFormatter; import org.apache.commons.cli.Options; import org.apache.commons.cli.ParseException; @@ -119,7 +119,7 @@ */ private RunDatabaseCommandLine parse(final String args[]) { try { - final CommandLine cl = new DefaultParser().parse(OPTIONS, args); + final CommandLine cl = new PosixParser().parse(OPTIONS, args); // Print help and exit. if (cl.hasOption("h") || args.length == 0) { 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 Tue Mar 1 11:15:40 2016 @@ -8,7 +8,7 @@ <groupId>org.hps</groupId> <artifactId>hps-parent</artifactId> <relativePath>../parent/pom.xml</relativePath> - <version>3.6-SNAPSHOT</version> + <version>3.7-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/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 Tue Mar 1 11:15:40 2016 @@ -27,7 +27,8 @@ <driver name="TrackingMonitoringGBLSingles0"/> <driver name="TrackingResidualsSingles0"/> <driver name="FinalStateMonitoringSingles0"/> - <driver name="V0MonitoringSingles0"/> + <driver name="V0MonitoringSingles0"/> + <driver name="V0MonitoringGBLSingles0"/> <driver name="TridentMonitoringSingles0"/> <!-- Singles1 --> <driver name="EcalMonitoringSingles1"/> @@ -48,7 +49,8 @@ <driver name="TrackingMonitoringGBLPairs0"/> <driver name="TrackingResidualsPairs0"/> <driver name="FinalStateMonitoringPairs0"/> - <driver name="V0MonitoringPairs0"/> + <driver name="V0MonitoringPairs0"/> + <driver name="V0MonitoringGBLPairs0"/> <driver name="TridentMonitoringPairs0"/> <!-- Pairs1 --> <driver name="EcalMonitoringPairs1"/> @@ -84,11 +86,9 @@ <!-- all triggers --> <driver name="EcalMonitoring" type="org.hps.analysis.dataquality.EcalMonitoring"> <triggerType>all</triggerType> - <beamEnergy>${beamEnergy}</beamEnergy> </driver> <driver name="EcalMonitoringCorr" type="org.hps.analysis.dataquality.EcalMonitoring"> <triggerType>all</triggerType> - <beamEnergy>${beamEnergy}</beamEnergy> <clusterCollectionName>EcalClustersCorr</clusterCollectionName> <fillHitPlots>false</fillHitPlots> </driver> @@ -104,15 +104,12 @@ </driver> <driver name="FinalStateMonitoring" type="org.hps.analysis.dataquality.FinalStateMonitoring"> <triggerType>all</triggerType> - <beamEnergy>${beamEnergy}</beamEnergy> </driver> <driver name="V0Monitoring" type="org.hps.analysis.dataquality.V0Monitoring"> <triggerType>all</triggerType> - <beamEnergy>${beamEnergy}</beamEnergy> </driver> <driver name="TridentMonitoring" type="org.hps.analysis.dataquality.TridentMonitoring"> <triggerType>all</triggerType> - <beamEnergy>${beamEnergy}</beamEnergy> </driver> <driver name="TrackingMonitoringGBL" type="org.hps.analysis.dataquality.TrackingMonitoring"> <trackCollectionName>GBLTracks</trackCollectionName> @@ -120,28 +117,23 @@ </driver> <driver name="FinalStateMonitoringGBL" type="org.hps.analysis.dataquality.FinalStateMonitoring"> <triggerType>all</triggerType> - <beamEnergy>${beamEnergy}</beamEnergy> <isGBL>true</isGBL> </driver> <driver name="V0MonitoringGBL" type="org.hps.analysis.dataquality.V0Monitoring"> <triggerType>all</triggerType> <isGBL>true</isGBL> - <beamEnergy>${beamEnergy}</beamEnergy> </driver> <driver name="TridentMonitoringGBL" type="org.hps.analysis.dataquality.TridentMonitoring"> <triggerType>all</triggerType> <isGBL>true</isGBL> - <beamEnergy>${beamEnergy}</beamEnergy> </driver> <!-- singles0 triggers --> <driver name="EcalMonitoringSingles0" type="org.hps.analysis.dataquality.EcalMonitoring"> <triggerType>singles0</triggerType> - <beamEnergy>${beamEnergy}</beamEnergy> </driver> <driver name="EcalMonitoringCorrSingles0" type="org.hps.analysis.dataquality.EcalMonitoring"> <triggerType>singles0</triggerType> - <beamEnergy>${beamEnergy}</beamEnergy> <clusterCollectionName>EcalClustersCorr</clusterCollectionName> <fillHitPlots>false</fillHitPlots> </driver> @@ -160,25 +152,24 @@ </driver> <driver name="FinalStateMonitoringSingles0" type="org.hps.analysis.dataquality.FinalStateMonitoring"> <triggerType>singles0</triggerType> - <beamEnergy>${beamEnergy}</beamEnergy> </driver> <driver name="V0MonitoringSingles0" type="org.hps.analysis.dataquality.V0Monitoring"> <triggerType>singles0</triggerType> - <beamEnergy>${beamEnergy}</beamEnergy> + </driver> + <driver name="V0MonitoringGBLSingles0" type="org.hps.analysis.dataquality.V0Monitoring"> + <triggerType>singles0</triggerType> + <isGBL>true</isGBL> </driver> <driver name="TridentMonitoringSingles0" type="org.hps.analysis.dataquality.TridentMonitoring"> <triggerType>singles0</triggerType> - <beamEnergy>${beamEnergy}</beamEnergy> </driver> <!-- singles1 triggers --> <driver name="EcalMonitoringSingles1" type="org.hps.analysis.dataquality.EcalMonitoring"> <triggerType>singles1</triggerType> - <beamEnergy>${beamEnergy}</beamEnergy> </driver> <driver name="EcalMonitoringCorrSingles1" type="org.hps.analysis.dataquality.EcalMonitoring"> <triggerType>singles1</triggerType> - <beamEnergy>${beamEnergy}</beamEnergy> <clusterCollectionName>EcalClustersCorr</clusterCollectionName> <fillHitPlots>false</fillHitPlots> </driver> @@ -197,40 +188,32 @@ </driver> <driver name="FinalStateMonitoringSingles1" type="org.hps.analysis.dataquality.FinalStateMonitoring"> <triggerType>singles1</triggerType> - <beamEnergy>${beamEnergy}</beamEnergy> </driver> <driver name="V0MonitoringSingles1" type="org.hps.analysis.dataquality.V0Monitoring"> <triggerType>singles1</triggerType> - <beamEnergy>${beamEnergy}</beamEnergy> </driver> <driver name="TridentMonitoringSingles1" type="org.hps.analysis.dataquality.TridentMonitoring"> - <triggerType>singles1</triggerType> - <beamEnergy>${beamEnergy}</beamEnergy> + <triggerType>singles1</triggerType> </driver> <driver name="FinalStateMonitoringGBLSingles1" type="org.hps.analysis.dataquality.FinalStateMonitoring"> <triggerType>singles1</triggerType> <isGBL>true</isGBL> - <beamEnergy>${beamEnergy}</beamEnergy> </driver> <driver name="V0MonitoringGBLSingles1" type="org.hps.analysis.dataquality.V0Monitoring"> <triggerType>singles1</triggerType> - <beamEnergy>${beamEnergy}</beamEnergy> <isGBL>true</isGBL> </driver> <driver name="TridentMonitoringGBLSingles1" type="org.hps.analysis.dataquality.TridentMonitoring"> <triggerType>singles1</triggerType> <isGBL>true</isGBL> - <beamEnergy>${beamEnergy}</beamEnergy> </driver> <!-- pairs0 triggers --> <driver name="EcalMonitoringPairs0" type="org.hps.analysis.dataquality.EcalMonitoring"> <triggerType>pairs0</triggerType> - <beamEnergy>${beamEnergy}</beamEnergy> </driver> <driver name="EcalMonitoringCorrPairs0" type="org.hps.analysis.dataquality.EcalMonitoring"> <triggerType>pairs0</triggerType> - <beamEnergy>${beamEnergy}</beamEnergy> <clusterCollectionName>EcalClustersCorr</clusterCollectionName> <fillHitPlots>false</fillHitPlots> </driver> @@ -249,26 +232,25 @@ </driver> <driver name="FinalStateMonitoringPairs0" type="org.hps.analysis.dataquality.FinalStateMonitoring"> <triggerType>pairs0</triggerType> - <beamEnergy>${beamEnergy}</beamEnergy> </driver> <driver name="V0MonitoringPairs0" type="org.hps.analysis.dataquality.V0Monitoring"> <triggerType>pairs0</triggerType> - <beamEnergy>${beamEnergy}</beamEnergy> + </driver> + <driver name="V0MonitoringGBLPairs0" type="org.hps.analysis.dataquality.V0Monitoring"> + <triggerType>pairs0</triggerType> + <isGBL>true</isGBL> </driver> <driver name="TridentMonitoringPairs0" type="org.hps.analysis.dataquality.TridentMonitoring"> <triggerType>pairs0</triggerType> - <beamEnergy>${beamEnergy}</beamEnergy> </driver> <!-- pairs1 triggers --> <driver name="EcalMonitoringPairs1" type="org.hps.analysis.dataquality.EcalMonitoring"> <triggerType>pairs1</triggerType> - <beamEnergy>${beamEnergy}</beamEnergy> </driver> <driver name="EcalMonitoringCorrPairs1" type="org.hps.analysis.dataquality.EcalMonitoring"> <triggerType>pairs1</triggerType> - <beamEnergy>${beamEnergy}</beamEnergy> <clusterCollectionName>EcalClustersCorr</clusterCollectionName> <fillHitPlots>false</fillHitPlots> </driver> @@ -287,30 +269,24 @@ </driver> <driver name="FinalStateMonitoringPairs1" type="org.hps.analysis.dataquality.FinalStateMonitoring"> <triggerType>pairs1</triggerType> - <beamEnergy>${beamEnergy}</beamEnergy> </driver> <driver name="V0MonitoringPairs1" type="org.hps.analysis.dataquality.V0Monitoring"> <triggerType>pairs1</triggerType> - <beamEnergy>${beamEnergy}</beamEnergy> </driver> <driver name="TridentMonitoringPairs1" type="org.hps.analysis.dataquality.TridentMonitoring"> <triggerType>pairs1</triggerType> - <beamEnergy>${beamEnergy}</beamEnergy> </driver> <driver name="FinalStateMonitoringGBLPairs1" type="org.hps.analysis.dataquality.FinalStateMonitoring"> <triggerType>pairs1</triggerType> <isGBL>true</isGBL> - <beamEnergy>${beamEnergy}</beamEnergy> </driver> <driver name="V0MonitoringGBLPairs1" type="org.hps.analysis.dataquality.V0Monitoring"> <triggerType>pairs1</triggerType> - <beamEnergy>${beamEnergy}</beamEnergy> <isGBL>true</isGBL> </driver> <driver name="TridentMonitoringGBLPairs1" type="org.hps.analysis.dataquality.TridentMonitoring"> <triggerType>pairs1</triggerType> <isGBL>true</isGBL> - <beamEnergy>${beamEnergy}</beamEnergy> </driver> <driver name="CleanupDriver" type="org.lcsim.recon.tracking.digitization.sisim.config.ReadoutCleanupDriver"/> Modified: java/branches/jeremy-dev/tracking/pom.xml ============================================================================= --- java/branches/jeremy-dev/tracking/pom.xml (original) +++ java/branches/jeremy-dev/tracking/pom.xml Tue Mar 1 11:15:40 2016 @@ -8,7 +8,7 @@ <groupId>org.hps</groupId> <artifactId>hps-parent</artifactId> <relativePath>../parent/pom.xml</relativePath> - <version>3.6-SNAPSHOT</version> + <version>3.7-SNAPSHOT</version> </parent> <scm> <url>http://java.freehep.org/svn/repos/hps/list/java/trunk/tracking/</url> Modified: java/branches/jeremy-dev/tracking/src/main/java/org/hps/recon/tracking/HelicalTrackHitDriver.java ============================================================================= --- java/branches/jeremy-dev/tracking/src/main/java/org/hps/recon/tracking/HelicalTrackHitDriver.java (original) +++ java/branches/jeremy-dev/tracking/src/main/java/org/hps/recon/tracking/HelicalTrackHitDriver.java Tue Mar 1 11:15:40 2016 @@ -41,15 +41,39 @@ import org.lcsim.recon.tracking.digitization.sisim.TrackerHitType; /** - * Driver used to create stereo hits from clusters. - * + * This <code>Driver</code> creates 3D hits from SVT strip clusters of stereo pairs, which by default + * are read from the <b>StripClusterer_SiTrackerHitStrip1D</b> input collection. + * <p> + * The following collections will be added to the output event: + * <ul> + * <li>HelicalTrackHits</li> + * <li>RotatedHelicalTrackHits</li> + * <li>HelicalTrackHitRelations</li> + * <li>RotatedHelicalTrackHitRelations</li> + * <li>HelicalTrackMCRelations</li> + * <li>RotatedHelicalTrackMCRelations<li> + * </ul> + * <p> + * Class has the following default parameters values in the code (or from <code>EngineeringRun2015FullRecon.lcsim</code>): + * <ul> + * <li>{@link #setClusterTimeCut(double)} - 12.0 (ns)</li> + * <li>{@link #setMaxDt(double)} - 16.0 (ns)</li> + * <li>{@link #setClusterAmplitudeCut(double)} - 400.0</li> + * <li>{@link #setRejectGhostHits(boolean)} - <code>false</code></li> + * <li>{@link #setDebug(boolean)} - <code>false</code></li> + * <li>{@link #setEpsParallel(double)} - 0.013</li> + * <li>{@link #setEpsStereo(double)} - 0.01</li> + * <li>{@link #setSaveAxialHits(boolean)} - <code>false</code></li> + * <li>{@link #setStripHitsCollectionName(String)} - StripClusterer_SiTrackerHitStrip1D</li> + * <li>{@link #setHelicalTrackHitRelationsCollectionName(String)} - HelicalTrackHitRelations</li> + * <li>{@link #setHelicalTrackMCRelationsCollectionName(String)} - HelicalTrackMCRelations</li> + * <li>{@link #setOutputHitCollectionName(String)} - HelicalTrackHits</li> + * </ul> * * @author Mathew Graham <[log in to unmask]> * @author Per Hansson <[log in to unmask]> * @author Omar Moreno <[log in to unmask]> - * */ -// TODO: Add class documentation. // FIXME: The option to run using the Common geometry should be removed public class HelicalTrackHitDriver extends org.lcsim.fit.helicaltrack.HelicalTrackHitDriver { Modified: java/branches/jeremy-dev/tracking/src/main/java/org/hps/svt/alignment/BuildCompact.java ============================================================================= --- java/branches/jeremy-dev/tracking/src/main/java/org/hps/svt/alignment/BuildCompact.java (original) +++ java/branches/jeremy-dev/tracking/src/main/java/org/hps/svt/alignment/BuildCompact.java Tue Mar 1 11:15:40 2016 @@ -23,7 +23,7 @@ import org.apache.commons.cli.Option; 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.jdom.Document; import org.jdom.Element; @@ -156,7 +156,7 @@ printHelpAndExit(options); } - CommandLineParser parser = new DefaultParser(); + CommandLineParser parser = new PosixParser(); CommandLine cl = null; try { cl = parser.parse(options, args); Modified: java/branches/jeremy-dev/tracking/src/main/java/org/hps/svt/alignment/BuildMillepedeCompact.java ============================================================================= --- java/branches/jeremy-dev/tracking/src/main/java/org/hps/svt/alignment/BuildMillepedeCompact.java (original) +++ java/branches/jeremy-dev/tracking/src/main/java/org/hps/svt/alignment/BuildMillepedeCompact.java Tue Mar 1 11:15:40 2016 @@ -29,7 +29,7 @@ import org.apache.commons.cli.Option; 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.hps.recon.tracking.CoordinateTransformations; import org.jdom.Attribute; import org.jdom.DataConversionException; @@ -85,7 +85,7 @@ printHelpAndExit(options); } - CommandLineParser parser = new DefaultParser(); + CommandLineParser parser = new PosixParser(); CommandLine cl = null; try { cl = parser.parse(options, args); Modified: java/branches/jeremy-dev/tracking/src/main/java/org/hps/svt/alignment/MillepedeCompactDump.java ============================================================================= --- java/branches/jeremy-dev/tracking/src/main/java/org/hps/svt/alignment/MillepedeCompactDump.java (original) +++ java/branches/jeremy-dev/tracking/src/main/java/org/hps/svt/alignment/MillepedeCompactDump.java Tue Mar 1 11:15:40 2016 @@ -15,7 +15,7 @@ import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.CommandLineParser; -import org.apache.commons.cli.DefaultParser; +import org.apache.commons.cli.PosixParser; import org.apache.commons.cli.HelpFormatter; import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; @@ -54,7 +54,7 @@ printHelpAndExit(options); } - CommandLineParser parser = new DefaultParser(); + CommandLineParser parser = new PosixParser(); CommandLine cl = null; try { cl = parser.parse(options, args); Modified: java/branches/jeremy-dev/users/pom.xml ============================================================================= --- java/branches/jeremy-dev/users/pom.xml (original) +++ java/branches/jeremy-dev/users/pom.xml Tue Mar 1 11:15:40 2016 @@ -7,7 +7,7 @@ <groupId>org.hps</groupId> <artifactId>hps-parent</artifactId> <relativePath>../parent/pom.xml</relativePath> - <version>3.6-SNAPSHOT</version> + <version>3.7-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/jeremym/EvioFileScanner.java ============================================================================= --- java/branches/jeremy-dev/users/src/main/java/org/hps/users/jeremym/EvioFileScanner.java (original) +++ java/branches/jeremy-dev/users/src/main/java/org/hps/users/jeremym/EvioFileScanner.java Tue Mar 1 11:15:40 2016 @@ -28,7 +28,7 @@ import org.apache.commons.cli.CommandLine; 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.hps.conditions.database.ConnectionParameters; import org.hps.record.evio.EvioEventConstants; import org.hps.record.evio.EvioEventUtilities; @@ -484,7 +484,7 @@ final Set<Integer> acceptRuns = new HashSet<Integer>(); - final DefaultParser parser = new DefaultParser(); + final PosixParser parser = new PosixParser(); boolean printSummary = false; Modified: java/branches/jeremy-dev/users/src/main/java/org/hps/users/meeg/FilterMCBunches.java ============================================================================= --- java/branches/jeremy-dev/users/src/main/java/org/hps/users/meeg/FilterMCBunches.java (original) +++ java/branches/jeremy-dev/users/src/main/java/org/hps/users/meeg/FilterMCBunches.java Tue Mar 1 11:15:40 2016 @@ -17,7 +17,7 @@ import org.apache.commons.cli.Option; 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.lcsim.event.EventHeader; import org.lcsim.event.MCParticle; import org.lcsim.event.RawCalorimeterHit; @@ -70,7 +70,7 @@ public static void main(String[] args) { // Set up command line parsing. Options options = createCommandLineOptions(); - CommandLineParser parser = new DefaultParser(); + CommandLineParser parser = new PosixParser(); // Parse command line arguments. CommandLine cl = null; Modified: java/branches/jeremy-dev/users/src/main/java/org/hps/users/meeg/MergeMCBunches.java ============================================================================= --- java/branches/jeremy-dev/users/src/main/java/org/hps/users/meeg/MergeMCBunches.java (original) +++ java/branches/jeremy-dev/users/src/main/java/org/hps/users/meeg/MergeMCBunches.java Tue Mar 1 11:15:40 2016 @@ -13,7 +13,7 @@ import org.apache.commons.cli.Option; 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.lcsim.event.EventHeader; import org.lcsim.event.MCParticle; import org.lcsim.event.SimCalorimeterHit; @@ -49,7 +49,7 @@ public static void main(String[] args) { // Set up command line parsing. Options options = createCommandLineOptions(); - CommandLineParser parser = new DefaultParser(); + CommandLineParser parser = new PosixParser(); // Parse command line arguments. CommandLine cl = null; @@ -191,4 +191,4 @@ throw new RuntimeException(e); } } -} +} 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 Tue Mar 1 11:15:40 2016 @@ -12,7 +12,7 @@ import java.util.logging.Logger; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.CommandLineParser; -import org.apache.commons.cli.DefaultParser; +import org.apache.commons.cli.PosixParser; import org.apache.commons.cli.HelpFormatter; import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; @@ -50,7 +50,7 @@ options.addOption(new Option("t", false, "use TI timestamp instead of Unix time (higher precision, but requires TI time offset in run DB)")); options.addOption(new Option("c", false, "get TI time offset from CSV log file instead of run DB")); - final CommandLineParser parser = new DefaultParser(); + final CommandLineParser parser = new PosixParser(); CommandLine cl = null; try { cl = parser.parse(options, args); Modified: java/branches/jeremy-dev/users/src/main/java/org/hps/users/omoreno/LheToStdhep.java ============================================================================= --- java/branches/jeremy-dev/users/src/main/java/org/hps/users/omoreno/LheToStdhep.java (original) +++ java/branches/jeremy-dev/users/src/main/java/org/hps/users/omoreno/LheToStdhep.java Tue Mar 1 11:15:40 2016 @@ -15,7 +15,7 @@ import org.apache.commons.cli.CommandLineParser; 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.jdom.Document; import org.jdom.Element; import org.jdom.JDOMException; @@ -58,7 +58,7 @@ String stdhepFileName = "output.stdhep"; // Instantiate te command line parser - CommandLineParser parser = new DefaultParser(); + CommandLineParser parser = new PosixParser(); // Create the Options // TODO: Add ability to parse list of files. Modified: java/branches/jeremy-dev/users/src/main/java/org/hps/users/phansson/testrun/dataMCPlots.java ============================================================================= --- java/branches/jeremy-dev/users/src/main/java/org/hps/users/phansson/testrun/dataMCPlots.java (original) +++ java/branches/jeremy-dev/users/src/main/java/org/hps/users/phansson/testrun/dataMCPlots.java Tue Mar 1 11:15:40 2016 @@ -25,7 +25,7 @@ import org.apache.commons.cli.HelpFormatter; 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.lcsim.util.aida.AIDA; /** @@ -93,7 +93,7 @@ help.printHelp(" ", opts); System.exit(1); } - CommandLineParser parser = new DefaultParser(); + CommandLineParser parser = new PosixParser(); CommandLine cmd=null; try { cmd = parser.parse(opts, args); Modified: java/branches/jeremy-dev/users/src/main/java/org/hps/users/phansson/testrun/ecalPlots.java ============================================================================= --- java/branches/jeremy-dev/users/src/main/java/org/hps/users/phansson/testrun/ecalPlots.java (original) +++ java/branches/jeremy-dev/users/src/main/java/org/hps/users/phansson/testrun/ecalPlots.java Tue Mar 1 11:15:40 2016 @@ -19,7 +19,7 @@ import org.apache.commons.cli.HelpFormatter; import org.apache.commons.cli.Options; import org.apache.commons.cli.ParseException; -import org.apache.commons.cli.DefaultParser; +import org.apache.commons.cli.PosixParser; /** * @@ -72,7 +72,7 @@ help.printHelp(" ", opts); System.exit(1); } - CommandLineParser parser = new DefaultParser(); + CommandLineParser parser = new PosixParser(); CommandLine cmd=null; try { cmd = parser.parse(opts, args); Modified: java/branches/jeremy-dev/users/src/main/java/org/hps/users/phansson/testrun/trigRate.java ============================================================================= --- java/branches/jeremy-dev/users/src/main/java/org/hps/users/phansson/testrun/trigRate.java (original) +++ java/branches/jeremy-dev/users/src/main/java/org/hps/users/phansson/testrun/trigRate.java Tue Mar 1 11:15:40 2016 @@ -17,7 +17,7 @@ import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; import org.apache.commons.cli.ParseException; -import org.apache.commons.cli.DefaultParser; +import org.apache.commons.cli.PosixParser; /** * @@ -73,7 +73,7 @@ help.printHelp(" ", options); System.exit(1); } - CommandLineParser parser = new DefaultParser(); + CommandLineParser parser = new PosixParser(); CommandLine cl = null; try { Modified: java/branches/jeremy-dev/users/src/main/java/org/hps/users/phansson/tools/DumpAIDATextFiles.java ============================================================================= --- java/branches/jeremy-dev/users/src/main/java/org/hps/users/phansson/tools/DumpAIDATextFiles.java (original) +++ java/branches/jeremy-dev/users/src/main/java/org/hps/users/phansson/tools/DumpAIDATextFiles.java Tue Mar 1 11:15:40 2016 @@ -21,7 +21,7 @@ import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; import org.apache.commons.cli.ParseException; -import org.apache.commons.cli.DefaultParser; +import org.apache.commons.cli.PosixParser; /** * @@ -116,7 +116,7 @@ help.printHelp(" ", options); System.exit(1); } - CommandLineParser parser = new DefaultParser(); + CommandLineParser parser = new PosixParser(); CommandLine cl = null; try { cl = parser.parse(options, args); Modified: java/branches/jeremy-dev/users/src/main/java/org/hps/users/phansson/tools/mergeSimpleAIDA.java ============================================================================= --- java/branches/jeremy-dev/users/src/main/java/org/hps/users/phansson/tools/mergeSimpleAIDA.java (original) +++ java/branches/jeremy-dev/users/src/main/java/org/hps/users/phansson/tools/mergeSimpleAIDA.java Tue Mar 1 11:15:40 2016 @@ -20,7 +20,7 @@ import org.apache.commons.cli.HelpFormatter; 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.lcsim.util.aida.AIDA; /** @@ -52,7 +52,7 @@ help.printHelp(" ", opts); System.exit(1); } - CommandLineParser parser = new DefaultParser(); + CommandLineParser parser = new PosixParser(); CommandLine cmd = null; try { cmd = parser.parse(opts, args); Modified: java/branches/jeremy-dev/util/pom.xml ============================================================================= --- java/branches/jeremy-dev/util/pom.xml (original) +++ java/branches/jeremy-dev/util/pom.xml Tue Mar 1 11:15:40 2016 @@ -7,7 +7,7 @@ <groupId>org.hps</groupId> <artifactId>hps-parent</artifactId> <relativePath>../parent/pom.xml</relativePath> - <version>3.6-SNAPSHOT</version> + <version>3.7-SNAPSHOT</version> </parent> <scm> <url>http://java.freehep.org/svn/repos/hps/list/java/trunk/util/</url> Modified: java/branches/jeremy-dev/util/src/main/java/org/hps/util/CalculateAcceptanceFromMadGraph.java ============================================================================= --- java/branches/jeremy-dev/util/src/main/java/org/hps/util/CalculateAcceptanceFromMadGraph.java (original) +++ java/branches/jeremy-dev/util/src/main/java/org/hps/util/CalculateAcceptanceFromMadGraph.java Tue Mar 1 11:15:40 2016 @@ -21,7 +21,7 @@ import org.apache.commons.cli.Option; 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.lcsim.fit.helicaltrack.HelixParamCalculator; public class CalculateAcceptanceFromMadGraph { @@ -165,7 +165,7 @@ // Set up command line parsing. Options options = createCommandLineOptions(); - CommandLineParser parser = new DefaultParser(); + CommandLineParser parser = new PosixParser(); // Parse command line arguments. CommandLine cl = null; Modified: java/branches/jeremy-dev/util/src/main/java/org/hps/util/ConvertToStdhep.java ============================================================================= --- java/branches/jeremy-dev/util/src/main/java/org/hps/util/ConvertToStdhep.java (original) +++ java/branches/jeremy-dev/util/src/main/java/org/hps/util/ConvertToStdhep.java Tue Mar 1 11:15:40 2016 @@ -31,7 +31,7 @@ import org.apache.commons.cli.Option; 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.lcsim.detector.IRotation3D; import org.lcsim.detector.RotationGeant; @@ -95,7 +95,7 @@ // Set up command line parsing. Options options = createCommandLineOptions(); - CommandLineParser parser = new DefaultParser(); + CommandLineParser parser = new PosixParser(); // Parse command line arguments. CommandLine cl = null; Modified: java/branches/jeremy-dev/util/src/main/java/org/hps/util/DumpLHEEventsToASCII.java ============================================================================= --- java/branches/jeremy-dev/util/src/main/java/org/hps/util/DumpLHEEventsToASCII.java (original) +++ java/branches/jeremy-dev/util/src/main/java/org/hps/util/DumpLHEEventsToASCII.java Tue Mar 1 11:15:40 2016 @@ -26,7 +26,7 @@ import org.apache.commons.cli.Option; 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.lcsim.detector.IRotation3D; import org.lcsim.detector.RotationGeant; @@ -89,7 +89,7 @@ // Set up command line parsing. Options options = createCommandLineOptions(); - CommandLineParser parser = new DefaultParser(); + CommandLineParser parser = new PosixParser(); // Parse command line arguments. CommandLine cl = null;