Print

Print


Commit in GeomConverter on MAIN
src/org/lcsim/geometry/compact/converter/lcdd/PolyhedraEndcapCalorimeter2.java+23-21.3 -> 1.4
testResources/org/lcsim/geometry/subdetector/PolyhedraEndcapCalorimeter2Test.xml+13-41.3 -> 1.4
+36-6
2 modified files
JM: implement visualization for PolyhedraEndcapCalorimeter2 detector, layers, and slices

GeomConverter/src/org/lcsim/geometry/compact/converter/lcdd
PolyhedraEndcapCalorimeter2.java 1.3 -> 1.4
diff -u -r1.3 -r1.4
--- PolyhedraEndcapCalorimeter2.java	6 Feb 2009 19:10:09 -0000	1.3
+++ PolyhedraEndcapCalorimeter2.java	12 Feb 2009 20:07:00 -0000	1.4
@@ -14,10 +14,12 @@
 import org.lcsim.geometry.compact.converter.lcdd.util.SensitiveDetector;
 import org.lcsim.geometry.compact.converter.lcdd.util.Solids;
 import org.lcsim.geometry.compact.converter.lcdd.util.Structure;
+import org.lcsim.geometry.compact.converter.lcdd.util.VisAttributes;
 import org.lcsim.geometry.compact.converter.lcdd.util.Volume;
 import org.lcsim.geometry.layer.LayerStack;
 import org.lcsim.geometry.layer.Layering;
 
+// TODO: rotation to match barrel
 public class PolyhedraEndcapCalorimeter2 extends LCDDSubdetector
 {
     public PolyhedraEndcapCalorimeter2(Element node) throws JDOMException
@@ -55,7 +57,7 @@
         PolyhedraRegular envelopeSolid = new PolyhedraRegular(subdetectorName + "_envelope", numsides, rmin, rmax, subdetectorThickness);
         solids.addSolid(envelopeSolid);
         Volume envelopeVolume = new Volume(subdetectorName + "_volume", envelopeSolid, air);
-        
+                        
         int layerNumber = 0;
         int layerType = 0;
         double layerZ = -subdetectorThickness/2;
@@ -95,6 +97,11 @@
                 		sliceVolume.setSensitiveDetector(sens);
                 	}
                 }
+                // Visualization of slice.
+                if (sliceElement.getAttribute("vis") != null)
+                {
+                    sliceVolume.setVisAttributes(lcdd.getVisAttributes(sliceElement.getAttributeValue("vis")));
+                }
                 structure.addVolume(sliceVolume);
                 sliceZ += sliceThickness/2;
                 Position slicePosition = new Position(sliceName + "_position", 0, 0, sliceZ);
@@ -104,6 +111,13 @@
                 slicePhysVol.addPhysVolID("slice", sliceNumber);
                 sliceNumber++;
             }
+            
+            // Visualization of layer.
+            if (layerElement.getAttribute("vis") != null)
+            {
+                layerVolume.setVisAttributes(lcdd.getVisAttributes(layerElement.getAttributeValue("vis")));
+            }            
+            
             sliceNumber = 0;
             structure.addVolume(layerVolume);        
             int repeat = (int)layerElement.getAttribute("repeat").getDoubleValue();
@@ -122,6 +136,13 @@
             }
             ++layerType;            
         }
+        
+        // Visualization of detector envelope.
+        if (node.getAttribute("vis") != null)
+        {
+            envelopeVolume.setVisAttributes(lcdd.getVisAttributes(node.getAttribute("vis").getValue()));
+        }            
+        
         structure.addVolume(envelopeVolume);
                 
         PhysVol physvol = new PhysVol(envelopeVolume);
@@ -152,4 +173,4 @@
     {
         return true;
     }    
-}
\ No newline at end of file
+}

GeomConverter/testResources/org/lcsim/geometry/subdetector
PolyhedraEndcapCalorimeter2Test.xml 1.3 -> 1.4
diff -u -r1.3 -r1.4
--- PolyhedraEndcapCalorimeter2Test.xml	6 Feb 2009 20:14:18 -0000	1.3
+++ PolyhedraEndcapCalorimeter2Test.xml	12 Feb 2009 20:07:01 -0000	1.4
@@ -24,16 +24,25 @@
   <materials>
   </materials>
 
+  <display> 
+    <vis name="DetectorVis" showDaughters="true" visible="false"/>
+    <vis name="LayerVis" showDaughters="true" visible="false"/>
+    <vis name="SensorVis" r="0.0" g="0.5" b="0.5" showDaughters="false" visible="true"/>
+    <vis name="AbsorberVis" r="0.5" g="0.5" b="0.0" showDaughters="false" visible="true"/>
+  </display>
+
   <detectors>
     <detector id="1" 
               name="PolyhedraEndcapCalorimeterTest" 
               type="PolyhedraEndcapCalorimeter2" 
               readout="CalHits"
-              reflect="true">
+              reflect="true"
+              vis="DetectorVis">
          <dimensions numsides="8" zmin="1000.0" rmin="500.0" rmax="1000.0" />
-         <layer repeat="10">
-           <slice material="Silicon" thickness="2.0" sensitive="yes" />
-           <slice material="Tungsten" thickness="10.0" sensitive="no" />
+         <layer repeat="10" vis="LayerVis">
+           <slice material="Silicon" thickness="2.0" sensitive="yes" vis="SensorVis" />
+           <slice material="Air" thickness="1.0" vis="InvisibleNoDaughters" /> 
+           <slice material="Tungsten" thickness="10.0" sensitive="no" vis="AbsorberVis" />
          </layer>
     </detector>
   </detectors>
CVSspam 0.2.8