Commit in java/trunk/users/src/main/java/org/hps/users/omoreno on MAIN
ExtrapolationAnalysis.java+69-31805 -> 806
Add more plots to ExtrapolationAnalysis.

java/trunk/users/src/main/java/org/hps/users/omoreno
ExtrapolationAnalysis.java 805 -> 806
--- java/trunk/users/src/main/java/org/hps/users/omoreno/ExtrapolationAnalysis.java	2014-07-19 00:01:15 UTC (rev 805)
+++ java/trunk/users/src/main/java/org/hps/users/omoreno/ExtrapolationAnalysis.java	2014-07-21 17:54:41 UTC (rev 806)
@@ -1,6 +1,7 @@
 package org.hps.users.omoreno;
 
 import hep.aida.IPlotter;
+import hep.physics.vec.BasicHep3Vector;
 import hep.physics.vec.Hep3Vector;
 
 import java.util.ArrayList;
@@ -12,6 +13,8 @@
 import org.lcsim.event.MCParticle;
 import org.lcsim.event.SimTrackerHit;
 import org.lcsim.event.Track;
+import org.lcsim.event.base.BaseTrack;
+import org.lcsim.event.base.BaseTrackState;
 import org.lcsim.geometry.Detector;
 import org.lcsim.util.Driver; 
 import org.lcsim.util.aida.AIDA;
@@ -27,6 +30,8 @@
 
 	AIDA aida = null;
 	List<IPlotter> plotters;
+
+	Hep3Vector bField = null;
 	
 	boolean verbose = false;
 	
@@ -35,8 +40,24 @@
 	String trackToScoringPlaneHitRelationsName = "TrackToEcalScoringPlaneHitRelations";
 	String trackToMCParticleRelationsName = "TrackToMCParticleRelations";
 	
+	/**
+	 * Enable/disable verbose mode
+	 * 
+	 * @param verbose : true to enable, false otherwise
+	 */
+	public void setVerbose(boolean verbose){
+		this.verbose = verbose; 
+	}
+	
 	public void detectorChanged(Detector detector){
 		
+		// Get the magnetic field from the geometry
+		bField = detector.getFieldMap().getField(new BasicHep3Vector(0,0,0));
+		
+		//-----------------------//
+		//--- Setup all plots ---//
+		//-----------------------//
+		
 		// Setup AIDA
 		aida = AIDA.defaultInstance();
 		aida.tree().cd("/");
@@ -49,18 +70,18 @@
 		//----------------------------------------//
 		plotter = PlotUtils.setupPlotter("Positions of Scoring plane hits matched to tracks", 2, 2);
 		PlotUtils.setup1DRegion(plotter, "Scoring plane hit position - x", 0, "x (mm)",
-				aida.histogram1D("Scoring plane hit position - x", 100, -500, 500));
+				aida.histogram1D("Scoring plane hit position - x", 100, -400, 400));
 		PlotUtils.setup1DRegion(plotter, "Scoring plane hit position - y", 1, "y (mm)",
-				aida.histogram1D("Scoring plane hit position - y", 100, -500, 500));
+				aida.histogram1D("Scoring plane hit position - y", 100, -200, 200));
 		PlotUtils.setup1DRegion(plotter, "Scoring plane hit position - z", 2, "z (mm)",
 				aida.histogram1D("Scoring plane hit position - z", 100, 1000, 1500));
 		PlotUtils.setup2DRegion(plotter, "Scoring plane hit position - x-y", 3, "x (mm)", "y (mm)", 
-				aida.histogram2D("Scoring plane hit position - x-y", 100, -500, 500, 100, -500, 500));
+				aida.histogram2D("Scoring plane hit position - x-y", 100, -400, 400, 100, -200, 200));
 		plotters.add(plotter);	
 
 		//--- Plots of residuals at scoring plane ---//
 		//-------------------------------------------//
