GeomConverter/src/org/lcsim/detector/converter/compact
diff -u -r1.6 -r1.7
--- SiTrackerEndcapConverter.java 29 Oct 2007 18:30:10 -0000 1.6
+++ SiTrackerEndcapConverter.java 29 Oct 2007 21:36:37 -0000 1.7
@@ -29,7 +29,7 @@
* Converter for SiTrackerEndcap.
*
* @author Jeremy McCormick, Tim Nelson
- * @version $Id: SiTrackerEndcapConverter.java,v 1.6 2007/10/29 18:30:10 tknelson Exp $
+ * @version $Id: SiTrackerEndcapConverter.java,v 1.7 2007/10/29 21:36:37 jeremy Exp $
*/
public class SiTrackerEndcapConverter
@@ -75,34 +75,45 @@
double layerZ = innerZ + thickness / 2;
- // Layer PV.
+ // Positive endcap.
ITransform3D layerTrans = new Transform3D(new Translation3D(0,0,layerZ));
-
- String layerName = layerLV.getName();
-
+ String layerName = layerLV.getName() + "_positive";
new PhysicalVolume(layerTrans,layerName,layerLV,trackingLV,layern);
-
- // Layer DE.
String layerPath = "/" + trackingPV.getName() + "/" + layerName;
IDetectorElement layerDE = new DetectorElement(layerLV.getName(),null,detector.getNavigator().getPath(layerPath));
- //System.out.println(layerDE.getName() + " -> " + layerPath);
+ // Negative endcap.
+ ITransform3D layerTransReflect = new Transform3D(new Translation3D(0,0,-layerZ), new RotationPassiveXYZ(0,Math.PI,0));
+ String layerNameReflect = layerLV.getName() + "_negative";
+ new PhysicalVolume(layerTransReflect,layerNameReflect,layerLV,trackingLV,layern);
+ String layerPathReflect = "/" + trackingPV.getName() + "/" + layerNameReflect;
+ IDetectorElement layerDEReflect = new DetectorElement(layerNameReflect,null,detector.getNavigator().getPath(layerPathReflect));
// Wedge DE.
for (IPhysicalVolume wedge : layerLV.getDaughters())
{
+ // Positive endcap.
String wedgePath = layerPath + "/" + wedge.getName();
- String wedgeName = subdet.getName() + "_layer" + layern + "_wedge" + wedge.getCopyNumber();
- //System.out.println(wedgeName + " -> " + wedgePath);
+ String wedgeName = layerName + "_wedge" + wedge.getCopyNumber();
IDetectorElement wedgeDE = new DetectorElement(wedgeName,layerDE,detector.getNavigator().getPath(wedgePath));
+
+ // Negative endcap.
+ String wedgePathReflect = layerPathReflect + "/" + wedge.getName();
+ String wedgeNameReflect = layerNameReflect + "_wedge" + wedge.getCopyNumber();
+ IDetectorElement wedgeDEReflect = new DetectorElement(wedgeNameReflect,layerDEReflect,detector.getNavigator().getPath(wedgePathReflect));
// Module DEs.
for (IPhysicalVolume module : wedge.getLogicalVolume().getDaughters())
{
+ // Positive endcap.
String modulePath = wedgePath + "/" + module.getName();
- String moduleName = layerName + "_wedge" + wedge.getCopyNumber() + "_module" + module.getCopyNumber();
- //System.out.println(moduleName + " -> " + modulePath);
+ String moduleName = wedgeName + "_module" + module.getCopyNumber();
new DetectorElement(moduleName,wedgeDE,detector.getNavigator().getPath(modulePath));
+
+ // Negative endcap.
+ String modulePathReflect = wedgePathReflect + "/" + module.getName();
+ String moduleNameReflect = wedgeNameReflect + "_module" + module.getCopyNumber();
+ new DetectorElement(moduleNameReflect,wedgeDEReflect,detector.getNavigator().getPath(modulePathReflect));
}
}
}