Author: [log in to unmask] Date: Fri Apr 17 11:38:24 2015 New Revision: 2733 Log: Minor fixes to setters. Modified: java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/trackrecon/TrackTimePlots.java java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/trackrecon/TrackingReconPlots.java Modified: java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/trackrecon/TrackTimePlots.java ============================================================================= --- java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/trackrecon/TrackTimePlots.java (original) +++ java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/trackrecon/TrackTimePlots.java Fri Apr 17 11:38:24 2015 @@ -35,7 +35,7 @@ //private AIDAFrame plotterFrame; private AIDA aida = AIDA.defaultInstance(); private String hitCollection = "StripClusterer_SiTrackerHitStrip1D"; - private String trackCollection = "MatchedTracks"; + private String trackCollectionName = "MatchedTracks"; IPlotter plotter, plotter2, plotter3, plotter4, plotter5, plotter6, plotter7; private IHistogram1D[][] t0 = new IHistogram1D[4][12]; private IHistogram1D[][] trackHitT0 = new IHistogram1D[4][12]; @@ -49,6 +49,10 @@ private static final String subdetectorName = "Tracker"; int nlayers=12; + + public void setTrackCollectionName(String name){ + this.trackCollectionName=name; + } @Override protected void detectorChanged(Detector detector) { @@ -144,9 +148,7 @@ this.hitCollection = hitCollection; } - public void setTrackCollection(String trackCollection) { - this.trackCollection = trackCollection; - } + @Override public void process(EventHeader event) { @@ -201,7 +203,7 @@ } // - List<Track> tracks = event.get(Track.class, trackCollection); + List<Track> tracks = event.get(Track.class, trackCollectionName); for (Track track : tracks) { int trackModule = -1; if (track.getTrackerHits().get(0).getPosition()[2] > 0) Modified: java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/trackrecon/TrackingReconPlots.java ============================================================================= --- java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/trackrecon/TrackingReconPlots.java (original) +++ java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/trackrecon/TrackingReconPlots.java Fri Apr 17 11:38:24 2015 @@ -20,7 +20,6 @@ import org.lcsim.event.LCIOParameters.ParameterName; import org.lcsim.event.Track; import org.lcsim.fit.helicaltrack.HelicalTrackFit; -import org.lcsim.fit.helicaltrack.HelicalTrackHit; import org.lcsim.geometry.Detector; import org.lcsim.geometry.IDDecoder; import org.lcsim.recon.tracking.seedtracker.SeedCandidate; @@ -35,16 +34,19 @@ public class TrackingReconPlots extends Driver { private AIDA aida = AIDA.defaultInstance(); - private String helicalTrackHitCollectionName = "HelicalTrackHits"; - private String rotatedTrackHitCollectionName = "RotatedHelicalTrackHits"; private String trackCollectionName = "MatchedTracks"; String ecalSubdetectorName = "Ecal"; String ecalCollectionName = "EcalClusters"; IDDecoder dec; private String outputPlots = null; + private boolean debug = false; + + double feeMomentumCut = 1.6; + IPlotter plotter; IPlotter plotter22; IPlotter plotterECal; + IPlotter plotterFEE; IHistogram1D nTracks; IHistogram1D nhits; @@ -62,6 +64,10 @@ IHistogram1D hdelXECal; IHistogram1D hdelYECal; IHistogram2D heVsP; + IHistogram1D hfeeMom; + IHistogram1D hfeeTheta; + IHistogram1D hfeePOverE; + IHistogram2D hfeeClustPos; @Override protected void detectorChanged(Detector detector) { @@ -107,13 +113,12 @@ plot(plotter22, trkz0, null, 5); plotter22.show(); - + // ****************************************************************** heOverP = aida.histogram1D("Cluster Energy over Track Momentum ", 50, 0, 2.0); hdelXECal = aida.histogram1D("delta X @ ECal (mm) ", 50, -15.0, 15.0); hdelYECal = aida.histogram1D("delta Y @ ECal (mm) ", 50, -15.0, 15.0); - heVsP = aida.histogram2D("Momentum vs ECal E ", 50, 0, 2.5 ,50, 0, 2.5); - + heVsP = aida.histogram2D("Momentum vs ECal E ", 50, 0, 2.5, 50, 0, 2.5); plotterECal = pfac.create("Cluster Matching"); plotterECal.createRegions(2, 2); @@ -121,8 +126,24 @@ plot(plotterECal, hdelXECal, null, 1); plot(plotterECal, hdelYECal, null, 2); plot(plotterECal, heVsP, null, 3); - + plotterECal.show(); + + // ****************************************************************** + //fix the ranges here... + hfeeMom = aida.histogram1D("FEE Momentum", 50, feeMomentumCut, 2.2); + hfeeTheta = aida.histogram1D("FEE Angle", 50, -15.0, 15.0); + hfeePOverE = aida.histogram1D("FEE POverE", 50, 0, 1.5); + hfeeClustPos = aida.histogram2D("FEE Cluster Position", 50, -2000.0, 2000.0, 50, -500, 500); + + plotterFEE = pfac.create("Full Energy Electrons"); + plotterFEE.createRegions(2, 2); + plot(plotterFEE, hfeeMom, null, 0); + plot(plotterFEE, hfeeTheta, null, 1); + plot(plotterFEE, hfeePOverE, null, 2); + plot(plotterFEE, hfeeClustPos, null, 3); + + plotterFEE.show(); } @@ -133,17 +154,8 @@ this.outputPlots = output; } - public void setRawTrackerHitCollectionName(String rawTrackerHitCollectionName) { - } - - public void setFittedTrackerHitCollectionName(String fittedTrackerHitCollectionName) { - } - - public void setTrackerHitCollectionName(String trackerHitCollectionName) { - } - - public void setHelicalTrackHitCollectionName(String helicalTrackHitCollectionName) { - this.helicalTrackHitCollectionName = helicalTrackHitCollectionName; + public void setDebug(boolean dbg) { + this.debug = dbg; } public void setTrackCollectionName(String trackCollectionName) { @@ -153,8 +165,6 @@ @Override public void process(EventHeader event) { aida.tree().cd("/"); - if (!event.hasCollection(HelicalTrackHit.class, helicalTrackHitCollectionName)) - return; if (!event.hasCollection(Track.class, trackCollectionName)) { nTracks.fill(0); @@ -165,7 +175,11 @@ nTracks.fill(tracks.size()); for (Track trk : tracks) { - Hep3Vector momentum =new BasicHep3Vector( trk.getTrackStates().get(0).getMomentum()); + Hep3Vector momentum = new BasicHep3Vector(trk.getTrackStates().get(0).getMomentum()); + double pmag = momentum.magnitude(); + double pt = Math.sqrt(momentum.z() * momentum.z() + momentum.y() * momentum.y()); + double theta = Math.acos(pt / pmag); + trkPx.fill(momentum.y()); trkPy.fill(momentum.z()); trkPz.fill(momentum.x()); @@ -179,30 +193,41 @@ trklam.fill(trk.getTrackStates().get(0).getParameter(ParameterName.tanLambda.ordinal())); trkz0.fill(trk.getTrackStates().get(0).getParameter(ParameterName.z0.ordinal())); + if (pmag > feeMomentumCut && trk.getCharge() > 0) { //remember, hps-java track charge is opposite the real charge + hfeeMom.fill(momentum.magnitude()); + hfeeTheta.fill(theta); + } + SeedTrack stEle = (SeedTrack) trk; SeedCandidate seedEle = stEle.getSeedCandidate(); HelicalTrackFit ht = seedEle.getHelix(); HPSTrack hpstrk = new HPSTrack(ht); double svt_l12 = 900.00;//mm ~approximately...this doesn't matter much double ecal_face = 1393.00;//mm ~approximately ... this matters! Should use typical shower depth...or, once have cluster match, use that value of Z - Hep3Vector posAtEcal = hpstrk.getPositionAtZMap(svt_l12, ecal_face, 5.0,event.getDetector().getFieldMap())[0]; + Hep3Vector posAtEcal = hpstrk.getPositionAtZMap(svt_l12, ecal_face, 5.0, event.getDetector().getFieldMap())[0]; List<Cluster> clusters = event.get(Cluster.class, ecalCollectionName); - if (clusters != null) { - System.out.println("Found "+clusters.size()+ " clusters"); + if (clusters != null) { + if (debug) + System.out.println("Found " + clusters.size() + " clusters"); Cluster clust = findClosestCluster(posAtEcal, clusters); if (clust != null) { - System.out.println("\t\t\t Found the best clusters"); - Hep3Vector clusterPos=new BasicHep3Vector(clust.getPosition()); + if (debug) + System.out.println("\t\t\t Found the best clusters"); + Hep3Vector clusterPos = new BasicHep3Vector(clust.getPosition()); double zCluster = clusterPos.z(); //improve the extrapolation...use the reconstructed cluster z-position - posAtEcal = hpstrk.getPositionAtZMap(svt_l12, zCluster, 5.0,event.getDetector().getFieldMap())[0]; - double eOverP=clust.getEnergy()/momentum.magnitude(); - double dx= posAtEcal.x() - clusterPos.x(); - double dy= posAtEcal.y() - clusterPos.y(); + posAtEcal = hpstrk.getPositionAtZMap(svt_l12, zCluster, 5.0, event.getDetector().getFieldMap())[0]; + double eOverP = clust.getEnergy() / pmag; + double dx = posAtEcal.x() - clusterPos.x(); + double dy = posAtEcal.y() - clusterPos.y(); heOverP.fill(eOverP); hdelXECal.fill(dx); - hdelYECal.fill(dy); - heVsP.fill(momentum.magnitude(), clust.getEnergy()); + hdelYECal.fill(dy); + heVsP.fill(pmag, clust.getEnergy()); + if (pmag > feeMomentumCut && trk.getCharge() > 0) { //remember, hps-java track charge is opposite the real charge + hfeePOverE.fill(pmag / clust.getEnergy()); + hfeeClustPos.fill(posAtEcal.x(), posAtEcal.y()); + } } } }