Author: [log in to unmask]
Date: Wed Dec 16 15:32:00 2015
New Revision: 4066
Log:
Merge in all trunk changes to dev branch.
Added:
java/branches/jeremy-dev/detector-data/detectors/HPS-EngRun2015-Nominal-v3-5-0-fieldmap/
- copied from r4065, java/trunk/detector-data/detectors/HPS-EngRun2015-Nominal-v3-5-0-fieldmap/
java/branches/jeremy-dev/detector-data/detectors/HPS-EngRun2015-Nominal-v3-5-1-fieldmap/
- copied from r4065, java/trunk/detector-data/detectors/HPS-EngRun2015-Nominal-v3-5-1-fieldmap/
java/branches/jeremy-dev/detector-data/detectors/HPS-EngRun2015-Nominal-v3-5-2-fieldmap/
- copied from r4065, java/trunk/detector-data/detectors/HPS-EngRun2015-Nominal-v3-5-2-fieldmap/
java/branches/jeremy-dev/detector-data/detectors/HPS-EngRun2015-Nominal-v4-4-fieldmap/
- copied from r4065, java/trunk/detector-data/detectors/HPS-EngRun2015-Nominal-v4-4-fieldmap/
java/branches/jeremy-dev/detector-data/detectors/HPS-PhysicsRun2016-6pt6-v0/
- copied from r4058, java/trunk/detector-data/detectors/HPS-PhysicsRun2016-6pt6-v0/
java/branches/jeremy-dev/recon/src/main/java/org/hps/recon/filtering/PulserSingle0Pair0TriggerFilterDriver.java
- copied unchanged from r4058, java/trunk/recon/src/main/java/org/hps/recon/filtering/PulserSingle0Pair0TriggerFilterDriver.java
java/branches/jeremy-dev/steering-files/src/main/resources/org/hps/steering/users/baltzell/EngineeringRun2015FullRecon.lcsim
- copied unchanged from r4058, java/trunk/steering-files/src/main/resources/org/hps/steering/users/baltzell/EngineeringRun2015FullRecon.lcsim
java/branches/jeremy-dev/steering-files/src/main/resources/org/hps/steering/users/meeg/TridentMCSkim.lcsim
- copied unchanged from r4058, java/trunk/steering-files/src/main/resources/org/hps/steering/users/meeg/TridentMCSkim.lcsim
Modified:
java/branches/jeremy-dev/ (props changed)
java/branches/jeremy-dev/analysis/pom.xml
java/branches/jeremy-dev/conditions/ (props changed)
java/branches/jeremy-dev/conditions/pom.xml
java/branches/jeremy-dev/datacat-client/pom.xml
java/branches/jeremy-dev/detector-data/pom.xml
java/branches/jeremy-dev/detector-model/pom.xml
java/branches/jeremy-dev/detector-model/src/main/java/org/lcsim/detector/tracker/silicon/HpsSiSensor.java
java/branches/jeremy-dev/detector-model/src/test/java/org/hps/detector/svt/SvtDetectorSetupTest.java
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/cluster/ClusterEnergyCorrection.java
java/branches/jeremy-dev/evio/pom.xml
java/branches/jeremy-dev/job/pom.xml
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-drivers/pom.xml
java/branches/jeremy-dev/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SvtHitPlots.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/recon/src/main/java/org/hps/recon/particle/ReconParticleDriver.java
java/branches/jeremy-dev/recon/src/main/java/org/hps/recon/utils/TrackClusterMatcher.java
java/branches/jeremy-dev/record-util/pom.xml
java/branches/jeremy-dev/steering-files/pom.xml
java/branches/jeremy-dev/steering-files/src/main/resources/org/hps/steering/monitoring/SvtOnlineMonitoring.lcsim
java/branches/jeremy-dev/steering-files/src/main/resources/org/hps/steering/recon/EngineeringRun2015FullRecon.lcsim
java/branches/jeremy-dev/steering-files/src/main/resources/org/hps/steering/recon/EngineeringRun2015FullReconMC.lcsim
java/branches/jeremy-dev/steering-files/src/main/resources/org/hps/steering/recon/EngineeringRun2015STRecon.lcsim
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/recon/tracking/TrackDataDriver.java
java/branches/jeremy-dev/tracking/src/main/java/org/hps/recon/tracking/TrackUtils.java
java/branches/jeremy-dev/tracking/src/main/java/org/hps/recon/tracking/TrackerReconDriver.java
java/branches/jeremy-dev/tracking/src/main/java/org/hps/recon/tracking/gbl/GBLOutputDriver.java
java/branches/jeremy-dev/tracking/src/main/java/org/hps/recon/tracking/gbl/GBLRefitterDriver.java
java/branches/jeremy-dev/tracking/src/main/java/org/hps/recon/tracking/straight/STUtils.java
java/branches/jeremy-dev/tracking/src/main/java/org/hps/recon/tracking/straight/StraightThroughAnalysisDriver.java
java/branches/jeremy-dev/users/pom.xml
java/branches/jeremy-dev/users/src/main/java/org/hps/users/meeg/TridentMCFilter.java
java/branches/jeremy-dev/users/src/main/java/org/hps/users/phansson/TrackingReconstructionPlots.java
java/branches/jeremy-dev/util/pom.xml
Modified: java/branches/jeremy-dev/analysis/pom.xml
=============================================================================
--- java/branches/jeremy-dev/analysis/pom.xml (original)
+++ java/branches/jeremy-dev/analysis/pom.xml Wed Dec 16 15:32:00 2015
@@ -8,7 +8,7 @@
<groupId>org.hps</groupId>
<artifactId>hps-parent</artifactId>
<relativePath>../parent/pom.xml</relativePath>
- <version>3.4.2-SNAPSHOT</version>
+ <version>3.5-SNAPSHOT</version>
</parent>
<scm>
<url>http://java.freehep.org/svn/repos/hps/list/java/trunk/analysis/</url>
Modified: java/branches/jeremy-dev/conditions/pom.xml
=============================================================================
--- java/branches/jeremy-dev/conditions/pom.xml (original)
+++ java/branches/jeremy-dev/conditions/pom.xml Wed Dec 16 15:32:00 2015
@@ -8,7 +8,7 @@
<groupId>org.hps</groupId>
<artifactId>hps-parent</artifactId>
<relativePath>../parent/pom.xml</relativePath>
- <version>3.4.2-SNAPSHOT</version>
+ <version>3.5-SNAPSHOT</version>
</parent>
<scm>
<url>http://java.freehep.org/svn/repos/hps/list/java/trunk/conditions/</url>
Modified: java/branches/jeremy-dev/datacat-client/pom.xml
=============================================================================
--- java/branches/jeremy-dev/datacat-client/pom.xml (original)
+++ java/branches/jeremy-dev/datacat-client/pom.xml Wed Dec 16 15:32:00 2015
@@ -7,7 +7,7 @@
<groupId>org.hps</groupId>
<artifactId>hps-parent</artifactId>
<relativePath>../parent/pom.xml</relativePath>
- <version>3.4.2-SNAPSHOT</version>
+ <version>3.5-SNAPSHOT</version>
</parent>
<scm>
<url>http://java.freehep.org/svn/repos/hps/list/java/trunk/datacat-client/</url>
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 Wed Dec 16 15:32:00 2015
@@ -8,7 +8,7 @@
<groupId>org.hps</groupId>
<artifactId>hps-parent</artifactId>
<relativePath>../parent/pom.xml</relativePath>
- <version>3.4.2-SNAPSHOT</version>
+ <version>3.5-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 Wed Dec 16 15:32:00 2015
@@ -8,7 +8,7 @@
<groupId>org.hps</groupId>
<artifactId>hps-parent</artifactId>
<relativePath>../parent/pom.xml</relativePath>
- <version>3.4.2-SNAPSHOT</version>
+ <version>3.5-SNAPSHOT</version>
</parent>
<build>
<plugins>
Modified: java/branches/jeremy-dev/detector-model/src/main/java/org/lcsim/detector/tracker/silicon/HpsSiSensor.java
=============================================================================
--- java/branches/jeremy-dev/detector-model/src/main/java/org/lcsim/detector/tracker/silicon/HpsSiSensor.java (original)
+++ java/branches/jeremy-dev/detector-model/src/main/java/org/lcsim/detector/tracker/silicon/HpsSiSensor.java Wed Dec 16 15:32:00 2015
@@ -449,6 +449,8 @@
buffer.append("\n");
buffer.append("----------------------------------");
buffer.append("\n");
+ buffer.append("Feb ID: " + this.getFebID() + "\n");
+ buffer.append("Feb Hybrid ID: " + this.getFebHybridID() + "\n");
buffer.append("Layer: " + this.getLayerNumber() + "\n");
buffer.append("Module: " + this.getModuleNumber() + "\n");
buffer.append("Number of readout strips: " + this.getReadoutElectrodes(ChargeCarrier.HOLE).getNCells() + "\n");
Modified: java/branches/jeremy-dev/detector-model/src/test/java/org/hps/detector/svt/SvtDetectorSetupTest.java
=============================================================================
--- java/branches/jeremy-dev/detector-model/src/test/java/org/hps/detector/svt/SvtDetectorSetupTest.java (original)
+++ java/branches/jeremy-dev/detector-model/src/test/java/org/hps/detector/svt/SvtDetectorSetupTest.java Wed Dec 16 15:32:00 2015
@@ -63,7 +63,8 @@
final DatabaseConditionsManager conditionsManager = DatabaseConditionsManager.getInstance();
conditionsManager.addConditionsListener(new SvtDetectorSetup());
- conditionsManager.setDetector("HPS-Proposal2014-v7-2pt2", 0);
+ //conditionsManager.setDetector("HPS-Proposal2014-v7-2pt2", 0);
+ conditionsManager.setDetector("HPS-EngRun2015-Nominal-v3", 5772);
// Get the detector.
final Detector detector = conditionsManager.getCachedConditions(Detector.class, "compact.xml").getCachedData();
Modified: java/branches/jeremy-dev/distribution/pom.xml
=============================================================================
--- java/branches/jeremy-dev/distribution/pom.xml (original)
+++ java/branches/jeremy-dev/distribution/pom.xml Wed Dec 16 15:32:00 2015
@@ -13,7 +13,7 @@
<groupId>org.hps</groupId>
<artifactId>hps-parent</artifactId>
<relativePath>../parent/pom.xml</relativePath>
- <version>3.4.2-SNAPSHOT</version>
+ <version>3.5-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 Wed Dec 16 15:32:00 2015
@@ -7,7 +7,7 @@
<groupId>org.hps</groupId>
<artifactId>hps-parent</artifactId>
<relativePath>../parent/pom.xml</relativePath>
- <version>3.4.2-SNAPSHOT</version>
+ <version>3.5-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 Wed Dec 16 15:32:00 2015
@@ -8,7 +8,7 @@
<groupId>org.hps</groupId>
<artifactId>hps-parent</artifactId>
<relativePath>../parent/pom.xml</relativePath>
- <version>3.4.2-SNAPSHOT</version>
+ <version>3.5-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 Wed Dec 16 15:32:00 2015
@@ -8,7 +8,7 @@
<groupId>org.hps</groupId>
<artifactId>hps-parent</artifactId>
<relativePath>../parent/pom.xml</relativePath>
- <version>3.4.2-SNAPSHOT</version>
+ <version>3.5-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/cluster/ClusterEnergyCorrection.java
=============================================================================
--- java/branches/jeremy-dev/ecal-recon/src/main/java/org/hps/recon/ecal/cluster/ClusterEnergyCorrection.java (original)
+++ java/branches/jeremy-dev/ecal-recon/src/main/java/org/hps/recon/ecal/cluster/ClusterEnergyCorrection.java Wed Dec 16 15:32:00 2015
@@ -22,9 +22,9 @@
public final class ClusterEnergyCorrection {
// Variables for electron energy corrections.
- static final double par0_em = 0.009051;
- static final double par1_em[] = {35,-0.1322,-0.0005613,16.42,0.3431,-2.021,74.85,-0.3626};
- static final double par2_em[] = {35, 0.9652, 0.003234, 18.06, 0.2592, 8.586, 75.08, -0.3771};
+ static final double par0_em = 0.02203;
+ static final double par1_em[] = {35,-0.1795,-0.0005613,16.42,0.3431,-2.021,74.85,-0.3626};
+ static final double par2_em[] = {35, 1.011, 0.003234, 18.06, 0.2592, 8.586, 75.08, -0.3771};
// Variables for positron energy corrections.
static final double par0_ep = 0.01307;
Modified: java/branches/jeremy-dev/evio/pom.xml
=============================================================================
--- java/branches/jeremy-dev/evio/pom.xml (original)
+++ java/branches/jeremy-dev/evio/pom.xml Wed Dec 16 15:32:00 2015
@@ -8,7 +8,7 @@
<groupId>org.hps</groupId>
<artifactId>hps-parent</artifactId>
<relativePath>../parent/pom.xml</relativePath>
- <version>3.4.2-SNAPSHOT</version>
+ <version>3.5-SNAPSHOT</version>
</parent>
<scm>
<url>http://java.freehep.org/svn/repos/hps/list/java/trunk/evio/</url>
Modified: java/branches/jeremy-dev/job/pom.xml
=============================================================================
--- java/branches/jeremy-dev/job/pom.xml (original)
+++ java/branches/jeremy-dev/job/pom.xml Wed Dec 16 15:32:00 2015
@@ -7,7 +7,7 @@
<groupId>org.hps</groupId>
<artifactId>hps-parent</artifactId>
<relativePath>../parent/pom.xml</relativePath>
- <version>3.4.2-SNAPSHOT</version>
+ <version>3.5-SNAPSHOT</version>
</parent>
<scm>
<url>http://java.freehep.org/svn/repos/hps/list/java/trunk/job/</url>
Modified: java/branches/jeremy-dev/logging/pom.xml
=============================================================================
--- java/branches/jeremy-dev/logging/pom.xml (original)
+++ java/branches/jeremy-dev/logging/pom.xml Wed Dec 16 15:32:00 2015
@@ -7,7 +7,7 @@
<groupId>org.hps</groupId>
<artifactId>hps-parent</artifactId>
<relativePath>../parent/pom.xml</relativePath>
- <version>3.4.2-SNAPSHOT</version>
+ <version>3.5-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 Wed Dec 16 15:32:00 2015
@@ -7,7 +7,7 @@
<groupId>org.hps</groupId>
<artifactId>hps-parent</artifactId>
<relativePath>../parent/pom.xml</relativePath>
- <version>3.4.2-SNAPSHOT</version>
+ <version>3.5-SNAPSHOT</version>
</parent>
<scm>
<url>http://java.freehep.org/svn/repos/hps/list/java/trunk/monitoring-app/</url>
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 Wed Dec 16 15:32:00 2015
@@ -7,7 +7,7 @@
<groupId>org.hps</groupId>
<artifactId>hps-parent</artifactId>
<relativePath>../parent/pom.xml</relativePath>
- <version>3.4.2-SNAPSHOT</version>
+ <version>3.5-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 Wed Dec 16 15:32:00 2015
@@ -69,13 +69,24 @@
private boolean dropSmallHitEvents = true;
private static final boolean debug = false;
- private static final boolean doPerChannelSamplePlots = false;
- private static final boolean saveRootFile = false;
+ private boolean doPerChannelSamplePlots = false;
+ private int maxSampleCutForNoise = -1;
+ private boolean saveRootFile = false;
private String outputRootFilename = "";
+ private boolean showPlots = true;
public void setDropSmallHitEvents(boolean dropSmallHitEvents) {
this.dropSmallHitEvents = dropSmallHitEvents;
}
+
+ public void setDoPerChannelsSampleplots(boolean val) {
+ doPerChannelSamplePlots = val;
+ }
+
+ public void setSaveRootFile(boolean save) {
+ saveRootFile = save;
+ }
+
private int computePlotterRegion(HpsSiSensor sensor) {
@@ -254,7 +265,8 @@
}
region.getPanel().addMouseListener(new PopupPlotterListener(region));
}
- plotter.show();
+ if(showPlots)
+ plotter.show();
}
}
@@ -297,13 +309,14 @@
hitsPerSensor.get(sensor.getName())[0]++;
firstSamplePlots.get(sensor.getName()).fill(rawHit.getADCValues()[0] - pedestal);
- if (maxSample >= 4) {
+ if (maxSampleCutForNoise >=0 && maxSample >= maxSampleCutForNoise) {
+ firstSamplePlotsNoise.get(sensor.getName()).fill(rawHit.getADCValues()[0] - pedestal);
+ if( doPerChannelSamplePlots )
+ firstSamplePlotsNoisePerChannel.get(sensor.getName()).fill(channel, rawHit.getADCValues()[0] - pedestal);
+ } else {
firstSamplePlotsNoise.get(sensor.getName()).fill(rawHit.getADCValues()[0] - pedestal);
-
- if( doPerChannelSamplePlots ) {
+ if( doPerChannelSamplePlots )
firstSamplePlotsNoisePerChannel.get(sensor.getName()).fill(channel, rawHit.getADCValues()[0] - pedestal);
- }
-
}
}
@@ -378,4 +391,9 @@
}
+ public void setShowPlots(boolean showPlots) {
+ this.showPlots = showPlots;
+ }
+
+
}
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 Wed Dec 16 15:32:00 2015
@@ -7,7 +7,7 @@
<groupId>org.hps</groupId>
<artifactId>hps-parent</artifactId>
<relativePath>../parent/pom.xml</relativePath>
- <version>3.4.2-SNAPSHOT</version>
+ <version>3.5-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 Wed Dec 16 15:32:00 2015
@@ -6,13 +6,13 @@
<groupId>org.hps</groupId>
<artifactId>hps-parent</artifactId>
<packaging>pom</packaging>
- <version>3.4.2-SNAPSHOT</version>
+ <version>3.5-SNAPSHOT</version>
<name>parent</name>
<description>HPS Java parent POM</description>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<org.lcsim.cacheDir>${user.home}</org.lcsim.cacheDir>
- <lcsimVersion>3.1.6-SNAPSHOT</lcsimVersion>
+ <lcsimVersion>3.1.7-SNAPSHOT</lcsimVersion>
<skipSite>false</skipSite>
<skipPlugin>false</skipPlugin>
</properties>
@@ -35,17 +35,22 @@
</repository>
<repository>
<id>freehep-repo-public</id>
- <name>FreeHEP Maven Public</name>
+ <name>FreeHEP</name>
<url>http://srs.slac.stanford.edu/nexus/content/groups/freehep-maven2-public/</url>
</repository>
<repository>
+ <id>srs-repo-public</id>
+ <name>SRS</name>
+ <url>http://srs.slac.stanford.edu/nexus/content/groups/srs-maven2-public/</url>
+ </repository>
+ <repository>
<id>lcsim-repo-public</id>
- <name>LCSIM Public Maven Repository</name>
+ <name>LCSim</name>
<url>http://srs.slac.stanford.edu/nexus/content/groups/lcsim-maven2-public/</url>
</repository>
<repository>
<id>jlab-coda-repo-public</id>
- <name>JLAB CODA Maven Repository</name>
+ <name>CODA</name>
<url>https://coda.jlab.org/maven/</url>
</repository>
</repositories>
@@ -59,13 +64,13 @@
<distributionManagement>
<repository>
<id>lcsim-repo-releases</id>
- <name>LCSIM Releases maven repository</name>
+ <name>LCSim Releases</name>
<!--<url>http://srs.slac.stanford.edu/nexus/content/repositories/lcsim-maven2-releases/</url>-->
<url>http://scalnx-v01.slac.stanford.edu:8180/nexus/content/repositories/lcsim-maven2-releases/</url>
</repository>
<snapshotRepository>
<id>lcsim-repo-snapshots</id>
- <name>LCSIM Snapshots maven repository</name>
+ <name>LCSim Snapshots</name>
<!--<url>http://srs.slac.stanford.edu/nexus/content/repositories/lcsim-maven2-snapshot/</url>-->
<url>http://scalnx-v01.slac.stanford.edu:8180/nexus/content/repositories/lcsim-maven2-snapshot/</url>
</snapshotRepository>
@@ -291,9 +296,9 @@
</exclusions>
</dependency>
<dependency>
- <groupId>org.lcsim</groupId>
- <artifactId>lcsim-detector-framework</artifactId>
- <version>3.1.6-SNAPSHOT</version>
+ <groupId>srs</groupId>
+ <artifactId>org-srs-datacat-client</artifactId>
+ <version>0.5-SNAPSHOT</version>
</dependency>
</dependencies>
</dependencyManagement>
@@ -341,10 +346,12 @@
<artifactId>maven-surefire-report-plugin</artifactId>
<version>2.17</version>
</plugin>
+ <!--
<plugin>
<groupId>org.kuali.maven.plugins</groupId>
<artifactId>graph-maven-plugin</artifactId>
</plugin>
+ -->
</plugins>
</reporting>
<build>
@@ -404,11 +411,13 @@
</lifecycleMappingMetadata>
</configuration>
</plugin>
+ <!--
<plugin>
<groupId>org.kuali.maven.plugins</groupId>
<artifactId>graph-maven-plugin</artifactId>
<version>1.2.3</version>
</plugin>
+ -->
</plugins>
</pluginManagement>
<plugins>
Modified: java/branches/jeremy-dev/plugin/pom.xml
=============================================================================
--- java/branches/jeremy-dev/plugin/pom.xml (original)
+++ java/branches/jeremy-dev/plugin/pom.xml Wed Dec 16 15:32:00 2015
@@ -7,7 +7,7 @@
<groupId>org.hps</groupId>
<artifactId>hps-parent</artifactId>
<relativePath>../parent/pom.xml</relativePath>
- <version>3.4.2-SNAPSHOT</version>
+ <version>3.5-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 Wed Dec 16 15:32:00 2015
@@ -1,5 +1,4 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>hps-modules</artifactId>
<packaging>pom</packaging>
@@ -10,7 +9,7 @@
<groupId>org.hps</groupId>
<artifactId>hps-parent</artifactId>
<relativePath>parent/pom.xml</relativePath>
- <version>3.4.2-SNAPSHOT</version>
+ <version>3.5-SNAPSHOT</version>
</parent>
<scm>
<url>svn://svn.freehep.org/hps/java/trunk/</url>
Modified: java/branches/jeremy-dev/recon/pom.xml
=============================================================================
--- java/branches/jeremy-dev/recon/pom.xml (original)
+++ java/branches/jeremy-dev/recon/pom.xml Wed Dec 16 15:32:00 2015
@@ -8,7 +8,7 @@
<groupId>org.hps</groupId>
<artifactId>hps-parent</artifactId>
<relativePath>../parent/pom.xml</relativePath>
- <version>3.4.2-SNAPSHOT</version>
+ <version>3.5-SNAPSHOT</version>
</parent>
<scm>
<url>http://java.freehep.org/svn/repos/hps/list/java/trunk/recon/</url>
Modified: java/branches/jeremy-dev/recon/src/main/java/org/hps/recon/particle/ReconParticleDriver.java
=============================================================================
--- java/branches/jeremy-dev/recon/src/main/java/org/hps/recon/particle/ReconParticleDriver.java (original)
+++ java/branches/jeremy-dev/recon/src/main/java/org/hps/recon/particle/ReconParticleDriver.java Wed Dec 16 15:32:00 2015
@@ -16,7 +16,6 @@
import org.hps.recon.tracking.CoordinateTransformations;
import org.hps.recon.tracking.TrackUtils;
import org.hps.recon.utils.TrackClusterMatcher;
-import org.lcsim.event.CalorimeterHit;
import org.lcsim.event.Cluster;
import org.lcsim.event.EventHeader;
import org.lcsim.event.ReconstructedParticle;
@@ -25,8 +24,8 @@
import org.lcsim.event.base.BaseCluster;
import org.lcsim.event.base.BaseReconstructedParticle;
import org.lcsim.geometry.Detector;
+import org.lcsim.geometry.subdetector.HPSEcal3;
import org.lcsim.util.Driver;
-import org.lcsim.geometry.subdetector.HPSEcal3;
/**
@@ -50,6 +49,9 @@
public static final int MOLLER_TOP = 0;
public static final int MOLLER_BOT = 1;
+ // normalized cluster-track distance required for qualifying as a match:
+ private double MAXNSIGMAPOSITIONMATCH=30.0;
+
HPSEcal3 ecal;
/**
@@ -180,6 +182,15 @@
this.trackCollectionNames = trackCollectionNames;
}
+ /**
+ * Set the requirement on cluster-track position matching in terms of N-sigma.
+ *
+ * @param nsigma
+ */
+ public void setNSigmaPositionMatch(double nsigma) {
+ MAXNSIGMAPOSITIONMATCH=nsigma;
+ }
+
/**
@@ -235,15 +246,16 @@
// Create a mapping of matched clusters to corresponding tracks.
HashMap<Cluster, Track> clusterToTrack = new HashMap<Cluster,Track>();
-
+
// Loop through all of the track collections and try to match every
// track to a cluster. Allow a cluster to be matched to multiple
// tracks and use a probability (to be coded later) to determine what
// the best match is.
// TODO: At some point, pull this out to it's own method
for (List<Track> tracks : trackCollections) {
+
for (Track track : tracks) {
-
+
// Create a reconstructed particle to represent the track.
ReconstructedParticle particle = new BaseReconstructedParticle();
@@ -257,6 +269,9 @@
// Derive the charge of the particle from the track.
((BaseReconstructedParticle) particle).setCharge(track.getCharge() * flipSign);
+
+ // initialize PID quality to a junk value:
+ ((BaseReconstructedParticle)particle).setGoodnessOfPid(9999);
// Extrapolate the particle ID from the track. Positively
// charged particles are assumed to be positrons and those
@@ -267,36 +282,48 @@
((BaseReconstructedParticle) particle).setParticleIdUsed(new SimpleParticleID(11, 0, 0, 0));
}
+ // normalized distance of the closest match:
+ double smallestNSigma=Double.MAX_VALUE;
+
+ // try to find a matching cluster:
Cluster matchedCluster = null;
-
- // Track the best matching cluster for the track.
- // TODO: This should find the best match not just the first match.
- clusterLoop:
for (Cluster cluster : clusters) {
- // Check if the cluster and track are a valid match.
- if (matcher.isMatch(cluster, track)) {
-
- // Store the matched cluster to matched track.
- clusterToTrack.put(cluster, track);
-
- // Store the matched cluster.
- matchedCluster = cluster;
-
- // Since a match has been found, the loop can be
- // terminated.
- break clusterLoop;
+
+ // normalized distance between this cluster and track:
+ final double thisNSigma=matcher.getNSigmaPosition(cluster, particle);
+
+ // ignore if matching quality doesn't make the cut:
+ if (thisNSigma > MAXNSIGMAPOSITIONMATCH) continue;
+
+ // ignore if we already found a cluster that's a better match:
+ if (thisNSigma > smallestNSigma) continue;
+
+ // we found a new best cluster candidate for this track:
+ smallestNSigma = thisNSigma;
+ matchedCluster = cluster;
+
+ // prefer using GBL tracks to correct (later) the clusters, for some consistency:
+ if (track.getType() >= 32 || !clusterToTrack.containsKey(matchedCluster)) {
+ clusterToTrack.put(matchedCluster,track);
}
}
// If a cluster was found that matches the track...
if (matchedCluster != null) {
+
+ // add cluster to the particle:
particle.addCluster(matchedCluster);
- int pid = particle.getParticleIDUsed().getPDG();
+ // use pid quality to store track-cluster matching quality:
+ ((BaseReconstructedParticle)particle).setGoodnessOfPid(smallestNSigma);
+
+ // propogate pid to the cluster:
+ final int pid = particle.getParticleIDUsed().getPDG();
if (Math.abs(pid) == 11) {
((BaseCluster) matchedCluster).setParticleId(pid);
}
+ // unmatched clusters will (later) be used to create photon particles:
unmatchedClusters.remove(matchedCluster);
}
@@ -306,42 +333,40 @@
}
// Iterate over the remaining unmatched clusters.
- if (!unmatchedClusters.isEmpty()) {
- for (Cluster unmatchedCluster : unmatchedClusters) {
-
- // Create a reconstructed particle to represent the unmatched cluster.
- ReconstructedParticle particle = new BaseReconstructedParticle();
-
- // The particle is assumed to be a photon, since it did not leave a track.
- ((BaseReconstructedParticle) particle).setParticleIdUsed(new SimpleParticleID(22, 0, 0, 0));
-
- int pid = particle.getParticleIDUsed().getPDG();
- if (Math.abs(pid) != 11) {
- ((BaseCluster) unmatchedCluster).setParticleId(pid);
- }
-
- // Add the cluster to the particle.
- particle.addCluster(unmatchedCluster);
-
- // Set the reconstructed particle properties based on the cluster properties.
- ((BaseReconstructedParticle) particle).setCharge(0);
-
- // Add the particle to the reconstructed particle list.
- particles.add(particle);
- }
+ for (Cluster unmatchedCluster : unmatchedClusters) {
+
+ // Create a reconstructed particle to represent the unmatched cluster.
+ ReconstructedParticle particle = new BaseReconstructedParticle();
+
+ // The particle is assumed to be a photon, since it did not leave a track.
+ ((BaseReconstructedParticle) particle).setParticleIdUsed(new SimpleParticleID(22, 0, 0, 0));
+
+ int pid = particle.getParticleIDUsed().getPDG();
+ if (Math.abs(pid) != 11) {
+ ((BaseCluster) unmatchedCluster).setParticleId(pid);
+ }
+
+ // Add the cluster to the particle.
+ particle.addCluster(unmatchedCluster);
+
+ // Set the reconstructed particle properties based on the cluster properties.
+ ((BaseReconstructedParticle) particle).setCharge(0);
+
+ // Add the particle to the reconstructed particle list.
+ particles.add(particle);
}
// Apply the corrections to the Ecal clusters using track information, if available
for (Cluster cluster : clusters) {
if (cluster.getParticleId() != 0) {
- if (clusterToTrack.containsKey(cluster)){
- Track matchedT = clusterToTrack.get(cluster);
- double ypos = TrackUtils.getTrackStateAtECal(matchedT).getReferencePoint()[2];
- ClusterUtilities.applyCorrections(ecal, cluster, ypos);
- }
- else {
- ClusterUtilities.applyCorrections(ecal, cluster);
- }
+ if (clusterToTrack.containsKey(cluster)){
+ Track matchedT = clusterToTrack.get(cluster);
+ double ypos = TrackUtils.getTrackStateAtECal(matchedT).getReferencePoint()[2];
+ ClusterUtilities.applyCorrections(ecal, cluster, ypos);
+ }
+ else {
+ ClusterUtilities.applyCorrections(ecal, cluster);
+ }
}
}
Modified: java/branches/jeremy-dev/recon/src/main/java/org/hps/recon/utils/TrackClusterMatcher.java
=============================================================================
--- java/branches/jeremy-dev/recon/src/main/java/org/hps/recon/utils/TrackClusterMatcher.java (original)
+++ java/branches/jeremy-dev/recon/src/main/java/org/hps/recon/utils/TrackClusterMatcher.java Wed Dec 16 15:32:00 2015
@@ -1,8 +1,4 @@
package org.hps.recon.utils;
-
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
import hep.aida.IAnalysisFactory;
import hep.aida.IHistogram1D;
@@ -13,12 +9,17 @@
import hep.physics.vec.BasicHep3Vector;
import hep.physics.vec.Hep3Vector;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.hps.recon.tracking.CoordinateTransformations;
+import org.hps.recon.tracking.TrackUtils;
import org.lcsim.event.Cluster;
+import org.lcsim.event.ReconstructedParticle;
import org.lcsim.event.Track;
import org.lcsim.event.TrackState;
import org.lcsim.geometry.FieldMap;
-import org.hps.recon.tracking.CoordinateTransformations;
-import org.hps.recon.tracking.TrackUtils;
/**
* Utility used to determine if a track and cluster are matched.
@@ -63,6 +64,55 @@
private double topClusterTrackMatchDeltaYHigh = 28; // mm
private double bottomClusterTrackMatchDeltaYLow = -28; // mm
private double bottomClusterTrackMatchDeltaYHigh = 24; // mm
+
+ /**
+ * Rafo's parameterization of cluster-seed x/y position residuals as function of energy.
+ *
+ * Derived using GBL/seed tracks, non-analytic extrapolation, uncorrected cluster positions,
+ * and EngRun2015-Nominal-v3-4-fieldmap detector.
+ *
+ * f = p0+e*(p1+e*(p2+e*(p3+e*(p4+e*p5))))
+ */
+ private static final double dxMeanTopPosiGBL[] = { 6.67414,-9.57296, 5.70647, 27.4523,-28.1103,-9.11424 };
+ private static final double dxSigmTopPosiGBL[] = { 52.6437,-478.805, 1896.73,-3761.48, 3676.77,-1408.31 };
+ private static final double dxMeanBotPosiGBL[] = { 4.13802, 15.8887,-74.2844,-9.78944, 308.541,-287.668 };
+ private static final double dxSigmBotPosiGBL[] = { 37.6513,-294.851, 1002.15,-1639.08, 1228.02,-308.754 };
+
+ private static final double dxMeanTopElecGBL[] = {-1.6473, 5.58701, 25.3977,-17.1523,-121.025, 145.969 };
+ private static final double dxSigmTopElecGBL[] = { 48.7018,-423.599, 1592.66,-2959.99, 2668.97,-919.876 };
+ private static final double dxMeanBotElecGBL[] = {-6.63558, 83.7763,-460.451, 1275.63,-1702.83, 873.913 };
+ private static final double dxSigmBotElecGBL[] = { 47.0029,-411.784, 1586.52,-3083.37, 2985.58,-1145.53 };
+
+ private static final double dyMeanTopPosiGBL[] = { 0.71245, 5.57585,-6.50267,-8.21688, 39.8607,-43.9661 };
+ private static final double dySigmTopPosiGBL[] = { 33.0213,-275.174, 1168.77,-2642.34, 3045.52,-1406.21 };
+ private static final double dyMeanBotPosiGBL[] = {-5.532, 74.9738,-383.972, 977.849,-1250.28, 637.75 };
+ private static final double dySigmBotPosiGBL[] = { 19.019, -83.9253, 133.813, 119.883,-546.951, 405.207 };
+
+ private static final double dyMeanTopElecGBL[] = { 2.88498,-20.4101, 62.9689, 25.6386,-259.957, 207.145 };
+ private static final double dySigmTopElecGBL[] = { 8.65583, 120.676,-1166.43, 3811.72,-5383.19, 2787.42 };
+ private static final double dyMeanBotElecGBL[] = {-9.02276, 112.329,-489.761, 953.037,-829.96, 260.772 };
+ private static final double dySigmBotElecGBL[] = { 23.4856,-108.19, 158.7, 189.261,-682.034, 459.15 };
+
+ private static final double dxMeanTopPosiSeed[] ={ 11.6245,-28.5061, 13.0332, 59.9465,-21.1014,-63.6126 };
+ private static final double dxSigmTopPosiSeed[] ={ 61.5911,-540.596, 2077.22,-3973.22, 3704.45,-1332.07 };
+ private static final double dxMeanBotPosiSeed[] ={ 4.53394, 11.3773,-63.7127,-2.81629, 273.868,-264.709 };
+ private static final double dxSigmBotPosiSeed[] ={ 48.3163,-409.249, 1590.36,-3212.85, 3326.04,-1402.3 };
+
+ private static final double dxMeanTopElecSeed[] ={ 2.14163,-20.8713, 76.3054, 34.894,-340.272, 295.24 };
+ private static final double dxSigmTopElecSeed[] ={ 48.585, -385.166, 1320.26,-2157.45, 1581.06,-366.012 };
+ private static final double dxMeanBotElecSeed[] ={-3.44302, 12.4687, 4.09878,-30.0057,-13.3151, 40.2707 };
+ private static final double dxSigmBotElecSeed[] ={ 48.4089,-385.494, 1341.37,-2271.52, 1814.02,-526.555 };
+
+ private static final double dyMeanTopPosiSeed[] ={-0.127741,10.4944, -18.242,-12.9155, 81.0116,-73.9773 };
+ private static final double dySigmTopPosiSeed[] ={ 37.3097, -357.55, 1607.03,-3709.55, 4282.36,-1957.91 };
+ private static final double dyMeanBotPosiSeed[] ={ 2.24392,-55.2003, 405.04,-1250.64, 1731.47,-887.262 };
+ private static final double dySigmBotPosiSeed[] ={ 25.5776,-199.731, 754.59,-1408.72, 1240.36,-400.912 };
+
+ private static final double dyMeanTopElecSeed[] ={ 3.25429,-24.0858, 69.0145, 34.1213,-297.752, 239.939 };
+ private static final double dySigmTopElecSeed[] ={ 19.9111,-53.2699,-261.915, 1593.2,-2774.01, 1605.54 };
+ private static final double dyMeanBotElecSeed[] ={-7.72963, 98.1346, -427.91, 840.225,-751.188, 250.792 };
+ private static final double dySigmBotElecSeed[] ={ 21.7909,-85.4757,-56.9423, 977.522,-1902.05, 1137.92 };
+
/**
* Z position to start extrapolation from
@@ -194,10 +244,101 @@
tPos = new BasicHep3Vector(trackStateAtEcal.getReferencePoint());
tPos = CoordinateTransformations.transformVectorToDetector(tPos);
}
+
+ return Math.sqrt(Math.pow(cPos.x()-tPos.x(),2)+Math.pow(cPos.y()-tPos.y(),2));
+ }
+
+ /**
+ * Calculate #sigma between cluster-track x/y position at calorimeter.
+ *
+ * Based on Rafo's parameterizations. Requires non-analytic extrapolation
+ * and uncorrected cluster positions.
+ *
+ * @param cluster = position-uncorrected cluster
+ * @param track
+ *
+ * @return #sigma between cluster and track positions
+ */
+ public double getNSigmaPosition(Cluster cluster,ReconstructedParticle particle) {
+
+ if (particle.getTracks().size()<1) return Double.MAX_VALUE;
+ Track track=particle.getTracks().get(0);
+
+ if (this.useAnalyticExtrapolator)
+ throw new RuntimeException("This is to be used with non-analytic extrapolator only.");
+
+ // Get the cluster position:
+ Hep3Vector cPos = new BasicHep3Vector(cluster.getPosition());
+
+ // whether track is in top half of detector:
+ final boolean isTopTrack = track.getTrackStates().get(0).getTanLambda() > 0;
+
+ // ignore if track and cluster in different halves:
+ if (isTopTrack != cPos.y()>0) return Double.MAX_VALUE;
+
+ // Get the extrapolated track position at the calorimeter:
+ TrackState trackStateAtEcal = TrackUtils.getTrackStateAtECal(track);
+ Hep3Vector tPos = new BasicHep3Vector(trackStateAtEcal.getReferencePoint());
+ tPos = CoordinateTransformations.transformVectorToDetector(tPos);
+
+ // whether it's a GBL track:
+ final boolean isGBL = track.getType() >= 32;
+
+ // choose which parameterization of mean and sigma to use:
+ double dxMean[],dyMean[],dxSigm[],dySigm[];
+ if (particle.getCharge()>0) {
+ if (isTopTrack) {
+ dxMean = isGBL ? dxMeanTopPosiGBL : dxMeanTopPosiSeed;
+ dxSigm = isGBL ? dxSigmTopPosiGBL : dxSigmTopPosiSeed;
+ dyMean = isGBL ? dyMeanTopPosiGBL : dyMeanTopPosiSeed;
+ dySigm = isGBL ? dySigmTopPosiGBL : dySigmTopPosiSeed;
+ }
+ else {
+ dxMean = isGBL ? dxMeanBotPosiGBL : dxMeanBotPosiSeed;
+ dxSigm = isGBL ? dxSigmBotPosiGBL : dxSigmBotPosiSeed;
+ dyMean = isGBL ? dyMeanBotPosiGBL : dyMeanBotPosiSeed;
+ dySigm = isGBL ? dySigmBotPosiGBL : dySigmBotPosiSeed;
+ }
+ }
+ else if (particle.getCharge()<0) {
+ if (isTopTrack) {
+ dxMean = isGBL ? dxMeanTopElecGBL : dxMeanTopElecSeed;
+ dxSigm = isGBL ? dxSigmTopElecGBL : dxSigmTopElecSeed;
+ dyMean = isGBL ? dyMeanTopElecGBL : dyMeanTopElecSeed;
+ dySigm = isGBL ? dySigmTopElecGBL : dySigmTopElecSeed;
+ }
+ else {
+ dxMean = isGBL ? dxMeanBotElecGBL : dxMeanBotElecSeed;
+ dxSigm = isGBL ? dxSigmBotElecGBL : dxSigmBotElecSeed;
+ dyMean = isGBL ? dyMeanBotElecGBL : dyMeanBotElecSeed;
+ dySigm = isGBL ? dySigmBotElecGBL : dySigmBotElecSeed;
+ }
+ }
+ else return Double.MAX_VALUE;
+
+ // get particle energy:
+ Hep3Vector p3 = new BasicHep3Vector(track.getTrackStates().get(0).getMomentum());
+ p3 = CoordinateTransformations.transformVectorToDetector(p3);
+ double ee = p3.magnitude();
- return Math.sqrt(Math.pow(cPos.x()-tPos.x(),2)+Math.pow(cPos.y()-tPos.y(),2));
- }
-
+ // Rafo's parameterization isn't measured above 650 MeV/c but expected to be constant:
+ if (ee > 0.65) ee=0.65;
+
+ // calculate measured mean and sigma of deltaX and deltaY for this energy:
+ double aDxMean=0,aDxSigm=0,aDyMean=0,aDySigm=0;
+ for (int ii=dxMean.length-1; ii>=0; ii--) aDxMean = dxMean[ii] + ee*aDxMean;
+ for (int ii=dxSigm.length-1; ii>=0; ii--) aDxSigm = dxSigm[ii] + ee*aDxSigm;
+ for (int ii=dyMean.length-1; ii>=0; ii--) aDyMean = dyMean[ii] + ee*aDyMean;
+ for (int ii=dySigm.length-1; ii>=0; ii--) aDySigm = dySigm[ii] + ee*aDySigm;
+
+ // calculate nSigma between track and cluster:
+ final double nSigmaX = (cPos.x() - tPos.x() - aDxMean) / aDxSigm;
+ final double nSigmaY = (cPos.y() - tPos.y() - aDyMean) / aDySigm;
+ return Math.sqrt(nSigmaX*nSigmaX + nSigmaY*nSigmaY);
+ //return Math.sqrt( 1 / ( 1/nSigmaX/nSigmaX + 1/nSigmaY/nSigmaY ) );
+ }
+
+
/**
* Determine if a track is matched to a cluster. Currently, this is
* determined by checking that the track and cluster are within the same
@@ -388,4 +529,16 @@
e.printStackTrace();
}
}
+
+ /**
+ * Class to store track-cluster matching qualities.
+ */
+ public class TrackClusterMatch {
+ private double nSigmaPositionMatch=Double.MAX_VALUE;
+ public TrackClusterMatch(ReconstructedParticle pp, Cluster cc) {
+ nSigmaPositionMatch = getNSigmaPosition(cc,pp);
+ }
+ public double getNSigmaPositionMatch() { return nSigmaPositionMatch; }
+ }
+
}
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 Wed Dec 16 15:32:00 2015
@@ -7,7 +7,7 @@
<groupId>org.hps</groupId>
<artifactId>hps-parent</artifactId>
<relativePath>../parent/pom.xml</relativePath>
- <version>3.4.2-SNAPSHOT</version>
+ <version>3.5-SNAPSHOT</version>
</parent>
<scm>
<url>http://java.freehep.org/svn/repos/hps/list/java/trunk/record-util/</url>
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 Wed Dec 16 15:32:00 2015
@@ -8,7 +8,7 @@
<groupId>org.hps</groupId>
<artifactId>hps-parent</artifactId>
<relativePath>../parent/pom.xml</relativePath>
- <version>3.4.2-SNAPSHOT</version>
+ <version>3.5-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/monitoring/SvtOnlineMonitoring.lcsim
=============================================================================
--- java/branches/jeremy-dev/steering-files/src/main/resources/org/hps/steering/monitoring/SvtOnlineMonitoring.lcsim (original)
+++ java/branches/jeremy-dev/steering-files/src/main/resources/org/hps/steering/monitoring/SvtOnlineMonitoring.lcsim Wed Dec 16 15:32:00 2015
@@ -23,7 +23,10 @@
<timeWindowWeight>3</timeWindowWeight>
<resetPeriod>50000</resetPeriod>
</driver>
- <driver name="SvtHitPlots" type="org.hps.monitoring.drivers.svt.SvtHitPlots" />
+ <driver name="SvtHitPlots" type="org.hps.monitoring.drivers.svt.SvtHitPlots">
+ <doPerChannelsSampleplots>true</doPerChannelsSampleplots>
+ <saveRootFile>true</saveRootFile>
+ </driver>
<driver name="SamplesPlots" type="org.hps.monitoring.drivers.svt.SamplesPlots" />
<driver name="PedestalPlots" type="org.hps.monitoring.drivers.svt.PedestalPlots" />
<driver name="RawTrackerHitFitterDriver" type="org.hps.recon.tracking.RawTrackerHitFitterDriver">
Modified: java/branches/jeremy-dev/steering-files/src/main/resources/org/hps/steering/recon/EngineeringRun2015FullRecon.lcsim
=============================================================================
--- java/branches/jeremy-dev/steering-files/src/main/resources/org/hps/steering/recon/EngineeringRun2015FullRecon.lcsim (original)
+++ java/branches/jeremy-dev/steering-files/src/main/resources/org/hps/steering/recon/EngineeringRun2015FullRecon.lcsim Wed Dec 16 15:32:00 2015
@@ -7,7 +7,9 @@
@author <a href="mailto:[log in to unmask]">Omar Moreno</a>
-->
<execute>
-
+ <!--RF driver-->
+ <driver name="RfFitter"/>
+
<!-- Ecal reconstruction drivers -->
<driver name="EcalRunningPedestal"/>
<driver name="EcalRawConverter" />
@@ -51,7 +53,6 @@
ReconstructedParticle types are properly set.
-->
<driver name="MergeTrackCollections"/>
- <driver name="GBLOutputDriver" />
<driver name="GBLRefitterDriver" />
<driver name="TrackDataDriver" />
<driver name="ReconParticleDriver" />
@@ -61,7 +62,9 @@
<drivers>
<driver name="EventMarkerDriver" type="org.lcsim.job.EventMarkerDriver">
<eventInterval>1000</eventInterval>
- </driver>
+ </driver>
+
+ <driver name="RfFitter" type="org.hps.evio.RfFitterDriver"/>
<!-- Ecal reconstruction drivers -->
<driver name="EcalRunningPedestal" type="org.hps.recon.ecal.EcalRunningPedestalDriver">
@@ -134,8 +137,7 @@
<ecalClusterCollectionName>EcalClustersCorr</ecalClusterCollectionName>
<trackCollectionNames>MatchedTracks GBLTracks</trackCollectionNames>
</driver>
- <driver name="GBLOutputDriver" type="org.hps.recon.tracking.gbl.GBLOutputDriver"/>
- <driver name="GBLRefitterDriver" type="org.hps.recon.tracking.gbl.HpsGblRefitter"/>
+ <driver name="GBLRefitterDriver" type="org.hps.recon.tracking.gbl.GBLRefitterDriver"/>
<driver name="LCIOWriter" type="org.lcsim.util.loop.LCIODriver">
<outputFilePath>${outputFile}.slcio</outputFilePath>
</driver>
Modified: java/branches/jeremy-dev/steering-files/src/main/resources/org/hps/steering/recon/EngineeringRun2015FullReconMC.lcsim
=============================================================================
--- java/branches/jeremy-dev/steering-files/src/main/resources/org/hps/steering/recon/EngineeringRun2015FullReconMC.lcsim (original)
+++ java/branches/jeremy-dev/steering-files/src/main/resources/org/hps/steering/recon/EngineeringRun2015FullReconMC.lcsim Wed Dec 16 15:32:00 2015
@@ -53,7 +53,6 @@
ReconstructedParticle types are properly set.
-->
<driver name="MergeTrackCollections"/>
- <driver name="GBLOutputDriver" />
<driver name="GBLRefitterDriver" />
<driver name="TrackDataDriver" />
<driver name="ReconParticleDriver" />
@@ -119,8 +118,7 @@
<rmsTimeCut>8.0</rmsTimeCut>
</driver>
<driver name="MergeTrackCollections" type="org.hps.recon.tracking.MergeTrackCollections" />
- <driver name="GBLOutputDriver" type="org.hps.recon.tracking.gbl.GBLOutputDriver"/>
- <driver name="GBLRefitterDriver" type="org.hps.recon.tracking.gbl.HpsGblRefitter"/>
+ <driver name="GBLRefitterDriver" type="org.hps.recon.tracking.gbl.GBLRefitterDriver"/>
<driver name="EcalRawConverter" type="org.hps.recon.ecal.EcalRawConverterDriver">
<ecalCollectionName>EcalCalHits</ecalCollectionName>
<fixShapeParameter>true</fixShapeParameter>
Modified: java/branches/jeremy-dev/steering-files/src/main/resources/org/hps/steering/recon/EngineeringRun2015STRecon.lcsim
=============================================================================
--- java/branches/jeremy-dev/steering-files/src/main/resources/org/hps/steering/recon/EngineeringRun2015STRecon.lcsim (original)
+++ java/branches/jeremy-dev/steering-files/src/main/resources/org/hps/steering/recon/EngineeringRun2015STRecon.lcsim Wed Dec 16 15:32:00 2015
@@ -55,6 +55,7 @@
<driver name="StraightThroughDriver" type="org.hps.recon.tracking.straight.StraightThroughAnalysisDriver">
<outputFilename>${outputFile}</outputFilename>
<writeGbl>true</writeGbl>
+ <showPlots>false</showPlots>
</driver>
</drivers>
Modified: java/branches/jeremy-dev/tracking/pom.xml
=============================================================================
--- java/branches/jeremy-dev/tracking/pom.xml (original)
+++ java/branches/jeremy-dev/tracking/pom.xml Wed Dec 16 15:32:00 2015
@@ -8,7 +8,7 @@
<groupId>org.hps</groupId>
<artifactId>hps-parent</artifactId>
<relativePath>../parent/pom.xml</relativePath>
- <version>3.4.2-SNAPSHOT</version>
+ <version>3.5-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 Wed Dec 16 15:32:00 2015
@@ -64,8 +64,8 @@
private final List<String> _colnames = new ArrayList<String>();
private boolean _doTransformToTracking = true;
private boolean _saveAxialHits = false;
- private String _axialname = "AxialTrackHits";
- private String _axialmcrelname = "AxialTrackHitsMCRelations";
+ private final String _axialname = "AxialTrackHits";
+ private final String _axialmcrelname = "AxialTrackHitsMCRelations";
private boolean rejectGhostHits = false;
public enum LayerGeometryType {
@@ -143,7 +143,7 @@
public void setEpsStereo(double eps) {
this._crosser.setEpsStereoAngle(eps);
}
-
+
/**
*
* @param trans
@@ -199,8 +199,9 @@
// Create an LCRelation from a HelicalTrackHit to an MC particle used to
// create it
List<LCRelation> mcrelations = new ArrayList<LCRelation>();
- RelationalTable hittomc = new BaseRelationalTable(RelationalTable.Mode.ONE_TO_MANY, RelationalTable.Weighting.UNWEIGHTED);
+ RelationalTable hittomc = null;
if (event.hasCollection(LCRelation.class, "SVTTrueHitRelations")) {
+ hittomc = new BaseRelationalTable(RelationalTable.Mode.ONE_TO_MANY, RelationalTable.Weighting.UNWEIGHTED);
List<LCRelation> trueHitRelations = event.get(LCRelation.class, "SVTTrueHitRelations");
for (LCRelation relation : trueHitRelations) {
if (relation != null && relation.getFrom() != null && relation.getTo() != null) {
@@ -241,9 +242,11 @@
// Create a HelicalTrackStrip for this hit
HelicalTrackStrip strip = makeDigiStrip(h);
- for (RawTrackerHit rth : h.getRawHits()) {
- for (Object simHit : hittomc.allFrom(rth)) {
- strip.addMCParticle(((SimTrackerHit) simHit).getMCParticle());
+ if (hittomc != null) {
+ for (RawTrackerHit rth : h.getRawHits()) {
+ for (Object simHit : hittomc.allFrom(rth)) {
+ strip.addMCParticle(((SimTrackerHit) simHit).getMCParticle());
+ }
}
}
@@ -259,10 +262,12 @@
if (((HpsSiSensor) h.getSensor()).isAxial()) {
HelicalTrack2DHit haxial = makeDigiAxialHit(h);
axialhits.add(haxial);
- List<RawTrackerHit> rl = haxial.getRawHits();
- for (RawTrackerHit rth : rl) {
- for (Object simHit : hittomc.allFrom(rth)) {
- haxial.addMCParticle(((SimTrackerHit) simHit).getMCParticle());
+ if (hittomc != null) {
+ List<RawTrackerHit> rl = haxial.getRawHits();
+ for (RawTrackerHit rth : rl) {
+ for (Object simHit : hittomc.allFrom(rth)) {
+ haxial.addMCParticle(((SimTrackerHit) simHit).getMCParticle());
+ }
}
}
axialmcrelations.add(new MyLCRelation(haxial, haxial.getMCParticles()));
@@ -456,14 +461,18 @@
helhits.addAll(stereoCrosses);
event.put(_outname, helhits, HelicalTrackHit.class, 0);
event.put(_hitrelname, hitrelations, LCRelation.class, 0);
- event.put(_mcrelname, mcrelations, LCRelation.class, 0);
+ if (hittomc != null) {
+ event.put(_mcrelname, mcrelations, LCRelation.class, 0);
+ }
if (_saveAxialHits) {
event.put(_axialname, axialhits, HelicalTrackHit.class, 0);
- event.put(_axialmcrelname, axialmcrelations, LCRelation.class, 0);
- System.out.println(this.getClass().getSimpleName() + " : number of " + _axialmcrelname + " found = " + axialmcrelations.size());
+ if (hittomc != null) {
+ event.put(_axialmcrelname, axialmcrelations, LCRelation.class, 0);
+ System.out.println(this.getClass().getSimpleName() + " : number of " + _axialmcrelname + " found = " + axialmcrelations.size());
+ }
}
if (_doTransformToTracking) {
- addRotatedHitsToEvent(event, stereoCrosses);
+ addRotatedHitsToEvent(event, stereoCrosses, hittomc != null);
if (_saveAxialHits) {
addRotated2DHitsToEvent(event, axialhits);
}
@@ -595,7 +604,7 @@
return strip;
}
- private void addRotatedHitsToEvent(EventHeader event, List<HelicalTrackCross> stereohits) {
+ private void addRotatedHitsToEvent(EventHeader event, List<HelicalTrackCross> stereohits, boolean isMC) {
List<HelicalTrackHit> rotatedhits = new ArrayList<HelicalTrackHit>();
List<LCRelation> hthrelations = new ArrayList<LCRelation>();
@@ -634,10 +643,10 @@
strip1.add(rotatedstriphits.get(0));
strip2.add(rotatedstriphits.get(1));
List<HelicalTrackCross> newhits = _crosser.MakeHits(strip1, strip2);
- if(newhits.size()!=1) {
+ if (newhits.size() != 1) {
throw new RuntimeException("no rotated cross was created!?");
}
- HelicalTrackCross newhit = newhits.get(0);
+ HelicalTrackCross newhit = newhits.get(0);
//HelicalTrackCross newhit = new HelicalTrackCross(rotatedstriphits.get(0), rotatedstriphits.get(1));
for (MCParticle mcp : cross.getMCParticles()) {
newhit.addMCParticle(mcp);
@@ -651,7 +660,9 @@
event.put("Rotated" + _outname, rotatedhits, HelicalTrackHit.class, 0);
event.put("Rotated" + _hitrelname, hthrelations, LCRelation.class, 0);
- event.put("Rotated" + _mcrelname, mcrelations, LCRelation.class, 0);
+ if (isMC) {
+ event.put("Rotated" + _mcrelname, mcrelations, LCRelation.class, 0);
+ }
}
/*
Modified: java/branches/jeremy-dev/tracking/src/main/java/org/hps/recon/tracking/TrackDataDriver.java
=============================================================================
--- java/branches/jeremy-dev/tracking/src/main/java/org/hps/recon/tracking/TrackDataDriver.java (original)
+++ java/branches/jeremy-dev/tracking/src/main/java/org/hps/recon/tracking/TrackDataDriver.java Wed Dec 16 15:32:00 2015
@@ -16,7 +16,6 @@
import org.lcsim.event.TrackState;
import org.lcsim.event.TrackerHit;
import org.lcsim.event.base.BaseLCRelation;
-import org.lcsim.event.base.BaseRelationalTable;
import org.lcsim.fit.helicaltrack.HelicalTrackCross;
import org.lcsim.fit.helicaltrack.HelicalTrackHit;
import org.lcsim.fit.helicaltrack.HelicalTrackStrip;
@@ -34,7 +33,7 @@
public final class TrackDataDriver extends Driver {
/** logger **/
- private static Logger LOGGER = Logger.getLogger(TrackDataDriver.class.getPackage().getName());
+ private static final Logger LOGGER = Logger.getLogger(TrackDataDriver.class.getPackage().getName());
/** The B field map */
@@ -107,6 +106,7 @@
*
* @param detector LCSim {@link Detector} geometry
*/
+ @Override
protected void detectorChanged(Detector detector) {
// Get the field map from the detector object
@@ -121,6 +121,7 @@
*
* @param event : LCSim event
*/
+ @Override
protected void process(EventHeader event) {
// Check if the event contains a collection of the type Track. If it
@@ -135,15 +136,11 @@
// Get the collection of LCRelations relating RotatedHelicalTrackHits to
// HelicalTrackHits
- List<LCRelation> rotatedHthToHthRelations = event.get(LCRelation.class, ROTATED_HTH_REL_COL_NAME);
- BaseRelationalTable hthToRotatedHth = new BaseRelationalTable(RelationalTable.Mode.ONE_TO_ONE,
- RelationalTable.Weighting.UNWEIGHTED);
- hthToRotatedHth.addRelations(rotatedHthToHthRelations);
RelationalTable hitToStrips = TrackUtils.getHitToStripsTable(event);
RelationalTable hitToRotated = TrackUtils.getHitToRotatedTable(event);
- List<HelicalTrackHit> rotatedHths = event.get(HelicalTrackHit.class, ROTATED_HTH_COL_NAME);
+// List<HelicalTrackHit> rotatedHths = event.get(HelicalTrackHit.class, ROTATED_HTH_COL_NAME);
// Create a container that will be used to store all TrackData objects.
List<TrackData> trackDataCollection = new ArrayList<TrackData>();
@@ -159,21 +156,21 @@
// residuals
List<LCRelation> trackToTrackResidualsRelations = new ArrayList<LCRelation>();
- double xResidual = 0;
- double yResidual = 0;
-
- float totalT0 = 0;
- float totalHits = 0;
- float trackTime = 0;
+ double xResidual;
+ double yResidual;
+
+ float totalT0;
+ float totalHits;
+ float trackTime;
int trackerVolume = -1;
- boolean isFirstHit = true;
-
- HpsSiSensor sensor = null;
- Hep3Vector stereoHitPosition = null;
- Hep3Vector trackPosition = null;
- HelicalTrackHit helicalTrackHit = null;
+ boolean isFirstHit;
+
+ HpsSiSensor sensor;
+ Hep3Vector stereoHitPosition;
+ Hep3Vector trackPosition;
+ HelicalTrackHit helicalTrackHit;
List<Double> t0Residuals = new ArrayList<Double>();
List<Double> trackResidualsX = new ArrayList<Double>();
@@ -198,7 +195,10 @@
stereoLayers.clear();
isFirstHit = true;
- //
+// TrackState trackStateForResiduals = TrackUtils.getTrackStateAtLocation(track, TrackState.AtLastHit);
+// if (trackStateForResiduals == null ) trackStateForResiduals= TrackUtils.getTrackStateAtLocation(track, TrackState.AtIP);
+ TrackState trackStateForResiduals = TrackUtils.getTrackStateAtLocation(track, TrackState.AtIP);
+
// Change the position of a HelicalTrackHit to be the corrected
// one.
// FIXME: Now that multiple track collections are being used,
@@ -216,7 +216,7 @@
// Extrapolate the track to the stereo hit position and
// calculate track residuals
stereoHitPosition = ((HelicalTrackHit) rotatedStereoHit).getCorrectedPosition();
- trackPosition = TrackUtils.extrapolateTrack(track, stereoHitPosition.x());
+ trackPosition = TrackUtils.extrapolateTrack(trackStateForResiduals, stereoHitPosition.x());
xResidual = trackPosition.x() - stereoHitPosition.y();
yResidual = trackPosition.y() - stereoHitPosition.z();
trackResidualsX.add(xResidual);
@@ -230,7 +230,7 @@
// Get the HelicalTrackHit corresponding to the
// RotatedHelicalTrackHit associated with a track
- helicalTrackHit = (HelicalTrackHit) hthToRotatedHth.from(rotatedStereoHit);
+ helicalTrackHit = (HelicalTrackHit) hitToRotated.from(rotatedStereoHit);
((HelicalTrackHit) rotatedStereoHit).setPosition(stereoHitPosition.v());
stereoHitPosition = CoordinateTransformations.transformVectorToDetector(stereoHitPosition);
helicalTrackHit.setPosition(stereoHitPosition.v());
@@ -261,18 +261,7 @@
// Extrapolate the track to the face of the Ecal and get the TrackState
if( TrackType.isGBL(track.getType())) {
- TrackState stateLast = null;
- TrackState stateIP = null;
- for(int ist= 0; ist < track.getTrackStates().size(); ist++) {
- if( track.getTrackStates().get(ist).getLocation() == TrackState.AtLastHit )
- stateLast = track.getTrackStates().get(ist);
- if( track.getTrackStates().get(ist).getLocation() == TrackState.AtIP )
- stateIP = track.getTrackStates().get(ist);
- }
- if( stateLast == null)
- throw new RuntimeException("last hit track state for GBL track was not found");
-// TrackState stateEcal = TrackUtils.extrapolateTrackUsingFieldMap(stateLast, extStartPos, ecalPosition, stepSize, bFieldMap);
-// track.getTrackStates().add(stateEcal);
+ TrackState stateIP = TrackUtils.getTrackStateAtLocation(track, TrackState.AtIP);
if( stateIP == null)
throw new RuntimeException("IP track state for GBL track was not found");
TrackState stateEcalIP = TrackUtils.extrapolateTrackUsingFieldMap(stateIP, extStartPos, ecalPosition, stepSize, bFieldMap);
Modified: java/branches/jeremy-dev/tracking/src/main/java/org/hps/recon/tracking/TrackUtils.java
=============================================================================
--- java/branches/jeremy-dev/tracking/src/main/java/org/hps/recon/tracking/TrackUtils.java (original)
+++ java/branches/jeremy-dev/tracking/src/main/java/org/hps/recon/tracking/TrackUtils.java Wed Dec 16 15:32:00 2015
@@ -1306,15 +1306,25 @@
return new Line(r0, phi, lambda);
}
- public static TrackState getTrackStateAtECal(Track trk) {
+ /**
+ * Port of Track.getTrackState(int location) from the C++ LCIO API.
+ * @param trk A track.
+ * @param location A TrackState location constant
+ * @return The first matching TrackState; null if none is found.
+ */
+ public static TrackState getTrackStateAtLocation(Track trk, int location) {
for (TrackState state : trk.getTrackStates()) {
- if (state.getLocation() == TrackState.AtCalorimeter) {
+ if (state.getLocation() == location) {
return state;
}
}
return null;
}
+ public static TrackState getTrackStateAtECal(Track trk) {
+ return getTrackStateAtLocation(trk, TrackState.AtCalorimeter);
+ }
+
public static Hep3Vector getBField(Detector detector) {
return detector.getFieldMap().getField(new BasicHep3Vector(0., 0., 500.0));
}
Modified: java/branches/jeremy-dev/tracking/src/main/java/org/hps/recon/tracking/TrackerReconDriver.java
=============================================================================
--- java/branches/jeremy-dev/tracking/src/main/java/org/hps/recon/tracking/TrackerReconDriver.java (original)
+++ java/branches/jeremy-dev/tracking/src/main/java/org/hps/recon/tracking/TrackerReconDriver.java Wed Dec 16 15:32:00 2015
@@ -13,11 +13,9 @@
import java.util.logging.Logger;
import org.lcsim.event.EventHeader;
-import org.lcsim.event.LCRelation;
import org.lcsim.event.RelationalTable;
import org.lcsim.event.Track;
import org.lcsim.event.TrackerHit;
-import org.lcsim.event.base.BaseRelationalTable;
import org.lcsim.event.base.BaseTrack;
import org.lcsim.fit.helicaltrack.HelicalTrackHit;
import org.lcsim.geometry.Detector;
@@ -65,7 +63,7 @@
private double rmsTimeCut = -1;
private boolean rejectUncorrectedHits = true;
private boolean rejectSharedHits = false;
-
+
public TrackerReconDriver() {
}
@@ -165,8 +163,9 @@
//
// 1) Driver to run Seed Tracker.
//
- if (!strategyResource.startsWith("/"))
+ if (!strategyResource.startsWith("/")) {
strategyResource = "/org/hps/recon/tracking/strategies/" + strategyResource;
+ }
List<SeedStrategy> sFinallist = StrategyXMLUtils.getStrategyListFromInputStream(this.getClass().getResourceAsStream(strategyResource));
SeedTracker stFinal = new SeedTracker(sFinallist, this._useHPSMaterialManager, this.includeMS);
stFinal.setApplySectorBinning(_applySectorBinning);
@@ -177,14 +176,16 @@
stFinal.setInputCollectionName(stInputCollectionName);
stFinal.setTrkCollectionName(trackCollectionName);
stFinal.setBField(bfield);
- if (debug)
+ if (debug) {
stFinal.setDiagnostics(new SeedTrackerDiagnostics());
+ }
// stFinal.setSectorParams(false); //this doesn't actually seem to do anything
stFinal.setSectorParams(1, 10000);
add(stFinal);
- if (rmsTimeCut > 0)
+ if (rmsTimeCut > 0) {
stFinal.setTrackCheck(new HitTimeTrackCheck(rmsTimeCut));
+ }
}
/**
@@ -198,10 +199,11 @@
// Debug printouts.
if (debug) {
- if (event.hasCollection(HelicalTrackHit.class, stInputCollectionName))
+ if (event.hasCollection(HelicalTrackHit.class, stInputCollectionName)) {
System.out.println(this.getClass().getSimpleName() + ": The HelicalTrackHit collection " + stInputCollectionName + " has " + event.get(HelicalTrackHit.class, stInputCollectionName).size() + " hits.");
- else
+ } else {
System.out.println(this.getClass().getSimpleName() + ": No HelicalTrackHit collection for this event");
+ }
// Check for Tracks.
List<Track> tracks = event.get(Track.class, trackCollectionName);
System.out.println(this.getClass().getSimpleName() + ": The Track collection " + trackCollectionName + " has " + tracks.size() + " tracks.");
@@ -236,27 +238,13 @@
}
if (rejectSharedHits) {
-
- RelationalTable hittostrip = new BaseRelationalTable(RelationalTable.Mode.MANY_TO_MANY, RelationalTable.Weighting.UNWEIGHTED);
- List<LCRelation> hitrelations = event.get(LCRelation.class, "HelicalTrackHitRelations");
- for (LCRelation relation : hitrelations) {
- if (relation != null && relation.getFrom() != null && relation.getTo() != null) {
- hittostrip.add(relation.getFrom(), relation.getTo());
- }
- }
-
- RelationalTable hittorotated = new BaseRelationalTable(RelationalTable.Mode.ONE_TO_ONE, RelationalTable.Weighting.UNWEIGHTED);
- List<LCRelation> rotaterelations = event.get(LCRelation.class, "RotatedHelicalTrackHitRelations");
- for (LCRelation relation : rotaterelations) {
- if (relation != null && relation.getFrom() != null && relation.getTo() != null) {
- hittorotated.add(relation.getFrom(), relation.getTo());
- }
- }
+ RelationalTable hitToStrips = TrackUtils.getHitToStripsTable(event);
+ RelationalTable hitToRotated = TrackUtils.getHitToRotatedTable(event);
Map<TrackerHit, List<Track>> stripsToTracks = new HashMap<TrackerHit, List<Track>>();
for (Track track : tracks) {
for (TrackerHit hit : track.getTrackerHits()) {
- Collection<TrackerHit> htsList = hittostrip.allFrom(hittorotated.from(hit));
+ Collection<TrackerHit> htsList = hitToStrips.allFrom(hitToRotated.from(hit));
for (TrackerHit strip : htsList) {
List<Track> sharedTracks = stripsToTracks.get(strip);
if (sharedTracks == null) {
@@ -272,7 +260,7 @@
while (iter.hasNext()) {
Track track = iter.next();
for (TrackerHit hit : track.getTrackerHits()) {
- Collection<TrackerHit> htsList = hittostrip.allFrom(hittorotated.from(hit));
+ Collection<TrackerHit> htsList = hitToStrips.allFrom(hitToRotated.from(hit));
for (TrackerHit strip : htsList) {
List<Track> sharedTracks = stripsToTracks.get(strip);
if (sharedTracks.size() > 1) {
@@ -304,8 +292,9 @@
* @param tracks The list of <code>Track</code> objects.
*/
private void setTrackType(List<Track> tracks) {
- for (Track track : tracks)
+ for (Track track : tracks) {
((BaseTrack) track).setTrackType(BaseTrack.TrackType.Y_FIELD.ordinal());
+ }
}
@Override
Modified: java/branches/jeremy-dev/tracking/src/main/java/org/hps/recon/tracking/gbl/GBLOutputDriver.java
=============================================================================
--- java/branches/jeremy-dev/tracking/src/main/java/org/hps/recon/tracking/gbl/GBLOutputDriver.java (original)
+++ java/branches/jeremy-dev/tracking/src/main/java/org/hps/recon/tracking/gbl/GBLOutputDriver.java Wed Dec 16 15:32:00 2015
@@ -20,11 +20,11 @@
import org.lcsim.util.aida.AIDA;
/**
- * This driver class is used to 1) write lcio collection of GBL info objects OR
- * 2) write GBL info into a unstructures text-based output
+ * This driver class is used to
+ * 1) write LCIO collection of GBL info objects, or,
+ * 2) write GBL info into a structured text-based output
*
- * It uses a helper class that does the actual work. We will port GBL to java
- * and that will replace this driver.
+ * It uses a helper class that does the actual work.
*
* @author Per Hansson Adrian <[log in to unmask]>
* @version $Id: GBLOutputDriver.java,v 1.9 2013/11/07 03:54:58 phansson Exp $
@@ -134,8 +134,6 @@
System.out.printf("%s: PX %f bottom %d\n", this.getClass().getSimpleName(), trk.getPX(), TrackUtils.isBottomTrack(trk, 4) ? 1 : 0);
}
- //if( trk.getPX() < 0.9) continue;
- //if( TrackUtils.isBottomTrack(trk, 4)) continue;
if (TrackUtils.isGoodTrack(trk, tracklist, EventQuality.Quality.NONE)) {
if (_debug > 0) {
System.out.printf("%s: Print GBL output for this track\n", this.getClass().getSimpleName());
Modified: java/branches/jeremy-dev/tracking/src/main/java/org/hps/recon/tracking/gbl/GBLRefitterDriver.java
=============================================================================
--- java/branches/jeremy-dev/tracking/src/main/java/org/hps/recon/tracking/gbl/GBLRefitterDriver.java (original)
+++ java/branches/jeremy-dev/tracking/src/main/java/org/hps/recon/tracking/gbl/GBLRefitterDriver.java Wed Dec 16 15:32:00 2015
@@ -28,6 +28,7 @@
private String inputCollectionName = "MatchedTracks";
private String outputCollectionName = "GBLTracks";
+ private String trackRelationCollectionName = "MatchedToGBLTrackRelations";
private double bfield;
private final MultipleScattering _scattering = new MultipleScattering(new MaterialSupervisor());
@@ -68,16 +69,17 @@
RelationalTable hitToRotated = TrackUtils.getHitToRotatedTable(event);
List<Track> refittedTracks = new ArrayList<Track>();
+ List<LCRelation> trackRelations = new ArrayList<LCRelation>();
+
List<GBLKinkData> kinkDataCollection = new ArrayList<GBLKinkData>();
-
List<LCRelation> kinkDataRelations = new ArrayList<LCRelation>();
Map<Track, Track> inputToRefitted = new HashMap<Track, Track>();
for (Track track : tracks) {
- Pair<Track, GBLKinkData> newTrack = MakeGblTracks.refitTrack(TrackUtils.getHTF(track), TrackUtils.getStripHits(track, hitToStrips, hitToRotated), track.getTrackerHits(), 5, track.getType(), _scattering, bfield
- );
+ Pair<Track, GBLKinkData> newTrack = MakeGblTracks.refitTrack(TrackUtils.getHTF(track), TrackUtils.getStripHits(track, hitToStrips, hitToRotated), track.getTrackerHits(), 5, track.getType(), _scattering, bfield);
// newTrack.getFirst().
refittedTracks.add(newTrack.getFirst());
+ trackRelations.add(new BaseLCRelation(track, newTrack.getFirst()));
inputToRefitted.put(track, newTrack.getFirst());
kinkDataCollection.add(newTrack.getSecond());
@@ -141,6 +143,7 @@
// Put the tracks back into the event and exit
int flag = 1 << LCIOConstants.TRBIT_HITS;
event.put(outputCollectionName, refittedTracks, Track.class, flag);
+ event.put(trackRelationCollectionName, trackRelations, LCRelation.class, 0);
event.put(GBLKinkData.DATA_COLLECTION, kinkDataCollection, GBLKinkData.class, 0);
event.put(GBLKinkData.DATA_RELATION_COLLECTION, kinkDataRelations, LCRelation.class, 0);
}
Modified: java/branches/jeremy-dev/tracking/src/main/java/org/hps/recon/tracking/straight/STUtils.java
=============================================================================
--- java/branches/jeremy-dev/tracking/src/main/java/org/hps/recon/tracking/straight/STUtils.java (original)
+++ java/branches/jeremy-dev/tracking/src/main/java/org/hps/recon/tracking/straight/STUtils.java Wed Dec 16 15:32:00 2015
@@ -195,8 +195,8 @@
public Hep3Vector getDirection() {
double dxdz = getFit(VIEW.XZ).slope();
double dydz = getFit(VIEW.YZ).slope();
- double dzdz = 1- Math.sqrt( dxdz*dxdz + dydz*dydz);
- return new BasicHep3Vector(dxdz, dydz, dzdz);
+ double dzdz = 1;
+ return VecOp.unit(new BasicHep3Vector(dxdz, dydz, dzdz));
}
public List<StereoPair> getHits() {
Modified: java/branches/jeremy-dev/tracking/src/main/java/org/hps/recon/tracking/straight/StraightThroughAnalysisDriver.java
=============================================================================
--- java/branches/jeremy-dev/tracking/src/main/java/org/hps/recon/tracking/straight/StraightThroughAnalysisDriver.java (original)
+++ java/branches/jeremy-dev/tracking/src/main/java/org/hps/recon/tracking/straight/StraightThroughAnalysisDriver.java Wed Dec 16 15:32:00 2015
@@ -117,6 +117,7 @@
private String outputFilename = "";
private PrintWriter gblPrintWriter = null;
private boolean writeGbl = true;
+ private boolean showPlots = true;
@@ -392,8 +393,10 @@
}
- for(IPlotter plotter : plotters.values())
- plotter.show();
+ if(showPlots ) {
+ for(IPlotter plotter : plotters.values())
+ plotter.show();
+ }
}
@@ -1029,6 +1032,12 @@
+ public void setShowPlots(boolean showPlots) {
+ this.showPlots = showPlots;
+ }
+
+
+
Modified: java/branches/jeremy-dev/users/pom.xml
=============================================================================
--- java/branches/jeremy-dev/users/pom.xml (original)
+++ java/branches/jeremy-dev/users/pom.xml Wed Dec 16 15:32:00 2015
@@ -7,7 +7,7 @@
<groupId>org.hps</groupId>
<artifactId>hps-parent</artifactId>
<relativePath>../parent/pom.xml</relativePath>
- <version>3.4.2-SNAPSHOT</version>
+ <version>3.5-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/meeg/TridentMCFilter.java
=============================================================================
--- java/branches/jeremy-dev/users/src/main/java/org/hps/users/meeg/TridentMCFilter.java (original)
+++ java/branches/jeremy-dev/users/src/main/java/org/hps/users/meeg/TridentMCFilter.java Wed Dec 16 15:32:00 2015
@@ -16,8 +16,45 @@
*/
public class TridentMCFilter extends EventReconFilter {
+ private boolean requireFrontHits = false;
+ private double minL12Kink = -1;
+ private double maxL12Kink = -1;
+ private double minL1Kink = -1;
+ private double maxL1Kink = -1;
+ private double minL2Kink = -1;
+ private double maxL2Kink = -1;
+
+ public void setMinL12Kink(double minL12Kink) {
+ this.minL12Kink = minL12Kink;
+ }
+
+ public void setMaxL12Kink(double maxL12Kink) {
+ this.maxL12Kink = maxL12Kink;
+ }
+
+ public void setMinL1Kink(double minL1Kink) {
+ this.minL1Kink = minL1Kink;
+ }
+
+ public void setMaxL1Kink(double maxL1Kink) {
+ this.maxL1Kink = maxL1Kink;
+ }
+
+ public void setMinL2Kink(double minL2Kink) {
+ this.minL2Kink = minL2Kink;
+ }
+
+ public void setMaxL2Kink(double maxL2Kink) {
+ this.maxL2Kink = maxL2Kink;
+ }
+
+ public void setRequireFrontHits(boolean requireFrontHits) {
+ this.requireFrontHits = requireFrontHits;
+ }
+
@Override
public void process(EventHeader event) {
+ incrementEventProcessed();
List<MCParticle> MCParticles = event.getMCParticles();
List<MCParticle> tridentParticles = null;
@@ -39,7 +76,11 @@
int nElectronsWithTracks = 0, nPositronsWithTracks = 0;
MCParticle electron = null, positron = null;
+ particleLoop:
for (MCParticle particle : tridentParticles) {
+ if (!trackHitMap.containsKey(particle)) {
+ continue;
+ }
Set<Integer> layers = trackHitMap.get(particle).keySet();
int pairCount = 0;
for (Integer layer : layers) {
@@ -47,31 +88,74 @@
pairCount++;
}
}
- boolean hasTrack = (pairCount >= 5);
+ if (pairCount < 5) {
+ continue;
+ }
+ if (requireFrontHits) {
+ for (int i = 1; i < 5; i++) {
+ if (!layers.contains(i)) {
+ continue particleLoop;
+ }
+ }
+ }
- if (hasTrack && particle.getCharge() < 0) {
+ if (particle.getCharge() < 0) {
nElectronsWithTracks++;
electron = particle;
}
- if (hasTrack && particle.getCharge() > 0) {
+ if (particle.getCharge() > 0) {
nPositronsWithTracks++;
positron = particle;
}
}
if (electron == null || positron == null) {
- System.out.println("not enough trident daughters with tracks");
+// System.out.println("not enough trident daughters with tracks");
skipEvent();
}
if (nElectronsWithTracks > 1 || nPositronsWithTracks > 1) {
- System.out.println("too many trident daughters with tracks");
+// System.out.println("too many trident daughters with tracks");
skipEvent();
}
-// double deflection12_ele = KinkAnalysisDriver.deflection(trackHitMap.get(electron), 0, 4);
-// double deflection12_pos = KinkAnalysisDriver.deflection(trackHitMap.get(positron), 0, 4);
+ double deflection12_ele = KinkAnalysisDriver.deflection(trackHitMap.get(electron), 0, 4);
+ double deflection12_pos = KinkAnalysisDriver.deflection(trackHitMap.get(positron), 0, 4);
+ double deflection1_ele = KinkAnalysisDriver.deflection(trackHitMap.get(electron), 0, 2);
+ double deflection1_pos = KinkAnalysisDriver.deflection(trackHitMap.get(positron), 0, 2);
+ double deflection2_ele = KinkAnalysisDriver.deflection(trackHitMap.get(electron), 2, 4);
+ double deflection2_pos = KinkAnalysisDriver.deflection(trackHitMap.get(positron), 2, 4);
+ if (minL12Kink > 0) {
+ if (Math.abs(deflection12_ele) < minL12Kink && Math.abs(deflection12_pos) < minL12Kink) {
+ skipEvent();
+ }
+ }
+ if (maxL12Kink > 0) {
+ if (Math.abs(deflection12_ele) > maxL12Kink || Math.abs(deflection12_pos) > maxL12Kink) {
+ skipEvent();
+ }
+ }
+ if (minL1Kink > 0) {
+ if (Math.abs(deflection1_ele) < minL1Kink && Math.abs(deflection1_pos) < minL1Kink) {
+ skipEvent();
+ }
+ }
+ if (maxL1Kink > 0) {
+ if (Math.abs(deflection1_ele) > maxL1Kink || Math.abs(deflection1_pos) > maxL1Kink) {
+ skipEvent();
+ }
+ }
+ if (minL2Kink > 0) {
+ if (Math.abs(deflection2_ele) < minL2Kink && Math.abs(deflection2_pos) < minL2Kink) {
+ skipEvent();
+ }
+ }
+ if (maxL2Kink > 0) {
+ if (Math.abs(deflection2_ele) > maxL2Kink || Math.abs(deflection2_pos) > maxL2Kink) {
+ skipEvent();
+ }
+ }
+
incrementEventPassed();
-
}
}
Modified: java/branches/jeremy-dev/users/src/main/java/org/hps/users/phansson/TrackingReconstructionPlots.java
=============================================================================
--- java/branches/jeremy-dev/users/src/main/java/org/hps/users/phansson/TrackingReconstructionPlots.java (original)
+++ java/branches/jeremy-dev/users/src/main/java/org/hps/users/phansson/TrackingReconstructionPlots.java Wed Dec 16 15:32:00 2015
@@ -89,12 +89,10 @@
IPlotter plotter55;
IPlotter plotter6;
IPlotter plotter66;
- IPlotter plotter7;
IPlotter plotter8;
IPlotter plotter88;
IPlotter plotter888;
IPlotter plotter8888;
- IPlotter plotter9;
IPlotter top1;
IPlotter top2;
IPlotter top3;
@@ -114,11 +112,11 @@
private boolean showPlots = true;
private double _bfield;
private static Logger LOGGER = Logger.getLogger(TrackingReconstructionPlots.class.getName());
+ private List<HpsSiSensor> sensors = new ArrayList<HpsSiSensor>();
@Override
protected void detectorChanged(Detector detector) {
aida.tree().cd("/");
- List<HpsSiSensor> sensors = new ArrayList<HpsSiSensor>();
for(HpsSiSensor s : detector.getDetectorElement().findDescendants(HpsSiSensor.class)) {
if(s.getName().startsWith("module_") && s.getName().endsWith("sensor0")) {
sensors.add(s);
@@ -128,833 +126,15 @@
Hep3Vector bfieldvec = detector.getFieldMap().getField(new BasicHep3Vector(0., 0., 1.));
_bfield = bfieldvec.y();
-
- IAnalysisFactory fac = aida.analysisFactory();
- plotter = fac.createPlotterFactory().create("HPS Tracking Plots");
- plotter.setTitle("Momentum");
- IPlotterStyle style = plotter.style();
- style.dataStyle().fillStyle().setColor("yellow");
- style.dataStyle().errorBarStyle().setVisible(false);
- plotter.createRegions(2, 2);
- //plotterFrame.addPlotter(plotter);
-
- trkPx = aida.histogram1D("Track Momentum (Px)", 25, -0.25, 0.25);
- IHistogram1D trkPy = aida.histogram1D("Track Momentum (Py)", 25, -0.5, 0.5);
- IHistogram1D trkPz = aida.histogram1D("Track Momentum (Pz)", 25, 0, 1.5);
- IHistogram1D trkChi2 = aida.histogram1D("Track Chi2", 25, 0, 25.0);
-
- plotter.region(0).plot(trkPx);
- plotter.region(1).plot(trkPy);
- plotter.region(2).plot(trkPz);
- plotter.region(3).plot(trkChi2);
-
- if(showPlots) plotter.show();
-
-// ******************************************************************
- top1 = fac.createPlotterFactory().create("Top Tracking Plots");
- top1.setTitle("Top Momentum");
- IPlotterStyle stop1 = top1.style();
- stop1.dataStyle().fillStyle().setColor("green");
- stop1.dataStyle().errorBarStyle().setVisible(false);
- top1.createRegions(2, 2);
- //topFrame.addPlotter(top1);
-
- IHistogram1D toptrkPx = aida.histogram1D("Top Track Momentum (Px)", 25, -0.25, 0.25);
- IHistogram1D toptrkPy = aida.histogram1D("Top Track Momentum (Py)", 25, -0.5, 0.5);
- IHistogram1D toptrkPz = aida.histogram1D("Top Track Momentum (Pz)", 25, 0, 1.5);
- IHistogram1D toptrkChi2 = aida.histogram1D("Top Track Chi2", 25, 0, 25.0);
-
- top1.region(0).plot(toptrkPx);
- top1.region(1).plot(toptrkPy);
- top1.region(2).plot(toptrkPz);
- top1.region(3).plot(toptrkChi2);
-
- if(showPlots) top1.show();
-
- bot1 = fac.createPlotterFactory().create("Bottom Tracking Plots");
- bot1.setTitle("Bottom Momentum");
- IPlotterStyle sbot1 = bot1.style();
- sbot1.dataStyle().fillStyle().setColor("blue");
- sbot1.dataStyle().errorBarStyle().setVisible(false);
- bot1.createRegions(2, 2);
- //bottomFrame.addPlotter(bot1);
-
- IHistogram1D bottrkPx = aida.histogram1D("Bottom Track Momentum (Px)", 25, -0.25, 0.25);
- IHistogram1D bottrkPy = aida.histogram1D("Bottom Track Momentum (Py)", 25, -0.5, 0.5);
- IHistogram1D bottrkPz = aida.histogram1D("Bottom Track Momentum (Pz)", 25, 0, 1.5);
- IHistogram1D bottrkChi2 = aida.histogram1D("Bottom Track Chi2", 25, 0, 25.0);
-
- bot1.region(0).plot(bottrkPx);
- bot1.region(1).plot(bottrkPy);
- bot1.region(2).plot(bottrkPz);
- bot1.region(3).plot(bottrkChi2);
-
- if(showPlots) bot1.show();
-
-// ******************************************************************
- IHistogram1D trkd0 = aida.histogram1D("d0 ", 25, -10.0, 10.0);
- IHistogram1D trkphi = aida.histogram1D("sinphi ", 25, -0.2, 0.2);
- IHistogram1D trkomega = aida.histogram1D("omega ", 25, -0.0025, 0.0025);
- IHistogram1D trklam = aida.histogram1D("tan(lambda) ", 25, -0.1, 0.1);
- IHistogram1D trkz0 = aida.histogram1D("z0 ", 25, -6.0, 6.0);
-
- plotter22 = fac.createPlotterFactory().create("HPS Track Params");
- plotter22.setTitle("Track parameters");
- //plotterFrame.addPlotter(plotter22);
- IPlotterStyle style22 = plotter22.style();
- style22.dataStyle().fillStyle().setColor("yellow");
- style22.dataStyle().errorBarStyle().setVisible(false);
- plotter22.createRegions(2, 3);
- plotter22.region(0).plot(trkd0);
- plotter22.region(1).plot(trkphi);
- plotter22.region(2).plot(trkomega);
- plotter22.region(3).plot(trklam);
- plotter22.region(4).plot(trkz0);
-
- if(showPlots) plotter22.show();
-
- // ******************************************************************
-
-
- trkd0 = aida.histogram1D("d0 Top", 25, -10.0, 10.0);
- trkphi = aida.histogram1D("sinphi Top", 25, -0.2, 0.2);
- trkomega = aida.histogram1D("omega Top", 25, -0.0025, 0.0025);
- trklam = aida.histogram1D("tan(lambda) Top", 25, -0.1, 0.1);
- trkz0 = aida.histogram1D("z0 Top", 25, -6.0, 6.0);
-
- plotter2221 = fac.createPlotterFactory().create("HPS Track Params");
- plotter2221.setTitle("Track parameters");
- //plotterFrame.addPlotter(plotter22);
- IPlotterStyle style2221 = plotter2221.style();
- style2221.dataStyle().fillStyle().setColor("yellow");
- style2221.dataStyle().errorBarStyle().setVisible(false);
- plotter2221.createRegions(2, 3);
- plotter2221.region(0).plot(trkd0);
- plotter2221.region(1).plot(trkphi);
- plotter2221.region(2).plot(trkomega);
- plotter2221.region(3).plot(trklam);
- plotter2221.region(4).plot(trkz0);
-
- if(showPlots) plotter2221.show();
-
-
- // ******************************************************************
-
-
- trkd0 = aida.histogram1D("d0 Bottom", 25, -10.0, 10.0);
- trkphi = aida.histogram1D("sinphi Bottom", 25, -0.2, 0.2);
- trkomega = aida.histogram1D("omega Bottom", 25, -0.0025, 0.0025);
- trklam = aida.histogram1D("tan(lambda) Bottom", 25, -0.1, 0.1);
- trkz0 = aida.histogram1D("z0 Bottom", 25, -6.0, 6.0);
-
- plotter2222 = fac.createPlotterFactory().create("HPS Track Params");
- plotter2222.setTitle("Track parameters");
- //plotterFrame.addPlotter(plotter22);
- IPlotterStyle style2222 = plotter2222.style();
- style2222.dataStyle().fillStyle().setColor("yellow");
- style2222.dataStyle().errorBarStyle().setVisible(false);
- plotter2222.createRegions(2, 3);
- plotter2222.region(0).plot(trkd0);
- plotter2222.region(1).plot(trkphi);
- plotter2222.region(2).plot(trkomega);
- plotter2222.region(3).plot(trklam);
- plotter2222.region(4).plot(trkz0);
-
- if(showPlots) plotter2222.show();
-
-
-
- // ******************************************************************
-
-
- plotter2 = fac.createPlotterFactory().create("HPS Tracking Plots");
- plotter2.setTitle("Track extrapolation");
- //plotterFrame.addPlotter(plotter2);
- IPlotterStyle style2 = plotter2.style();
- style2.dataStyle().fillStyle().setColor("yellow");
- style2.dataStyle().errorBarStyle().setVisible(false);
- plotter2.createRegions(2, 4);
- IHistogram1D xAtConverter = aida.histogram1D("X (mm) @ Z=-60cm", 50, -50, 50);
- IHistogram1D yAtConverter = aida.histogram1D("Y (mm) @ Z=-60cm", 50, -20, 20);
- IHistogram1D xAtColl = aida.histogram1D("X (mm) @ Z=-150cm", 50, -200, 200);
- IHistogram1D yAtColl = aida.histogram1D("Y (mm) @ Z=-150cm", 50, -200, 200);
- IHistogram1D xAtEcal = aida.histogram1D("X (mm) @ ECAL", 50, -500, 500);
- IHistogram1D yAtEcal = aida.histogram1D("Y (mm) @ ECAL", 50, -100, 100);
- IHistogram1D xAtEcal2 = aida.histogram1D("X (mm) @ ECAL (Pz>1)", 50, -500, 500);
- IHistogram1D yAtEcal2 = aida.histogram1D("Y (mm) @ ECAL (Pz>1)", 50, -100, 100);
-
- plotter2.region(0).plot(xAtConverter);
- plotter2.region(4).plot(yAtConverter);
- plotter2.region(1).plot(xAtColl);
- plotter2.region(5).plot(yAtColl);
- plotter2.region(2).plot(xAtEcal);
- plotter2.region(6).plot(yAtEcal);
- plotter2.region(3).plot(xAtEcal2);
- plotter2.region(7).plot(yAtEcal2);
-
- if(showPlots) plotter2.show();
-
- // ******************************************************************
-
- plotter222 = fac.createPlotterFactory().create("HPS Tracking Plots");
- plotter222.setTitle("HPS Tracking Plots");
- //plotterFrame.addPlotter(plotter222);
- IPlotterStyle style222 = plotter222.style();
- style222.dataStyle().fillStyle().setColor("yellow");
- style222.dataStyle().errorBarStyle().setVisible(false);
- plotter222.createRegions(2, 2);
-
- IHistogram1D nHits = aida.histogram1D("Hits per Track", 4, 3, 7);
- nTracks = aida.histogram1D("Tracks per Event", 3, 0, 3);
- IHistogram1D nHitsCluster = aida.histogram1D("Hits in Cluster (HitOnTrack)", 4, 0, 4);
-
-
- plotter222.region(0).plot(nHits);
- plotter222.region(1).plot(nTracks);
- plotter222.region(2).plot(nHitsCluster);
-
- if(showPlots) plotter222.show();
-
-
- // ******************************************************************
-
- plotter22299 = fac.createPlotterFactory().create("HPS Tracking Plots Top");
- plotter22299.setTitle("HPS Tracking Plots Top");
- //plotterFrame.addPlotter(plotter22299);
- IPlotterStyle style22299 = plotter22299.style();
- style22299.dataStyle().fillStyle().setColor("yellow");
- style22299.dataStyle().errorBarStyle().setVisible(false);
- plotter22299.createRegions(2, 2);
-
- IHistogram1D nHitsTop = aida.histogram1D("Hits per Track Top", 4, 3, 7);
- nTracksTop = aida.histogram1D("Tracks per Event Top", 3, 0, 3);
- IHistogram1D nHitsClusterTop = aida.histogram1D("Hits in Cluster (HitOnTrack) Top", 4, 0, 4);
-
-
- plotter22299.region(0).plot(nHitsTop);
- plotter22299.region(1).plot(nTracksTop);
- plotter22299.region(2).plot(nHitsClusterTop);
-
- if(showPlots) plotter22299.show();
-
-// ******************************************************************
-
- plotter22298 = fac.createPlotterFactory().create("HPS Tracking Plots Bottom");
- plotter22298.setTitle("HPS Tracking Plots Bottom");
- //plotterFrame.addPlotter(plotter22298);
- IPlotterStyle style22298 = plotter22298.style();
- style22298.dataStyle().fillStyle().setColor("yellow");
- style22298.dataStyle().errorBarStyle().setVisible(false);
- plotter22298.createRegions(2, 2);
-
- IHistogram1D nHitsBot = aida.histogram1D("Hits per Track Bot", 4, 3, 7);
- nTracksBot = aida.histogram1D("Tracks per Event Bot", 3, 0, 3);
- IHistogram1D nHitsClusterBot = aida.histogram1D("Hits in Cluster (HitOnTrack) Bot", 4, 0, 4);
-
-
- plotter22298.region(0).plot(nHitsBot);
- plotter22298.region(1).plot(nTracksBot);
- plotter22298.region(2).plot(nHitsClusterBot);
-
- if(showPlots) plotter22298.show();
-
-
- // ******************************************************************
-
-
- plotter2223 = fac.createPlotterFactory().create("Cluster Amp Plots");
- plotter2223.setTitle("Other");
- //plotterFrame.addPlotter(plotter222);
- IPlotterStyle style2223 = plotter2223.style();
- style2223.dataStyle().fillStyle().setColor("yellow");
- style2223.dataStyle().errorBarStyle().setVisible(false);
- plotter2223.createRegions(2, 2);
-
-
-
- IHistogram1D amp = aida.histogram1D("Amp (HitOnTrack)", 50, 0, 5000);
- IHistogram1D ampcl = aida.histogram1D("Cluster Amp (HitOnTrack)", 50, 0, 5000);
- IHistogram1D amp2 = aida.histogram1D("Amp Pz>0.8 (HitOnTrack)", 50, 0, 5000);
- IHistogram1D ampcl2 = aida.histogram1D("Cluster Amp Pz>0.8 (HitOnTrack)", 50, 0, 5000);
-
-
- plotter2223.region(0).plot(amp);
- plotter2223.region(1).plot(amp2);
- plotter2223.region(2).plot(ampcl);
- plotter2223.region(3).plot(ampcl2);
-
- if(showPlots) plotter2223.show();
-
-// ******************************************************************
-
-
- plotter2224 = fac.createPlotterFactory().create("t0 Plots");
- plotter2224.setTitle("Other");
- IPlotterStyle style2224 = plotter2224.style();
- style2224.dataStyle().fillStyle().setColor("yellow");
- style2224.dataStyle().errorBarStyle().setVisible(false);
- plotter2224.createRegions(2, 2);
-
- IHistogram1D t0 = aida.histogram1D("t0 (HitOnTrack)", 50, -100, 100);
- IHistogram1D t0cl = aida.histogram1D("Cluster t0 (HitOnTrack)", 50, -100, 100);
- IHistogram1D t02 = aida.histogram1D("t0 Pz>0.8 (HitOnTrack)", 50, -100, 100);
- IHistogram1D t0cl2 = aida.histogram1D("Cluster t0 Pz>0.8 (HitOnTrack)", 50, -100, 100);
-
- plotter2224.region(0).plot(t0);
- plotter2224.region(1).plot(t0cl);
- plotter2224.region(2).plot(t02);
- plotter2224.region(3).plot(t0cl2);
-
- if(showPlots) plotter2224.show();
-
-
- // ******************************************************************
-
- plotter3 = fac.createPlotterFactory().create("HPS Layer Residual Plots");
- plotter3.setTitle("Layer Residuals");
- //plotterFrame.addPlotter(plotter3);
- IPlotterStyle style3 = plotter3.style();
- style3.dataStyle().fillStyle().setColor("yellow");
- style3.dataStyle().errorBarStyle().setVisible(false);
- plotter3.createRegions(6, 2);
-
-
-
- IHistogram1D mod1ResX = aida.histogram1D("Layer 1 Residual X(mm)", 25, -1, 1);
- IHistogram1D mod1ResY = aida.histogram1D("Layer 1 Residual Y(mm)", 25, -0.04, 0.04);
-
- IHistogram1D mod2ResX = aida.histogram1D("Layer 2 Residual X(mm)", 25, -2, 2);
- IHistogram1D mod2ResY = aida.histogram1D("Layer 2 Residual Y(mm)", 25, -1, 1);
-
- IHistogram1D mod3ResX = aida.histogram1D("Layer 3 Residual X(mm)", 25, -2.5, 2.5);
- IHistogram1D mod3ResY = aida.histogram1D("Layer 3 Residual Y(mm)", 25, -1.5, 1.5);
-
- IHistogram1D mod4ResX = aida.histogram1D("Layer 4 Residual X(mm)", 25, -3.0, 3.0);
- IHistogram1D mod4ResY = aida.histogram1D("Layer 4 Residual Y(mm)", 25, -2, 2);
-
- IHistogram1D mod5ResX = aida.histogram1D("Layer 5 Residual X(mm)", 25, -4, 4);
- IHistogram1D mod5ResY = aida.histogram1D("Layer 5 Residual Y(mm)", 25, -3, 3);
-
- IHistogram1D mod6ResX = aida.histogram1D("Layer 6 Residual X(mm)", 25, -5, 5);
- IHistogram1D mod6ResY = aida.histogram1D("Layer 6 Residual Y(mm)", 25, -3, 3);
-
- plotter3.region(0).plot(mod1ResX);
- plotter3.region(2).plot(mod2ResX);
- plotter3.region(4).plot(mod3ResX);
- plotter3.region(6).plot(mod4ResX);
- plotter3.region(8).plot(mod5ResX);
- plotter3.region(10).plot(mod6ResX);
-
- plotter3.region(1).plot(mod1ResY);
- plotter3.region(3).plot(mod2ResY);
- plotter3.region(5).plot(mod3ResY);
- plotter3.region(7).plot(mod4ResY);
- plotter3.region(9).plot(mod5ResY);
- plotter3.region(11).plot(mod6ResY);
-
- if(showPlots) plotter3.show();
-
-
-
- plotter3_11 = fac.createPlotterFactory().create("HPS Strip Residual Plots");
- plotter3_11.setTitle("Strip Residuals (Top)");
- //plotterFrame.addPlotter(plotter3_11);
- IPlotterStyle style3_11 = plotter3_11.style();
- style3_11.dataStyle().fillStyle().setColor("yellow");
- style3_11.dataStyle().errorBarStyle().setVisible(false);
- plotter3_11.createRegions(6, 6);
- int i=0;
- for(HpsSiSensor sensor : sensors) {
- double min = 0.0;
- double max = 0.0;
- if(sensor.getName().contains("L1")) {
- min=-0.04; max=0.04;
- } else if(sensor.getName().contains("L2")) {
- min=-1; max=1;
- } else if(sensor.getName().contains("L3")) {
- min=-1.5; max=1.5;
- } else if(sensor.getName().contains("L4")) {
- min=-3; max=3;
- } else if(sensor.getName().contains("L5")) {
- min=-4; max=4;
- } else if(sensor.getName().contains("L6")) {
- min=-5; max=5;
- } else {
- throw new RuntimeException("Invalid sensor name: " + sensor.getName());
- }
- IHistogram1D resX = aida.histogram1D(sensor.getName() + " strip residual (mm)", 50, min, max);
- plotter3_11.region(i).plot(resX);
- i++;
- }
-
- if(showPlots) plotter3_11.show();
-
-
- plotter3_1 = fac.createPlotterFactory().create("HPS Residual Plots (Single hit per layer)");
- plotter3_1.setTitle("Residuals (Top)");
- //plotterFrame.addPlotter(plotter3_1);
- IPlotterStyle style3_1 = plotter3_1.style();
- style3_1.dataStyle().fillStyle().setColor("yellow");
- style3_1.dataStyle().errorBarStyle().setVisible(false);
- plotter3_1.createRegions(6, 2);
-
- IHistogram1D mod1ResX_Top = aida.histogram1D("Layer 1 Residual X(mm) Top", 25, -1, 1);
- IHistogram1D mod1ResY_Top = aida.histogram1D("Layer 1 Residual Y(mm) Top", 25, -0.04, 0.04);
-
- IHistogram1D mod2ResX_Top = aida.histogram1D("Layer 2 Residual X(mm) Top", 25, -2, 2);
- IHistogram1D mod2ResY_Top = aida.histogram1D("Layer 2 Residual Y(mm) Top", 25, -1, 1);
-
- IHistogram1D mod3ResX_Top = aida.histogram1D("Layer 3 Residual X(mm) Top", 25, -2.5, 2.5);
- IHistogram1D mod3ResY_Top = aida.histogram1D("Layer 3 Residual Y(mm) Top", 25, -1.5, 1.5);
-
- IHistogram1D mod4ResX_Top = aida.histogram1D("Layer 4 Residual X(mm) Top", 25, -3.0, 3.0);
- IHistogram1D mod4ResY_Top = aida.histogram1D("Layer 4 Residual Y(mm) Top", 25, -2, 2);
-
- IHistogram1D mod5ResX_Top = aida.histogram1D("Layer 5 Residual X(mm) Top", 25, -4, 4);
- IHistogram1D mod5ResY_Top = aida.histogram1D("Layer 5 Residual Y(mm) Top", 25, -3, 3);
-
- IHistogram1D mod6ResX_Top = aida.histogram1D("Layer 6 Residual X(mm) Top", 25, -5, 5);
- IHistogram1D mod6ResY_Top = aida.histogram1D("Layer 6 Residual Y(mm) Top", 25, -3, 3);
-
-
- plotter3_1.region(0).plot(mod1ResX_Top);
- plotter3_1.region(2).plot(mod2ResX_Top);
- plotter3_1.region(4).plot(mod3ResX_Top);
- plotter3_1.region(6).plot(mod4ResX_Top);
- plotter3_1.region(8).plot(mod5ResX_Top);
- plotter3_1.region(10).plot(mod6ResX_Top);
-
- plotter3_1.region(1).plot(mod1ResY_Top);
- plotter3_1.region(3).plot(mod2ResY_Top);
- plotter3_1.region(5).plot(mod3ResY_Top);
- plotter3_1.region(7).plot(mod4ResY_Top);
- plotter3_1.region(9).plot(mod5ResY_Top);
- plotter3_1.region(11).plot(mod6ResY_Top);
-
- if(showPlots) plotter3_1.show();
-
- plotter3_2 = fac.createPlotterFactory().create("HPS Residual Plots (Single strip cluster per layer)");
- plotter3_2.setTitle("Residuals (Bottom)");
- //plotterFrame.addPlotter(plotter3_2);
- IPlotterStyle style3_2 = plotter3_2.style();
- style3_2.dataStyle().fillStyle().setColor("yellow");
- style3_2.dataStyle().errorBarStyle().setVisible(false);
- plotter3_2.createRegions(6, 2);
-
- IHistogram1D mod1ResX_Bottom = aida.histogram1D("Layer 1 Residual X(mm) Bottom", 25, -1, 1);
- IHistogram1D mod1ResY_Bottom = aida.histogram1D("Layer 1 Residual Y(mm) Bottom", 25, -0.04, 0.04);
-
- IHistogram1D mod2ResX_Bottom = aida.histogram1D("Layer 2 Residual X(mm) Bottom", 25, -2, 2);
- IHistogram1D mod2ResY_Bottom = aida.histogram1D("Layer 2 Residual Y(mm) Bottom", 25, -1, 1);
-
- IHistogram1D mod3ResX_Bottom = aida.histogram1D("Layer 3 Residual X(mm) Bottom", 25, -2.5, 2.5);
- IHistogram1D mod3ResY_Bottom = aida.histogram1D("Layer 3 Residual Y(mm) Bottom", 25, -1.5, 1.5);
-
- IHistogram1D mod4ResX_Bottom = aida.histogram1D("Layer 4 Residual X(mm) Bottom", 25, -3.0, 3.0);
- IHistogram1D mod4ResY_Bottom = aida.histogram1D("Layer 4 Residual Y(mm) Bottom", 25, -2, 2);
-
- IHistogram1D mod5ResX_Bottom = aida.histogram1D("Layer 5 Residual X(mm) Bottom", 25, -4, 4);
- IHistogram1D mod5ResY_Bottom = aida.histogram1D("Layer 5 Residual Y(mm) Bottom", 25, -3, 3);
-
- IHistogram1D mod6ResX_Bottom = aida.histogram1D("Layer 6 Residual X(mm) Bottom", 25, -5, 5);
- IHistogram1D mod6ResY_Bottom = aida.histogram1D("Layer 6 Residual Y(mm) Bottom", 25, -3, 3);
-
- plotter3_2.region(0).plot(mod1ResX_Bottom);
- plotter3_2.region(2).plot(mod2ResX_Bottom);
- plotter3_2.region(4).plot(mod3ResX_Bottom);
- plotter3_2.region(6).plot(mod4ResX_Bottom);
- plotter3_2.region(8).plot(mod5ResX_Bottom);
- plotter3_2.region(10).plot(mod6ResX_Bottom);
-
- plotter3_2.region(1).plot(mod1ResY_Bottom);
- plotter3_2.region(3).plot(mod2ResY_Bottom);
- plotter3_2.region(5).plot(mod3ResY_Bottom);
- plotter3_2.region(7).plot(mod4ResY_Bottom);
- plotter3_2.region(9).plot(mod5ResY_Bottom);
- plotter3_2.region(11).plot(mod6ResY_Bottom);
-
- if(showPlots) plotter3_2.show();
-
- plotter4 = fac.createPlotterFactory().create("HPS Track and ECal Plots");
- plotter4.setTitle("Track and ECal Correlations");
- //plotterFrame.addPlotter(plotter4);
- IPlotterStyle style4 = plotter4.style();
- style4.setParameter("hist2DStyle", "colorMap");
- style4.dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
- style4.dataStyle().fillStyle().setColor("yellow");
- style4.dataStyle().errorBarStyle().setVisible(false);
- plotter4.createRegions(2, 3);
-
- IHistogram2D eVsP = aida.histogram2D("Energy Vs Momentum", 50, 0, 0.50, 50, 0, 1.5);
- IHistogram1D eOverP = aida.histogram1D("Energy Over Momentum", 50, 0, 2);
-
- IHistogram1D distX = aida.histogram1D("deltaX", 50, -100, 100);
- IHistogram1D distY = aida.histogram1D("deltaY", 50, -40, 40);
-
- IHistogram2D xEcalVsTrk = aida.histogram2D("X ECal Vs Track", 100, -400, 400, 100, -400, 400);
- IHistogram2D yEcalVsTrk = aida.histogram2D("Y ECal Vs Track", 100, -100, 100, 100, -100, 100);
-
- plotter4.region(0).plot(eVsP);
- plotter4.region(3).plot(eOverP);
- plotter4.region(1).plot(distX);
- plotter4.region(4).plot(distY);
- plotter4.region(2).plot(xEcalVsTrk);
- plotter4.region(5).plot(yEcalVsTrk);
-
- if(showPlots) plotter4.show();
-
- // ******************************************************************
- top2 = fac.createPlotterFactory().create("Top ECal Plots");
- top2.setTitle("Top ECal Correlations");
- IPlotterStyle stop2 = top2.style();
- stop2.dataStyle().fillStyle().setColor("green");
- stop2.dataStyle().errorBarStyle().setVisible(false);
- stop2.setParameter("hist2DStyle", "colorMap");
- stop2.dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
- top2.createRegions(2, 3);
- //topFrame.addPlotter(top2);
-
- IHistogram2D topeVsP = aida.histogram2D("Top Energy Vs Momentum", 50, 0, 0.500, 50, 0, 1.5);
- IHistogram1D topeOverP = aida.histogram1D("Top Energy Over Momentum", 50, 0, 2);
-
- IHistogram1D topdistX = aida.histogram1D("Top deltaX", 50, -100, 100);
- IHistogram1D topdistY = aida.histogram1D("Top deltaY", 50, -40, 40);
-
- IHistogram2D topxEcalVsTrk = aida.histogram2D("Top X ECal Vs Track", 100, -400, 400, 100, -100, 100);
- IHistogram2D topyEcalVsTrk = aida.histogram2D("Top Y ECal Vs Track", 100, 0, 100, 100, 0, 100);
-
- top2.region(0).plot(topeVsP);
- top2.region(3).plot(topeOverP);
- top2.region(1).plot(topdistX);
- top2.region(4).plot(topdistY);
- top2.region(2).plot(topxEcalVsTrk);
- top2.region(5).plot(topyEcalVsTrk);
-
- if(showPlots) top2.show();
-
- bot2 = fac.createPlotterFactory().create("Bottom ECal Plots");
- bot2.setTitle("Bottom ECal Correlations");
- IPlotterStyle sbot2 = bot2.style();
- sbot2.dataStyle().fillStyle().setColor("green");
- sbot2.dataStyle().errorBarStyle().setVisible(false);
- sbot2.setParameter("hist2DStyle", "colorMap");
- sbot2.dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
- bot2.createRegions(2, 3);
- //bottomFrame.addPlotter(bot2);
-
- IHistogram2D BottomeVsP = aida.histogram2D("Bottom Energy Vs Momentum", 50, 0, 0.500, 50, 0, 1.5);
- IHistogram1D BottomeOverP = aida.histogram1D("Bottom Energy Over Momentum", 50, 0, 2);
-
- IHistogram1D BottomdistX = aida.histogram1D("Bottom deltaX", 50, -100, 100);
- IHistogram1D BottomdistY = aida.histogram1D("Bottom deltaY", 50, -40, 40);
-
- IHistogram2D BottomxEcalVsTrk = aida.histogram2D("Bottom X ECal Vs Track", 100, -400, 400, 100, -400, 400);
- IHistogram2D BottomyEcalVsTrk = aida.histogram2D("Bottom Y ECal Vs Track", 100, -100, 0, 100, -100, 0);
-
- bot2.region(0).plot(BottomeVsP);
- bot2.region(3).plot(BottomeOverP);
- bot2.region(1).plot(BottomdistX);
- bot2.region(4).plot(BottomdistY);
- bot2.region(2).plot(BottomxEcalVsTrk);
- bot2.region(5).plot(BottomyEcalVsTrk);
-
- if(showPlots) bot2.show();
-
-
- // ******************************************************************
- top3 = fac.createPlotterFactory().create("Top ECal Plots");
- top3.setTitle("Top ECal More Correlations");
- IPlotterStyle stop3 = top3.style();
- stop3.dataStyle().fillStyle().setColor("green");
- stop3.dataStyle().errorBarStyle().setVisible(false);
- stop3.setParameter("hist2DStyle", "colorMap");
- stop3.dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
- top3.createRegions(1, 2);
- //topFrame.addPlotter(top3);
-
- IHistogram2D topdistXvsX = aida.histogram2D("Top deltaX vs X", 51, -400, 400, 25, -100, 100);
- IHistogram2D topdistYvsY = aida.histogram2D("Top deltaY vs Y", 51, 0, 100, 25, -40, 40);
-
- top3.region(0).plot(topdistXvsX);
- top3.region(1).plot(topdistYvsY);
-
- if(showPlots) top3.show();
-
- bot3 = fac.createPlotterFactory().create("Bottom ECal Plots");
- bot3.setTitle("Bottom ECal More Correlations");
- IPlotterStyle sbot3 = bot3.style();
- sbot3.dataStyle().fillStyle().setColor("green");
- sbot3.dataStyle().errorBarStyle().setVisible(false);
- sbot3.setParameter("hist2DStyle", "colorMap");
- sbot3.dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
- bot3.createRegions(1, 2);
- //bottomFrame.addPlotter(bot3);
-
- IHistogram2D botdistXvsX = aida.histogram2D("Bottom deltaX vs X", 51, -400, 400, 25, -100, 100);
- IHistogram2D botdistYvsY = aida.histogram2D("Bottom deltaY vs Y", 51, -100, 0, 25, -40, 40);
-
- bot3.region(0).plot(botdistXvsX);
- bot3.region(1).plot(botdistYvsY);
-
- if(showPlots) bot3.show();
-
- // ******************************************************************
- top4 = fac.createPlotterFactory().create("Track Matching Plots");
- top4.setTitle("Track Matching Plots");
- IPlotterStyle stop4 = top4.style();
- stop4.dataStyle().fillStyle().setColor("green");
- stop4.dataStyle().errorBarStyle().setVisible(false);
- stop4.setParameter("hist2DStyle", "colorMap");
- stop4.dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
- top4.createRegions(2, 3);
- //topFrame.addPlotter(top4);
-
- IHistogram1D trackmatchN = aida.histogram1D("Tracks matched", 3, 0, 3);
- IHistogram1D toptrackmatchN = aida.histogram1D("Tracks matched Top", 3, 0, 3);
- IHistogram1D bottrackmatchN = aida.histogram1D("Tracks matched Bottom", 3, 0, 3);
- IHistogram1D trackmatchN2 = aida.histogram1D("Tracks matched (Pz>0.8)", 3, 0, 3);
- IHistogram1D toptrackmatchN2 = aida.histogram1D("Tracks matched Top (Pz>0.8)", 3, 0, 3);
- IHistogram1D bottrackmatchN2 = aida.histogram1D("Tracks matched Bottom (Pz>0.8)", 3, 0, 3);
-
- top4.region(0).plot(trackmatchN);
- top4.region(1).plot(toptrackmatchN);
- top4.region(2).plot(bottrackmatchN);
- top4.region(3).plot(trackmatchN2);
- top4.region(4).plot(toptrackmatchN2);
- top4.region(5).plot(bottrackmatchN2);
-
- if(showPlots) top4.show();
-
- // ******************************************************************
- top44 = fac.createPlotterFactory().create("e+e- Plots");
- top44.setTitle("e+e- Plots");
- IPlotterStyle stop44 = top44.style();
- stop44.dataStyle().fillStyle().setColor("green");
- stop44.dataStyle().errorBarStyle().setVisible(false);
- stop44.setParameter("hist2DStyle", "colorMap");
- stop44.dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
- top44.createRegions(2,4);
- //topFrame.addPlotter(top44);
-
- IHistogram2D trackPCorr = aida.histogram2D("p(e-) vs p(e+) max", 25, 0, 1.2, 25, 0, 1.2);
- IHistogram1D ne = aida.histogram1D("n(e-)", 3, 0, 3);
- IHistogram1D np = aida.histogram1D("n(e+)", 3, 0, 3);
- IHistogram1D pem = aida.histogram1D("p(e-) max", 25, 0, 1.5);
- IHistogram1D pe = aida.histogram1D("p(e-)", 25, 0, 1.5);
- IHistogram1D ppm = aida.histogram1D("p(e+) max", 25, 0, 1.5);
- IHistogram1D pp = aida.histogram1D("p(e+)", 25, 0, 1.5);
-
- top44.region(0).plot(trackPCorr);
- top44.region(1).plot(ne);
- top44.region(2).plot(np);
- top44.region(3).plot(pe);
- top44.region(4).plot(pp);
- top44.region(5).plot(pem);
- top44.region(6).plot(ppm);
-
- if(showPlots) top44.show();
-
-
-
-// ******************************************************************
- plotter5 = fac.createPlotterFactory().create("HPS Hit Positions");
- plotter5.setTitle("Hit Positions: Top");
- //plotterFrame.addPlotter(plotter5);
- IPlotterStyle style5 = plotter5.style();
- style5.setParameter("hist2DStyle", "colorMap");
- style5.dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
- style5.dataStyle().fillStyle().setColor("yellow");
- style5.dataStyle().errorBarStyle().setVisible(false);
- plotter5.createRegions(1, 2);
-
- IHistogram2D l1Pos = aida.histogram2D("Layer 1 HTH Position: Top", 50, -55, 55, 55, -25, 25);
- IHistogram2D l7Pos = aida.histogram2D("Layer 7 HTH Position: Top", 50, -55, 55, 55, -25, 25);
-
- plotter5.region(0).plot(l1Pos);
- plotter5.region(1).plot(l7Pos);
-
- if(showPlots) plotter5.show();
-
- plotter5_1 = fac.createPlotterFactory().create("HPS Hit Positions");
- plotter5_1.setTitle("Hit Positions: Bottom");
- //plotterFrame.addPlotter(plotter5_1);
- IPlotterStyle style5_1 = plotter5_1.style();
- style5_1.setParameter("hist2DStyle", "colorMap");
- style5_1.dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
- style5_1.dataStyle().fillStyle().setColor("yellow");
- style5_1.dataStyle().errorBarStyle().setVisible(false);
- plotter5_1.createRegions(1, 2);
-
-
- IHistogram2D l1PosBot = aida.histogram2D("Layer 1 HTH Position: Bottom", 50, -55, 55, 55, -25, 25);
- IHistogram2D l7PosBot = aida.histogram2D("Layer 7 HTH Position: Bottom", 50, -55, 55, 55, -25, 25);
- plotter5_1.region(0).plot(l1PosBot);
- plotter5_1.region(1).plot(l7PosBot);
-
- if(showPlots) plotter5_1.show();
-
- plotter55 = fac.createPlotterFactory().create("HPS Hit Positions");
- plotter55.setTitle("Helical Track Hits");
- //plotterFrame.addPlotter(plotter55);
- IPlotterStyle style55 = plotter55.style();
- style55.dataStyle().fillStyle().setColor("Green");
- style55.dataStyle().errorBarStyle().setVisible(false);
- style55.dataStyle().markerStyle().setSize(20);
- plotter55.createRegions(1, 2);
-
- IProfile avgLayersTopPlot = aida.profile1D("Number of Stereo Hits per layer in Top Half", 13, 0, 13);
- IProfile avgLayersBottomPlot = aida.profile1D("Number of Stereo Hits per layer in Bottom Half", 13, 0, 13);
-
- plotter55.region(0).plot(avgLayersTopPlot);
- plotter55.region(1).plot(avgLayersBottomPlot);
-
- if(showPlots) plotter55.show();
-
- plotter6 = fac.createPlotterFactory().create("HPS ECAL Hit Positions");
- plotter6.setTitle("ECAL Positions");
- //plotterFrame.addPlotter(plotter6);
- IPlotterStyle style6 = plotter6.style();
- style6.setParameter("hist2DStyle", "colorMap");
- style6.dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
- style6.dataStyle().fillStyle().setColor("yellow");
- style6.dataStyle().errorBarStyle().setVisible(false);
- plotter6.createRegions(4, 2);
-
- IHistogram2D topECal = aida.histogram2D("Top ECal Cluster Position", 50, -400, 400, 10, 0, 100);
- IHistogram2D botECal = aida.histogram2D("Bottom ECal Cluster Position", 50, -400, 400, 10, -100, 0);
- IHistogram2D topECal1 = aida.histogram2D("Top ECal Cluster Position (>0 tracks)", 50, -400, 400, 10, 0, 100);
- IHistogram2D botECal1 = aida.histogram2D("Bottom ECal Cluster Position (>0 tracks)", 50, -400, 400, 10, -100, 0);
- IHistogram2D topECal2 = aida.histogram2D("Top ECal Cluster Position (E>0.1,>0 tracks)", 50, -400, 400, 10, 0, 100);
- IHistogram2D botECal2 = aida.histogram2D("Bottom ECal Cluster Position (E>0.1,>0 tracks)", 50, -400, 400, 10, -100, 0);
- IHistogram2D topECal3 = aida.histogram2D("Top ECal Cluster Position w_E (E>0.1,>0 tracks)", 50, -400, 400, 10, 0, 100);
- IHistogram2D botECal3 = aida.histogram2D("Bottom ECal Cluster Position w_E (E>0.1,>0 tracks)", 50, -400, 400, 10, -100, 0);
-
- plotter6.region(0).plot(topECal);
- plotter6.region(1).plot(botECal);
- plotter6.region(2).plot(topECal1);
- plotter6.region(3).plot(botECal1);
- plotter6.region(4).plot(topECal2);
- plotter6.region(5).plot(botECal2);
- plotter6.region(6).plot(topECal3);
- plotter6.region(7).plot(botECal3);
-
- if(showPlots) plotter6.show();
-
-
- plotter66 = fac.createPlotterFactory().create("HPS ECAL Basic Plots");
- plotter66.setTitle("ECAL Basic Plots");
- //plotterFrame.addPlotter(plotter6);
- IPlotterStyle style66 = plotter66.style();
- style66.dataStyle().fillStyle().setColor("yellow");
- style66.dataStyle().errorBarStyle().setVisible(false);
- plotter66.createRegions(2, 2);
-
- IHistogram1D topECalE = aida.histogram1D("Top ECal Cluster Energy", 50, 0, 2);
- IHistogram1D botECalE = aida.histogram1D("Bottom ECal Cluster Energy", 50, 0, 2);
- IHistogram1D topECalN = aida.histogram1D("Number of Clusters Top", 6, 0, 6);
- IHistogram1D botECalN = aida.histogram1D("Number of Clusters Bot", 6, 0, 6);
-
- plotter66.region(0).plot(topECalE);
- plotter66.region(1).plot(botECalE);
- plotter66.region(2).plot(botECalN);
- plotter66.region(3).plot(topECalN);
-
- if(showPlots) plotter66.show();
-
-
- plotter7 = fac.createPlotterFactory().create("HPS ECAL Hit Positions");
- plotter7.setTitle("Basic Misc Stuff");
- //plotterFrame.addPlotter(plotter7);
- IPlotterStyle style7 = plotter7.style();
- style7.setParameter("hist2DStyle", "colorMap");
- style7.dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
- style7.dataStyle().fillStyle().setColor("yellow");
- style7.dataStyle().errorBarStyle().setVisible(false);
- plotter7.createRegions(2, 2);
-
- IHistogram2D quadrants = aida.histogram2D("Charge vs Slope", 2, -1, 1, 2, -1, 1);
- plotter7.region(0).plot(quadrants);
-
- if(showPlots) plotter7.show();
-
- plotter8 = fac.createPlotterFactory().create("HPS Strip Hit From Stereo Multiplicity");
- plotter8.setTitle("Strip Hit Multiplicity");
- //plotterFrame.addPlotter(plotter8);
- IPlotterStyle style8 = plotter8.style();
- style8.dataStyle().fillStyle().setColor("yellow");
- style8.dataStyle().errorBarStyle().setVisible(false);
- plotter8.createRegions(6, 6);
- i=0;
- for(SiSensor sensor : sensors) {
- IHistogram1D resX = aida.histogram1D(sensor.getName() + " strip hits from stereo", 10, 0, 10);
- plotter8.region(i).plot(resX);
- i++;
- }
-
- if(showPlots) plotter8.show();
-
- plotter88 = fac.createPlotterFactory().create("HPS Strip Hit Multiplicity");
- plotter88.setTitle("Strip Hit Multiplicity");
- //plotterFrame.addPlotter(plotter88);
- plotter88.setStyle(style8);
- plotter88.createRegions(6, 6);
- i=0;
- for(SiSensor sensor : sensors) {
- IHistogram1D resX = aida.histogram1D(sensor.getName() + " strip hits", 10, 0, 10);
- plotter88.region(i).plot(resX);
- i++;
- }
-
- if(showPlots) plotter88.show();
-
-
- plotter9 = fac.createPlotterFactory().create("HPS Strip Hit On Track Multiplicity");
- plotter9.setTitle("Strip Hit Multiplicity");
- //plotterFrame.addPlotter(plotter9);
- IPlotterStyle style9 = plotter9.style();
- style9.dataStyle().fillStyle().setColor("yellow");
- style9.dataStyle().errorBarStyle().setVisible(false);
- plotter9.createRegions(6, 6);
- i=0;
- for(SiSensor sensor : sensors) {
- IHistogram1D resX = aida.histogram1D(sensor.getName() + " strip hits on track", 3, 0, 3);
- plotter9.region(i).plot(resX);
- i++;
- }
-
- if(showPlots) plotter9.show();
-
-
- plotter888 = fac.createPlotterFactory().create("HPS Strip Hit Isolation");
- plotter888.setTitle("Strip Hit Isolation");
- //plotterFrame.addPlotter(plotter88);
- plotter888.setStyle(style8);
- plotter888.createRegions(6, 6);
- i=0;
- for(SiSensor sensor : sensors) {
- IHistogram1D resX = aida.histogram1D(sensor.getName() + " strip hits iso", 50, 0, 5);
- plotter888.region(i).plot(resX);
- i++;
- }
-
- if(showPlots) plotter888.show();
-
- plotter8888 = fac.createPlotterFactory().create("HPS Strip Hit On Track Isolation");
- plotter8888.setTitle("Strip Hit On Track Isolation");
- //plotterFrame.addPlotter(plotter88);
- plotter8888.setStyle(style8);
- plotter8888.createRegions(6, 6);
- i=0;
- for(SiSensor sensor : sensors) {
- IHistogram1D resX = aida.histogram1D(sensor.getName() + " strip hits iso on track", 50, 0, 5);
- plotter8888.region(i).plot(resX);
- i++;
- }
-
- if(showPlots) plotter8888.show();
-
-
+
+ setupPlots();
}
+
+
+
+
+
+
public TrackingReconstructionPlots() {
LOGGER.setLevel(Level.WARNING);
@@ -1170,13 +350,8 @@
int isTop = -1;
if (trk.getTrackerHits().get(0).getPosition()[2] > 0) {
- isTop = 0;//make plot look pretty
- }
- int charge = trk.getCharge();
- if (charge > 0) {
- charge = 0;//make plot look pretty
- }// System.out.println("Charge = " + charge + "; isTop = " + isTop);
- aida.histogram2D("Charge vs Slope").fill(charge, isTop);
+ isTop = 0;
+ }
if (isTop == 0) {
aida.histogram1D("Top Track Momentum (Px)").fill(trk.getTrackStates().get(0).getMomentum()[1]);
aida.histogram1D("Top Track Momentum (Py)").fill(trk.getTrackStates().get(0).getMomentum()[2]);
@@ -1304,8 +479,6 @@
layersBot[htc.Layer() - 1]++;
Hep3Vector sensorPos = ((SiSensor) ((RawTrackerHit) htc.getRawHits().get(0)).getDetectorElement()).getGeometry().getPosition();
if (htc.Layer() == 1) {
-// System.out.println(sensorPos.toString());
-// System.out.println("Hit X = " + x + "; Hit Y = " + y);
aida.histogram2D("Layer 1 HTH Position: Bottom").fill(x - sensorPos.x(), y - sensorPos.y());
}
if (htc.Layer() == 7) {
@@ -1319,7 +492,7 @@
double clusterSum = 0;
double clusterT0 = 0;
int nHitsCluster = 0;
-
+
for (RawTrackerHit rawHit : (List<RawTrackerHit>) hts.rawhits()) {
if(event.hasCollection(LCRelation.class, "SVTFittedRawTrackerHits")) {
List<LCRelation> fittedHits = event.get(LCRelation.class, "SVTFittedRawTrackerHits");
@@ -1361,7 +534,6 @@
}
for(Map.Entry<HpsSiSensor,Integer> sensor : stripHitsOnTrack.entrySet()) {
- aida.histogram1D(sensor.getKey().getName() + " strip hits on track").fill(sensor.getValue());
aida.histogram1D(sensor.getKey().getName() + " strip hits iso on track").fill(stripHitsIsoOnTrack.get(sensor.getKey()));
}
@@ -1645,6 +817,813 @@
+
+private void setupPlots() {
+
+
+ IAnalysisFactory fac = aida.analysisFactory();
+ plotter = fac.createPlotterFactory().create("HPS Tracking Plots");
+ plotter.setTitle("Momentum");
+ IPlotterStyle style = plotter.style();
+ style.dataStyle().fillStyle().setColor("yellow");
+ style.dataStyle().errorBarStyle().setVisible(false);
+ plotter.createRegions(2, 2);
+ //plotterFrame.addPlotter(plotter);
+
+ trkPx = aida.histogram1D("Track Momentum (Px)", 25, -0.25, 0.25);
+ IHistogram1D trkPy = aida.histogram1D("Track Momentum (Py)", 25, -0.5, 0.5);
+ IHistogram1D trkPz = aida.histogram1D("Track Momentum (Pz)", 25, 0, 1.5);
+ IHistogram1D trkChi2 = aida.histogram1D("Track Chi2", 25, 0, 25.0);
+
+ plotter.region(0).plot(trkPx);
+ plotter.region(1).plot(trkPy);
+ plotter.region(2).plot(trkPz);
+ plotter.region(3).plot(trkChi2);
+
+ if(showPlots) plotter.show();
+
+// ******************************************************************
+ top1 = fac.createPlotterFactory().create("Top Tracking Plots");
+ top1.setTitle("Top Momentum");
+ IPlotterStyle stop1 = top1.style();
+ stop1.dataStyle().fillStyle().setColor("green");
+ stop1.dataStyle().errorBarStyle().setVisible(false);
+ top1.createRegions(2, 2);
+ //topFrame.addPlotter(top1);
+
+ IHistogram1D toptrkPx = aida.histogram1D("Top Track Momentum (Px)", 25, -0.25, 0.25);
+ IHistogram1D toptrkPy = aida.histogram1D("Top Track Momentum (Py)", 25, -0.5, 0.5);
+ IHistogram1D toptrkPz = aida.histogram1D("Top Track Momentum (Pz)", 25, 0, 1.5);
+ IHistogram1D toptrkChi2 = aida.histogram1D("Top Track Chi2", 25, 0, 25.0);
+
+ top1.region(0).plot(toptrkPx);
+ top1.region(1).plot(toptrkPy);
+ top1.region(2).plot(toptrkPz);
+ top1.region(3).plot(toptrkChi2);
+
+ if(showPlots) top1.show();
+
+ bot1 = fac.createPlotterFactory().create("Bottom Tracking Plots");
+ bot1.setTitle("Bottom Momentum");
+ IPlotterStyle sbot1 = bot1.style();
+ sbot1.dataStyle().fillStyle().setColor("blue");
+ sbot1.dataStyle().errorBarStyle().setVisible(false);
+ bot1.createRegions(2, 2);
+ //bottomFrame.addPlotter(bot1);
+
+ IHistogram1D bottrkPx = aida.histogram1D("Bottom Track Momentum (Px)", 25, -0.25, 0.25);
+ IHistogram1D bottrkPy = aida.histogram1D("Bottom Track Momentum (Py)", 25, -0.5, 0.5);
+ IHistogram1D bottrkPz = aida.histogram1D("Bottom Track Momentum (Pz)", 25, 0, 1.5);
+ IHistogram1D bottrkChi2 = aida.histogram1D("Bottom Track Chi2", 25, 0, 25.0);
+
+ bot1.region(0).plot(bottrkPx);
+ bot1.region(1).plot(bottrkPy);
+ bot1.region(2).plot(bottrkPz);
+ bot1.region(3).plot(bottrkChi2);
+
+ if(showPlots) bot1.show();
+
+// ******************************************************************
+ IHistogram1D trkd0 = aida.histogram1D("d0 ", 25, -10.0, 10.0);
+ IHistogram1D trkphi = aida.histogram1D("sinphi ", 25, -0.2, 0.2);
+ IHistogram1D trkomega = aida.histogram1D("omega ", 25, -0.0025, 0.0025);
+ IHistogram1D trklam = aida.histogram1D("tan(lambda) ", 25, -0.1, 0.1);
+ IHistogram1D trkz0 = aida.histogram1D("z0 ", 25, -6.0, 6.0);
+
+ plotter22 = fac.createPlotterFactory().create("HPS Track Params");
+ plotter22.setTitle("Track parameters");
+ //plotterFrame.addPlotter(plotter22);
+ IPlotterStyle style22 = plotter22.style();
+ style22.dataStyle().fillStyle().setColor("yellow");
+ style22.dataStyle().errorBarStyle().setVisible(false);
+ plotter22.createRegions(2, 3);
+ plotter22.region(0).plot(trkd0);
+ plotter22.region(1).plot(trkphi);
+ plotter22.region(2).plot(trkomega);
+ plotter22.region(3).plot(trklam);
+ plotter22.region(4).plot(trkz0);
+
+ if(showPlots) plotter22.show();
+
+ // ******************************************************************
+
+
+ trkd0 = aida.histogram1D("d0 Top", 25, -10.0, 10.0);
+ trkphi = aida.histogram1D("sinphi Top", 25, -0.2, 0.2);
+ trkomega = aida.histogram1D("omega Top", 25, -0.0025, 0.0025);
+ trklam = aida.histogram1D("tan(lambda) Top", 25, -0.1, 0.1);
+ trkz0 = aida.histogram1D("z0 Top", 25, -6.0, 6.0);
+
+ plotter2221 = fac.createPlotterFactory().create("HPS Track Params");
+ plotter2221.setTitle("Track parameters");
+ //plotterFrame.addPlotter(plotter22);
+ IPlotterStyle style2221 = plotter2221.style();
+ style2221.dataStyle().fillStyle().setColor("yellow");
+ style2221.dataStyle().errorBarStyle().setVisible(false);
+ plotter2221.createRegions(2, 3);
+ plotter2221.region(0).plot(trkd0);
+ plotter2221.region(1).plot(trkphi);
+ plotter2221.region(2).plot(trkomega);
+ plotter2221.region(3).plot(trklam);
+ plotter2221.region(4).plot(trkz0);
+
+ if(showPlots) plotter2221.show();
+
+
+ // ******************************************************************
+
+
+ trkd0 = aida.histogram1D("d0 Bottom", 25, -10.0, 10.0);
+ trkphi = aida.histogram1D("sinphi Bottom", 25, -0.2, 0.2);
+ trkomega = aida.histogram1D("omega Bottom", 25, -0.0025, 0.0025);
+ trklam = aida.histogram1D("tan(lambda) Bottom", 25, -0.1, 0.1);
+ trkz0 = aida.histogram1D("z0 Bottom", 25, -6.0, 6.0);
+
+ plotter2222 = fac.createPlotterFactory().create("HPS Track Params");
+ plotter2222.setTitle("Track parameters");
+ //plotterFrame.addPlotter(plotter22);
+ IPlotterStyle style2222 = plotter2222.style();
+ style2222.dataStyle().fillStyle().setColor("yellow");
+ style2222.dataStyle().errorBarStyle().setVisible(false);
+ plotter2222.createRegions(2, 3);
+ plotter2222.region(0).plot(trkd0);
+ plotter2222.region(1).plot(trkphi);
+ plotter2222.region(2).plot(trkomega);
+ plotter2222.region(3).plot(trklam);
+ plotter2222.region(4).plot(trkz0);
+
+ if(showPlots) plotter2222.show();
+
+
+
+ // ******************************************************************
+
+
+ plotter2 = fac.createPlotterFactory().create("HPS Tracking Plots");
+ plotter2.setTitle("Track extrapolation");
+ //plotterFrame.addPlotter(plotter2);
+ IPlotterStyle style2 = plotter2.style();
+ style2.dataStyle().fillStyle().setColor("yellow");
+ style2.dataStyle().errorBarStyle().setVisible(false);
+ plotter2.createRegions(2, 4);
+ IHistogram1D xAtConverter = aida.histogram1D("X (mm) @ Z=-60cm", 50, -50, 50);
+ IHistogram1D yAtConverter = aida.histogram1D("Y (mm) @ Z=-60cm", 50, -20, 20);
+ IHistogram1D xAtColl = aida.histogram1D("X (mm) @ Z=-150cm", 50, -200, 200);
+ IHistogram1D yAtColl = aida.histogram1D("Y (mm) @ Z=-150cm", 50, -200, 200);
+ IHistogram1D xAtEcal = aida.histogram1D("X (mm) @ ECAL", 50, -500, 500);
+ IHistogram1D yAtEcal = aida.histogram1D("Y (mm) @ ECAL", 50, -100, 100);
+ IHistogram1D xAtEcal2 = aida.histogram1D("X (mm) @ ECAL (Pz>1)", 50, -500, 500);
+ IHistogram1D yAtEcal2 = aida.histogram1D("Y (mm) @ ECAL (Pz>1)", 50, -100, 100);
+
+ plotter2.region(0).plot(xAtConverter);
+ plotter2.region(4).plot(yAtConverter);
+ plotter2.region(1).plot(xAtColl);
+ plotter2.region(5).plot(yAtColl);
+ plotter2.region(2).plot(xAtEcal);
+ plotter2.region(6).plot(yAtEcal);
+ plotter2.region(3).plot(xAtEcal2);
+ plotter2.region(7).plot(yAtEcal2);
+
+ if(showPlots) plotter2.show();
+
+ // ******************************************************************
+
+ plotter222 = fac.createPlotterFactory().create("HPS Tracking Plots");
+ plotter222.setTitle("HPS Tracking Plots");
+ //plotterFrame.addPlotter(plotter222);
+ IPlotterStyle style222 = plotter222.style();
+ style222.dataStyle().fillStyle().setColor("yellow");
+ style222.dataStyle().errorBarStyle().setVisible(false);
+ plotter222.createRegions(2, 2);
+
+ IHistogram1D nHits = aida.histogram1D("Hits per Track", 4, 3, 7);
+ nTracks = aida.histogram1D("Tracks per Event", 3, 0, 3);
+ IHistogram1D nHitsCluster = aida.histogram1D("Hits in Cluster (HitOnTrack)", 4, 0, 4);
+
+
+ plotter222.region(0).plot(nHits);
+ plotter222.region(1).plot(nTracks);
+ plotter222.region(2).plot(nHitsCluster);
+
+ if(showPlots) plotter222.show();
+
+
+ // ******************************************************************
+
+ plotter22299 = fac.createPlotterFactory().create("HPS Tracking Plots Top");
+ plotter22299.setTitle("HPS Tracking Plots Top");
+ //plotterFrame.addPlotter(plotter22299);
+ IPlotterStyle style22299 = plotter22299.style();
+ style22299.dataStyle().fillStyle().setColor("yellow");
+ style22299.dataStyle().errorBarStyle().setVisible(false);
+ plotter22299.createRegions(2, 2);
+
+ IHistogram1D nHitsTop = aida.histogram1D("Hits per Track Top", 4, 3, 7);
+ nTracksTop = aida.histogram1D("Tracks per Event Top", 3, 0, 3);
+ IHistogram1D nHitsClusterTop = aida.histogram1D("Hits in Cluster (HitOnTrack) Top", 4, 0, 4);
+
+
+ plotter22299.region(0).plot(nHitsTop);
+ plotter22299.region(1).plot(nTracksTop);
+ plotter22299.region(2).plot(nHitsClusterTop);
+
+ if(showPlots) plotter22299.show();
+
+// ******************************************************************
+
+ plotter22298 = fac.createPlotterFactory().create("HPS Tracking Plots Bottom");
+ plotter22298.setTitle("HPS Tracking Plots Bottom");
+ //plotterFrame.addPlotter(plotter22298);
+ IPlotterStyle style22298 = plotter22298.style();
+ style22298.dataStyle().fillStyle().setColor("yellow");
+ style22298.dataStyle().errorBarStyle().setVisible(false);
+ plotter22298.createRegions(2, 2);
+
+ IHistogram1D nHitsBot = aida.histogram1D("Hits per Track Bot", 4, 3, 7);
+ nTracksBot = aida.histogram1D("Tracks per Event Bot", 3, 0, 3);
+ IHistogram1D nHitsClusterBot = aida.histogram1D("Hits in Cluster (HitOnTrack) Bot", 4, 0, 4);
+
+
+ plotter22298.region(0).plot(nHitsBot);
+ plotter22298.region(1).plot(nTracksBot);
+ plotter22298.region(2).plot(nHitsClusterBot);
+
+ if(showPlots) plotter22298.show();
+
+
+ // ******************************************************************
+
+
+ plotter2223 = fac.createPlotterFactory().create("Cluster Amp Plots");
+ plotter2223.setTitle("Other");
+ //plotterFrame.addPlotter(plotter222);
+ IPlotterStyle style2223 = plotter2223.style();
+ style2223.dataStyle().fillStyle().setColor("yellow");
+ style2223.dataStyle().errorBarStyle().setVisible(false);
+ plotter2223.createRegions(2, 2);
+
+
+
+ IHistogram1D amp = aida.histogram1D("Amp (HitOnTrack)", 50, 0, 5000);
+ IHistogram1D ampcl = aida.histogram1D("Cluster Amp (HitOnTrack)", 50, 0, 5000);
+ IHistogram1D amp2 = aida.histogram1D("Amp Pz>0.8 (HitOnTrack)", 50, 0, 5000);
+ IHistogram1D ampcl2 = aida.histogram1D("Cluster Amp Pz>0.8 (HitOnTrack)", 50, 0, 5000);
+
+
+ plotter2223.region(0).plot(amp);
+ plotter2223.region(1).plot(amp2);
+ plotter2223.region(2).plot(ampcl);
+ plotter2223.region(3).plot(ampcl2);
+
+ if(showPlots) plotter2223.show();
+
+// ******************************************************************
+
+
+ plotter2224 = fac.createPlotterFactory().create("t0 Plots");
+ plotter2224.setTitle("Other");
+ IPlotterStyle style2224 = plotter2224.style();
+ style2224.dataStyle().fillStyle().setColor("yellow");
+ style2224.dataStyle().errorBarStyle().setVisible(false);
+ plotter2224.createRegions(2, 2);
+
+ IHistogram1D t0 = aida.histogram1D("t0 (HitOnTrack)", 50, -100, 100);
+ IHistogram1D t0cl = aida.histogram1D("Cluster t0 (HitOnTrack)", 50, -100, 100);
+ IHistogram1D t02 = aida.histogram1D("t0 Pz>0.8 (HitOnTrack)", 50, -100, 100);
+ IHistogram1D t0cl2 = aida.histogram1D("Cluster t0 Pz>0.8 (HitOnTrack)", 50, -100, 100);
+
+ plotter2224.region(0).plot(t0);
+ plotter2224.region(1).plot(t0cl);
+ plotter2224.region(2).plot(t02);
+ plotter2224.region(3).plot(t0cl2);
+
+ if(showPlots) plotter2224.show();
+
+
+ // ******************************************************************
+
+ plotter3 = fac.createPlotterFactory().create("HPS Layer Residual Plots");
+ plotter3.setTitle("Layer Residuals");
+ //plotterFrame.addPlotter(plotter3);
+ IPlotterStyle style3 = plotter3.style();
+ style3.dataStyle().fillStyle().setColor("yellow");
+ style3.dataStyle().errorBarStyle().setVisible(false);
+ plotter3.createRegions(6, 2);
+
+
+
+ IHistogram1D mod1ResX = aida.histogram1D("Layer 1 Residual X(mm)", 25, -1, 1);
+ IHistogram1D mod1ResY = aida.histogram1D("Layer 1 Residual Y(mm)", 25, -0.04, 0.04);
+
+ IHistogram1D mod2ResX = aida.histogram1D("Layer 2 Residual X(mm)", 25, -2, 2);
+ IHistogram1D mod2ResY = aida.histogram1D("Layer 2 Residual Y(mm)", 25, -1, 1);
+
+ IHistogram1D mod3ResX = aida.histogram1D("Layer 3 Residual X(mm)", 25, -2.5, 2.5);
+ IHistogram1D mod3ResY = aida.histogram1D("Layer 3 Residual Y(mm)", 25, -1.5, 1.5);
+
+ IHistogram1D mod4ResX = aida.histogram1D("Layer 4 Residual X(mm)", 25, -3.0, 3.0);
+ IHistogram1D mod4ResY = aida.histogram1D("Layer 4 Residual Y(mm)", 25, -2, 2);
+
+ IHistogram1D mod5ResX = aida.histogram1D("Layer 5 Residual X(mm)", 25, -4, 4);
+ IHistogram1D mod5ResY = aida.histogram1D("Layer 5 Residual Y(mm)", 25, -3, 3);
+
+ IHistogram1D mod6ResX = aida.histogram1D("Layer 6 Residual X(mm)", 25, -5, 5);
+ IHistogram1D mod6ResY = aida.histogram1D("Layer 6 Residual Y(mm)", 25, -3, 3);
+
+ plotter3.region(0).plot(mod1ResX);
+ plotter3.region(2).plot(mod2ResX);
+ plotter3.region(4).plot(mod3ResX);
+ plotter3.region(6).plot(mod4ResX);
+ plotter3.region(8).plot(mod5ResX);
+ plotter3.region(10).plot(mod6ResX);
+
+ plotter3.region(1).plot(mod1ResY);
+ plotter3.region(3).plot(mod2ResY);
+ plotter3.region(5).plot(mod3ResY);
+ plotter3.region(7).plot(mod4ResY);
+ plotter3.region(9).plot(mod5ResY);
+ plotter3.region(11).plot(mod6ResY);
+
+ if(showPlots) plotter3.show();
+
+
+
+ plotter3_11 = fac.createPlotterFactory().create("HPS Strip Residual Plots");
+ plotter3_11.setTitle("Strip Residuals (Top)");
+ //plotterFrame.addPlotter(plotter3_11);
+ IPlotterStyle style3_11 = plotter3_11.style();
+ style3_11.dataStyle().fillStyle().setColor("yellow");
+ style3_11.dataStyle().errorBarStyle().setVisible(false);
+ plotter3_11.createRegions(6, 6);
+ int i=0;
+ for(HpsSiSensor sensor : sensors) {
+ double min = 0.0;
+ double max = 0.0;
+ if(sensor.getName().contains("L1")) {
+ min=-0.04; max=0.04;
+ } else if(sensor.getName().contains("L2")) {
+ min=-1; max=1;
+ } else if(sensor.getName().contains("L3")) {
+ min=-1.5; max=1.5;
+ } else if(sensor.getName().contains("L4")) {
+ min=-3; max=3;
+ } else if(sensor.getName().contains("L5")) {
+ min=-4; max=4;
+ } else if(sensor.getName().contains("L6")) {
+ min=-5; max=5;
+ } else {
+ throw new RuntimeException("Invalid sensor name: " + sensor.getName());
+ }
+ IHistogram1D resX = aida.histogram1D(sensor.getName() + " strip residual (mm)", 50, min, max);
+ plotter3_11.region(i).plot(resX);
+ i++;
+ }
+
+ if(showPlots) plotter3_11.show();
+
+
+ plotter3_1 = fac.createPlotterFactory().create("HPS Residual Plots (Single hit per layer)");
+ plotter3_1.setTitle("Residuals (Top)");
+ //plotterFrame.addPlotter(plotter3_1);
+ IPlotterStyle style3_1 = plotter3_1.style();
+ style3_1.dataStyle().fillStyle().setColor("yellow");
+ style3_1.dataStyle().errorBarStyle().setVisible(false);
+ plotter3_1.createRegions(6, 2);
+
+ IHistogram1D mod1ResX_Top = aida.histogram1D("Layer 1 Residual X(mm) Top", 25, -1, 1);
+ IHistogram1D mod1ResY_Top = aida.histogram1D("Layer 1 Residual Y(mm) Top", 25, -0.04, 0.04);
+
+ IHistogram1D mod2ResX_Top = aida.histogram1D("Layer 2 Residual X(mm) Top", 25, -2, 2);
+ IHistogram1D mod2ResY_Top = aida.histogram1D("Layer 2 Residual Y(mm) Top", 25, -1, 1);
+
+ IHistogram1D mod3ResX_Top = aida.histogram1D("Layer 3 Residual X(mm) Top", 25, -2.5, 2.5);
+ IHistogram1D mod3ResY_Top = aida.histogram1D("Layer 3 Residual Y(mm) Top", 25, -1.5, 1.5);
+
+ IHistogram1D mod4ResX_Top = aida.histogram1D("Layer 4 Residual X(mm) Top", 25, -3.0, 3.0);
+ IHistogram1D mod4ResY_Top = aida.histogram1D("Layer 4 Residual Y(mm) Top", 25, -2, 2);
+
+ IHistogram1D mod5ResX_Top = aida.histogram1D("Layer 5 Residual X(mm) Top", 25, -4, 4);
+ IHistogram1D mod5ResY_Top = aida.histogram1D("Layer 5 Residual Y(mm) Top", 25, -3, 3);
+
+ IHistogram1D mod6ResX_Top = aida.histogram1D("Layer 6 Residual X(mm) Top", 25, -5, 5);
+ IHistogram1D mod6ResY_Top = aida.histogram1D("Layer 6 Residual Y(mm) Top", 25, -3, 3);
+
+
+ plotter3_1.region(0).plot(mod1ResX_Top);
+ plotter3_1.region(2).plot(mod2ResX_Top);
+ plotter3_1.region(4).plot(mod3ResX_Top);
+ plotter3_1.region(6).plot(mod4ResX_Top);
+ plotter3_1.region(8).plot(mod5ResX_Top);
+ plotter3_1.region(10).plot(mod6ResX_Top);
+
+ plotter3_1.region(1).plot(mod1ResY_Top);
+ plotter3_1.region(3).plot(mod2ResY_Top);
+ plotter3_1.region(5).plot(mod3ResY_Top);
+ plotter3_1.region(7).plot(mod4ResY_Top);
+ plotter3_1.region(9).plot(mod5ResY_Top);
+ plotter3_1.region(11).plot(mod6ResY_Top);
+
+ if(showPlots) plotter3_1.show();
+
+ plotter3_2 = fac.createPlotterFactory().create("HPS Residual Plots (Single strip cluster per layer)");
+ plotter3_2.setTitle("Residuals (Bottom)");
+ //plotterFrame.addPlotter(plotter3_2);
+ IPlotterStyle style3_2 = plotter3_2.style();
+ style3_2.dataStyle().fillStyle().setColor("yellow");
+ style3_2.dataStyle().errorBarStyle().setVisible(false);
+ plotter3_2.createRegions(6, 2);
+
+ IHistogram1D mod1ResX_Bottom = aida.histogram1D("Layer 1 Residual X(mm) Bottom", 25, -1, 1);
+ IHistogram1D mod1ResY_Bottom = aida.histogram1D("Layer 1 Residual Y(mm) Bottom", 25, -0.04, 0.04);
+
+ IHistogram1D mod2ResX_Bottom = aida.histogram1D("Layer 2 Residual X(mm) Bottom", 25, -2, 2);
+ IHistogram1D mod2ResY_Bottom = aida.histogram1D("Layer 2 Residual Y(mm) Bottom", 25, -1, 1);
+
+ IHistogram1D mod3ResX_Bottom = aida.histogram1D("Layer 3 Residual X(mm) Bottom", 25, -2.5, 2.5);
+ IHistogram1D mod3ResY_Bottom = aida.histogram1D("Layer 3 Residual Y(mm) Bottom", 25, -1.5, 1.5);
+
+ IHistogram1D mod4ResX_Bottom = aida.histogram1D("Layer 4 Residual X(mm) Bottom", 25, -3.0, 3.0);
+ IHistogram1D mod4ResY_Bottom = aida.histogram1D("Layer 4 Residual Y(mm) Bottom", 25, -2, 2);
+
+ IHistogram1D mod5ResX_Bottom = aida.histogram1D("Layer 5 Residual X(mm) Bottom", 25, -4, 4);
+ IHistogram1D mod5ResY_Bottom = aida.histogram1D("Layer 5 Residual Y(mm) Bottom", 25, -3, 3);
+
+ IHistogram1D mod6ResX_Bottom = aida.histogram1D("Layer 6 Residual X(mm) Bottom", 25, -5, 5);
+ IHistogram1D mod6ResY_Bottom = aida.histogram1D("Layer 6 Residual Y(mm) Bottom", 25, -3, 3);
+
+ plotter3_2.region(0).plot(mod1ResX_Bottom);
+ plotter3_2.region(2).plot(mod2ResX_Bottom);
+ plotter3_2.region(4).plot(mod3ResX_Bottom);
+ plotter3_2.region(6).plot(mod4ResX_Bottom);
+ plotter3_2.region(8).plot(mod5ResX_Bottom);
+ plotter3_2.region(10).plot(mod6ResX_Bottom);
+
+ plotter3_2.region(1).plot(mod1ResY_Bottom);
+ plotter3_2.region(3).plot(mod2ResY_Bottom);
+ plotter3_2.region(5).plot(mod3ResY_Bottom);
+ plotter3_2.region(7).plot(mod4ResY_Bottom);
+ plotter3_2.region(9).plot(mod5ResY_Bottom);
+ plotter3_2.region(11).plot(mod6ResY_Bottom);
+
+ if(showPlots) plotter3_2.show();
+
+ plotter4 = fac.createPlotterFactory().create("HPS Track and ECal Plots");
+ plotter4.setTitle("Track and ECal Correlations");
+ //plotterFrame.addPlotter(plotter4);
+ IPlotterStyle style4 = plotter4.style();
+ style4.setParameter("hist2DStyle", "colorMap");
+ style4.dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
+ style4.dataStyle().fillStyle().setColor("yellow");
+ style4.dataStyle().errorBarStyle().setVisible(false);
+ plotter4.createRegions(2, 3);
+
+ IHistogram2D eVsP = aida.histogram2D("Energy Vs Momentum", 50, 0, 0.50, 50, 0, 1.5);
+ IHistogram1D eOverP = aida.histogram1D("Energy Over Momentum", 50, 0, 2);
+
+ IHistogram1D distX = aida.histogram1D("deltaX", 50, -100, 100);
+ IHistogram1D distY = aida.histogram1D("deltaY", 50, -40, 40);
+
+ IHistogram2D xEcalVsTrk = aida.histogram2D("X ECal Vs Track", 100, -400, 400, 100, -400, 400);
+ IHistogram2D yEcalVsTrk = aida.histogram2D("Y ECal Vs Track", 100, -100, 100, 100, -100, 100);
+
+ plotter4.region(0).plot(eVsP);
+ plotter4.region(3).plot(eOverP);
+ plotter4.region(1).plot(distX);
+ plotter4.region(4).plot(distY);
+ plotter4.region(2).plot(xEcalVsTrk);
+ plotter4.region(5).plot(yEcalVsTrk);
+
+ if(showPlots) plotter4.show();
+
+ // ******************************************************************
+ top2 = fac.createPlotterFactory().create("Top ECal Plots");
+ top2.setTitle("Top ECal Correlations");
+ IPlotterStyle stop2 = top2.style();
+ stop2.dataStyle().fillStyle().setColor("green");
+ stop2.dataStyle().errorBarStyle().setVisible(false);
+ stop2.setParameter("hist2DStyle", "colorMap");
+ stop2.dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
+ top2.createRegions(2, 3);
+ //topFrame.addPlotter(top2);
+
+ IHistogram2D topeVsP = aida.histogram2D("Top Energy Vs Momentum", 50, 0, 0.500, 50, 0, 1.5);
+ IHistogram1D topeOverP = aida.histogram1D("Top Energy Over Momentum", 50, 0, 2);
+
+ IHistogram1D topdistX = aida.histogram1D("Top deltaX", 50, -100, 100);
+ IHistogram1D topdistY = aida.histogram1D("Top deltaY", 50, -40, 40);
+
+ IHistogram2D topxEcalVsTrk = aida.histogram2D("Top X ECal Vs Track", 100, -400, 400, 100, -100, 100);
+ IHistogram2D topyEcalVsTrk = aida.histogram2D("Top Y ECal Vs Track", 100, 0, 100, 100, 0, 100);
+
+ top2.region(0).plot(topeVsP);
+ top2.region(3).plot(topeOverP);
+ top2.region(1).plot(topdistX);
+ top2.region(4).plot(topdistY);
+ top2.region(2).plot(topxEcalVsTrk);
+ top2.region(5).plot(topyEcalVsTrk);
+
+ if(showPlots) top2.show();
+
+ bot2 = fac.createPlotterFactory().create("Bottom ECal Plots");
+ bot2.setTitle("Bottom ECal Correlations");
+ IPlotterStyle sbot2 = bot2.style();
+ sbot2.dataStyle().fillStyle().setColor("green");
+ sbot2.dataStyle().errorBarStyle().setVisible(false);
+ sbot2.setParameter("hist2DStyle", "colorMap");
+ sbot2.dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
+ bot2.createRegions(2, 3);
+ //bottomFrame.addPlotter(bot2);
+
+ IHistogram2D BottomeVsP = aida.histogram2D("Bottom Energy Vs Momentum", 50, 0, 0.500, 50, 0, 1.5);
+ IHistogram1D BottomeOverP = aida.histogram1D("Bottom Energy Over Momentum", 50, 0, 2);
+
+ IHistogram1D BottomdistX = aida.histogram1D("Bottom deltaX", 50, -100, 100);
+ IHistogram1D BottomdistY = aida.histogram1D("Bottom deltaY", 50, -40, 40);
+
+ IHistogram2D BottomxEcalVsTrk = aida.histogram2D("Bottom X ECal Vs Track", 100, -400, 400, 100, -400, 400);
+ IHistogram2D BottomyEcalVsTrk = aida.histogram2D("Bottom Y ECal Vs Track", 100, -100, 0, 100, -100, 0);
+
+ bot2.region(0).plot(BottomeVsP);
+ bot2.region(3).plot(BottomeOverP);
+ bot2.region(1).plot(BottomdistX);
+ bot2.region(4).plot(BottomdistY);
+ bot2.region(2).plot(BottomxEcalVsTrk);
+ bot2.region(5).plot(BottomyEcalVsTrk);
+
+ if(showPlots) bot2.show();
+
+
+ // ******************************************************************
+ top3 = fac.createPlotterFactory().create("Top ECal Plots");
+ top3.setTitle("Top ECal More Correlations");
+ IPlotterStyle stop3 = top3.style();
+ stop3.dataStyle().fillStyle().setColor("green");
+ stop3.dataStyle().errorBarStyle().setVisible(false);
+ stop3.setParameter("hist2DStyle", "colorMap");
+ stop3.dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
+ top3.createRegions(1, 2);
+ //topFrame.addPlotter(top3);
+
+ IHistogram2D topdistXvsX = aida.histogram2D("Top deltaX vs X", 51, -400, 400, 25, -100, 100);
+ IHistogram2D topdistYvsY = aida.histogram2D("Top deltaY vs Y", 51, 0, 100, 25, -40, 40);
+
+ top3.region(0).plot(topdistXvsX);
+ top3.region(1).plot(topdistYvsY);
+
+ if(showPlots) top3.show();
+
+ bot3 = fac.createPlotterFactory().create("Bottom ECal Plots");
+ bot3.setTitle("Bottom ECal More Correlations");
+ IPlotterStyle sbot3 = bot3.style();
+ sbot3.dataStyle().fillStyle().setColor("green");
+ sbot3.dataStyle().errorBarStyle().setVisible(false);
+ sbot3.setParameter("hist2DStyle", "colorMap");
+ sbot3.dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
+ bot3.createRegions(1, 2);
+ //bottomFrame.addPlotter(bot3);
+
+ IHistogram2D botdistXvsX = aida.histogram2D("Bottom deltaX vs X", 51, -400, 400, 25, -100, 100);
+ IHistogram2D botdistYvsY = aida.histogram2D("Bottom deltaY vs Y", 51, -100, 0, 25, -40, 40);
+
+ bot3.region(0).plot(botdistXvsX);
+ bot3.region(1).plot(botdistYvsY);
+
+ if(showPlots) bot3.show();
+
+ // ******************************************************************
+ top4 = fac.createPlotterFactory().create("Track Matching Plots");
+ top4.setTitle("Track Matching Plots");
+ IPlotterStyle stop4 = top4.style();
+ stop4.dataStyle().fillStyle().setColor("green");
+ stop4.dataStyle().errorBarStyle().setVisible(false);
+ stop4.setParameter("hist2DStyle", "colorMap");
+ stop4.dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
+ top4.createRegions(2, 3);
+ //topFrame.addPlotter(top4);
+
+ IHistogram1D trackmatchN = aida.histogram1D("Tracks matched", 3, 0, 3);
+ IHistogram1D toptrackmatchN = aida.histogram1D("Tracks matched Top", 3, 0, 3);
+ IHistogram1D bottrackmatchN = aida.histogram1D("Tracks matched Bottom", 3, 0, 3);
+ IHistogram1D trackmatchN2 = aida.histogram1D("Tracks matched (Pz>0.8)", 3, 0, 3);
+ IHistogram1D toptrackmatchN2 = aida.histogram1D("Tracks matched Top (Pz>0.8)", 3, 0, 3);
+ IHistogram1D bottrackmatchN2 = aida.histogram1D("Tracks matched Bottom (Pz>0.8)", 3, 0, 3);
+
+ top4.region(0).plot(trackmatchN);
+ top4.region(1).plot(toptrackmatchN);
+ top4.region(2).plot(bottrackmatchN);
+ top4.region(3).plot(trackmatchN2);
+ top4.region(4).plot(toptrackmatchN2);
+ top4.region(5).plot(bottrackmatchN2);
+
+ if(showPlots) top4.show();
+
+ // ******************************************************************
+ top44 = fac.createPlotterFactory().create("e+e- Plots");
+ top44.setTitle("e+e- Plots");
+ IPlotterStyle stop44 = top44.style();
+ stop44.dataStyle().fillStyle().setColor("green");
+ stop44.dataStyle().errorBarStyle().setVisible(false);
+ stop44.setParameter("hist2DStyle", "colorMap");
+ stop44.dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
+ top44.createRegions(2,4);
+ //topFrame.addPlotter(top44);
+
+ IHistogram2D trackPCorr = aida.histogram2D("p(e-) vs p(e+) max", 25, 0, 1.2, 25, 0, 1.2);
+ IHistogram1D ne = aida.histogram1D("n(e-)", 3, 0, 3);
+ IHistogram1D np = aida.histogram1D("n(e+)", 3, 0, 3);
+ IHistogram1D pem = aida.histogram1D("p(e-) max", 25, 0, 1.5);
+ IHistogram1D pe = aida.histogram1D("p(e-)", 25, 0, 1.5);
+ IHistogram1D ppm = aida.histogram1D("p(e+) max", 25, 0, 1.5);
+ IHistogram1D pp = aida.histogram1D("p(e+)", 25, 0, 1.5);
+
+ top44.region(0).plot(trackPCorr);
+ top44.region(1).plot(ne);
+ top44.region(2).plot(np);
+ top44.region(3).plot(pe);
+ top44.region(4).plot(pp);
+ top44.region(5).plot(pem);
+ top44.region(6).plot(ppm);
+
+ if(showPlots) top44.show();
+
+
+
+// ******************************************************************
+ plotter5 = fac.createPlotterFactory().create("HPS Hit Positions");
+ plotter5.setTitle("Hit Positions: Top");
+ //plotterFrame.addPlotter(plotter5);
+ IPlotterStyle style5 = plotter5.style();
+ style5.setParameter("hist2DStyle", "colorMap");
+ style5.dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
+ style5.dataStyle().fillStyle().setColor("yellow");
+ style5.dataStyle().errorBarStyle().setVisible(false);
+ plotter5.createRegions(1, 2);
+
+ IHistogram2D l1Pos = aida.histogram2D("Layer 1 HTH Position: Top", 50, -55, 55, 55, -25, 25);
+ IHistogram2D l7Pos = aida.histogram2D("Layer 7 HTH Position: Top", 50, -55, 55, 55, -25, 25);
+
+ plotter5.region(0).plot(l1Pos);
+ plotter5.region(1).plot(l7Pos);
+
+ if(showPlots) plotter5.show();
+
+ plotter5_1 = fac.createPlotterFactory().create("HPS Hit Positions");
+ plotter5_1.setTitle("Hit Positions: Bottom");
+ //plotterFrame.addPlotter(plotter5_1);
+ IPlotterStyle style5_1 = plotter5_1.style();
+ style5_1.setParameter("hist2DStyle", "colorMap");
+ style5_1.dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
+ style5_1.dataStyle().fillStyle().setColor("yellow");
+ style5_1.dataStyle().errorBarStyle().setVisible(false);
+ plotter5_1.createRegions(1, 2);
+
+
+ IHistogram2D l1PosBot = aida.histogram2D("Layer 1 HTH Position: Bottom", 50, -55, 55, 55, -25, 25);
+ IHistogram2D l7PosBot = aida.histogram2D("Layer 7 HTH Position: Bottom", 50, -55, 55, 55, -25, 25);
+ plotter5_1.region(0).plot(l1PosBot);
+ plotter5_1.region(1).plot(l7PosBot);
+
+ if(showPlots) plotter5_1.show();
+
+ plotter55 = fac.createPlotterFactory().create("HPS Hit Positions");
+ plotter55.setTitle("Helical Track Hits");
+ //plotterFrame.addPlotter(plotter55);
+ IPlotterStyle style55 = plotter55.style();
+ style55.dataStyle().fillStyle().setColor("Green");
+ style55.dataStyle().errorBarStyle().setVisible(false);
+ style55.dataStyle().markerStyle().setSize(20);
+ plotter55.createRegions(1, 2);
+
+ IProfile avgLayersTopPlot = aida.profile1D("Number of Stereo Hits per layer in Top Half", 13, 0, 13);
+ IProfile avgLayersBottomPlot = aida.profile1D("Number of Stereo Hits per layer in Bottom Half", 13, 0, 13);
+
+ plotter55.region(0).plot(avgLayersTopPlot);
+ plotter55.region(1).plot(avgLayersBottomPlot);
+
+ if(showPlots) plotter55.show();
+
+ plotter6 = fac.createPlotterFactory().create("HPS ECAL Hit Positions");
+ plotter6.setTitle("ECAL Positions");
+ //plotterFrame.addPlotter(plotter6);
+ IPlotterStyle style6 = plotter6.style();
+ style6.setParameter("hist2DStyle", "colorMap");
+ style6.dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
+ style6.dataStyle().fillStyle().setColor("yellow");
+ style6.dataStyle().errorBarStyle().setVisible(false);
+ plotter6.createRegions(4, 2);
+
+ IHistogram2D topECal = aida.histogram2D("Top ECal Cluster Position", 50, -400, 400, 10, 0, 100);
+ IHistogram2D botECal = aida.histogram2D("Bottom ECal Cluster Position", 50, -400, 400, 10, -100, 0);
+ IHistogram2D topECal1 = aida.histogram2D("Top ECal Cluster Position (>0 tracks)", 50, -400, 400, 10, 0, 100);
+ IHistogram2D botECal1 = aida.histogram2D("Bottom ECal Cluster Position (>0 tracks)", 50, -400, 400, 10, -100, 0);
+ IHistogram2D topECal2 = aida.histogram2D("Top ECal Cluster Position (E>0.1,>0 tracks)", 50, -400, 400, 10, 0, 100);
+ IHistogram2D botECal2 = aida.histogram2D("Bottom ECal Cluster Position (E>0.1,>0 tracks)", 50, -400, 400, 10, -100, 0);
+ IHistogram2D topECal3 = aida.histogram2D("Top ECal Cluster Position w_E (E>0.1,>0 tracks)", 50, -400, 400, 10, 0, 100);
+ IHistogram2D botECal3 = aida.histogram2D("Bottom ECal Cluster Position w_E (E>0.1,>0 tracks)", 50, -400, 400, 10, -100, 0);
+
+ plotter6.region(0).plot(topECal);
+ plotter6.region(1).plot(botECal);
+ plotter6.region(2).plot(topECal1);
+ plotter6.region(3).plot(botECal1);
+ plotter6.region(4).plot(topECal2);
+ plotter6.region(5).plot(botECal2);
+ plotter6.region(6).plot(topECal3);
+ plotter6.region(7).plot(botECal3);
+
+ if(showPlots) plotter6.show();
+
+
+ plotter66 = fac.createPlotterFactory().create("HPS ECAL Basic Plots");
+ plotter66.setTitle("ECAL Basic Plots");
+ //plotterFrame.addPlotter(plotter6);
+ IPlotterStyle style66 = plotter66.style();
+ style66.dataStyle().fillStyle().setColor("yellow");
+ style66.dataStyle().errorBarStyle().setVisible(false);
+ plotter66.createRegions(2, 2);
+
+ IHistogram1D topECalE = aida.histogram1D("Top ECal Cluster Energy", 50, 0, 2);
+ IHistogram1D botECalE = aida.histogram1D("Bottom ECal Cluster Energy", 50, 0, 2);
+ IHistogram1D topECalN = aida.histogram1D("Number of Clusters Top", 6, 0, 6);
+ IHistogram1D botECalN = aida.histogram1D("Number of Clusters Bot", 6, 0, 6);
+
+ plotter66.region(0).plot(topECalE);
+ plotter66.region(1).plot(botECalE);
+ plotter66.region(2).plot(botECalN);
+ plotter66.region(3).plot(topECalN);
+
+ if(showPlots) plotter66.show();
+
+
+
+
+ plotter8 = fac.createPlotterFactory().create("HPS Strip Hit From Stereo Multiplicity");
+ plotter8.setTitle("Strip Hit Multiplicity");
+ //plotterFrame.addPlotter(plotter8);
+ IPlotterStyle style8 = plotter8.style();
+ style8.dataStyle().fillStyle().setColor("yellow");
+ style8.dataStyle().errorBarStyle().setVisible(false);
+ plotter8.createRegions(6, 6);
+ i=0;
+ for(SiSensor sensor : sensors) {
+ IHistogram1D resX = aida.histogram1D(sensor.getName() + " strip hits from stereo", 10, 0, 10);
+ plotter8.region(i).plot(resX);
+ i++;
+ }
+
+ if(showPlots) plotter8.show();
+
+ plotter88 = fac.createPlotterFactory().create("HPS Strip Hit Multiplicity");
+ plotter88.setTitle("Strip Hit Multiplicity");
+ //plotterFrame.addPlotter(plotter88);
+ plotter88.setStyle(style8);
+ plotter88.createRegions(6, 6);
+ i=0;
+ for(SiSensor sensor : sensors) {
+ IHistogram1D resX = aida.histogram1D(sensor.getName() + " strip hits", 10, 0, 10);
+ plotter88.region(i).plot(resX);
+ i++;
+ }
+
+ if(showPlots) plotter88.show();
+
+
+
+
+
+ plotter888 = fac.createPlotterFactory().create("HPS Strip Hit Isolation");
+ plotter888.setTitle("Strip Hit Isolation");
+ //plotterFrame.addPlotter(plotter88);
+ plotter888.setStyle(style8);
+ plotter888.createRegions(6, 6);
+ i=0;
+ for(SiSensor sensor : sensors) {
+ IHistogram1D resX = aida.histogram1D(sensor.getName() + " strip hits iso", 50, 0, 5);
+ plotter888.region(i).plot(resX);
+ i++;
+ }
+
+ if(showPlots) plotter888.show();
+
+ plotter8888 = fac.createPlotterFactory().create("HPS Strip Hit On Track Isolation");
+ plotter8888.setTitle("Strip Hit On Track Isolation");
+ //plotterFrame.addPlotter(plotter88);
+ plotter8888.setStyle(style8);
+ plotter8888.createRegions(6, 6);
+ i=0;
+ for(SiSensor sensor : sensors) {
+ IHistogram1D resX = aida.histogram1D(sensor.getName() + " strip hits iso on track", 50, 0, 5);
+ plotter8888.region(i).plot(resX);
+ i++;
+ }
+
+ if(showPlots) plotter8888.show();
+
+
+ }
+
+
+
+
private Cluster findClosestCluster(Hep3Vector posonhelix, List<Cluster> clusters) {
Cluster closest = null;
double minDist = 9999;
Modified: java/branches/jeremy-dev/util/pom.xml
=============================================================================
--- java/branches/jeremy-dev/util/pom.xml (original)
+++ java/branches/jeremy-dev/util/pom.xml Wed Dec 16 15:32:00 2015
@@ -7,7 +7,7 @@
<groupId>org.hps</groupId>
<artifactId>hps-parent</artifactId>
<relativePath>../parent/pom.xml</relativePath>
- <version>3.4.2-SNAPSHOT</version>
+ <version>3.5-SNAPSHOT</version>
</parent>
<scm>
<url>http://java.freehep.org/svn/repos/hps/list/java/trunk/util/</url>
|