Print

Print


Commit in lcsim/src/org/lcsim/recon/tracking/digitization/sistripsim on MAIN
RawTrackerHitMaker.java+10-41.1 -> 1.2
Modify code so that size of readout chip data array can be arbitrary length (and not fixed at 2)

lcsim/src/org/lcsim/recon/tracking/digitization/sistripsim
RawTrackerHitMaker.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- RawTrackerHitMaker.java	9 Dec 2008 22:22:34 -0000	1.1
+++ RawTrackerHitMaker.java	22 Apr 2009 23:18:24 -0000	1.2
@@ -55,7 +55,7 @@
     {
         List<RawTrackerHit> raw_hits = new ArrayList<RawTrackerHit>();
         List<SiSensor> sensors = detector.findDescendants(SiSensor.class);
-        
+
         // Loop over all sensors
         for (SiSensor sensor : sensors)
         {
@@ -84,20 +84,26 @@
         // Perform charge deposition simulation
         _si_simulation.setSensor(sensor);
         Map<ChargeCarrier,SiElectrodeDataCollection> electrode_data = _si_simulation.computeElectrodeData();
-        
+
         // Loop over electrodes and digitize with readout chip
         for (ChargeCarrier carrier : ChargeCarrier.values())
         {
             if (sensor.hasElectrodesOnSide(carrier))
             {
                 SortedMap<Integer,List<Integer>> digitized_hits = _readout_chip.readout(electrode_data.get(carrier),sensor.getReadoutElectrodes(carrier));
-                
+
                 // Make RawTrackerHits
                 for (Integer readout_cell : digitized_hits.keySet())
                 {
                     int time = 0;
                     long cell_id = sensor.makeStripId(readout_cell,carrier.charge()).getValue();
-                    short[] adc_values = {digitized_hits.get(readout_cell).get(0).shortValue(),digitized_hits.get(readout_cell).get(1).shortValue()};
+
+                    //  Retrieve the list of integer data from the readout chip and store as an array of shorts
+                    List<Integer> readout_data = digitized_hits.get(readout_cell);
+                    short[] adc_values = new short[readout_data.size()];
+                    for (int i=0; i<readout_data.size(); i++) {
+                        adc_values[i] = readout_data.get(i).shortValue();
+                    }
                     
                     Set<SimTrackerHit> simulated_hits = electrode_data.get(carrier).get(readout_cell).getSimulatedHits();
                     IDetectorElement detector_element = sensor;
CVSspam 0.2.8