lcsim/test/org/lcsim/detector/driver
diff -N TrackerDigitizationDriverTest.java
--- TrackerDigitizationDriverTest.java 3 Dec 2007 23:30:11 -0000 1.7
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,155 +0,0 @@
-package org.lcsim.detector.driver;
-
-import java.io.File;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Set;
-import java.util.SortedMap;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.lcsim.event.EventHeader;
-import org.lcsim.event.SimTrackerHit;
-import org.lcsim.event.RawTrackerHit;
-import org.lcsim.event.base.BaseRawTrackerHit;
-import org.lcsim.util.Driver;
-import org.lcsim.util.cache.FileCache;
-import org.lcsim.util.loop.LCSimLoop;
-import org.lcsim.detector.IDetectorElement;
-import org.lcsim.detector.IReadout;
-
-import org.lcsim.detector.tracker.silicon.SiSensor;
-import org.lcsim.detector.tracker.silicon.ChargeCarrier;
-
-import org.lcsim.contrib.SiStripSim.SiSensorSim;
-import org.lcsim.contrib.SiStripSim.CDFSiSensorSim;
-import org.lcsim.contrib.SiStripSim.ReadoutChip;
-import org.lcsim.contrib.SiStripSim.Kpix;
-
-/**
- * Reads single muon events generated in sid01_polyhedra, which uses
- * SiTrackerBarrel. For DetectorElements where there is a
- * Readout containing one hit, check that the hit from the event
- * and the DE's have matching cell id.
- */
-public class TrackerDigitizationDriverTest extends TestCase
-{
- public TrackerDigitizationDriverTest(String testName)
- {
- super(testName);
- }
-
- public static Test suite()
- {
- return new TestSuite(TrackerDigitizationDriverTest.class);
- }
-
- public void setUp()
- {
- java.lang.Runtime.getRuntime().gc();
- }
-
- public void testReadout() throws Exception
- {
- URL url =
- new URL("http://www.lcsim.org/test/lcio/mu_10.0GeV_Theta90_SLIC-v2r3p7_geant4-v9r0p1_LCPhys_SiTrackerBarrelTest00.slcio");
- FileCache cache = new FileCache();
- File file = cache.getCachedFile(url);
-
- LCSimLoop loop = new LCSimLoop();
- loop.setLCIORecordSource(file);
- loop.add( new SimTrackerHitIdentifierReadoutDriver(new String[] {"SiTrackerBarrel_RO"} ) );
- loop.add( new TestDriver() );
- loop.loop(10, null);
- loop.dispose();
- }
-
- class TestDriver
- extends Driver
- {
- protected void process(EventHeader header)
- {
-
- boolean found_hits = false;
-
- // Setup simulation and readout
- SiSensorSim si_simulation = new CDFSiSensorSim();
- ReadoutChip kpix = new Kpix();
-
- IDetectorElement tkr = header.getDetector().getSubdetector("SiTrackerBarrel").getDetectorElement();
- for ( IDetectorElement layer : tkr.getChildren() )
- {
- for ( IDetectorElement module : layer.getChildren() )
- {
- for ( IDetectorElement sensorDE : module.getChildren() )
- {
- SiSensor sensor = (SiSensor)sensorDE;
-
- IReadout ro = sensor.getReadout();
- List<SimTrackerHit> hits = ro.getHits(SimTrackerHit.class);
-
- if (!hits.isEmpty())
- {
-
-// System.out.println("\n"+"Simulating sensor: "+sensor.getName());
-
- List<RawTrackerHit> raw_hits = new ArrayList<RawTrackerHit>();
- si_simulation.simulate(sensor);
-
- for (ChargeCarrier carrier : ChargeCarrier.values())
- {
- if (sensor.hasElectrodesOnSide(carrier))
- {
-
-// System.out.println("Readout data: "+si_simulation.getReadoutData(carrier).getChargeMap());
-
- SortedMap<Integer,List<Integer>> digitized_hits = kpix.readout(si_simulation.getReadoutData(carrier),sensor.getReadoutElectrodes(carrier));
-
- // Create 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()};
-
- Set<SimTrackerHit> simulated_hits = si_simulation.getReadoutData(carrier).get(readout_cell).getSimulatedHits();
- IDetectorElement detector_element = sensor;
-
- RawTrackerHit raw_hit = new BaseRawTrackerHit(time,cell_id,adc_values,new ArrayList<SimTrackerHit>(simulated_hits),detector_element);
- raw_hits.add(raw_hit);
- found_hits = true;
-
-// System.out.println("ADC data for cell "+readout_cell+": "+
-// raw_hit.getADCValues()[0]+", "+raw_hit.getADCValues()[1]);
-
- double signal = kpix.decodeCharge(raw_hit);
-// System.out.println("Readout data for cell "+readout_cell+": "+signal);
-
- }
-
- }
- }
-
- // Clear simulation and add RawTrackerHits to event
- si_simulation.clearReadout();
- header.put("RawBarrelTrackerHits",raw_hits,RawTrackerHit.class,0,"Kpix");
-
- }
-
- }
- }
- }
-
- assertTrue(found_hits);
-
- }
-
-
-
- }
-}
-