lcsim/sandbox
diff -N SensorTest.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ SensorTest.java 13 Feb 2012 19:39:54 -0000 1.1
@@ -0,0 +1,83 @@
+package org.lcsim;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.lcsim.detector.IDetectorElement;
+import org.lcsim.detector.tracker.silicon.SiSensor;
+import org.lcsim.geometry.Detector;
+import org.lcsim.geometry.subdetector.PolyhedraBarrelCalorimeter2;
+import org.lcsim.geometry.subdetector.PolyhedraEndcapCalorimeter2;
+import org.lcsim.geometry.subdetector.SiTrackerBarrel;
+import org.lcsim.geometry.subdetector.SiTrackerEndcap2;
+import org.lcsim.geometry.util.DetectorLocator;
+
+/**
+ * Find all the sensors for some Subdetectors and print the first N global to local transforms from each list.
+ * @author Jeremy McCormick
+ */
+public class SensorTest extends TestCase
+{
+ String trackerBarrelName = "SiTrackerBarrel";
+ String trackerEndcapName = "SiTrackerEndcap";
+ String hadBarrelName = "HcalBarrel";
+ String hadEndcapName = "HcalEndcap";
+
+ final int NPRINT = 10;
+
+ public void testSensorAccess()
+ {
+ // Get the detector.
+ Detector detector = DetectorLocator.findDetector("sidloi3");
+
+ // SVT Barrel.
+ List<SiSensor> trackerBarrelSensors = ((SiTrackerBarrel)detector.getSubdetector(trackerBarrelName)).getDetectorElement().findDescendants(SiSensor.class);
+ System.out.println("Got " + trackerBarrelSensors.size() + " sensors in " + trackerBarrelName);
+ System.out.println("Global to local transforms...");
+ for (int i=0; i<NPRINT; i++)
+ {
+ System.out.println(trackerBarrelSensors.get(0).getName() + " - " + trackerBarrelSensors.get(0).getGeometry().getGlobalToLocal());
+ }
+
+ // SVT Endcap.
+ List<SiSensor> trackerEndcapSensors = ((SiTrackerEndcap2)detector.getSubdetector(trackerEndcapName)).getDetectorElement().findDescendants(SiSensor.class);
+ System.out.println("Got " + trackerEndcapSensors.size() + " sensors in " + trackerEndcapName);
+ System.out.println("Global to local transforms...");
+ for (int i=0; i<NPRINT; i++)
+ {
+ System.out.println(trackerEndcapSensors.get(0).getName() + " - " + trackerEndcapSensors.get(0).getGeometry().getGlobalToLocal());
+ }
+
+ // HAD Barrel.
+ List<IDetectorElement> hadBarrelSensors = new ArrayList<IDetectorElement>();
+ for (IDetectorElement stave : ((PolyhedraBarrelCalorimeter2)detector.getSubdetector(hadBarrelName)).getDetectorElement().getChildren())
+ {
+ for (IDetectorElement sensor : stave.getChildren())
+ {
+ hadBarrelSensors.add(sensor);
+ }
+ }
+ System.out.println("Got " + hadBarrelSensors.size() + " sensors in " + hadBarrelName);
+ for (int i=0; i<NPRINT; i++)
+ {
+ System.out.println(hadBarrelSensors.get(0).getName() + " - " + hadBarrelSensors.get(0).getGeometry().getGlobalToLocal());
+ }
+
+ // HAD Endcap.
+ List<IDetectorElement> hadEndcapSensors = new ArrayList<IDetectorElement>();
+ for (IDetectorElement endcap : ((PolyhedraEndcapCalorimeter2)detector.getSubdetector(hadEndcapName)).getDetectorElement().getChildren())
+ {
+ for (IDetectorElement layer : endcap.getChildren())
+ {
+ hadEndcapSensors.add(layer);
+ }
+ }
+ System.out.println("Got " + hadEndcapSensors.size() + " sensors in " + hadEndcapName);
+ for (int i=0; i<NPRINT; i++)
+ {
+ System.out.println(hadEndcapSensors.get(0).getName() + " - " + hadEndcapSensors.get(0).getGeometry().getGlobalToLocal());
+ }
+ }
+}
\ No newline at end of file