Author: [log in to unmask]
Date: Thu Jun 16 17:34:32 2016
New Revision: 4406
Log:
Fix issue where insideTrackingVolume flag was ignored.
Modified:
java/trunk/detector-model/src/main/java/org/lcsim/detector/converter/compact/HPSTracker2Converter.java
Modified: java/trunk/detector-model/src/main/java/org/lcsim/detector/converter/compact/HPSTracker2Converter.java
=============================================================================
--- java/trunk/detector-model/src/main/java/org/lcsim/detector/converter/compact/HPSTracker2Converter.java (original)
+++ java/trunk/detector-model/src/main/java/org/lcsim/detector/converter/compact/HPSTracker2Converter.java Thu Jun 16 17:34:32 2016
@@ -63,9 +63,14 @@
if (trackingMaterial == null) {
trackingMaterial = MaterialStore.getInstance().get("Air");
}
-
- // Get the tracking volume for module placement.
- ILogicalVolume trackingVolume = detector.getTrackingVolume().getLogicalVolume();
+
+ // Get the mother volume.
+ ILogicalVolume motherVolume = null;
+ if (subdet.isInsideTrackingVolume()) {
+ motherVolume = detector.getTrackingVolume().getLogicalVolume();
+ } else {
+ motherVolume = detector.getWorldVolume().getLogicalVolume();
+ }
// Get ID helper and dictionary for subdetector.
DetectorIdentifierHelper helper = (DetectorIdentifierHelper) subdet.getDetectorElement().getIdentifierHelper();
@@ -136,7 +141,7 @@
String modulePlacementName = subdet.getName() + "_" + moduleName + "_layer" + layerId + "_module" + moduleNumber;
LogicalVolume lv = modules.get(moduleName);
- IPhysicalVolume modulePhysVol = new PhysicalVolume(new Transform3D(pos,rot), modulePlacementName, lv, trackingVolume, 0);
+ IPhysicalVolume modulePhysVol = new PhysicalVolume(new Transform3D(pos,rot), modulePlacementName, lv, motherVolume, 0);
if (debug)
System.out.println("made module: " + modulePhysVol.getName());
|