lcsim/test/org/lcsim/detector/driver
diff -u -r1.1 -r1.2
--- TrackerEndcapDigitizationDriverTest.java 6 Dec 2007 22:29:59 -0000 1.1
+++ TrackerEndcapDigitizationDriverTest.java 7 Dec 2007 22:19:50 -0000 1.2
@@ -38,122 +38,122 @@
*/
public class TrackerEndcapDigitizationDriverTest extends TestCase
{
- public TrackerEndcapDigitizationDriverTest(String testName)
- {
- super(testName);
- }
-
- public static Test suite()
- {
- return new TestSuite(TrackerEndcapDigitizationDriverTest.class);
- }
-
- public void setUp()
- {
- java.lang.Runtime.getRuntime().gc();
- }
-
- public void testReadout() throws Exception
- {
-
- System.out.println("\n"+"STARTING!!!!!!!!!!!!!!!!!!!!!!!!!!! ");
-
-
- URL url = new URL("http://www.lcsim.org/test/lcio/mu-_10GeV_SLIC-v2r3p10_geant4-v9r0p1_LCPhys_SiTrackerEndcapTest00.slcio");
-
- FileCache cache = new FileCache();
- File file = cache.getCachedFile(url);
-
- LCSimLoop loop = new LCSimLoop();
- loop.setLCIORecordSource(file);
- loop.add( new SimTrackerHitIdentifierReadoutDriver(new String[] {"SiTrackerEndcap_RO"} ) );
- loop.add( new TestDriver() );
- loop.loop(10, null);
- loop.dispose();
- }
-
- class TestDriver
- extends Driver
- {
- protected void process(EventHeader header)
- {
-
- System.out.println("\n"+"Processing endcap event: ");
-
- boolean found_hits = false;
-
- // Setup simulation and readout
- SiSensorSim si_simulation = new CDFSiSensorSim();
- ReadoutChip kpix = new Kpix();
-
- IDetectorElement tkr = header.getDetector().getSubdetector("SiTrackerEndcap").getDetectorElement();
-
- List<SiSensor> sensors = tkr.findDescendants(SiSensor.class);
-
- for ( IDetectorElement sensorDE : sensors)
- {
- //System.out.println("casting to sensor -> " + sensorDE.getName());
-
- 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("RawEndcapTrackerHits",raw_hits,RawTrackerHit.class,0,"Kpix");
- }
- }
-
- assertTrue(found_hits);
-
- }
-
-
-
- }
+ public TrackerEndcapDigitizationDriverTest(String testName)
+ {
+ super(testName);
+ }
+
+ public static Test suite()
+ {
+ return new TestSuite(TrackerEndcapDigitizationDriverTest.class);
+ }
+
+ public void setUp()
+ {
+ java.lang.Runtime.getRuntime().gc();
+ }
+
+ public void testReadout() throws Exception
+ {
+
+ System.out.println("\n"+"STARTING!!!!!!!!!!!!!!!!!!!!!!!!!!! ");
+
+
+ URL url = new URL("http://www.lcsim.org/test/lcio/mu-_10GeV_SLIC-v2r3p10_geant4-v9r0p1_LCPhys_SiTrackerEndcapTest00.slcio");
+
+ FileCache cache = new FileCache();
+ File file = cache.getCachedFile(url);
+
+ LCSimLoop loop = new LCSimLoop();
+ loop.setLCIORecordSource(file);
+ loop.add( new SimTrackerHitIdentifierReadoutDriver(new String[] {"SiTrackerEndcap_RO"} ) );
+ loop.add( new TestDriver() );
+ loop.loop(10, null);
+ loop.dispose();
+ }
+
+ class TestDriver
+ extends Driver
+ {
+ protected void process(EventHeader header)
+ {
+
+ System.out.println("\n"+"Processing endcap event: ");
+
+ boolean found_hits = false;
+
+ // Setup simulation and readout
+ SiSensorSim si_simulation = new CDFSiSensorSim();
+ ReadoutChip kpix = new Kpix();
+
+ IDetectorElement tkr = header.getDetector().getSubdetector("SiTrackerEndcap").getDetectorElement();
+
+ List<SiSensor> sensors = tkr.findDescendants(SiSensor.class);
+
+ for ( IDetectorElement sensorDE : sensors)
+ {
+ //System.out.println("casting to sensor -> " + sensorDE.getName());
+
+ 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("RawEndcapTrackerHits",raw_hits,RawTrackerHit.class,0,"Kpix");
+ }
+ }
+
+ assertTrue(found_hits);
+
+ }
+
+
+
+ }
}
GeomConverter/src/org/lcsim/detector/converter/compact
diff -u -r1.18 -r1.19
--- SiTrackerEndcapConverter.java 6 Dec 2007 23:25:19 -0000 1.18
+++ SiTrackerEndcapConverter.java 7 Dec 2007 22:19:51 -0000 1.19
@@ -58,12 +58,12 @@
* Converter for SiTrackerEndcap.
*
* @author Jeremy McCormick, Tim Nelson
- * @version $Id: SiTrackerEndcapConverter.java,v 1.18 2007/12/06 23:25:19 jeremy Exp $
+ * @version $Id: SiTrackerEndcapConverter.java,v 1.19 2007/12/07 22:19:51 tknelson Exp $
*/
public class SiTrackerEndcapConverter
-extends AbstractSubdetectorConverter
-implements ISubdetectorConverter
+ extends AbstractSubdetectorConverter
+ implements ISubdetectorConverter
{
/*
public IDetectorElement makeSubdetectorDetectorElement(Detector detector, Subdetector subdetector)
@@ -72,13 +72,14 @@
subdetector.setDetectorElement(endcapDE);
return endcapDE;
}
- */
-
+ */
+
private ModuleParameters moduleParameters = null;
public IIdentifierHelper makeIdentifierHelper(Subdetector subdetector, SystemMap systemMap)
{
- try {
+ try
+ {
return new SiTrackerIdentifierHelper(makeIdentifierDictionary(subdetector), systemMap);
}
catch (FieldNotFoundException x)
@@ -89,7 +90,7 @@
{
throw new RuntimeException(x);
}
- }
+ }
public void convert(Subdetector subdet, Detector detector)
{
@@ -100,26 +101,27 @@
IDetectorElement endcapDE = subdet.getDetectorElement();
- DetectorIdentifierHelper helper = (DetectorIdentifierHelper)endcapDE.getIdentifierHelper();
- int nfields = helper.getIdentifierDictionary().getNumberOfFields();
-
+ DetectorIdentifierHelper helper = (DetectorIdentifierHelper)endcapDE.getIdentifierHelper();
+ int nfields = helper.getIdentifierDictionary().getNumberOfFields();
+
IDetectorElement endcapPosDE = null;
IDetectorElement endcapNegDE = null;
- try {
+ try
+ {
// Positive endcap DE
IExpandedIdentifier endcapPosId = new ExpandedIdentifier(nfields);
endcapPosId.setValue(helper.getFieldIndex("system"), subdet.getSystemID());
endcapPosId.setValue(helper.getFieldIndex("barrel"), helper.getEndcapPositiveValue());
endcapPosDE = new DetectorElement(subdet.getName() + "_positive", endcapDE);
endcapPosDE.setIdentifier(helper.pack(endcapPosId));
-
+
// Negative endcap DE.
IExpandedIdentifier endcapNegId = new ExpandedIdentifier(nfields);
endcapNegId.setValue(helper.getFieldIndex("system"), subdet.getSystemID());
endcapNegId.setValue(helper.getFieldIndex("barrel"), helper.getEndcapNegativeValue());
endcapNegDE = new DetectorElement(subdet.getName() + "_negative", endcapDE);
endcapNegDE.setIdentifier(helper.pack(endcapNegId));
-
+
}
catch (Exception x)
{
@@ -637,7 +639,7 @@
// TODO: Need to have SiTrackerIdentifierHelper available before this is called.
private void setupSensorDetectorElements(Subdetector subdet) throws Exception
- {
+ {
SiTrackerIdentifierHelper id_helper = (SiTrackerIdentifierHelper)subdet.getDetectorElement().getIdentifierHelper();
if (id_helper == null)
@@ -676,7 +678,7 @@
{
// Set the System ID.
expId.setValue(iddict.getFieldIndex("system"), subdet.getSystemID());
-
+
// Set the barrel-endcap flag.
if (id_helper.isEndcapPositive(endcap.getIdentifier()))
{
@@ -703,7 +705,7 @@
expId.setValue(iddict.getFieldIndex("module"),((SiTrackerModule)module).getModuleId());
// Set the sensor id for double-sided.
- expId.setValue(iddict.getFieldIndex("sensor"),sensorId);
+ expId.setValue(iddict.getFieldIndex("sensor"),sensorId);
}
catch (FieldNotFoundException x)
{
@@ -789,9 +791,13 @@
//System.out.println(" electrodes_transform translation: \n"+electrodes_transform.getTranslation().getTranslationVector());
//System.out.println(" electrodes_transform rotation: \n"+electrodes_transform.getRotation().getRotationMatrix());
- // Free calculation of sense electrodes, readout electrodes determined thereon
- SiSensorElectrodes sense_electrodes = new SiStrips(ChargeCarrier.HOLE,0.025,sensor,electrodes_transform);
- SiSensorElectrodes readout_electrodes = new SiStrips(ChargeCarrier.HOLE,0.050,(sense_electrodes.getNCells()+1)/2,sensor,electrodes_transform);
+ // Free calculation of readout electrodes, sense electrodes determined thereon
+ SiSensorElectrodes readout_electrodes = new SiStrips(ChargeCarrier.HOLE,0.050,sensor,electrodes_transform);
+ SiSensorElectrodes sense_electrodes = new SiStrips(ChargeCarrier.HOLE,0.025,(readout_electrodes.getNCells()*2-1),sensor,electrodes_transform);
+
+// // Free calculation of sense electrodes, readout electrodes determined thereon
+// SiSensorElectrodes sense_electrodes = new SiStrips(ChargeCarrier.HOLE,0.025,sensor,electrodes_transform);
+// SiSensorElectrodes readout_electrodes = new SiStrips(ChargeCarrier.HOLE,0.050,(sense_electrodes.getNCells()+1)/2,sensor,electrodes_transform);
sensor.setSenseElectrodes(sense_electrodes);
sensor.setReadoutElectrodes(readout_electrodes);