Commit in hps-java/src/main/java/org/lcsim/hps/util on MAIN
PrintGeometryDriver.java+90added 1.1
Print basic si sensor geom

hps-java/src/main/java/org/lcsim/hps/util
PrintGeometryDriver.java added at 1.1
diff -N PrintGeometryDriver.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ PrintGeometryDriver.java	26 Jun 2013 21:51:47 -0000	1.1
@@ -0,0 +1,90 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.lcsim.hps.util;
+
+import hep.physics.vec.BasicHep3Vector;
+import hep.physics.vec.Hep3Vector;
+import java.util.ArrayList;
+import java.util.List;
+import org.lcsim.detector.IDetectorElement;
+import org.lcsim.detector.ITransform3D;
+import org.lcsim.detector.Transform3D;
+import org.lcsim.detector.identifier.IIdentifier;
+import org.lcsim.detector.identifier.Identifier;
+import org.lcsim.detector.tracker.silicon.ChargeCarrier;
+import org.lcsim.detector.tracker.silicon.SiSensor;
+import org.lcsim.detector.tracker.silicon.SiSensorElectrodes;
+import org.lcsim.detector.tracker.silicon.SiTrackerIdentifierHelper;
+import org.lcsim.event.RawTrackerHit;
+import org.lcsim.event.SimTrackerHit;
+import org.lcsim.event.base.BaseRawTrackerHit;
+import org.lcsim.geometry.Detector;
+import org.lcsim.recon.tracking.digitization.sisim.TrackerHitType;
+import org.lcsim.util.Driver;
+
+/**
+ *
+ * @author phansson
+ */
+public class PrintGeometryDriver extends Driver {
+    
+    @Override
+    protected void detectorChanged(Detector detector) {
+        System.out.printf("%s: ################# Print geometry ##########################\n",this.getClass().getSimpleName());
+        IDetectorElement detectorElement = detector.getDetectorElement();
+        List<SiSensor> sensors = detectorElement.findDescendants(SiSensor.class);
+        System.out.printf("%s: %5s %40s %40s\n",this.getClass().getSimpleName(),"ID","Pos","u");
+        for (SiSensor sensor: sensors) {
+            Hep3Vector position = sensor.getGeometry().getPosition();
+            Hep3Vector u = this.getMeasuredCoordinate(sensor);
+            System.out.printf("%s: %5d %40s %40s\n",this.getClass().getSimpleName(),sensor.getSensorID(),position.toString(),u.toString());
+        }
+        System.out.printf("%s: ###########################################################\n",this.getClass().getSimpleName());
+    }
+    
+    
+    private Hep3Vector getMeasuredCoordinate(SiSensor sensor)
+    {
+        
+        Hep3Vector u = new BasicHep3Vector(-99,-99,-99);
+
+        // Loop over electrodes and digitize with readout chip
+        for (ChargeCarrier carrier : ChargeCarrier.values()) {
+            if (sensor.hasElectrodesOnSide(carrier)) {
+
+                //if(debug) System.out.println(this.getClass().getSimpleName() + ": creating a dummy hit for sensor " + sensor.getName());
+                //SortedMap<Integer,List<Integer>> digitized_hits = _readout_chip.readout(electrode_data.get(carrier),sensor.getReadoutElectrodes(carrier));
+                //if(debug) System.out.println(this.getClass().getSimpleName() + ": creating a dummy hit for sensor " + sensor.getName());
+               int channel = 1;
+                int time = 0;
+                long cell_id = sensor.makeStripId(channel, carrier.charge()).getValue();
+                IIdentifier id = new Identifier(cell_id);
+                
+                short[] adc_values = new short[6];
+                for (Integer i = 0; i < 6; ++i) {
+                    Integer adc = 50;
+                    adc_values[i] = adc.shortValue(); //ADC counts
+                }
+                IDetectorElement detector_element = sensor;
+                RawTrackerHit raw_hit = new BaseRawTrackerHit(time, cell_id, adc_values, new ArrayList<SimTrackerHit>(), detector_element);
+                SiSensorElectrodes electrodes = ((SiSensor) raw_hit.getDetectorElement()).getReadoutElectrodes(carrier);
+                SiTrackerIdentifierHelper _sid_helper = (SiTrackerIdentifierHelper) sensor.getIdentifierHelper();    
+                //ChargeCarrier carrier = ChargeCarrier.getCarrier(_sid_helper.getSideValue(id));
+                //SiSensorElectrodes electrodes = sensor.getReadoutElectrodes(carrier);
+                
+                ITransform3D local_to_global = new Transform3D();// sensor.getGeometry().getLocalToGlobal();
+                ITransform3D electrodes_to_global = electrodes.getLocalToGlobal();
+                ITransform3D global_to_hit = local_to_global.inverse();
+                ITransform3D electrodes_to_hit = Transform3D.multiply(global_to_hit, electrodes_to_global);
+                u = electrodes_to_hit.rotated(electrodes.getMeasuredCoordinate(0));
+            }
+         }
+        return u;
+    }
+    
+}
+
+
+
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