Print

Print


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());