Commit in hps-java/src/main on MAIN
resources/org/lcsim/hps/steering/OnlineTracking.lcsim+1-11.6 -> 1.7
java/org/lcsim/hps/recon/tracking/DumbShaperFit.java+171.3 -> 1.4
java/org/lcsim/hps/users/mgraham/DataTrackerHitDriver.java+1-11.3 -> 1.4
java/org/lcsim/hps/monitoring/svt/TrackingReconstructionPlots.java+131added 1.1
                                 /SVTEventDisplay.java+55-341.2 -> 1.3
resources/org/lcsim/hps/recon/tracking/strategies/HPS-Test-4pt1.xml+2-21.1 -> 1.2
+207-38
1 added + 5 modified, total 6 files
Changes for tracking recon

hps-java/src/main/resources/org/lcsim/hps/steering
OnlineTracking.lcsim 1.6 -> 1.7
diff -u -r1.6 -r1.7
--- OnlineTracking.lcsim	3 May 2012 20:50:29 -0000	1.6
+++ OnlineTracking.lcsim	4 May 2012 14:06:37 -0000	1.7
@@ -60,7 +60,7 @@
         <driver name="TrackerReconDriver"
                 type="org.lcsim.hps.recon.tracking.TrackerReconDriver">
             <debug>true</debug>
-            <strategyResource>/org/lcsim/hps/recon/tracking/strategies/HPS-Test-4pt0.xml</strategyResource>
+            <strategyResource>/org/lcsim/hps/recon/tracking/strategies/HPS-Test-4pt1.xml</strategyResource>
             <stripMaxSeparation>20.0</stripMaxSeparation>
             <stripTolerance>1.0</stripTolerance>
         </driver>        

hps-java/src/main/java/org/lcsim/hps/recon/tracking
DumbShaperFit.java 1.3 -> 1.4
diff -u -r1.3 -r1.4
--- DumbShaperFit.java	25 Apr 2012 20:21:24 -0000	1.3
+++ DumbShaperFit.java	4 May 2012 14:06:37 -0000	1.4
@@ -35,8 +35,25 @@
                t0 =(pedSub[iMax]*24.0*(iMax)+pedSub[iMax-1]*24.0*(iMax-1))/(pedSub[iMax-1]+pedSub[iMax]) ;
         }
         
+           //mg...put in a cut here to make sure pulse shape is reasonable
+        //if not, set t0 to -99 (which will fail the later t0>0 cut
+        if(iMax==0||iMax==5)
+            t0=-99;
+        //make sure it goes up below iMax
+        for(int i=0;i<iMax;i++){
+            if(pedSub[i+1]<pedSub[i])
+                t0=-99;
+        }
+        //...and down below iMax
+        for(int i=iMax;i<5;i++){
+            if(pedSub[i+1]>pedSub[i])
+                t0=-99;
+        }                       
+        
         fitresults.setAmp(maxADC);
         fitresults.setT0(t0);
+
+     
         return fitresults;
     }
 }

