GeomConverter/src/org/lcsim/geometry/compact/converter/lcdd
diff -u -r1.15 -r1.16
--- CylindricalEndcapCalorimeter.java 2 Jun 2008 20:37:00 -0000 1.15
+++ CylindricalEndcapCalorimeter.java 21 Feb 2009 23:35:15 -0000 1.16
@@ -13,7 +13,6 @@
import org.lcsim.geometry.compact.converter.lcdd.util.Structure;
import org.lcsim.geometry.compact.converter.lcdd.util.Tube;
import org.lcsim.geometry.compact.converter.lcdd.util.Volume;
-import org.lcsim.geometry.layer.LayerFromCompactCnv;
/**
*
@@ -69,11 +68,11 @@
for (int ll=0; ll<repeat; ll++)
{
double zlayer = z;
- String name1 = detectorName+"_layer"+n;
- Tube tube1 = new Tube(name1);
- Volume volume1 = new Volume(name1+"_volume");
- volume1.setMaterial(air);
- volume1.setSolid(tube1);
+ String layerName = detectorName+"_layer"+n;
+ Tube layerTube = new Tube(layerName);
+ Volume layerVolume = new Volume(layerName+"_volume");
+ layerVolume.setMaterial(air);
+ layerVolume.setSolid(layerTube);
int m = 0;
for (Iterator j = layer.getChildren("slice").iterator(); j.hasNext(); m++)
@@ -91,39 +90,38 @@
tube.setDeltaPhi(Math.PI*2);
solids.addSolid(tube);
- Volume volume = new Volume(name+"_volume");
- volume.setMaterial(lcdd.getMaterial(slice.getAttributeValue("material")));
- volume.setSolid(tube);
- if (sensitive) volume.setSensitiveDetector(sens);
-
- /* FIXME: these need to be called automatically whenever a new volume is created --JM */
- setRegion(lcdd, slice, volume);
- setLimitSet(lcdd, slice, volume);
- setVisAttributes(lcdd, node, volume);
+ Volume sliceVolume = new Volume(name+"_volume");
+ sliceVolume.setMaterial(lcdd.getMaterial(slice.getAttributeValue("material")));
+ sliceVolume.setSolid(tube);
+ if (sensitive) sliceVolume.setSensitiveDetector(sens);
+
+ setRegion(lcdd, slice, sliceVolume);
+ setLimitSet(lcdd, slice, sliceVolume);
+ setVisAttributes(lcdd, slice, sliceVolume);
- structure.addVolume(volume);
+ structure.addVolume(sliceVolume);
- PhysVol physvol = new PhysVol(volume);
+ PhysVol physvol = new PhysVol(sliceVolume);
physvol.setZ(z - zlayer - layerWidth/2 + w/2);
- volume1.addPhysVol(physvol);
+ layerVolume.addPhysVol(physvol);
z += w;
}
- tube1.setZ(layerWidth);
- tube1.setRMin(rmin);
- tube1.setRMax(rmax);
- tube1.setDeltaPhi(Math.PI*2);
+ layerTube.setZ(layerWidth);
+ layerTube.setRMin(rmin);
+ layerTube.setRMax(rmax);
+ layerTube.setDeltaPhi(Math.PI*2);
- PhysVol physvol = new PhysVol(volume1);
+ PhysVol physvol = new PhysVol(layerVolume);
physvol.setZ(zlayer - zmin - totWidth/2 + layerWidth/2);
physvol.addPhysVolID("layer",n);
envelopeVolume.addPhysVol(physvol);
- structure.addVolume(volume1);
- solids.addSolid(tube1);
+ structure.addVolume(layerVolume);
+ solids.addSolid(layerTube);
n++;
- setVisAttributes(lcdd, node, volume1);
+ setVisAttributes(lcdd, layer, layerVolume);
}
}
@@ -150,9 +148,9 @@
solids.addSolid(envelope);
structure.addVolume(envelopeVolume);
-
setVisAttributes(lcdd, node, envelopeVolume);
}
+
public boolean isCalorimeter()
{
return true;