GeomConverter/src/org/lcsim/geometry/compact/converter/lcdd
diff -u -r1.1 -r1.2
--- PolyhedraEndcapCalorimeter.java 26 Aug 2005 02:37:05 -0000 1.1
+++ PolyhedraEndcapCalorimeter.java 26 Aug 2005 19:02:49 -0000 1.2
@@ -84,12 +84,6 @@
envelopeVolume.setSolid(polyhedra);
envelopeVolume.setMaterial(air);
- PhysVol envelopePhysvol = new PhysVol(envelopeVolume);
- envelopePhysvol.setRotation(rot);
- envelopePhysvol.addPhysVolID("system",id);
- envelopePhysvol.addPhysVolID("barrel",0);
- motherVolume.addPhysVol(envelopePhysvol);
-
/* single stave trapezoid */
double innerAngle = Math.PI * 2 / numsides;
double halfInnerAngle = innerAngle/2;
@@ -215,6 +209,27 @@
sectPosY = sectCenterRadius * cos(rotY);
}
+ /* place envelope physical volume */
+ boolean reflect = node.getAttribute("reflect").getBooleanValue();
+ Rotation reflection = lcdd.getDefine().getRotation("reflect_rot");
+
+ PhysVol envelopePhysvol = new PhysVol(envelopeVolume);
+ envelopePhysvol.setZ(zmin + layersThickness/2);
+ envelopePhysvol.addPhysVolID("system",id);
+ envelopePhysvol.addPhysVolID("barrel",1);
+ motherVolume.addPhysVol(envelopePhysvol);
+
+ /* place reflected physical volume */
+ if (reflect)
+ {
+ PhysVol physvol2 = new PhysVol(envelopeVolume);
+ physvol2.setZ(-zmin-layersThickness/2);
+ physvol2.setRotation(reflection);
+ physvol2.addPhysVolID("system",id);
+ physvol2.addPhysVolID("barrel",2);
+ motherVolume.addPhysVol(physvol2);
+ }
+
/* add envelope volume after staves */
structure.addVolume(envelopeVolume);
}