diff --git a/Inputs/DetectorConfiguration/Sharc.detector b/Inputs/DetectorConfiguration/Sharc.detector
index f06e6ea829d09397c773480e014ffa9c30462857..74afb1bee67d19bf8f510b0f9b23ed39ecaff328 100644
--- a/Inputs/DetectorConfiguration/Sharc.detector
+++ b/Inputs/DetectorConfiguration/Sharc.detector
@@ -37,7 +37,7 @@ Sharc
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %Upstream Box
   SharcBOX
-    Z= 0
+    Z= -40
     ThicknessDector1= 100
     ThicknessDector2= 100
     ThicknessDector3= 100
diff --git a/NPSimulation/src/Sharc.cc b/NPSimulation/src/Sharc.cc
index 08bd34d6c2c3cb7dae5e4a947de834e236210a31..03eaca7e3b068279c91945af8212b4e4d58533ff 100644
--- a/NPSimulation/src/Sharc.cc
+++ b/NPSimulation/src/Sharc.cc
@@ -404,7 +404,7 @@ void Sharc::ConstructBOXDetector(G4LogicalVolume* world){
       
       if(m_ThicknessBOX[i][j]>0)
         new G4PVPlacement(new G4RotationMatrix(0,0,0),
-                          Box_Wafer_Offset,
+                          Box_Wafer_Offset+G4ThreeVector(0,0,0.5*BOX_PCB_Thickness-0.5*m_ThicknessBOX[i][j]),
                           logicWafer,"Box_Wafer",logicBoxDetector,false,i*4+j+1);
       
       // create the PAD
@@ -505,7 +505,7 @@ void Sharc::ConstructBOXDetector(G4LogicalVolume* world){
         DetectorRotation->rotateZ(-90*deg);
       }
       
-      if(m_Z[i]>0) DetectorRotation->rotateY(180*deg);
+      if(m_Z[i]<0) DetectorRotation->rotateY(180*deg);
       
       DetectorPosition.transform(*DetectorRotation);
       DetectorPosition+=G4ThreeVector(0,0,m_Z[i]);