Print

Print


Commit in hps-java/src/main on MAIN
java/org/lcsim/hps/monitoring/svt/SVTEventDisplay.java+59-301.3 -> 1.4
                                 /SVTHitReconstructionPlots.java+45-141.6 -> 1.7
                                 /SVTHitPulsePlots.java+42-81.8 -> 1.9
resources/org/lcsim/hps/steering/SvtEventDisplay.lcsim+37-51.1 -> 1.2
+183-57
4 modified files
Minor fixes for tracking.

hps-java/src/main/java/org/lcsim/hps/monitoring/svt
SVTEventDisplay.java 1.3 -> 1.4
diff -u -r1.3 -r1.4
--- SVTEventDisplay.java	4 May 2012 14:06:37 -0000	1.3
+++ SVTEventDisplay.java	6 May 2012 08:57:38 -0000	1.4
@@ -7,12 +7,15 @@
 import java.util.ArrayList;
 import java.util.List;
 import org.lcsim.detector.tracker.silicon.*;
+import org.lcsim.event.CalorimeterHit;
 import org.lcsim.event.EventHeader;
 import org.lcsim.event.RawCalorimeterHit;
 import org.lcsim.event.RawTrackerHit;
+import org.lcsim.fit.helicaltrack.HelicalTrackHit;
 import org.lcsim.geometry.Detector;
 import org.lcsim.geometry.IDDecoder;
 import org.lcsim.hps.monitoring.Resettable;
+import org.lcsim.hps.recon.ecal.HPSEcalCluster;
 import org.lcsim.hps.recon.ecal.HPSEcalConditions;
 import org.lcsim.hps.recon.tracking.HPSFittedRawTrackerHit;
 import org.lcsim.hps.recon.tracking.HPSSVTCalibrationConstants;
@@ -28,6 +31,8 @@
     private List<IPlotter> plotters = new ArrayList<IPlotter>();
     private AIDA aida = AIDA.defaultInstance();
     private String rawTrackerHitCollectionName = "RawTrackerHitMaker_RawTrackerHits";
+ private String helicalTrackHitCollectionName = "HelicalTrackHits";
+    //    String eCalClusterCollectionName = "EcalClusters";
     private String trackerName = "Tracker";
     private int eventCount;
     private Detector detector = null;
@@ -39,8 +44,8 @@
     int integralWindow = 0;
     IDDecoder dec;
     String ecalSubdetectorName = "Ecal";
-    String ecalCollectionName = "EcalReadoutHits";
-    double zEcal = 160;
+    String ecalCollectionName = "EcalClusters";
+    double zEcal = 130;
 
     protected void detectorChanged(Detector detector) {
         this.detector = detector;
@@ -71,8 +76,8 @@
         //        style.dataStyle().fillStyle().
 
         plotter.createRegions(1, 2);
-        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);
+        svtDispZY = aida.histogram2D("SVT Raw Hits:  z vs y", 50, 0, 140, 50, -10, 10);
+        svtDispZX = aida.histogram2D("SVT Raw Hits:  z vs x", 50, 0, 140, 100, -30, 30);
 //        cl2D = aida.cloud2D("SVT Raw Hits:  z vs y");
 
         plotter.region(0).plot(svtDispZY);
@@ -81,12 +86,17 @@
 
     }
 
-    public void setRawTrackerHitCollectionName(String rawTrackerHitCollectionName) {
-        this.rawTrackerHitCollectionName = rawTrackerHitCollectionName;
-    }
+//    public void setRawTrackerHitCollectionName(String rawTrackerHitCollectionName) {
+//        this.rawTrackerHitCollectionName = rawTrackerHitCollectionName;
+//    }
 
