Print

Print


Commit in GeomConverter/src/org/lcsim/geometry/compact/converter/lcdd on MAIN
PolyhedraEndcapCalorimeter.java+69-571.22 -> 1.23
JM: add visualization to PolyEcCal; cleanup

GeomConverter/src/org/lcsim/geometry/compact/converter/lcdd
PolyhedraEndcapCalorimeter.java 1.22 -> 1.23
diff -u -r1.22 -r1.23
--- PolyhedraEndcapCalorimeter.java	30 Jan 2009 19:59:03 -0000	1.22
+++ PolyhedraEndcapCalorimeter.java	12 Feb 2009 21:43:08 -0000	1.23
@@ -94,13 +94,13 @@
         LayerStack layers = Layering.makeLayering(this.node).getLayerStack();
         
         // Total thickness of the subdetector.
-        double subdetector_thickness = org.lcsim.geometry.layer.LayerFromCompactCnv.computeDetectorTotalThickness(node);
+        double subdetectorThickness = org.lcsim.geometry.layer.LayerFromCompactCnv.computeDetectorTotalThickness(node);
         
         // Increase the thickness of the endcap to accomodate a gap between layers.
-        subdetector_thickness += layers.getNumberOfLayers() * INTER_LAYER_GAP;
+        subdetectorThickness += layers.getNumberOfLayers() * INTER_LAYER_GAP;
                 
         // Compute the radial thickness from the user parameters. 