hps-java/src/main/java/org/lcsim/hps/users/mgraham
DataTrackerHitDriver.java 1.3 -> 1.4
diff -u -r1.3 -r1.4
--- DataTrackerHitDriver.java	1 May 2012 17:59:22 -0000	1.3
+++ DataTrackerHitDriver.java	4 May 2012 14:06:37 -0000	1.4
@@ -204,7 +204,7 @@
      */
     public void process(EventHeader event) {
         // Call sub-Driver processing.
-        super.process(event);
+//        super.process(event);
 
         // Make new lists for output.
 //        List<HPSFittedRawTrackerHit> rawHits = new ArrayList<HPSFittedRawTrackerHit>();

hps-java/src/main/java/org/lcsim/hps/monitoring/svt
TrackingReconstructionPlots.java added at 1.1
diff -N TrackingReconstructionPlots.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ TrackingReconstructionPlots.java	4 May 2012 14:06:37 -0000	1.1
@@ -0,0 +1,131 @@
+package org.lcsim.hps.monitoring.svt;
+
+import hep.aida.*;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import org.lcsim.detector.tracker.silicon.SiSensor;
+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.tracking.HPSFittedRawTrackerHit;
+import org.lcsim.hps.recon.tracking.HPSSVTCalibrationConstants;
+import org.lcsim.recon.tracking.digitization.sisim.SiTrackerHitStrip1D;
+import org.lcsim.util.Driver;
+import org.lcsim.util.aida.AIDA;
+
+/**
+ *
+ * @author mgraham
+ */
+public class TrackingReconstructionPlots extends Driver implements Resettable {
+
+    private List<IPlotter> plotters = new ArrayList<IPlotter>();
+    private AIDA aida = AIDA.defaultInstance();
+    private String rawTrackerHitCollectionName = "SVTRawTrackerHits";
+    private String fittedTrackerHitCollectionName = "SVTFittedRawTrackerHits";
+    private String trackerHitCollectionName = "StripClusterer_SiTrackerHitStrip1D";
+    private String helicalTrackHitCollectionName = "HelicalTrackHits";
+    private String helicalTrackHitRelationsCollectionName = "HelicalTrackHitRelations";
+    private String trackCollectionName = "MatchedTracks";
+    private String trackerName = "Tracker";
+    private Detector detector = null;
+    private int eventCount;
+    private List<SiSensor> sensors;
+    IPlotter plotter;
+    IPlotter plotter2;
+    IPlotter plotter3;
+    IPlotter plotter4;
+    IPlotter plotter5;
+
+    protected void detectorChanged(Detector detector) {
+        this.detector = detector;
+        aida.tree().cd("/");
+
+
+        sensors = detector.getSubdetector(trackerName).getDetectorElement().findDescendants(SiSensor.class);
+
+
+        IAnalysisFactory fac = aida.analysisFactory();
+        plotter = fac.createPlotterFactory().create("HPS SVT Timing Plots");
+        plotters.add(plotter);
+        IPlotterStyle style = plotter.style();
+        style.dataStyle().fillStyle().setColor("yellow");
+        style.dataStyle().errorBarStyle().setVisible(false);
+        plotter.createRegions(2, 2);
+
+
+
+        IHistogram1D trkPx = aida.histogram1D("Track Momentum (Px)", 25, -0.1, 0.1);
+        IHistogram1D trkPy = aida.histogram1D("Track Momentum (Py)", 25, -0.25, 0.25);
+        IHistogram1D trkPz = aida.histogram1D("Track Momentum (Pz)", 25, 0, 2.5);
+        IHistogram1D trkChi2 = aida.histogram1D("Track Chi2", 25, 0, 25.0);
+
+        plotter.region(0).plot(trkPx);
+        plotter.region(1).plot(trkPy);
+        plotter.region(2).plot(trkPz);
+        plotter.region(3).plot(trkChi2);
+
+        plotter.show();
+
+    }
+
+    public TrackingReconstructionPlots() {
+    }
+
+    public void setRawTrackerHitCollectionName(String rawTrackerHitCollectionName) {
+        this.rawTrackerHitCollectionName = rawTrackerHitCollectionName;
+    }
+
+    public void setFittedTrackerHitCollectionName(String fittedTrackerHitCollectionName) {
+        this.fittedTrackerHitCollectionName = fittedTrackerHitCollectionName;
+    }
+
+    public void setTrackerHitCollectionName(String trackerHitCollectionName) {
+        this.trackerHitCollectionName = trackerHitCollectionName;
+    }
+
+    public void setHelicalTrackHitCollectionName(String helicalTrackHitCollectionName) {
+        this.helicalTrackHitCollectionName = helicalTrackHitCollectionName;
+    }
+
+    public void setTrackCollectionName(String trackCollectionName) {
+        this.trackCollectionName = trackCollectionName;
+    }
+
+    public void process(EventHeader event) {
+        if (!event.hasCollection(Track.class, trackCollectionName)) {
+            System.out.println(trackCollectionName + " does not exist; skipping event");
+            return;
+        }
+
+        List<Track> tracks = event.get(Track.class, trackCollectionName);
+        for (Track trk : tracks) {
+            aida.histogram1D("Track Momentum (Px)").fill(trk.getPZ());
+            aida.histogram1D("Track Momentum (Py)").fill(trk.getPY());
+            aida.histogram1D("Track Momentum (Pz)").fill(trk.getPX());
+            aida.histogram1D("Track Chi2").fill(trk.getChi2());
+        }
+
+
+    }
+
+    public void endOfData() {
+        if (plotter != null) {
+            plotter.hide();
+        }
+
+
+    }
+
+    @Override
+    public void reset() {
+        int ns = sensors.size();
+        for (int i = 0; i < ns; i++) {
+            aida.histogram1D(sensors.get(i).getName() + "_timing").reset();
+        }
+    }
+}

hps-java/src/main/java/org/lcsim/hps/monitoring/svt
SVTEventDisplay.java 1.2 -> 1.3
diff -u -r1.2 -r1.3
--- SVTEventDisplay.java	3 May 2012 20:50:29 -0000	1.2
+++ SVTEventDisplay.java	4 May 2012 14:06:37 -0000	1.3
@@ -8,9 +8,12 @@
 import java.util.List;
 import org.lcsim.detector.tracker.silicon.*;
 import org.lcsim.event.EventHeader;
+import org.lcsim.event.RawCalorimeterHit;
 import org.lcsim.event.RawTrackerHit;
 import org.lcsim.geometry.Detector;
+import org.lcsim.geometry.IDDecoder;
 import org.lcsim.hps.monitoring.Resettable;
+import org.lcsim.hps.recon.ecal.HPSEcalConditions;
 import org.lcsim.hps.recon.tracking.HPSFittedRawTrackerHit;
 import org.lcsim.hps.recon.tracking.HPSSVTCalibrationConstants;
 import org.lcsim.util.Driver;
@@ -31,7 +34,13 @@
     private IPlotter plotter;
     private List<SiSensor> sensors;
 //    private ICloud2D cl2D;
-    private  IHistogram2D svtDisp;
+    private IHistogram2D svtDispZX;
+    private IHistogram2D svtDispZY;
+    int integralWindow = 0;
+    IDDecoder dec;
+    String ecalSubdetectorName = "Ecal";
+    String ecalCollectionName = "EcalReadoutHits";
+    double zEcal = 160;
 
     protected void detectorChanged(Detector detector) {
         this.detector = detector;
@@ -40,6 +49,13 @@
 
         sensors = detector.getSubdetector(trackerName).getDetectorElement().findDescendants(SiSensor.class);
 
+        if (detector.getSubdetector(ecalSubdetectorName) == null) {
+            throw new RuntimeException("There is no subdetector called " + ecalSubdetectorName + " in this detector");
+        }
+
+        // Cache the IDDecoder for the ECal.		
+        dec = detector.getSubdetector(ecalSubdetectorName).getReadout().getIDDecoder();
+
 
         IAnalysisFactory fac = aida.analysisFactory();
 
@@ -49,20 +65,18 @@
         plotters.add(plotter);
         IPlotterStyle style = plotter.style();
         style.statisticsBoxStyle().setVisible(false);
-        style.statisticsBoxStyle().setVisibileStatistics("Entries");
-        style.dataStyle().fillStyle().setColor("black");
-        style.dataStyle().errorBarStyle().setVisible(false);
-        style.dataStyle().markerStyle().setColor("blue");
-        style.dataStyle().markerStyle().setSize(10);
+        style.setParameter("hist2DStyle", "colorMap");
+        style.dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
 
-            
         //        style.dataStyle().fillStyle().
 
         plotter.createRegions(1, 2);
-        svtDisp=aida.histogram2D("SVT Raw Hits:  z vs y",100,0,100,100,-10,10);
+        svtDispZY = aida.histogram2D("SVT Raw Hits:  z vs y", 50, 0, 100, 100, -10, 10);
+        svtDispZX = aida.histogram2D("SVT Raw Hits:  z vs x", 50, 0, 100, 100, -10, 10);
 //        cl2D = aida.cloud2D("SVT Raw Hits:  z vs y");
 
-        plotter.region(0).plot(svtDisp);
+        plotter.region(0).plot(svtDispZY);
+        plotter.region(1).plot(svtDispZX);
         plotter.show();
 
     }
@@ -79,63 +93,70 @@
             }
 
 //            aida.histogram2D("SVT Raw Hits:  z vs y").reset();