-		plotter = PlotUtils.setupPlotter("Residuals at Scoring plane", 3, 2);
+		plotter = PlotUtils.setupPlotter("Residuals at scoring plane", 3, 2);
 		PlotUtils.setup1DRegion(plotter, "Top tracks - Bend plane residuals at scoring plane", 0, "x_{ep} - x_{sp} (mm)",
 				aida.histogram1D("Top electron tracks - Bend plane residual at scoring plane", 60, -30, 30));
 		PlotUtils.setup1DRegion(plotter, "Top tracks - Bend plane residuals at scoring plane", 0, "x_{ep} - x_{sp} (mm)",
@@ -90,38 +111,47 @@
 		//--- Plots of residuals at target ---//
 		//------------------------------------//
 		plotter = PlotUtils.setupPlotter("Residuals at target", 3, 2);
-		PlotUtils.setup1DRegion(plotter, "Top tracks - Bend plane residuals at target", 0, "x_{ep} - x_{sp} (mm)",
-				aida.histogram1D("Top electron tracks - Bend plane residual at target", 50, -5, 5));
-		PlotUtils.setup1DRegion(plotter, "Top tracks - Bend plane residuals at target", 0, "x_{ep} - x_{sp} (mm)",
-				aida.histogram1D("Top positron tracks - Bend plane residual at target", 50, -5, 5));
-		PlotUtils.setup1DRegion(plotter, "Bottom tracks - Bend plane residuals at target", 1, "x_{ep} - x_{sp} (mm)",
-				aida.histogram1D("Bottom electron tracks - Bend plane residuals at target", 50, -5, 5));
-		PlotUtils.setup1DRegion(plotter, "Bottom tracks - Bend plane residuals at target", 1, "x_{ep} - x_{sp} (mm)",
-				aida.histogram1D("Bottom positron tracks - Bend plane residuals at target", 50, -5, 5));
-		PlotUtils.setup1DRegion(plotter, "Top tracks - Non-bend plane residuals at target", 2, "y_{ep} - y_{sp} (mm)",
-				aida.histogram1D("Top electron tracks - Non-bend plane residuals at target", 50, -5, 5));
-		PlotUtils.setup1DRegion(plotter, "Top tracks - Non-bend plane residuals at target", 2, "y_{ep} - y_{sp} (mm)",
-				aida.histogram1D("Top positron tracks - Non-bend plane residuals at target", 50, -5, 5));
-		PlotUtils.setup1DRegion(plotter, "Bottom tracks - Non-bend plane residuals at target", 3, "y_{ep} - y_{sp} (mm)",
-				aida.histogram1D("Bottom electron tracks - Non-bend plane residuals at target", 50, -5, 5));
-		PlotUtils.setup1DRegion(plotter, "Bottom tracks - Non-bend plane residuals at target", 3, "y_{ep} - y_{sp} (mm)",
-				aida.histogram1D("Bottom positron tracks - Non-bend plane residuals at target", 50, -5, 5));
-		PlotUtils.setup1DRegion(plotter, "Top tracks - z residuals at target", 4, "z_{ep} - z_{sp} (mm)",
+		PlotUtils.setup1DRegion(plotter, "Top tracks - Bend plane residuals at target", 0, "x_{ep} - x_{t} (mm)",
+				aida.histogram1D("Top electron tracks - Bend plane residual at target", 40, -4, 4));
+		PlotUtils.setup1DRegion(plotter, "Top tracks - Bend plane residuals at target", 0, "x_{ep} - x_{t} (mm)",
+				aida.histogram1D("Top positron tracks - Bend plane residual at target", 40, -4, 4));
+		PlotUtils.setup1DRegion(plotter, "Bottom tracks - Bend plane residuals at target", 1, "x_{ep} - x_{t} (mm)",
+				aida.histogram1D("Bottom electron tracks - Bend plane residuals at target", 40, -4, 4));
+		PlotUtils.setup1DRegion(plotter, "Bottom tracks - Bend plane residuals at target", 1, "x_{ep} - x_{t} (mm)",
+				aida.histogram1D("Bottom positron tracks - Bend plane residuals at target", 40, -4, 4));
+		PlotUtils.setup1DRegion(plotter, "Top tracks - Non-bend plane residuals at target", 2, "y_{ep} - y_{t} (mm)",
+				aida.histogram1D("Top electron tracks - Non-bend plane residuals at target", 20, -2, 2));
+		PlotUtils.setup1DRegion(plotter, "Top tracks - Non-bend plane residuals at target", 2, "y_{ep} - y_{t} (mm)",
+				aida.histogram1D("Top positron tracks - Non-bend plane residuals at target", 20, -2, 2));
+		PlotUtils.setup1DRegion(plotter, "Bottom tracks - Non-bend plane residuals at target", 3, "y_{ep} - y_{t} (mm)",
+				aida.histogram1D("Bottom electron tracks - Non-bend plane residuals at target", 20, -2, 2));
+		PlotUtils.setup1DRegion(plotter, "Bottom tracks - Non-bend plane residuals at target", 3, "y_{ep} - y_{t} (mm)",
+				aida.histogram1D("Bottom positron tracks - Non-bend plane residuals at target", 20, -2, 2));
+		PlotUtils.setup1DRegion(plotter, "Top tracks - z residuals at target", 4, "z_{ep} - z_{t} (mm)",
 				aida.histogram1D("Top electron tracks - z residuals at target", 50, -5, 5));
-		PlotUtils.setup1DRegion(plotter, "Top tracks - z residuals at target", 4, "z_{ep} - z_{sp} (mm)",
+		PlotUtils.setup1DRegion(plotter, "Top tracks - z residuals at target", 4, "z_{ep} - z_{t} (mm)",
 				aida.histogram1D("Top positron tracks - z residuals at target", 50, -5, 5));
-		PlotUtils.setup1DRegion(plotter, "Bottom tracks - z residuals at target", 5, "z_{ep} - z_{sp} (mm)",
+		PlotUtils.setup1DRegion(plotter, "Bottom tracks - z residuals at target", 5, "z_{ep} - z_{t} (mm)",
 				aida.histogram1D("Bottom electron tracks - z residuals at target", 50, -5, 5));
-		PlotUtils.setup1DRegion(plotter, "Bottom tracks - z residuals at target", 5, "z_{ep} - z_{sp} (mm)",
+		PlotUtils.setup1DRegion(plotter, "Bottom tracks - z residuals at target", 5, "z_{ep} - z_{t} (mm)",
 				aida.histogram1D("Bottom positron tracks - z residuals at target", 50, -5, 5));
 		plotters.add(plotter);	
 		
 		//--- Plot of residuals at scoring plane vs momentum ---//
 		//------------------------------------------------------//
-		plotter = PlotUtils.setupPlotter("Residuals vs Momentum at scoring plane", 1, 1);
+		plotter = PlotUtils.setupPlotter("Residuals vs Momentum", 2, 2);
 		PlotUtils.setup2DRegion(plotter, "Bend plane residuals vs momentum at scoring plane", 0, 
-				"", "",
-				aida.histogram2D("Bend plane residuals at scoring plane", 5, 0, 2.5, 60, -30, 30));
+				"Momentum (GeV)", "x_{ep} - x_{sp} (mm)",
+				aida.histogram2D("Bend plane residuals vs momentum at scoring plane", 5, 0, 2.5, 60, -30, 30));
+		PlotUtils.setup2DRegion(plotter, "Non-bend plane residuals vs momentum at scoring plane", 1, 
+				"Momentum (GeV)", "y_{ep} - y_{sp} (mm)",
+				aida.histogram2D("Non-bend plane residuals vs momentum at scoring plane", 5, 0, 2.5, 60, -30, 30));
+		PlotUtils.setup2DRegion(plotter, "Bend plane residuals vs momentum at target", 2, 
+				"Momentum (GeV)", "x_{ep} - x_{t} (mm)",
+				aida.histogram2D("Bend plane residuals vs momentum at target", 5, 0, 2.5, 60, -3, 3));
+		PlotUtils.setup2DRegion(plotter, "Non-bend plane residuals vs momentum at target", 3, 
+				"Momentum (GeV)", "y_{ep} - y_{t} (mm)",
+				aida.histogram2D("Non-bend plane residuals vs momentum at target", 5, 0, 2.5, 50, -2.5, 2.5));
 		plotters.add(plotter);
 		
 		for(IPlotter iPlotter : plotters){
@@ -143,11 +173,9 @@
 			Track track = (Track) trackToScoringPlaneHitRelation.getFrom();
 			
 			// Get the track momentum
-			/*
-			double[] momentum = track.getTrackStates().get(0).getMomentum();
+			double[] momentum = BaseTrackState.computeMomentum(track.getTrackStates().get(0), bField.y());
 			double p = Math.sqrt(momentum[0]*momentum[0] + momentum[1]*momentum[1] + momentum[2]*momentum[2]);
 			this.printVerbose("Track momentum: " + p);
-			*/
 			
 			// Get the corresponding scoring plane hit
 			SimTrackerHit scoringPlaneHit = (SimTrackerHit) trackToScoringPlaneHitRelation.getTo();
@@ -180,7 +208,6 @@
 					aida.histogram1D("Top electron tracks - Non-bend plane residuals at scoring plane").fill(deltaY);
 					aida.histogram1D("Top electron tracks - z residuals at scoring plane").fill(deltaZ);	
 				}
-				//aida.histogram2D("Bend plane residuals at scoring plane").fill(p, deltaX);
 			} else { 
 				if(track.getTrackStates().get(0).getOmega() > 0){
 					aida.histogram1D("Bottom positron tracks - Bend plane residuals at scoring plane").fill(deltaX);
@@ -192,6 +219,9 @@
 					aida.histogram1D("Bottom electron tracks - z residuals at scoring plane").fill(deltaZ);
 				}
 			}
+
+			aida.histogram2D("Bend plane residuals vs momentum at scoring plane").fill(p, deltaX);
+			aida.histogram2D("Non-bend plane residuals vs momentum at scoring plane").fill(p, deltaY);
 		}
 		
 		if(!event.hasCollection(LCRelation.class, trackToMCParticleRelationsName)) return;
@@ -203,6 +233,11 @@
 			// Get the track
 			Track track = (Track) trackToMCParticleRelation.getFrom();
 			
+			// Get the track momentum
+			double[] momentum = BaseTrackState.computeMomentum(track.getTrackStates().get(0), bField.y());
+			double p = Math.sqrt(momentum[0]*momentum[0] + momentum[1]*momentum[1] + momentum[2]*momentum[2]);
+			this.printVerbose("Track momentum: " + p);
+
 			// Get the corresponding MC particle
 			MCParticle particle = (MCParticle) trackToMCParticleRelation.getTo();
 			
@@ -236,6 +271,9 @@
 					aida.histogram1D("Bottom electron tracks - z residuals at target").fill(deltaZ);
 				}
 			}
+			
+			aida.histogram2D("Bend plane residuals vs momentum at target").fill(p, deltaX);
+			aida.histogram2D("Non-bend plane residuals vs momentum at target").fill(p, deltaY);
 		}
 	}
 	
SVNspam 0.1