Commit in lcsim on MAIN
src/org/lcsim/contrib/SiStripSim/TrackSegment.java-151.3 -> 1.4
                                /CDFSiSensorSim.java+3-361.3 -> 1.4
                                /SiElectrodeDataCollection.java+9-61.1 -> 1.2
                                /SiElectrodeData.java+51.2 -> 1.3
                                /ReadoutChip.java-11.2 -> 1.3
                                /Kpix.java-121.4 -> 1.5
test/org/lcsim/detector/driver/SimTrackerDigitizationTest.java+53-531.4 -> 1.5
                              /NewSimTrackerDigitizationTest.java+4-291.1 -> 1.2
+74-152
8 modified files
Cleanup and minor bugfixes.

lcsim/src/org/lcsim/contrib/SiStripSim
TrackSegment.java 1.3 -> 1.4
diff -u -r1.3 -r1.4
--- TrackSegment.java	3 Jul 2007 23:36:52 -0000	1.3
+++ TrackSegment.java	10 Jul 2007 23:43:19 -0000	1.4
@@ -90,19 +90,4 @@
         transformation.transform(_p2);
     }
     
-//    public void rotateMedium(Hep3Vector axis, double center, double angle)
-//    {
-//        double old_length = getLength();
-//        rotateMedium(_p1,axis,center,angle);
-//        rotateMedium(_p2,axis,center,angle);
-//        _energy_loss *= getLength()/old_length;
-//    }
-//
-//    private void rotateMedium(Hep3Vector point, Hep3Vector axis, double center, double angle)
-//    {
-//        assert (axis.z() == 0.0); // assumed that we are rotating silicon z-planes
-//        point = VecOp.add(point,VecOp.mult(Math.tan(angle)*(center - point.z()),
-//                VecOp.unit(VecOp.cross(axis, new BasicHep3Vector(0,0,1)))));
-//    }
-    
 }

lcsim/src/org/lcsim/contrib/SiStripSim
CDFSiSensorSim.java 1.3 -> 1.4
diff -u -r1.3 -r1.4
--- CDFSiSensorSim.java	9 Jul 2007 20:15:34 -0000	1.3
+++ CDFSiSensorSim.java	10 Jul 2007 23:43:19 -0000	1.4
@@ -181,7 +181,7 @@
                 segment_center = VecOp.add(segment_center, segment_step);
             }
             
-            System.out.println("Final sense charge map: " + _sense_data.get(ChargeCarrier.HOLE).getChargeMap());
+//            System.out.println("Final sense charge map: " + _sense_data.get(ChargeCarrier.HOLE).getChargeMap());
             
             
         }
@@ -258,7 +258,7 @@
 //                                    System.out.println("transfer efficiency: "+transfer_efficiency);
 //                                    System.out.println("sense charge: "+sense_cell_data.getCharge());
                                     
-                                    SiElectrodeData readout_datum  = new SiElectrodeData((int)(transfer_efficiency*sense_cell_data.getCharge()),
+                                    SiElectrodeData readout_datum  = new SiElectrodeData((int)Math.round(transfer_efficiency*sense_cell_data.getCharge()),
                                             sense_cell_data.getSimulatedHits());
                                     readout_data.add(readout_cell,readout_datum);
 //                                    System.out.println("transferring 3...");
@@ -277,7 +277,7 @@
                     _readout_data.put(carrier,_sense_data.get(carrier));
                 }
                 
-                System.out.println("Final readout charge map: " + _readout_data.get(carrier).getChargeMap());
+//                System.out.println("Final readout charge map: " + _readout_data.get(carrier).getChargeMap());
             }
         }
     }
@@ -312,39 +312,6 @@
         return nsegments;
     }
     
