Commit in hps-java/src/main/java/org/lcsim/hps/users/omoreno on MAIN | |||
SvtTrackAnalysis.java | +104 | added 1.1 |
Class to analyze SVT tracks
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(); + } +}
Use REPLY-ALL to reply to list
To unsubscribe from the LCD-CVS list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=LCD-CVS&A=1