Commit in lcsim on MAIN
project.xml+21.64 -> 1.65
test/org/lcsim/detector/driver/TrackingVolumeTest.java+87added 1.1
+89
1 added + 1 modified, total 2 files


lcsim
project.xml 1.64 -> 1.65
diff -u -r1.64 -r1.65
--- project.xml	17 Oct 2007 02:06:25 -0000	1.64
+++ project.xml	21 Nov 2007 01:10:51 -0000	1.65
@@ -187,6 +187,8 @@
         <exclude>org/lcsim/detector/driver/SimTrackerHitIdentifierReadoutDriverTest.java</exclude>
         <exclude>org/lcsim/NonTrivialPFASingleEventTest.java</exclude>
         <exclude>org/lcsim/conditions/DetectorLocator_Test.java</exclude>
+	<!-- Prints a lot of stuff. -->
+	<exclude>org/lcsim/detector/driver/TrackingVolumeTest.java</exclude>
         <!-- Exclude broken stuff -->
         <exclude>org/lcsim/detector/driver/DetectorIdHelperTest.java</exclude>
         <exclude>org/lcsim/detector/driver/NewSimTrackerDigitizationTest.java</exclude>

lcsim/test/org/lcsim/detector/driver
TrackingVolumeTest.java added at 1.1
diff -N TrackingVolumeTest.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ TrackingVolumeTest.java	21 Nov 2007 01:10:51 -0000	1.1
@@ -0,0 +1,87 @@
+package org.lcsim.detector.driver;
+
+import junit.framework.TestCase;
+
+import java.io.File;
+import java.net.URL;
+
+import org.lcsim.util.Driver;
+import org.lcsim.util.loop.LCSimLoop;
+
+import org.lcsim.util.cache.FileCache;
+
+import org.lcsim.geometry.Detector;
+import org.lcsim.detector.ILogicalVolume;
+import org.lcsim.detector.IPhysicalVolume;
+import org.lcsim.detector.solids.Tube;
+
+public class TrackingVolumeTest
+extends TestCase
+{
+	public void testTrackingVolume() throws Exception
+	{
+        URL url =
+            new URL("http://www.lcsim.org/test/lcio/K0L_Theta90_5GeV_slic_1_13_9_geant4_8_0_p01_2006-05-15_sid00.slcio");
+        FileCache cache = new FileCache();
+        File file = cache.getCachedFile(url);
+    
+        LCSimLoop loop = new LCSimLoop();
+        loop.setLCIORecordSource(file);
+        loop.add( new TrackingVolumeAccessDriver() );
+        loop.loop(1, null);
+        loop.dispose();
+	}		 
+
+	class TrackingVolumeAccessDriver
+	extends Driver
+	{
+		protected void detectorChanged(Detector detector)
+		{
+			StringBuffer buff = new StringBuffer();
+			
+			// Get the tracking volume from the Detector.
+			ILogicalVolume trackingVolume = detector.getTrackingVolume().getLogicalVolume();
+			
+			buff.append(trackingVolume.getName());
+			buff.append('\n');
+			
+			// Loop over the layer envelopes in the tracking volume.  These have no real
+			// material and are composed of Air.
+			for (IPhysicalVolume layer : trackingVolume.getDaughters())
+			{
+				buff.append("  " + layer.getName());
+				buff.append('\n');
+				// Loop over the slices within the layer.  The slices contain the material.
+				for (IPhysicalVolume slice : layer.getLogicalVolume().getDaughters())
+				{
+					buff.append("    " + slice.getName() + " : ");
+				
+					// Get the Tube for the slice.
+					Tube sliceTube = (Tube)layer.getLogicalVolume().getSolid();
+					
+					// Looks like part of the barrel.  
+					if (layer.getName().contains("Barrel"))
+					{
+						// Print thickness for the barrel which corresponds to outer radius minus inner radius.
+						buff.append(sliceTube.getOuterRadius() - sliceTube.getInnerRadius() + " mm ");						
+					}
+					// Looks like part of the endcap.
+					else if (layer.getName().contains("Endcap") || layer.getName().contains("positive") || layer.getName().contains("negative"))
+					{
+						// Print thickness for the endcap which correponds to Z.
+						buff.append(sliceTube.getZHalfLength() * 2 + " mm ");																
+					}
+					// Don't know what it is!  Ignore it.
+					else 
+					{}
+					
+					// Print material name.
+					buff.append(slice.getLogicalVolume().getMaterial().getName());
+					buff.append('\n');
+				}	
+			}
+
+			System.out.println(buff.toString());
+		}				
+	}
+}
\ No newline at end of file
CVSspam 0.2.8