-//    private int nSegments(SimTrackerHit hit, ChargeCarrier carrier, double deposition_granularity)
-//    {
-//        // Decide how to cut track into pieces as a fraction of strip pitch
-//        int nsegments = 0;
-//        if (!_sensor.hasElectrodesOnSide(carrier)) return nsegments;
-//
-//        // Construct endpoints for charge deposition
-//        Hep3Vector p1 = new BasicHep3Vector(hit.getStartPoint());
-//        Hep3Vector p2 = new BasicHep3Vector(hit.getEndPoint());
-//
-//        System.out.println("Track P1: " + p1);
-//        System.out.println("Track P2: " + p2);
-//        System.out.println("Drift Destination of P1: " + driftDestination(p1,carrier));
-//        System.out.println("Drift Destination of P2: " + driftDestination(p2,carrier));
-//
-//        nsegments = (int)Math.ceil(VecOp.sub(p2,p1).z()/(_sensor.getThickness()*deposition_granularity));
-//
-//        Hep3Vector deposition_line = VecOp.sub( driftDestination(p2,carrier), driftDestination(p1,carrier) );
-//
-//        int naxes = _sensor.getElectrodes(carrier).getNAxes();
-//        for (int iaxis = 0; iaxis < naxes; iaxis++)
-//        {
-//            double projected_deposition_length = Math.abs(VecOp.dot(deposition_line,_sensor.getMeasuredCoordinates(carrier)[iaxis]));
-//
-////            System.out.println("Projected deposition Length: " + projected_deposition_length);
-//
-//            int required_segments = (int)Math.ceil(projected_deposition_length/
-//                    (deposition_granularity*_sensor.getElectrodes(carrier).getPitch(iaxis)));
-//            nsegments = Math.max(nsegments,required_segments);
-//        }
-//        return nsegments;
-//    }
-    
     
     private Hep3Vector driftDestination(Hep3Vector origin, ChargeCarrier carrier)
     {

lcsim/src/org/lcsim/contrib/SiStripSim
SiElectrodeDataCollection.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- SiElectrodeDataCollection.java	3 Jul 2007 23:36:52 -0000	1.1
+++ SiElectrodeDataCollection.java	10 Jul 2007 23:43:19 -0000	1.2
@@ -69,14 +69,17 @@
     
     public void add(int cellid, SiElectrodeData electrode_data)
     {
-        if (this.containsKey(cellid))
+        if (electrode_data.isValid())
         {
-            this.put(cellid,this.get(cellid).add(electrode_data));
+            if (this.containsKey(cellid))
+            {
+                this.put(cellid,this.get(cellid).add(electrode_data));
+            }
+            else
+            {
+                this.put(cellid,electrode_data);
+            }
         }
-        else
-        {
-            this.put(cellid,electrode_data);
-        }        
     }
     
 }

lcsim/src/org/lcsim/contrib/SiStripSim
SiElectrodeData.java 1.2 -> 1.3
diff -u -r1.2 -r1.3
--- SiElectrodeData.java	3 Jul 2007 23:36:52 -0000	1.2
+++ SiElectrodeData.java	10 Jul 2007 23:43:19 -0000	1.3
@@ -40,6 +40,11 @@
         _simulated_hits = simulated_hits;
     }
     
+    public boolean isValid()
+    {
+        return (getCharge() != 0);
+    }
+    
     public int getCharge()
     {
         return _charge;

lcsim/src/org/lcsim/contrib/SiStripSim
ReadoutChip.java 1.2 -> 1.3
diff -u -r1.2 -r1.3
--- ReadoutChip.java	3 Jul 2007 23:36:52 -0000	1.2
+++ ReadoutChip.java	10 Jul 2007 23:43:19 -0000	1.3
@@ -18,7 +18,6 @@
  */
 public interface ReadoutChip
 {
-    public SortedMap<Integer,Integer> readout(SiSensorElectrodes electrodes);
     
     public SortedMap<Integer,Integer> readout(SortedMap<Integer,Integer> raw_charge, SiSensorElectrodes electrodes);
     

lcsim/src/org/lcsim/contrib/SiStripSim
Kpix.java 1.4 -> 1.5
diff -u -r1.4 -r1.5
--- Kpix.java	3 Jul 2007 23:36:52 -0000	1.4
+++ Kpix.java	10 Jul 2007 23:43:19 -0000	1.5
@@ -49,18 +49,6 @@
         }
     }
 
