hps-java/src/main/java/org/lcsim/hps/users/omoreno
diff -N SvtTrackAnalysis.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ SvtTrackAnalysis.java 11 May 2012 13:08:54 -0000 1.1
@@ -0,0 +1,104 @@
+package org.lcsim.hps.users.omoreno;
+
+//--- java ---//
+import java.util.ArrayList;
+import java.util.List;
+
+//--- org.lcsim ---//
+import org.lcsim.event.EventHeader;
+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.seedtracker.SeedTrack;
+import org.lcsim.util.Driver;
+import org.lcsim.util.aida.AIDA;
+
+//--- hep ---//
+import hep.aida.IPlotter;
+import hep.physics.vec.Hep3Vector;
+
+/**
+ *
+ * @author Omar Moreno
+ * @version $Id: SvtTrackAnalysis.java,v 1.1 2012/05/11 13:08:54 omoreno Exp $
+ *
+ */
+
+public class SvtTrackAnalysis extends Driver implements Resettable {
+
+ private String trackCollectionName = "MatchedTracks";
+ private AIDA aida;
+ private List<IPlotter> plotters = new ArrayList<IPlotter>();
+
+ ExtendTrack trackExtender;
+
+ public SvtTrackAnalysis(){
+ trackExtender = new ExtendTrack();
+ }
+
+ protected void detectorChanged(Detector detector){
+
+ aida = AIDA.defaultInstance();
+ aida.tree().cd("/");
+
+ 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();
+ }
+ }
+
+ public void process(EventHeader event){
+ if(!event.hasCollection(Track.class, trackCollectionName)) return;
+ List<SeedTrack> tracks = event.get(SeedTrack.class, trackCollectionName);
+
+ for(SeedTrack track : tracks){
+ trackExtender.setTrack(track);
+ trackExtender.printTrackParameters();
+ Hep3Vector positionEcal = trackExtender.positionAtEcal();
+ Hep3Vector positionConverter = trackExtender.extrapolateTrack(-300);
+
+ aida.histogram2D("Track Position at Ecal").fill(positionEcal.y(), positionEcal.z());
+ aida.histogram2D("Track Position at Converter").fill(positionConverter.y(), positionConverter.z());
+ }
+
+ if(!event.hasCollection(HPSEcalCluster.class, "EcalClusters")) return;
+ List<HPSEcalCluster> clusters = event.get(HPSEcalCluster.class, "EcalClusters");
+
+ for(HPSEcalCluster cluster : clusters){
+ double[] clusterPosition = cluster.getPosition();
+ // System.out.println("Cluster Position: [" + clusterPosition[0] + ", " + clusterPosition[1] + ", " + clusterPosition[2]+ "]");
+ }
+
+ }
+
+ @Override
+ public void reset() {
+ aida.histogram2D("Track Position at Ecal").reset();
+ aida.histogram2D("Track Position at Converter").reset();
+ }
+}