diff --git a/include/DetectorConstruction.hh b/include/DetectorConstruction.hh
index fc72899905099d042bf63b4f6605068202156f20..330cf807303deeae9a4e56f09d65a9df23c8d544 100644
--- a/include/DetectorConstruction.hh
+++ b/include/DetectorConstruction.hh
@@ -203,7 +203,8 @@ class DetectorConstruction : public G4VUserDetectorConstruction
 		G4VPhysicalVolume* scint_phys;
         G4VPhysicalVolume* sddUpper_phys;
         G4VPhysicalVolume* sddLower_phys;
-        G4VPhysicalVolume* optCoupler_phys;
+        G4VPhysicalVolume* optCouplerUpper_phys;
+        G4VPhysicalVolume* optCouplerLower_phys;
         G4VPhysicalVolume* coll_sideXp_phys;
         G4VPhysicalVolume* coll_sideXm_phys;
         G4VPhysicalVolume* coll_sideYp_phys;
diff --git a/src/DetectorConstruction.cc b/src/DetectorConstruction.cc
index ff53abc4d728e98f402c3d416251fa86c8b5d753..c0a04554893727af954bfdb27aab95c269c874ec 100644
--- a/src/DetectorConstruction.cc
+++ b/src/DetectorConstruction.cc
@@ -78,7 +78,8 @@ DetectorConstruction::DetectorConstruction()
 	scint_phys(0),
     sddUpper_phys(0),
     sddLower_phys(0),
-    optCoupler_phys(0),
+    optCouplerUpper_phys(0),
+    optCouplerLower_phys(0),
     polyprop_phys(0),
     coll_sideXp_phys(0),
     coll_sideXm_phys(0),
@@ -506,7 +507,7 @@ G4VPhysicalVolume* DetectorConstruction::Construct()
     // Physical
     coll_displacement_x = 0.;
     coll_displacement_y = 0;
-    coll_displacement_z = -scint_z - optCoupler_thick - sdd_thick  - bus_thick/2.;
+    coll_displacement_z = -scint_z - optCoupler_thick - sdd_thick - bus_thick/2.;
     bus1_phys = new G4PVPlacement(0,
                                     G4ThreeVector(coll_displacement_x,coll_displacement_y,coll_displacement_z),
                                     bus1_log,
@@ -556,7 +557,7 @@ G4VPhysicalVolume* DetectorConstruction::Construct()
 
     G4double sddLower_x = 0;
     G4double sddLower_y = 0;
-    G4double sddLower_z = -scint_z - sdd_thick/2.;
+    G4double sddLower_z = -scint_z - optCoupler_thick - sdd_thick/2.;
     sddLower_phys = new G4PVPlacement(0,
                                         G4ThreeVector(sddLower_x,sddLower_y,sddLower_z),
                                         sddLower_log,
@@ -574,13 +575,24 @@ G4VPhysicalVolume* DetectorConstruction::Construct()
     optCoupler_log = new G4LogicalVolume(optCoupler_box, optCouplerMaterial, "optCoupler_log", 0, 0, 0);
     
     // Physical
-    G4double optCoupler_x = 0;
-    G4double optCoupler_y = 0;
-    G4double optCoupler_z = optCoupler_thick/2.;
-    optCoupler_phys = new G4PVPlacement(0,
-                                        G4ThreeVector(optCoupler_x,optCoupler_y,optCoupler_z),
+    G4double optCouplerUpper_x = 0;
+    G4double optCouplerUpper_y = 0;
+    G4double optCouplerUpper_z = optCoupler_thick/2.;
+    optCouplerUpper_phys = new G4PVPlacement(0,
+                                        G4ThreeVector(optCouplerUpper_x,optCouplerUpper_y,optCouplerUpper_z),
                                         optCoupler_log,
-                                        "optCoupler_phys",
+                                        "optCouplerUpper_phys",
+                                        experimentalHall_log,
+                                        false,
+                                        0);
+
+    G4double optCouplerLower_x = 0;
+    G4double optCouplerLower_y = 0;
+    G4double optCouplerLower_z = -scint_z - optCoupler_thick/2.;
+    optCouplerUpper_phys = new G4PVPlacement(0,
+                                        G4ThreeVector(optCouplerLower_x,optCouplerLower_y,optCouplerLower_z),
+                                        optCoupler_log,
+                                        "optCouplerLower_phys",
                                         experimentalHall_log,
                                         false,
                                         0);
diff --git a/xgis_M7 b/xgis_M7
index 19f179d76f07eb668e96d750a9f801b485135261..b4349e9b2ba2326c6c9f22f93f66094da00069ed 100755
Binary files a/xgis_M7 and b/xgis_M7 differ