-    public SortedMap<Integer,Integer> readout(SiSensorElectrodes electrodes)
-    {
-        SortedMap<Integer,Integer> raw_charge = electrodes.getChargeMap();
-        int nchannels = electrodes.getNCells();
-        
-        addNoise(raw_charge, nchannels);              
-        SortedMap<Integer,Integer> digitized_charge = digitize(raw_charge);
-        electrodes.clear();
-        
-        return digitized_charge;
-    }
-    
     public SortedMap<Integer,Integer> readout(SortedMap<Integer,Integer> raw_charge, SiSensorElectrodes electrodes)
     {
         int nchannels = electrodes.getNCells();

lcsim/test/org/lcsim/detector/driver
SimTrackerDigitizationTest.java 1.4 -> 1.5
diff -u -r1.4 -r1.5
--- SimTrackerDigitizationTest.java	23 May 2007 20:13:44 -0000	1.4
+++ SimTrackerDigitizationTest.java	10 Jul 2007 23:43:19 -0000	1.5
@@ -26,7 +26,7 @@
 import org.lcsim.geometry.compact.Subdetector;
 
 import org.lcsim.detector.tracker.silicon.SiSensor;
-import org.lcsim.detector.tracker.silicon.TrackSegment;
+import org.lcsim.detector.tracker.silicon.TrackSegment_old;
 import org.lcsim.detector.tracker.silicon.ChargeCarrier;
 
 /**
@@ -63,7 +63,7 @@
         loop.setLCIORecordSource(file);
         loop.add( new SimTrackerHitIdentifierReadoutDriver(new String[] {"SiTrackerBarrel_RO"} ) );
         loop.add( new TestDriver() );
-        loop.loop(5);
+        loop.loop(1);
         loop.dispose();
     }     
 
@@ -101,57 +101,57 @@
             // set of sensors with hits
             Set<SiSensor> hit_sensors = new HashSet<SiSensor>();
             
-            for (SimTrackerHit hit : eventHits)
-            {
-//            _decoder.setID(hit.getCellID());
-                
-                // Create track segment in global coordinates
-                Hep3Vector midpoint = new BasicHep3Vector(hit.getPoint());
-                Hep3Vector direction = VecOp.unit(new BasicHep3Vector(hit.getMomentum()));
-                Hep3Vector half_length = VecOp.mult(hit.getPathLength()/2.0,direction);
-                
-                Hep3Vector p1 = VecOp.add(midpoint,VecOp.mult(-1.0,half_length));
-                Hep3Vector p2 = VecOp.add(midpoint,half_length);
-                
-                double energy = hit.getdEdx();
-                
-                TrackSegment track_segment = new TrackSegment(p1,p2,energy);
-                
-                // Find the sensor for this hit, add to list of hit sensors
-                SiSensor sensor = (SiSensor)tkr.findDetectorElement(midpoint);
-                hit_sensors.add(sensor);
-                
-                // Transform track segment to sensor coordinates and assign to sensor
-                ITransform3D global_to_sensor = sensor.getGeometry().getGlobalToLocal();
-                track_segment.transform(global_to_sensor);
-                sensor.addTrackSegment(track_segment);
-            }
-            
-            // Loop over sensors
-            
-            System.out.println("Number of Hit Sensors: " + hit_sensors.size());
-            
-            for (SiSensor sensor : hit_sensors)
-            {
-
-                System.out.println("\n" + "Sensor: " + sensor.getName() + "\n" + "=================");
-                
-                // deposit charge
-                sensor.depositCharge();
-                for (ChargeCarrier carrier : ChargeCarrier.values())
-                {
-                    if (sensor.hasElectrodesOnSide(carrier))
-                    {
-                        System.out.println("Charge Map for " + carrier + ": " + sensor.getElectrodes(carrier).getChargeMap());
-                    }
-                }
-                
-                // readout
-//          List<RawTrackerHit> raw_hits = readout_chip.readout(sensor);
-                
-                sensor.clearElectrodes();
-                
-            }
+//            for (SimTrackerHit hit : eventHits)
+//            {
+////            _decoder.setID(hit.getCellID());
+//                
+//                // Create track segment in global coordinates
+//                Hep3Vector midpoint = new BasicHep3Vector(hit.getPoint());
+//                Hep3Vector direction = VecOp.unit(new BasicHep3Vector(hit.getMomentum()));
+//                Hep3Vector half_length = VecOp.mult(hit.getPathLength()/2.0,direction);
+//                
+//                Hep3Vector p1 = VecOp.add(midpoint,VecOp.mult(-1.0,half_length));
+//                Hep3Vector p2 = VecOp.add(midpoint,half_length);
+//                
+//                double energy = hit.getdEdx();
+//                
+//                TrackSegment_old track_segment = new TrackSegment_old(p1,p2,energy);
+//                
+//                // Find the sensor for this hit, add to list of hit sensors
+//                SiSensor sensor = (SiSensor)tkr.findDetectorElement(midpoint);
+//                hit_sensors.add(sensor);
+//                
+//                // Transform track segment to sensor coordinates and assign to sensor
+//                ITransform3D global_to_sensor = sensor.getGeometry().getGlobalToLocal();
+//                track_segment.transform(global_to_sensor);
+//                sensor.addTrackSegment(track_segment);
+//            }
+//            
+//            // Loop over sensors
+//            
+//            System.out.println("Number of Hit Sensors: " + hit_sensors.size());
+//            
+//            for (SiSensor sensor : hit_sensors)
+//            {
+//
+//                System.out.println("\n" + "Sensor: " + sensor.getName() + "\n" + "=================");
+//                
+//                // deposit charge
+//                sensor.depositCharge();
+//                for (ChargeCarrier carrier : ChargeCarrier.values())
+//                {
+//                    if (sensor.hasElectrodesOnSide(carrier))
+//                    {
+//                        System.out.println("Charge Map for " + carrier + ": " + sensor.getElectrodes(carrier).getChargeMap());
+//                    }
+//                }
+//                
+//                // readout
+////          List<RawTrackerHit> raw_hits = readout_chip.readout(sensor);
+//                
+//                sensor.clearElectrodes();
+//                
+//            }
             
             
 

lcsim/test/org/lcsim/detector/driver
NewSimTrackerDigitizationTest.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- NewSimTrackerDigitizationTest.java	3 Jul 2007 23:55:07 -0000	1.1
+++ NewSimTrackerDigitizationTest.java	10 Jul 2007 23:43:19 -0000	1.2
@@ -32,7 +32,6 @@
 import org.lcsim.geometry.compact.Subdetector;
 
 import org.lcsim.detector.tracker.silicon.SiSensor;
-import org.lcsim.detector.tracker.silicon.TrackSegment;
 import org.lcsim.detector.tracker.silicon.ChargeCarrier;
 
 import org.lcsim.contrib.SiStripSim.SiSensorSim;
@@ -77,7 +76,7 @@
 //        loop.add( new SimTrackerHitPositionalReadoutDriver(new String[] {"SiTrackerBarrel_RO"} ) );
         loop.add( new SimTrackerHitIdentifierReadoutDriver(new String[] {"SiTrackerBarrel_RO"} ) );
         loop.add( new TestDriver() );
-        loop.loop(1);
+        loop.loop(10);
         loop.dispose();
     }
     
@@ -110,7 +109,7 @@
             
             List<SimTrackerHit> eventHits = header.get(SimTrackerHit.class, "SiTrackerBarrel_RO");
             
-            System.out.println("Number of SimTrackerHits: " + eventHits.size());
+            System.out.println("\n"+"Number of SimTrackerHits: " + eventHits.size());
             
             // set of sensors with hits
             Set<SiSensor> hit_sensors = new HashSet<SiSensor>();
@@ -120,28 +119,8 @@
             
             for (SimTrackerHit hit : eventHits)
             {
-//            _decoder.setID(hit.getCellID());
-                
-                // Create track segment in global coordinates
-                Hep3Vector midpoint = new BasicHep3Vector(hit.getPoint());
-                Hep3Vector direction = VecOp.unit(new BasicHep3Vector(hit.getMomentum()));
-                Hep3Vector half_length = VecOp.mult(hit.getPathLength()/2.0,direction);
-                
-                Hep3Vector p1 = VecOp.add(midpoint,VecOp.mult(-1.0,half_length));
-                Hep3Vector p2 = VecOp.add(midpoint,half_length);
-                
-                double energy = hit.getdEdx();
-                
-                TrackSegment track_segment = new TrackSegment(p1,p2,energy);
-                
-                // Find the sensor for this hit, add to list of hit sensors
-                SiSensor sensor = (SiSensor)tkr.findDetectorElement(midpoint);
+                SiSensor sensor = (SiSensor)hit.getDetectorElement();
                 hit_sensors.add(sensor);
-                
-                // Transform track segment to sensor coordinates and assign to sensor
-                ITransform3D global_to_sensor = sensor.getGeometry().getGlobalToLocal();
-                track_segment.transform(global_to_sensor);
-                sensor.addTrackSegment(track_segment);
             }
             
             
@@ -156,7 +135,7 @@
             for (SiSensor sensor : hit_sensors)
             {
                 
-                System.out.println("\n" + "Sensor: " + sensor.getName());
+                System.out.println("Sensor: " + sensor.getName());
                 
                 // deposit charge with CDF/Padova model
                 si_simulation.simulate(sensor);
@@ -192,10 +171,6 @@
                 
             }
             
-            
-            
-            
-            
         }
         
         
CVSspam 0.2.8