projects/lcsim/trunk/tracking/src/main/java/org/lcsim/recon/tracking/digitization/sisim
--- projects/lcsim/trunk/tracking/src/main/java/org/lcsim/recon/tracking/digitization/sisim/CDFSiSensorSim.java 2014-09-06 00:09:00 UTC (rev 3313)
+++ projects/lcsim/trunk/tracking/src/main/java/org/lcsim/recon/tracking/digitization/sisim/CDFSiSensorSim.java 2014-09-08 16:59:04 UTC (rev 3314)
@@ -11,7 +11,6 @@
import org.lcsim.detector.solids.GeomOp3D;
import org.lcsim.event.SimTrackerHit;
-
import org.lcsim.detector.tracker.silicon.SiSensor;
import org.lcsim.detector.tracker.silicon.SiSensorElectrodes;
import org.lcsim.detector.tracker.silicon.ChargeCarrier;
@@ -24,13 +23,14 @@
import hep.physics.vec.BasicHep3Vector;
import hep.physics.matrix.BasicMatrix;
import hep.physics.vec.VecOp;
+
import java.util.ArrayList;
-
import java.util.List;
-
import java.util.Map;
import java.util.EnumMap;
+import java.util.Map.Entry;
import java.util.SortedMap;
+
import org.lcsim.detector.Transform3D;
import org.lcsim.detector.Translation3D;
import org.lcsim.detector.solids.Line3D;
@@ -63,6 +63,8 @@
private static double _DEPOSITION_GRANULARITY = 0.10; // 10% of pitch or depleted thickness
private static final double DISTANCE_ERROR_THRESHOLD = 0.001; //This is the maximum distance outside of the sensor allowed before an error is thrown.
+ private final boolean debug = false;
+
/**
* Creates a new instance of CDFSiSensorSim
*/
@@ -104,9 +106,11 @@
public Map<ChargeCarrier,SiElectrodeDataCollection> computeElectrodeData()
{
-// System.out.println("# Sense strips: " + sensor.getSenseElectrodes(ChargeCarrier.HOLE).getNCells(0));
-// System.out.println("# Readout strips: " + sensor.getReadoutElectrodes(ChargeCarrier.HOLE).getNCells(0));
-
+ if(debug) {
+ System.out.printf("%s: computeElectrodeData for sensor %s\n", this.getClass().getSimpleName(),this._sensor.getName());
+ System.out.printf("%s: # Sense strips: %d\n", this.getClass().getSimpleName(),_sensor.getSenseElectrodes(ChargeCarrier.HOLE).getNCells(0));
+ System.out.printf("%s: # Readout strips: %d\n", this.getClass().getSimpleName(),_sensor.getReadoutElectrodes(ChargeCarrier.HOLE).getNCells(0));
+ }
depositChargeOnSense();
transferChargeToReadout();
@@ -152,6 +156,9 @@
private void depositChargeOnSense()
{
+ if(debug)
+ System.out.printf("%s: depositChargeOnSense for sensor %s\n", this.getClass().getSimpleName(),this._sensor.getName());
+
// Set up drift directions // FIXME: put this in a setup method.
for (ChargeCarrier carrier : ChargeCarrier.values())
{
@@ -166,7 +173,9 @@
for (SimTrackerHit hit : hits)
{
-
+ if(debug)
+ System.out.printf("%s: depositChargeOnSense for sim tracker hit at %s \n", this.getClass().getSimpleName(),hit.getPositionVec().toString());
+
// System.out.println("Hit point: " + "[" + hit.getPoint()[0] + "," + hit.getPoint()[1] + "," + hit.getPoint()[2] + "]");
// System.out.println("Startpoint: " + "[" + hit.getStartPoint()[0] + "," + hit.getStartPoint()[1] + "," + hit.getStartPoint()[2] + "]");
// System.out.println("Endpoint: " + "[" + hit.getEndPoint()[0] + "," + hit.getEndPoint()[1] + "," + hit.getEndPoint()[2] + "]");
@@ -180,6 +189,7 @@
// throw new RuntimeException("Endpoints of SimTrackerHit are outside the sensor volume!!");
// }
+
TrackSegment track = new TrackSegment(hit);
track.transform(global_to_sensor);
@@ -253,9 +263,14 @@
}
}
+
+ if(debug) {
+ System.out.printf("%s: Final sense charge map:\n", this.getClass().getSimpleName());
+ for(Map.Entry<Integer, Integer> entry : _sense_data.get(ChargeCarrier.HOLE).getChargeMap().entrySet()) {
+ System.out.printf("%s: cell %d -> %d \n", this.getClass().getSimpleName(),entry.getKey(),entry.getValue());
+ }
+ }
-// System.out.println("Final sense charge map: " + _sense_data.get(ChargeCarrier.HOLE).getChargeMap());
-
}
private void transferChargeToReadout()