GeomConverter/src/org/lcsim/geometry/compact/converter/lcdd
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);