8 modified files
lcsim/src/org/lcsim/contrib/SiStripSim
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
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
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
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
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
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
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
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