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