hps-java/src/main/java/org/lcsim/hps/users/omoreno
diff -u -r1.1 -r1.2
--- SvtTrackAnalysis.java 11 May 2012 13:08:54 -0000 1.1
+++ SvtTrackAnalysis.java 16 May 2012 04:40:17 -0000 1.2
@@ -2,14 +2,16 @@
//--- java ---//
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
//--- org.lcsim ---//
import org.lcsim.event.EventHeader;
+import org.lcsim.event.RawTrackerHit;
import org.lcsim.event.Track;
import org.lcsim.geometry.Detector;
-import org.lcsim.hps.monitoring.Resettable;
-import org.lcsim.hps.recon.ecal.HPSEcalCluster;
+import org.lcsim.recon.tracking.digitization.sisim.SiTrackerHitStrip1D;
import org.lcsim.recon.tracking.seedtracker.SeedTrack;
import org.lcsim.util.Driver;
import org.lcsim.util.aida.AIDA;
@@ -18,23 +20,39 @@
import hep.aida.IPlotter;
import hep.physics.vec.Hep3Vector;
+//--- hps-java ---//
+import org.lcsim.hps.monitoring.AIDAFrame;
+import org.lcsim.hps.monitoring.Resettable;
+import org.lcsim.hps.recon.ecal.HPSEcalCluster;
+import org.lcsim.hps.recon.tracking.HPSFittedRawTrackerHit;
+import org.lcsim.hps.recon.tracking.SvtTrackExtrapolator;
+import org.lcsim.hps.recon.tracking.TrackUtils;
+
/**
*
* @author Omar Moreno
- * @version $Id: SvtTrackAnalysis.java,v 1.1 2012/05/11 13:08:54 omoreno Exp $
+ * @version $Id: SvtTrackAnalysis.java,v 1.2 2012/05/16 04:40:17 omoreno Exp $
*
*/
public class SvtTrackAnalysis extends Driver implements Resettable {
private String trackCollectionName = "MatchedTracks";
+ private String stripHitCollectionName = "StripClusterer_SiTrackerHitStrip1D";
private AIDA aida;
+ private List<AIDAFrame> frames = new ArrayList<AIDAFrame>();
private List<IPlotter> plotters = new ArrayList<IPlotter>();
- ExtendTrack trackExtender;
+ private static final double HARP_POSITION = -674.062;
+
+ int npositive = 0;
+ int nnegative = 0;
+
+
+ SvtTrackExtrapolator extrapolator;
public SvtTrackAnalysis(){
- trackExtender = new ExtendTrack();
+ extrapolator = new SvtTrackExtrapolator();
}
protected void detectorChanged(Detector detector){
@@ -42,58 +60,344 @@
aida = AIDA.defaultInstance();
aida.tree().cd("/");
+ for(int index = 0; index < 4; index++) frames.add(new AIDAFrame());
+
+ frames.get(0).setTitle("Track Position");
+ frames.get(1).setTitle("Track Parameters");
+ frames.get(2).setTitle("Track Momentum");
+ frames.get(3).setTitle("Cluster Matching");
+
+ int nPlotters = 0;
+
+ //--- Track Extrapolation ---//
+ //---------------------------//
plotters.add(aida.analysisFactory().createPlotterFactory().create("Track Position at Ecal"));
- plotters.get(0).region(0).plot(aida.histogram2D("Track Position at Ecal", 200, -350, 350, 100, -20, 100));
- plotters.get(0).region(0).style().setParameter("hist2DStyle", "colorMap");
- plotters.get(0).region(0).style().dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
- plotters.get(0).style().statisticsBoxStyle().setVisible(false);
-
- /*
- plotters.add(aida.analysisFactory().createPlotterFactory().create("Track Parameters"));
- plotters.get(1).createRegions();
- */
-
- plotters.add(aida.analysisFactory().createPlotterFactory().create("Track Position at Converter"));
- plotters.get(1).region(0).plot(aida.histogram2D("Track Position at Converter", 200, -350, 350, 100, -50, 50));
- plotters.get(1).region(0).style().setParameter("hist2DStyle", "colorMap");
- plotters.get(1).region(0).style().dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
- plotters.get(1).style().statisticsBoxStyle().setVisible(false);
-
- /*
- plotters.add(aida.analysisFactory().createPlotterFactory().create("Track Position at Collimator"));
- plotters.get(0).region(0).plot(aida.histogram2D("Track Position at Ecal", 200, -350, 350, 30, -20, 20));
- plotters.get(0).region(0).style().setParameter("hist2DStyle", "colorMap");
- plotters.get(0).region(0).style().dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
- plotters.get(0).style().statisticsBoxStyle().setVisible(false);
- */
-
- for(IPlotter plotter : plotters){
- plotter.show();
+ plotters.get(nPlotters).region(0).plot(aida.histogram2D("Track Position at Ecal", 200, -350, 350, 200, -100, 100));
+ plotters.get(nPlotters).region(0).style().setParameter("hist2DStyle", "colorMap");
+ plotters.get(nPlotters).region(0).style().dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
+ plotters.get(nPlotters).style().statisticsBoxStyle().setVisible(false);
+ plotters.get(nPlotters).style();
+ frames.get(0).addPlotter(plotters.get(nPlotters));
+ nPlotters++;
+
+ plotters.add(aida.analysisFactory().createPlotterFactory().create("Track Position at Harp"));
+ plotters.get(nPlotters).region(0).plot(aida.histogram2D("Track Position at Harp", 200, -200, 200, 100, -50, 50));
+ plotters.get(nPlotters).region(0).style().setParameter("hist2DStyle", "colorMap");
+ plotters.get(nPlotters).region(0).style().dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
+ plotters.get(nPlotters).style().statisticsBoxStyle().setVisible(false);
+ frames.get(0).addPlotter(plotters.get(nPlotters));
+ nPlotters++;
+
+ plotters.add(aida.analysisFactory().createPlotterFactory().create("Track Position at Ecal: Curvature < 0"));
+ plotters.get(nPlotters).region(0).plot(aida.histogram2D("Track Position at Ecal: Curvature < 0",200, -350, 350, 200, -100, 100));
+ plotters.get(nPlotters).region(0).style().setParameter("hist2DStyle", "colorMap");
+ plotters.get(nPlotters).region(0).style().dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
+ plotters.get(nPlotters).style().statisticsBoxStyle().setVisible(false);
+ frames.get(0).addPlotter(plotters.get(nPlotters));
+ nPlotters++;
+
+ plotters.add(aida.analysisFactory().createPlotterFactory().create("Track Position at Harp: Curvature < 0"));
+ plotters.get(nPlotters).region(0).plot(aida.histogram2D("Track Position at Harp: Curvature < 0", 200, -200, 200, 100, -50, 50));
+ plotters.get(nPlotters).region(0).style().setParameter("hist2DStyle", "colorMap");
+ plotters.get(nPlotters).region(0).style().dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
+ plotters.get(nPlotters).style().statisticsBoxStyle().setVisible(false);
+ frames.get(0).addPlotter(plotters.get(nPlotters));
+ nPlotters++;
+
+ plotters.add(aida.analysisFactory().createPlotterFactory().create("Track Position at Ecal: Curvature > 0"));
+ plotters.get(nPlotters).region(0).plot(aida.histogram2D("Track Position at Ecal: Curvature > 0", 200, -350, 350, 200, -100, 100));
+ plotters.get(nPlotters).region(0).style().setParameter("hist2DStyle", "colorMap");
+ plotters.get(nPlotters).region(0).style().dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
+ plotters.get(nPlotters).style().statisticsBoxStyle().setVisible(false);
+ frames.get(0).addPlotter(plotters.get(nPlotters));
+ nPlotters++;
+
+ plotters.add(aida.analysisFactory().createPlotterFactory().create("Track Position at Harp: Curvature > 0"));
+ plotters.get(nPlotters).region(0).plot(aida.histogram2D("Track Position at Harp: Curvature > 0", 200, -200, 200, 100, -50, 50));
+ plotters.get(nPlotters).region(0).style().setParameter("hist2DStyle", "colorMap");
+ plotters.get(nPlotters).region(0).style().dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
+ plotters.get(nPlotters).style().statisticsBoxStyle().setVisible(false);
+ frames.get(0).addPlotter(plotters.get(nPlotters));
+ nPlotters++;
+
+ plotters.add(aida.analysisFactory().createPlotterFactory().create("Track Position at Ecal: Two Tracks"));
+ plotters.get(nPlotters).region(0).plot(aida.histogram2D("Track Position at Ecal: Two Tracks", 200, -350, 350, 200, -100, 100));
+ plotters.get(nPlotters).region(0).style().setParameter("hist2DStyle", "colorMap");
+ plotters.get(nPlotters).region(0).style().dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
+ plotters.get(nPlotters).style().statisticsBoxStyle().setVisible(false);
+ plotters.get(nPlotters).style();
+ frames.get(0).addPlotter(plotters.get(nPlotters));
+ nPlotters++;
+
+ plotters.add(aida.analysisFactory().createPlotterFactory().create("Track Position at Harp: Two Tracks"));
+ plotters.get(nPlotters).region(0).plot(aida.histogram2D("Track Position at Harp: Two Tracks", 200, -200, 200, 100, -50, 50));
+ plotters.get(nPlotters).region(0).style().setParameter("hist2DStyle", "colorMap");
+ plotters.get(nPlotters).region(0).style().dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
+ plotters.get(nPlotters).style().statisticsBoxStyle().setVisible(false);
+ frames.get(0).addPlotter(plotters.get(nPlotters));
+ nPlotters++;
+
+
+ //--- Track Parameters ---//
+ //------------------------//
+ plotters.add(aida.analysisFactory().createPlotterFactory().create("DOCA"));
+ plotters.get(nPlotters).region(0).plot(aida.histogram1D("DOCA", 120, 0, 120));
+ plotters.get(nPlotters).style().statisticsBoxStyle().setVisible(false);
+ plotters.get(nPlotters).style().dataStyle().errorBarStyle().setVisible(false);
+ frames.get(1).addPlotter(plotters.get(nPlotters));
+ nPlotters++;
+
+ plotters.add(aida.analysisFactory().createPlotterFactory().create("Z0"));
+ plotters.get(nPlotters).region(0).plot(aida.histogram1D("Z0", 120, 0, 120));
+ plotters.get(nPlotters).style().statisticsBoxStyle().setVisible(false);
+ plotters.get(nPlotters).style().dataStyle().errorBarStyle().setVisible(false);
+ frames.get(1).addPlotter(plotters.get(nPlotters));
+ nPlotters++;
+
+ plotters.add(aida.analysisFactory().createPlotterFactory().create("phi0"));
+ plotters.get(nPlotters).region(0).plot(aida.histogram1D("phi0", 50, -Math.PI, Math.PI));
+ plotters.get(nPlotters).style().statisticsBoxStyle().setVisible(false);
+ plotters.get(nPlotters).style().dataStyle().errorBarStyle().setVisible(false);
+ frames.get(1).addPlotter(plotters.get(nPlotters));
+ nPlotters++;
+
+ plotters.add(aida.analysisFactory().createPlotterFactory().create("Curvature"));
+ plotters.get(nPlotters).region(0).plot(aida.histogram1D("R", 200, -10, 10));
+ plotters.get(nPlotters).style().statisticsBoxStyle().setVisible(false);
+ plotters.get(nPlotters).style().dataStyle().errorBarStyle().setVisible(false);
+ frames.get(1).addPlotter(plotters.get(nPlotters));
+ nPlotters++;
+
+ plotters.add(aida.analysisFactory().createPlotterFactory().create("Tan(Lambda)"));
+ plotters.get(nPlotters).region(0).plot(aida.histogram1D("Tan(Lambda)", 100, 0, 1));
+ plotters.get(nPlotters).style().statisticsBoxStyle().setVisible(false);
+ plotters.get(nPlotters).style().dataStyle().errorBarStyle().setVisible(false);
+ frames.get(1).addPlotter(plotters.get(nPlotters));
+ nPlotters++;
+
+ plotters.add(aida.analysisFactory().createPlotterFactory().create("ChiSquared"));
+ plotters.get(nPlotters).region(0).plot(aida.histogram1D("ChiSquared", 100, 0, 100));
+ plotters.get(nPlotters).style().statisticsBoxStyle().setVisible(false);
+ plotters.get(nPlotters).style().dataStyle().errorBarStyle().setVisible(false);
+ frames.get(1).addPlotter(plotters.get(nPlotters));
+ nPlotters++;
+
+ //--- Momentum ---//
+ //----------------//
+ plotters.add(aida.analysisFactory().createPlotterFactory().create("Px"));
+ plotters.get(nPlotters).region(0).plot(aida.histogram1D("Px", 100, 0, 5));
+ plotters.get(nPlotters).style().statisticsBoxStyle().setVisible(false);
+ plotters.get(nPlotters).style().dataStyle().errorBarStyle().setVisible(false);
+ frames.get(2).addPlotter(plotters.get(nPlotters));
+ nPlotters++;
+
+ plotters.add(aida.analysisFactory().createPlotterFactory().create("Py"));
+ plotters.get(nPlotters).region(0).plot(aida.histogram1D("Py", 100, 0, 5));
+ plotters.get(nPlotters).style().statisticsBoxStyle().setVisible(false);
+ plotters.get(nPlotters).style().dataStyle().errorBarStyle().setVisible(false);
+ frames.get(2).addPlotter(plotters.get(nPlotters));
+ nPlotters++;
+
+ plotters.add(aida.analysisFactory().createPlotterFactory().create("Pz"));
+ plotters.get(nPlotters).region(0).plot(aida.histogram1D("Pz", 100, 0, 5));
+ plotters.get(nPlotters).style().statisticsBoxStyle().setVisible(false);
+ plotters.get(nPlotters).style().dataStyle().errorBarStyle().setVisible(false);
+ frames.get(2).addPlotter(plotters.get(nPlotters));
+ nPlotters++;
+
+ plotters.add(aida.analysisFactory().createPlotterFactory().create("Px: C > 0"));
+ plotters.get(nPlotters).region(0).plot(aida.histogram1D("Px: C > 0", 100, 0, 5));
+ plotters.get(nPlotters).style().statisticsBoxStyle().setVisible(false);
+ plotters.get(nPlotters).style().dataStyle().errorBarStyle().setVisible(false);
+ frames.get(2).addPlotter(plotters.get(nPlotters));
+ nPlotters++;
+
+ plotters.add(aida.analysisFactory().createPlotterFactory().create("Py: C > 0"));
+ plotters.get(nPlotters).region(0).plot(aida.histogram1D("Py: C > 0", 100, 0, 5));
+ plotters.get(nPlotters).style().statisticsBoxStyle().setVisible(false);
+ plotters.get(nPlotters).style().dataStyle().errorBarStyle().setVisible(false);
+ frames.get(2).addPlotter(plotters.get(nPlotters));
+ nPlotters++;
+
+ plotters.add(aida.analysisFactory().createPlotterFactory().create("Pz: C > 0"));
+ plotters.get(nPlotters).region(0).plot(aida.histogram1D("Pz: C > 0", 100, 0, 5));
+ plotters.get(nPlotters).style().statisticsBoxStyle().setVisible(false);
+ plotters.get(nPlotters).style().dataStyle().errorBarStyle().setVisible(false);
+ frames.get(2).addPlotter(plotters.get(nPlotters));
+ nPlotters++;
+
+ plotters.add(aida.analysisFactory().createPlotterFactory().create("Px: C < 0"));
+ plotters.get(nPlotters).region(0).plot(aida.histogram1D("Px: C < 0", 100, 0, 5));
+ plotters.get(nPlotters).style().statisticsBoxStyle().setVisible(false);
+ plotters.get(nPlotters).style().dataStyle().errorBarStyle().setVisible(false);
+ frames.get(2).addPlotter(plotters.get(nPlotters));
+ nPlotters++;
+
+ plotters.add(aida.analysisFactory().createPlotterFactory().create("Py: C < 0"));
+ plotters.get(nPlotters).region(0).plot(aida.histogram1D("Py: C < 0", 100, 0, 5));
+ plotters.get(nPlotters).style().statisticsBoxStyle().setVisible(false);
+ plotters.get(nPlotters).style().dataStyle().errorBarStyle().setVisible(false);
+ frames.get(2).addPlotter(plotters.get(nPlotters));
+ nPlotters++;
+
+ plotters.add(aida.analysisFactory().createPlotterFactory().create("Pz: C < 0"));
+ plotters.get(nPlotters).region(0).plot(aida.histogram1D("Pz: C < 0", 100, 0, 5));
+ plotters.get(nPlotters).style().statisticsBoxStyle().setVisible(false);
+ plotters.get(nPlotters).style().dataStyle().errorBarStyle().setVisible(false);
+ frames.get(2).addPlotter(plotters.get(nPlotters));
+ nPlotters++;
+
+ plotters.add(aida.analysisFactory().createPlotterFactory().create("Px: Two Tracks"));
+ plotters.get(nPlotters).region(0).plot(aida.histogram1D("Px: Two Tracks", 100, 0, 5));
+ plotters.get(nPlotters).style().statisticsBoxStyle().setVisible(false);
+ plotters.get(nPlotters).style().dataStyle().errorBarStyle().setVisible(false);
+ frames.get(2).addPlotter(plotters.get(nPlotters));
+ nPlotters++;
+
+ plotters.add(aida.analysisFactory().createPlotterFactory().create("E over P"));
+ plotters.get(nPlotters).region(0).plot(aida.histogram1D("E over P", 100, 0, 5));
+ plotters.get(nPlotters).style().statisticsBoxStyle().setVisible(false);
+ plotters.get(nPlotters).style().dataStyle().errorBarStyle().setVisible(false);
+ frames.get(2).addPlotter(plotters.get(nPlotters));
+ nPlotters++;
+
+ plotters.add(aida.analysisFactory().createPlotterFactory().create("E versus P"));
+ plotters.get(nPlotters).region(0).plot(aida.histogram2D("E versus P", 100, 0, 1500, 100, 0, 4000));
+ plotters.get(nPlotters).region(0).style().setParameter("hist2DStyle", "colorMap");
+ plotters.get(nPlotters).region(0).style().dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
+ plotters.get(nPlotters).style().statisticsBoxStyle().setVisible(false);
+ frames.get(2).addPlotter(plotters.get(nPlotters));
+ nPlotters++;
+
+ //--- Cluster Matching ---//
+ //------------------------//
+ plotters.add(aida.analysisFactory().createPlotterFactory().create("XY Difference between Ecal Cluster and Track Position"));
+ plotters.get(nPlotters).region(0).plot(aida.histogram2D("XY Difference between Ecal Cluster and Track Position", 200, -200, 200, 100, -50, 50));
+ plotters.get(nPlotters).region(0).style().setParameter("hist2DStyle", "colorMap");
+ plotters.get(nPlotters).region(0).style().dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
+ plotters.get(nPlotters).style().statisticsBoxStyle().setVisible(false);
+ frames.get(3).addPlotter(plotters.get(nPlotters));
+ nPlotters++;
+
+ for(AIDAFrame frame : frames){
+ frame.pack();
+ frame.setVisible(true);
}
}
public void process(EventHeader event){
+
+
+ if(event.hasCollection(SiTrackerHitStrip1D.class, stripHitCollectionName)){
+
+ System.out.println("Found Strip Hits!");
+ List<SiTrackerHitStrip1D> stripHits = event.get(SiTrackerHitStrip1D.class, stripHitCollectionName);
+ short[] samples = new short[6];
+ for(SiTrackerHitStrip1D stripHit : stripHits){
+ for(RawTrackerHit rawHit : stripHit.getRawHits()){
+ for(int index = 0; index < samples.length; index++){
+ samples[index] += rawHit.getADCValues()[index];
+ }
+ }
+ }
+ }
+
if(!event.hasCollection(Track.class, trackCollectionName)) return;
List<SeedTrack> tracks = event.get(SeedTrack.class, trackCollectionName);
-
+ TrackUtils trackUtil = new TrackUtils();
+
+ Map<Hep3Vector,SeedTrack> trackToEcalPosition = new HashMap<Hep3Vector, SeedTrack>();
+ Map<SeedTrack, HPSEcalCluster> trackToCluster = new HashMap<SeedTrack, HPSEcalCluster>();
+ List<Hep3Vector> ecalPos = new ArrayList<Hep3Vector>();
+
for(SeedTrack track : tracks){
- trackExtender.setTrack(track);
- trackExtender.printTrackParameters();
- Hep3Vector positionEcal = trackExtender.positionAtEcal();
- Hep3Vector positionConverter = trackExtender.extrapolateTrack(-300);
+ extrapolator.setTrack(track);
+ trackUtil.setTrack(track);
+ Hep3Vector positionEcal = extrapolator.getTrackPositionAtEcal();
+ System.out.println("Position at Ecal: " + positionEcal);
+ Hep3Vector positionConverter = extrapolator.extrapolateTrack(-700);
aida.histogram2D("Track Position at Ecal").fill(positionEcal.y(), positionEcal.z());
- aida.histogram2D("Track Position at Converter").fill(positionConverter.y(), positionConverter.z());
+ aida.histogram2D("Track Position at Harp").fill(positionConverter.y(), positionConverter.z());
+
+ aida.histogram1D("DOCA").fill(trackUtil.getDoca());
+ aida.histogram1D("Z0").fill(trackUtil.getZ0());
+ aida.histogram1D("phi0").fill(trackUtil.getPhi0());
+ aida.histogram1D("R").fill((1/trackUtil.getR())*1000);
+ aida.histogram1D("Tan(Lambda)").fill(trackUtil.getTanLambda());
+
+ aida.histogram1D("Px").fill(track.getPX());
+ aida.histogram1D("Py").fill(track.getPY());
+ aida.histogram1D("Pz").fill(track.getPZ());
+ aida.histogram1D("ChiSquared").fill(track.getChi2());
+
+ if(Math.signum(trackUtil.getR()) < 0){
+ aida.histogram2D("Track Position at Ecal: Curvature < 0").fill(positionEcal.y(), positionEcal.z());
+ aida.histogram2D("Track Position at Harp: Curvature < 0").fill(positionConverter.y(), positionConverter.z());
+ aida.histogram1D("Px: C < 0").fill(track.getPX());
+ aida.histogram1D("Py: C < 0").fill(track.getPY());
+ aida.histogram1D("Pz: C < 0").fill(track.getPZ());
+ nnegative++;
+ } else if(Math.signum(trackUtil.getR()) > 0){
+ aida.histogram2D("Track Position at Ecal: Curvature > 0").fill(positionEcal.y(), positionEcal.z());
+ aida.histogram2D("Track Position at Harp: Curvature > 0").fill(positionConverter.y(), positionConverter.z());
+ aida.histogram1D("Px: C > 0").fill(track.getPX());
+ aida.histogram1D("Px: C > 0").fill(track.getPY());
+ aida.histogram1D("Px: C > 0").fill(track.getPZ());
+ npositive++;
+ }
+
+ if(tracks.size() > 1){
+ aida.histogram2D("Track Position at Ecal: Two Tracks").fill(positionEcal.y(), positionEcal.z());
+ aida.histogram2D("Track Position at Harp: Two Tracks").fill(positionConverter.y(), positionConverter.z());
+ aida.histogram1D("Px: Two Tracks").fill(track.getPX());
+ }
+
+ trackToEcalPosition.put(positionEcal, track);
+ ecalPos.add(positionEcal);
}
if(!event.hasCollection(HPSEcalCluster.class, "EcalClusters")) return;
List<HPSEcalCluster> clusters = event.get(HPSEcalCluster.class, "EcalClusters");
+
+ for(Hep3Vector ecalP : ecalPos){
+ double xdiff = 1000;
+ double ydiff = 1000;
+ for(HPSEcalCluster cluster : clusters){
+ double xd = ecalP.y() - cluster.getPosition()[0];
+ double yd = ecalP.z() - cluster.getPosition()[1];
+ if(yd < ydiff){
+ xdiff = xd;
+ ydiff = yd;
+ trackToCluster.put(trackToEcalPosition.get(ecalP),cluster);
+ }
+ }
+ clusters.remove(trackToCluster.get(trackToEcalPosition.get(ecalP)));
+ aida.histogram2D("XY Difference between Ecal Cluster and Track Position").fill(xdiff, ydiff);
+ }
+
+ for(Map.Entry<SeedTrack, HPSEcalCluster> entry : trackToCluster.entrySet()){
+ double Energy = entry.getValue().getEnergy();
+ SeedTrack track = entry.getKey();
+ double pTotal = Math.sqrt(track.getPX()*track.getPX() + track.getPY()*track.getPY() + track.getPZ()*track.getPZ());
+
+ double ep = Energy/(pTotal*1000);
+
+ System.out.println("Energy: " + Energy + "P: " + pTotal + " E over P: " + ep);
+
+ aida.histogram1D("E over P").fill(ep);
+ aida.histogram2D("E versus P").fill(Energy, pTotal*1000);
+ }
+
for(HPSEcalCluster cluster : clusters){
double[] clusterPosition = cluster.getPosition();
- // System.out.println("Cluster Position: [" + clusterPosition[0] + ", " + clusterPosition[1] + ", " + clusterPosition[2]+ "]");
+
+ System.out.println("Cluster Position: [" + clusterPosition[0] + ", " + clusterPosition[1] + ", " + clusterPosition[2]+ "]");
}
+ double ratio = nnegative/npositive;
+ System.out.println("Ratio of Negative to Position Tracks: " + ratio);
}
@Override