Print

Print


Commit in hps-java/src/main/java/org/lcsim/hps/monitoring/svt on MAIN
SVTEventDisplay.java+147added 1.1
The basic SVT monitoring plots...

hps-java/src/main/java/org/lcsim/hps/monitoring/svt
SVTEventDisplay.java added at 1.1
diff -N SVTEventDisplay.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ SVTEventDisplay.java	3 May 2012 15:29:57 -0000	1.1
@@ -0,0 +1,147 @@
+package org.lcsim.hps.monitoring.svt;
+
+import hep.aida.*;
+import hep.physics.vec.BasicHep3Vector;
+import hep.physics.vec.Hep3Vector;
+import hep.physics.vec.VecOp;
+import java.util.ArrayList;
+import java.util.List;
+import org.lcsim.detector.tracker.silicon.*;
+import org.lcsim.event.EventHeader;
+import org.lcsim.event.RawTrackerHit;
+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.util.Driver;
+import org.lcsim.util.aida.AIDA;
+
+/**
+ *
+ * @author mgraham
+ */
+public class SVTEventDisplay extends Driver implements Resettable {
+
+    private List<IPlotter> plotters = new ArrayList<IPlotter>();
+    private AIDA aida = AIDA.defaultInstance();
+    private String rawTrackerHitCollectionName = "RawTrackerHitMaker_RawTrackerHits";
+    private String trackerName = "Tracker";
+    private int eventCount;
+    private Detector detector = null;
+    private IPlotter plotter;
+    private List<SiSensor> sensors;
+//    private ICloud2D cl2D;
+    private  IHistogram2D svtDisp;
+
+    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 Event Display");
+        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.dataStyle().fillStyle().
+
+        plotter.createRegions(1, 2);
+        svtDisp=aida.histogram2D("SVT Raw Hits:  z vs y",100,0,100,100,-10,10);
+//        cl2D = aida.cloud2D("SVT Raw Hits:  z vs y");
+
+        plotter.region(0).plot(svtDisp);
+        plotter.show();
+
+    }
+
+    public void setRawTrackerHitCollectionName(String rawTrackerHitCollectionName) {
+        this.rawTrackerHitCollectionName = rawTrackerHitCollectionName;
+    }
+
+    public void process(EventHeader event) {
+        if (event.hasCollection(RawTrackerHit.class, rawTrackerHitCollectionName)) {
+            ++eventCount;
+            if (!HPSSVTCalibrationConstants.calibrationLoaded()) {
+                HPSSVTCalibrationConstants.loadCalibrationConstants();
+            }
+
+//            aida.histogram2D("SVT Raw Hits:  z vs y").reset();
+          
+            svtDisp.reset();
+            List<RawTrackerHit> rawHits = event.get(RawTrackerHit.class, rawTrackerHitCollectionName);
+            for (RawTrackerHit hrth : rawHits) {                
+                fillPlots(hrth);
+            }
+           
+          
+           
+           
+        }
+    }
+
+    private void fillPlots(RawTrackerHit 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);   
+        
+        System.out.println(position.z()+"   " + position.y());
+//        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;
+        }
+//        if(noise<70){
+        if(noise<70&&!mask(position)){
+        
+//            svtDisp.fill(position.z()/10.0,position.y()/10.0);
+
+            svtDisp.fill(position.z()/10.0,position.y()/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>20&&y<50)
+                return true;
+                    
+        return false;
+    }
+    
+    @Override
+    public void reset() {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+}
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