-          
-            svtDisp.reset();
+
+            svtDispZX.reset();
+            svtDispZY.reset();
             List<RawTrackerHit> rawHits = event.get(RawTrackerHit.class, rawTrackerHitCollectionName);
-            for (RawTrackerHit hrth : rawHits) {                
+            for (RawTrackerHit hrth : rawHits) {
                 fillPlots(hrth);
-            }                                           
+            }
         }
     }
 
     private void fillPlots(RawTrackerHit hit) {
 
-        SiSensor sensor=(SiSensor) hit.getDetectorElement();
+        SiSensor sensor = (SiSensor) hit.getDetectorElement();
         SiTrackerIdentifierHelper _sid_helper = (SiTrackerIdentifierHelper) (sensor.getIdentifierHelper());
         int strip = hit.getIdentifierFieldValue("strip");
         ChargeCarrier carrier = ChargeCarrier.getCarrier(_sid_helper.getSideValue(hit.getIdentifier()));
         SiSensorElectrodes electrodes = ((SiSensor) hit.getDetectorElement()).getReadoutElectrodes(carrier);
         Hep3Vector position = getGlobalHitPosition(hit, electrodes);
 
-         short[] adcVal = hit.getADCValues();
+        short[] adcVal = hit.getADCValues();
         double ped = HPSSVTCalibrationConstants.getPedestal(sensor, strip);
-        double noise = HPSSVTCalibrationConstants.getNoise(sensor, strip);   
-        
-//        System.out.println(position.z()+"   " + position.y());
+        double noise = HPSSVTCalibrationConstants.getNoise(sensor, strip);
+
+  
 //        aida.cloud2D("SVT Raw Hits:  z vs y").fill(position.z() / 10.0, position.y() / 10.0);
 //        aida.histogram2D("SVT Raw Hits:  z vs y").fill(position.z()/10.0,position.y()/10.0);
 //        aida.histogram2D("SVT Raw Hits:  z vs y").fill(position.z()/10.0,position.y()/10.0);
-        double maxAdc=-9999;
-        for(int i=0;i<6;i++){
-            if(adcVal[i]-ped>maxAdc)
-                maxAdc=adcVal[i]-ped;
+        double maxAdc = -9999;
+        for (int i = 0; i < 6; i++) {
+            if (adcVal[i] - ped > maxAdc)
+                maxAdc = adcVal[i] - ped;
         }
 //        if(noise<70){
-        if(noise<70&&!mask(position)){        
+        if (noise < 70 && !mask(position)) {
+//                  System.out.println(sensor.getName()+" strip # "+strip+"   "+position.z()+"   " + position.y());
 //            svtDisp.fill(position.z()/10.0,position.y()/10.0);
-            svtDisp.fill(position.z()/10.0,position.y()/10.0,maxAdc*100);
+            svtDispZY.fill(position.z() / 10.0, position.y() / 10.0, maxAdc);
+            svtDispZX.fill(position.z() / 10.0, position.x() / 10.0, maxAdc);
         }
-     }
+    }
 
     private Hep3Vector getGlobalHitPosition(RawTrackerHit hit, SiSensorElectrodes electrodes) {
         Hep3Vector position = (((SiStrips) electrodes).getStripCenter(hit.getIdentifierFieldValue("strip")));
         return ((SiSensor) electrodes.getDetectorElement()).getGeometry().getLocalToGlobal().transformed(position);
     }
 
-    private boolean mask(Hep3Vector pos){
-        double x=pos.x();
-        double y=pos.y();
-        double z=pos.z();
-        
-        if(z>300&&z<320)
-            if(y>-50&&y<-20)
+    private boolean mask(Hep3Vector pos) {
+        double x = pos.x();
+        double y = pos.y();
+        double z = pos.z();
+
+        if (z > 300 && z < 320)
+            if (y > -50 && y < -20)
                 return true;
-                    
+
         return false;
     }
-    
+
     @Override
     public void reset() {
         throw new UnsupportedOperationException("Not supported yet.");
     }
+
+    public void setEcalCollectionName(String ecalCollectionName) {
+        this.ecalCollectionName = ecalCollectionName;
+    }
 }

hps-java/src/main/resources/org/lcsim/hps/recon/tracking/strategies
HPS-Test-4pt1.xml 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- HPS-Test-4pt1.xml	3 May 2012 21:12:01 -0000	1.1
+++ HPS-Test-4pt1.xml	4 May 2012 14:06:38 -0000	1.2
@@ -9,8 +9,8 @@
         <MinHits>4</MinHits>
         <MinConfirm>1</MinConfirm>
         
-        <MaxDCA>8.0</MaxDCA>
-        <MaxZ0>8.0</MaxZ0>
+        <MaxDCA>25.0</MaxDCA>
+        <MaxZ0>45.0</MaxZ0>
 
         <MaxChisq>250.0</MaxChisq>
         <BadHitChisq>100.0</BadHitChisq>
CVSspam 0.2.12


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