-        double radial_thickness = rmax - rmin;        
+        double radialThickness = rmax - rmin;        
 
         /*
         // The detector envelope volume.
@@ -123,7 +123,7 @@
         double outerFaceLength = (rmax * tan(halfInnerAngle)) * 2;
 
         // Apply tolerances to the computed dimensions.
-        radial_thickness -= STAVE_ENVELOPE_TOLERANCE;
+        radialThickness -= STAVE_ENVELOPE_TOLERANCE;
         innerFaceLength -= STAVE_ENVELOPE_TOLERANCE;
         outerFaceLength -= STAVE_ENVELOPE_TOLERANCE;
                        
@@ -131,9 +131,9 @@
         //System.out.println("outerFaceLength="+outerFaceLength);
         
         Trapezoid sectTrd = new Trapezoid(detName + "_stave_trapezoid");
-        sectTrd.setY2(subdetector_thickness/2);
-        sectTrd.setY1(subdetector_thickness/2);
-        sectTrd.setZ(radial_thickness/2);
+        sectTrd.setY2(subdetectorThickness/2);
+        sectTrd.setY1(subdetectorThickness/2);
+        sectTrd.setZ(radialThickness/2);
         sectTrd.setX1(innerFaceLength/2);
         sectTrd.setX2(outerFaceLength/2);
         
@@ -144,71 +144,71 @@
 
         // Build the layers.
         int layer_number = 0;
-        double layer_position_y = subdetector_thickness / 2;
+        double layerPositionY = subdetectorThickness / 2;
         
         // DEBUG
-        layer_position_y -= INTER_LAYER_GAP;
+        layerPositionY -= INTER_LAYER_GAP;
         for (Iterator i = node.getChildren("layer").iterator(); i.hasNext();)
         {
-            Element layer_element = (Element) i.next();
+            Element layerElement = (Element) i.next();
 
-            int repeat = (int)layer_element.getAttribute("repeat").getDoubleValue();
+            int repeat = (int)layerElement.getAttribute("repeat").getDoubleValue();
 
             for ( int j=0; j<repeat; j++)
             {
-            	String layer_name = detName + "_stave_layer" + layer_number;;
+            	String layerName = detName + "_stave_layer" + layer_number;;
 
-            	double layer_thickness = layers.getLayer(layer_number).getThickness();
+            	double layerThickness = layers.getLayer(layer_number).getThickness();
 
-            	layer_position_y -= layer_thickness / 2;
+            	layerPositionY -= layerThickness / 2;
 
             	// Layer position.
-                Position layer_position = new Position(layer_name + "_position");
-                layer_position.setY(layer_position_y);
-                define.addPosition(layer_position);
+                Position layerPosition = new Position(layerName + "_position");
+                layerPosition.setY(layerPositionY);
+                define.addPosition(layerPosition);
 
                 // Layer trapezoid.
-                Trapezoid layer_trd = new Trapezoid(layer_name + "_trapezoid");
+                Trapezoid layerTrd = new Trapezoid(layerName + "_trapezoid");
                 
                 double layerInnerFaceLength=innerFaceLength-LAYER_ENVELOPE_TOLERANCE;
                 double layerOuterFaceLength=outerFaceLength-LAYER_ENVELOPE_TOLERANCE;
-                double layerRadialThickness=radial_thickness-LAYER_ENVELOPE_TOLERANCE;
+                double layerRadialThickness=radialThickness-LAYER_ENVELOPE_TOLERANCE;
                 
-                layer_trd.setX1(layerInnerFaceLength/2);
-                layer_trd.setX2(layerOuterFaceLength/2);
-                layer_trd.setY1(layer_thickness/2);
-                layer_trd.setY2(layer_thickness/2);
-                layer_trd.setZ(layerRadialThickness/2);
+                layerTrd.setX1(layerInnerFaceLength/2);
+                layerTrd.setX2(layerOuterFaceLength/2);
+                layerTrd.setY1(layerThickness/2);
+                layerTrd.setY2(layerThickness/2);
+                layerTrd.setZ(layerRadialThickness/2);
                                 
-                solids.addSolid(layer_trd);
+                solids.addSolid(layerTrd);
 
-                Volume layer_volume = new Volume(layer_name);
-                layer_volume.setSolid(layer_trd);
-                layer_volume.setMaterial(lcdd.getMaterial("Air"));
+                Volume layerVolume = new Volume(layerName);
+                layerVolume.setSolid(layerTrd);
+                layerVolume.setMaterial(lcdd.getMaterial("Air"));
 
                 int slice_number = 0;
-                double slice_position_y = layer_thickness / 2;
-                for ( Iterator k = layer_element.getChildren("slice").iterator(); k.hasNext();)
+                double slice_position_y = layerThickness / 2;
+                for ( Iterator k = layerElement.getChildren("slice").iterator(); k.hasNext();)
                 {
-                	Element slice_element = (Element)k.next();
+                	Element sliceElement = (Element)k.next();
 
-                	String slice_name = layer_name + "_slice" + slice_number;
+                	String sliceName = layerName + "_slice" + slice_number;
 
-                	Attribute s = slice_element.getAttribute("sensitive");
+                	Attribute s = sliceElement.getAttribute("sensitive");
                     boolean sensitive = s != null && s.getBooleanValue();
 
-                    double slice_thickness = slice_element.getAttribute("thickness").getDoubleValue();
+                    double slice_thickness = sliceElement.getAttribute("thickness").getDoubleValue();
                     
                     // Apply tolerance factor to given slice thickness.
                     //slice_thickness -= SLICE_TOLERANCE;
                     
                     slice_position_y -=  slice_thickness / 2;
 
-                    Position slicePosition = new Position(slice_name + "_position");
+                    Position slicePosition = new Position(sliceName + "_position");
                     slicePosition.setY(slice_position_y);
                     define.addPosition(slicePosition);
 
-                    Trapezoid sliceTrd = new Trapezoid(slice_name + "_trapezoid");
+                    Trapezoid sliceTrd = new Trapezoid(sliceName + "_trapezoid");
                     
                     double sliceInnerFaceLength = layerInnerFaceLength - SLICE_ENVELOPE_TOLERANCE;
                     double sliceOuterFaceLength = layerOuterFaceLength - SLICE_ENVELOPE_TOLERANCE;
@@ -222,22 +222,27 @@
                     
                     solids.addSolid(sliceTrd);
 
-                    Volume sliceVolume = new Volume(slice_name);
+                    Volume sliceVolume = new Volume(sliceName);
                     sliceVolume.setSolid(sliceTrd);
-                    Material sliceMaterial = lcdd.getMaterial(slice_element.getAttributeValue("material"));
-                    sliceVolume.setMaterial(sliceMaterial);
+                    sliceVolume.setMaterial(lcdd.getMaterial(sliceElement.getAttributeValue("material")));
+                    
                     if ( sensitive ) sliceVolume.setSensitiveDetector(sens);
+                    
+                    if (sliceElement.getAttribute("vis") != null)
+                    {
+                        sliceVolume.setVisAttributes(lcdd.getVisAttributes(sliceElement.getAttributeValue("vis")));
+                    }
 
-                    setRegion(lcdd, slice_element, sliceVolume);
-                    setLimitSet(lcdd, slice_element, sliceVolume);
+                    setRegion(lcdd, sliceElement, sliceVolume);
+                    setLimitSet(lcdd, sliceElement, sliceVolume);
 
-                    setVisAttributes(lcdd, node, sliceVolume);
+                    //setVisAttributes(lcdd, node, sliceVolume);
                     structure.addVolume(sliceVolume);
 
                     PhysVol slicePhysVol = new PhysVol(sliceVolume);
                     slicePhysVol.setPosition(slicePosition);
                     slicePhysVol.addPhysVolID("slice", slice_number);
-                    layer_volume.addPhysVol(slicePhysVol);
+                    layerVolume.addPhysVol(slicePhysVol);
 
                     // The slice thickness is the original, NOT adjusted for tolerance,
                     // so that the center of the slice is in the right place with tolerance
@@ -247,22 +252,25 @@
                     // Increment the slice counter.
                     ++slice_number;
                 }
+                                
+                lcdd.add(layerVolume);
 
-                lcdd.add(layer_volume);
-
-                setRegion(lcdd, layer_element, layer_volume);
-                setLimitSet(lcdd, layer_element, layer_volume);
-                setVisAttributes(lcdd, node, layer_volume);
+                setRegion(lcdd, layerElement, layerVolume);
+                setLimitSet(lcdd, layerElement, layerVolume);
+                if (layerElement.getAttribute("vis") != null)
+                {
+                    layerVolume.setVisAttributes(lcdd.getVisAttributes(layerElement.getAttributeValue("vis")));
+                }
+                //setVisAttributes(lcdd, node, layerVolume);
 
-                PhysVol layer_physvol = new PhysVol(layer_volume);
-                layer_physvol.setPosition(layer_position);
+                PhysVol layer_physvol = new PhysVol(layerVolume);
+                layer_physvol.setPosition(layerPosition);
                 layer_physvol.addPhysVolID("layer", layer_number);
                 sectVolume.addPhysVol(layer_physvol);
 
-                layer_position_y -= layer_thickness / 2;
+                layerPositionY -= layerThickness / 2;
                 
-                // DEBUG
-                layer_position_y -= INTER_LAYER_GAP;
+                //layerPositionY -= INTER_LAYER_GAP;
 
                 ++layer_number;                    
             }
@@ -271,7 +279,11 @@
         }        
 
         // Add the section volume after layers created.
-        setVisAttributes(lcdd, node, sectVolume);
+        if (node.getAttribute("vis") != null)
+        {
+            sectVolume.setVisAttributes(lcdd.getVisAttributes(node.getAttributeValue("vis")));
+        }
+        
         structure.addVolume(sectVolume);
 
         // Place the sections.
@@ -281,7 +293,7 @@
 
         //System.out.println("radial_thickness: " + radial_thickness);
 
-        double sectCenterRadius = rmin + radial_thickness / 2;
+        double sectCenterRadius = rmin + radialThickness / 2;
         //System.out.println("sectCenterRadius: " + sectCenterRadius);
         //double rotY = -offsetRotation;
         double rotY = 0.;
@@ -303,7 +315,7 @@
             Position position = new Position(detName + "_stave0_module" + moduleNumber + "_position");
             position.setX(posX);
             position.setY(sectPosY);
-            position.setZ(zmin + subdetector_thickness/2);
+            position.setZ(zmin + subdetectorThickness/2);
             
             Rotation rotation = new Rotation(detName + "_stave0_module" + moduleNumber + "_rotation");
             rotation.setX(rotX);
@@ -346,7 +358,7 @@
                 Position reflect_position = new Position(detName + "_stave0_module" + moduleNumber + "_reflect_position");
                 reflect_position.setX(posX);
                 reflect_position.setY(sectPosY);
-                reflect_position.setZ(-zmin-subdetector_thickness/2);
+                reflect_position.setZ(-zmin-subdetectorThickness/2);
                 define.addPosition(reflect_position);
                 
                 PhysVol physvol2 = new PhysVol(sectVolume);
CVSspam 0.2.8