+      public void setHelicalTrackHitCollectionName(String helicalTrackHitCollectionName) {
+        this.helicalTrackHitCollectionName = helicalTrackHitCollectionName;
+    }
+    
     public void process(EventHeader event) {
-        if (event.hasCollection(RawTrackerHit.class, rawTrackerHitCollectionName)) {
+//        if (event.hasCollection(RawTrackerHit.class, rawTrackerHitCollectionName)) {
+        if (event.hasCollection(HelicalTrackHit.class, helicalTrackHitCollectionName)) {
             ++eventCount;
             if (!HPSSVTCalibrationConstants.calibrationLoaded()) {
                 HPSSVTCalibrationConstants.loadCalibrationConstants();
@@ -96,42 +106,61 @@
 
             svtDispZX.reset();
             svtDispZY.reset();
-            List<RawTrackerHit> rawHits = event.get(RawTrackerHit.class, rawTrackerHitCollectionName);
-            for (RawTrackerHit hrth : rawHits) {
+            List<HelicalTrackHit> rawHits = event.get(HelicalTrackHit.class, helicalTrackHitCollectionName);
+            for (HelicalTrackHit hrth : rawHits) {
                 fillPlots(hrth);
             }
+            
+              List<HPSEcalCluster> clusters = event.get(HPSEcalCluster.class, ecalCollectionName);
+ //             System.out.println("Number of ECAL clusters="+clusters.size());
+              for (HPSEcalCluster cluster : clusters) {
+                    dec.setID(cluster.getSeedHit().getCellID());
+                    CalorimeterHit seedHit = cluster.getSeedHit();
+//                    System.out.println("z = "+seedHit.getPosition()[2]+" y = "+seedHit.getPosition()[1]);
+//                    if(cluster.getEnergy()/10>500)
+                        svtDispZY.fill(zEcal, seedHit.getPosition()[1]/10, cluster.getEnergy()/10);
+                        svtDispZY.fill(zEcal, seedHit.getPosition()[0]/10, cluster.getEnergy()/10);
+                }
+        }else{
+            System.out.println("SVTEventDisplay:  Event has no HelicalTrackHits");
         }
     }
 
-    private void fillPlots(RawTrackerHit hit) {
+    private void fillPlots(HelicalTrackHit hit) {
 
-        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();
-        double ped = HPSSVTCalibrationConstants.getPedestal(sensor, strip);
-        double noise = HPSSVTCalibrationConstants.getNoise(sensor, strip);
+//        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();
+//        double ped = HPSSVTCalibrationConstants.getPedestal(sensor, strip);
+//        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);
-            svtDispZY.fill(position.z() / 10.0, position.y() / 10.0, maxAdc);
-            svtDispZX.fill(position.z() / 10.0, position.x() / 10.0, maxAdc);
-        }
+//            svtDispZY.fill(position.z() / 10.0, position.y() / 10.0, maxAdc);
+//            svtDispZX.fill(position.z() / 10.0, position.x() / 10.0, maxAdc);
+            
+ //           svtDispZY.fill(position.z() / 10.0, position.y() / 10.0, 1000.0);
+ //           svtDispZX.fill(position.z() / 10.0, position.x() / 10.0, 1000.0);
+ //       }
+            svtDispZY.fill(hit.z() / 10.0, hit.y() / 10.0, 1000.0);
+            svtDispZX.fill(hit.z() / 10.0, hit.x() / 10.0, 1000.0);
+ 
     }
 
     private Hep3Vector getGlobalHitPosition(RawTrackerHit hit, SiSensorElectrodes electrodes) {

hps-java/src/main/java/org/lcsim/hps/monitoring/svt
SVTHitReconstructionPlots.java 1.6 -> 1.7
diff -u -r1.6 -r1.7
--- SVTHitReconstructionPlots.java	6 May 2012 00:01:13 -0000	1.6
+++ SVTHitReconstructionPlots.java	6 May 2012 08:57:38 -0000	1.7
@@ -2,7 +2,11 @@
 
 import hep.aida.*;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
+import org.lcsim.detector.identifier.IIdentifier;
+import org.lcsim.detector.identifier.IIdentifierHelper;
 import org.lcsim.detector.tracker.silicon.SiSensor;
 import org.lcsim.event.EventHeader;
 import org.lcsim.event.RawTrackerHit;
@@ -35,6 +39,7 @@
     IPlotter plotter3;
     IPlotter plotter4;
     IPlotter plotter5;
+    private Map<String, Integer> sensorRegionMap;
 
     protected void detectorChanged(Detector detector) {
         plotterFrame = new AIDAFrame();
@@ -45,6 +50,12 @@
 
         sensors = detector.getSubdetector(trackerName).getDetectorElement().findDescendants(SiSensor.class);
 
+        // Map a map of sensors to their region numbers in the plotter.
+        sensorRegionMap = new HashMap<String, Integer>();
+        for (SiSensor sensor : sensors) {
+            int region = computePlotterRegion(sensor);
+            sensorRegionMap.put(sensor.getName(), region);
+        }
 
         IAnalysisFactory fac = aida.analysisFactory();
         plotter = fac.createPlotterFactory().create("HPS SVT Timing Plots");
@@ -93,21 +104,19 @@
         style5.dataStyle().errorBarStyle().setVisible(false);
         plotter5.createRegions(5, 4);
 
-        int ns = sensors.size();
-        for (int i = 0; i < ns; i++) {
-            IHistogram1D timingPlot = aida.histogram1D(sensors.get(i).getName() + "_timing", 50, 0, 25.0);
-            IHistogram1D amplitudePlot = aida.histogram1D(sensors.get(i).getName() + "_amplitude", 50, 0, 2000.0);
-
-            IHistogram1D nrawPlot = aida.histogram1D(sensors.get(i).getName() + "_raw_hits", 10, 0, 9.0);
-            IHistogram1D nrecoPlot = aida.histogram1D(sensors.get(i).getName() + "_reco_hits", 10, 0, 9.0);
-            IHistogram1D clusterSizePlot = aida.histogram1D(sensors.get(i).getName() + "_cluster_size", 9, 1, 9.0);
-
-            plotter.region(i).plot(timingPlot);
-            plotter2.region(i).plot(amplitudePlot);
-            plotter3.region(i).plot(nrawPlot);
-            plotter4.region(i).plot(nrecoPlot);
-            plotter5.region(i).plot(clusterSizePlot);
 
+        for (SiSensor sensor : sensors) {
+            IHistogram1D timingPlot = aida.histogram1D(sensor.getName() + "_timing", 50, 0, 25.0);
+            IHistogram1D amplitudePlot = aida.histogram1D(sensor.getName() + "_amplitude", 50, 0, 2000.0);
+            IHistogram1D nrawPlot = aida.histogram1D(sensor.getName() + "_raw_hits", 10, 0, 9.0);
+            IHistogram1D nrecoPlot = aida.histogram1D(sensor.getName() + "_reco_hits", 10, 0, 9.0);
+            IHistogram1D clusterSizePlot = aida.histogram1D(sensor.getName() + "_cluster_size", 9, 1, 9.0);
+            int region = sensorRegionMap.get(sensor.getName());
+            plotter.region(region).plot(timingPlot);
+            plotter2.region(region).plot(amplitudePlot);
+            plotter3.region(region).plot(nrawPlot);
+            plotter4.region(region).plot(nrecoPlot);
+            plotter5.region(region).plot(clusterSizePlot);
         }
 
         plotterFrame.pack();
@@ -197,4 +206,26 @@
             aida.histogram1D(sensors.get(i).getName() + "_reco_hits").reset();
         }
     }
+
+    private int computePlotterRegion(SiSensor sensor) {
+
+        IIdentifierHelper helper = sensor.getIdentifierHelper();
+        IIdentifier id = sensor.getIdentifier();
+
+        int layer = helper.getValue(id, "layer"); // 1-10; axial layers are odd layers; stereo layers are even
+        int module = helper.getValue(id, "module"); // 0-1; module number is top or bottom
+
+        // Compute the sensor's x and y grid coordinates and then translate to region number.
+        int ix = (layer - 1) / 2;
+        int iy = 0;
+        if (module > 0) {
+            iy += 2;
+        }
+        if (layer % 2 == 0) {
+            iy += 1;
+        }
+        int region = ix * 4 + iy;
+        //System.out.println(sensor.getName() + "; lyr=" + layer + "; mod=" + module + " -> xy[" + ix + "][" + iy + "] -> reg="+region);
+        return region;
+    }
 }

hps-java/src/main/java/org/lcsim/hps/monitoring/svt
SVTHitPulsePlots.java 1.8 -> 1.9
diff -u -r1.8 -r1.9
--- SVTHitPulsePlots.java	6 May 2012 00:01:13 -0000	1.8
+++ SVTHitPulsePlots.java	6 May 2012 08:57:38 -0000	1.9
@@ -2,7 +2,11 @@
 
 import hep.aida.*;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
+import org.lcsim.detector.identifier.IIdentifier;
+import org.lcsim.detector.identifier.IIdentifierHelper;
 import org.lcsim.detector.tracker.silicon.SiSensor;
 import org.lcsim.event.EventHeader;
 import org.lcsim.event.RawTrackerHit;
@@ -28,7 +32,8 @@
     private IPlotter plotter3;
     private IPlotter plotter2;
     private List<SiSensor> sensors;
-
+ private Map<String, Integer> sensorRegionMap;
+ 
     protected void detectorChanged(Detector detector) {
         plotterFrame = new AIDAFrame();
         plotterFrame.setTitle("HPS SVT Pulse Plots");
@@ -39,6 +44,13 @@
         sensors = detector.getSubdetector(trackerName).getDetectorElement().findDescendants(SiSensor.class);
 
 
+        // Map a map of sensors to their region numbers in the plotter.
+        sensorRegionMap = new HashMap<String, Integer>();
+        for (SiSensor sensor : sensors) {
+            int region = computePlotterRegion(sensor);
+            sensorRegionMap.put(sensor.getName(), region);
+        }
+
         IAnalysisFactory fac = aida.analysisFactory();
 
 
@@ -64,14 +76,13 @@
         style2.dataStyle().errorBarStyle().setVisible(false);
         style2.dataStyle().markerStyle().setColor("blue");
         plotter2.createRegions(5, 4);
+       for (SiSensor sensor : sensors) {
+            IHistogram2D adcVsChanPlot = aida.histogram2D(sensor.getName() + "_AdcVsChan", 100, -100, 2000, 640, 0, 639);
+            IProfile pulsePlot = aida.profile1D(sensor.getName() + "_pulse", 6, 0, 24 * 6.0);
+            int region = sensorRegionMap.get(sensor.getName());
 
-        int ns = sensors.size();
-        for (int i = 0; i < ns; i++) {
-            IHistogram2D adcVsChanPlot = aida.histogram2D(sensors.get(i).getName() + "_AdcVsChan", 100, -100, 2000, 640, 0, 639);
-            IProfile pulsePlot = aida.profile1D(sensors.get(i).getName() + "_pulse", 6, 0, 24 * 6.0);
-
-            plotter3.region(i).plot(pulsePlot);
-            plotter2.region(i).plot(adcVsChanPlot);
+            plotter3.region(region).plot(pulsePlot);
+            plotter2.region(region).plot(adcVsChanPlot);
         }
         plotterFrame.pack();
         plotterFrame.setVisible(true);
@@ -149,4 +160,27 @@
             aida.profile1D(sensors.get(i).getName() + "_pulse").reset();
         }
     }
+    
+    
+    private int computePlotterRegion(SiSensor sensor) {
+
+        IIdentifierHelper helper = sensor.getIdentifierHelper();
+        IIdentifier id = sensor.getIdentifier();
+
+        int layer = helper.getValue(id, "layer"); // 1-10; axial layers are odd layers; stereo layers are even
+        int module = helper.getValue(id, "module"); // 0-1; module number is top or bottom
+
+        // Compute the sensor's x and y grid coordinates and then translate to region number.
+        int ix = (layer - 1) / 2;
+        int iy = 0;
+        if (module > 0) {
+            iy += 2;
+        }
+        if (layer % 2 == 0) {
+            iy += 1;
+        }
+        int region = ix * 4 + iy;
+        //System.out.println(sensor.getName() + "; lyr=" + layer + "; mod=" + module + " -> xy[" + ix + "][" + iy + "] -> reg="+region);
+        return region;
+    }
 }

hps-java/src/main/resources/org/lcsim/hps/steering
SvtEventDisplay.lcsim 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- SvtEventDisplay.lcsim	3 May 2012 20:50:29 -0000	1.1
+++ SvtEventDisplay.lcsim	6 May 2012 08:57:38 -0000	1.2
@@ -8,19 +8,39 @@
     <execute>        
         <driver name="SVTSetupDriver"/>
         <driver name="HPSSVTDAQMaps"/>
-        <driver name="RawTrackerHitMaker"/>           
+        <driver name="EcalRawConverter"/>
+        <driver name="EcalClusterer"/>
+        <driver name="RawTrackerHitMaker"/>  
+        <driver name="RawTrackerHitFitterDriver"/>    
+        <driver name="TrackerHitDriver"/>            
+        <driver name="TrackerReconDriver"/>
         <driver name="SVTEventDisplay"/>   
         <driver name="CleanupDriver"/>
     </execute>    
     <drivers>
-          <driver name="RawTrackerHitFitterDriver"
+     <driver name="EcalRawConverter" 
+                type="org.lcsim.hps.recon.ecal.HPSEcalRawConverterDriver">
+			<ecalCollectionName>EcalCalHits</ecalCollectionName>
+	</driver>
+        <driver name="EcalClusterer"
+                type="org.lcsim.hps.recon.ecal.HPSEcalClusterer">
+			<ecalName>Ecal</ecalName>
+			<ecalCollectionName>EcalCalHits</ecalCollectionName>
+	</driver>
+         
+         <driver name="RawTrackerHitFitterDriver"
                 type="org.lcsim.hps.recon.tracking.HPSRawTrackerHitFitterDriver">
+           <rawHitCollectionName>SVTRawTrackerHits</rawHitCollectionName>  
+          <fittedHitCollectionName>SVTFittedRawTrackerHits</fittedHitCollectionName> 
            <fitAlgorithm>Analytic</fitAlgorithm>  
         </driver>
 
+        <driver name="TrackerHitDriver"
+                type="org.lcsim.hps.users.mgraham.DataTrackerHitDriver"/>
+
+
         <driver name="SVTEventDisplay"
-                type="org.lcsim.hps.monitoring.svt.SVTEventDisplay">
-        <rawTrackerHitCollectionName>SVTRawTrackerHits</rawTrackerHitCollectionName>   
+                type="org.lcsim.hps.monitoring.svt.SVTEventDisplay">       
         </driver>    
 
         <driver name="SVTSetupDriver"
@@ -29,7 +49,19 @@
        
         <driver name="HPSSVTDAQMaps" type="org.lcsim.hps.recon.tracking.HPSSVTDAQMaps"/>   
 
-    	<driver name="RawTrackerHitMaker" type="org.lcsim.hps.recon.tracking.SVTDataToRawTrackerHitDriver"/>
+
+       	<driver name="RawTrackerHitMaker" type="org.lcsim.hps.recon.tracking.SVTDataToRawTrackerHitDriver">
+            <rawTrackerHitOutputCollectionName>SVTRawTrackerHits</rawTrackerHitOutputCollectionName>
+        </driver>
+
+
+        <driver name="TrackerReconDriver"
+                type="org.lcsim.hps.recon.tracking.TrackerReconDriver">
+            <debug>false</debug>
+            <strategyResource>/org/lcsim/hps/recon/tracking/strategies/HPS-Test-4pt1.xml</strategyResource>
+            <stripMaxSeparation>20.0</stripMaxSeparation>
+            <stripTolerance>1.0</stripTolerance>
+        </driver>        
 
        <driver name="CleanupDriver" 
                 type="org.lcsim.recon.tracking.digitization.sisim.config.ReadoutCleanupDriver">
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