diff --git a/src/ForwardRICH_geo.cpp b/src/ForwardRICH_geo.cpp
index 2508dd49cce47eb81acfb3c64631bdc0e740acb7..8b66bf43f671465b750a736c60a8ccbdfc079eff 100644
--- a/src/ForwardRICH_geo.cpp
+++ b/src/ForwardRICH_geo.cpp
@@ -155,11 +155,12 @@ static Ref_t createDetector(Detector& desc, xml::Handle_t handle, SensitiveDetec
         if (mRmax > rmax) { rmax = mRmax; }
     }
     rmin = std::max(0., rmin - 0.1*cm);
+    rmax = 2.*halfLength/mirZ*rmax;
     Cone env1(halfLength, rmin, tRmax1 + 0.1*cm , rmin, rmax + 0.1*cm);
     // disk for detection plane
-    Tube env2(std::max(0., pRmin - 0.1*cm), pRmax + 0.1*cm, pThick + 0.1*cm, 0., 2.*M_PI);
+    Tube env2(std::max(0., pRmin - 0.1*cm), pRmax + pTol + pGap + 0.1*cm, pThick + 0.1*cm, 0., 2.*M_PI);
 
-    UnionSolid envShape(env1, env2, Position(0., 0., pZ + pThick/2.));
+    UnionSolid envShape(env1, env2, Position(0., 0., -halfLength + pZ + pThick/2.));
 
     Volume envVol(detName + "_envelope", envShape, desc.material("AirOptical"));
     // envVol.setVisAttributes(desc.visAttributes(detElem.visStr()));
diff --git a/topside.xml b/topside.xml
index 4f1005004843d5f6b9d974556c46b51280e7cdcb..568c0057b364a4827e66988e4278a51e01289d58 100644
--- a/topside.xml
+++ b/topside.xml
@@ -113,9 +113,7 @@
   <include ref="topside/ecal.xml"/>
   <include ref="topside/hcal.xml"/>
   <include ref="topside/solenoid.xml"/>
-  <!--
   <include ref="topside/topside_rich.xml"/>
-  -->
   <include ref="topside/roman_pots.xml"/>
   <include ref="eic/forward_ion_beamline.xml"/>
   <!--
diff --git a/topside/topside_rich.xml b/topside/topside_rich.xml
index 8974ac78fbcff4474550ee002c8ebf851b4e0f8f..21f5bdda4f27aa33be06f429c0a813f7d52ad2d6 100644
--- a/topside/topside_rich.xml
+++ b/topside/topside_rich.xml
@@ -11,12 +11,12 @@
       <tank zdiff="5.0*cm" length="RICHDepth" gas="N2cherenkov" vis="GreenVis"
             rmin="RICHRMin" rmax1="RICHRMin+40*cm" rmax2="RICHRMin+80*cm" />
       <mirror zdiff="RICHDepth+7.0*cm" thickness="1*mm" material="PyrexGlass" vis="GrayVis">
-        <slice focus="50*cm" curve="300*cm" rmin="RICHRMin" rmax="RICHRMin+80*cm" phiw="59*degree" rotz="0*degree" />
-        <slice focus="50*cm" curve="300*cm" rmin="RICHRMin" rmax="RICHRMin+80*cm" phiw="59*degree" rotz="60*degree" />
-        <slice focus="50*cm" curve="300*cm" rmin="RICHRMin" rmax="RICHRMin+80*cm" phiw="59*degree" rotz="120*degree" />
-        <slice focus="50*cm" curve="300*cm" rmin="RICHRMin" rmax="RICHRMin+80*cm" phiw="59*degree" rotz="180*degree" />
-        <slice focus="50*cm" curve="300*cm" rmin="RICHRMin" rmax="RICHRMin+80*cm" phiw="59*degree" rotz="240*degree" />
-        <slice focus="50*cm" curve="300*cm" rmin="RICHRMin" rmax="RICHRMin+80*cm" phiw="59*degree" rotz="300*degree" />
+        <slice focus="50*cm" curve="0" rmin="RICHRMin" rmax="RICHRMin+80*cm" phiw="59*degree" rotz="0*degree" />
+        <slice focus="50*cm" curve="0" rmin="RICHRMin" rmax="RICHRMin+80*cm" phiw="59*degree" rotz="60*degree" />
+        <slice focus="50*cm" curve="0" rmin="RICHRMin" rmax="RICHRMin+80*cm" phiw="59*degree" rotz="120*degree" />
+        <slice focus="50*cm" curve="0" rmin="RICHRMin" rmax="RICHRMin+80*cm" phiw="59*degree" rotz="180*degree" />
+        <slice focus="50*cm" curve="0" rmin="RICHRMin" rmax="RICHRMin+80*cm" phiw="59*degree" rotz="240*degree" />
+        <slice focus="50*cm" curve="0" rmin="RICHRMin" rmax="RICHRMin+80*cm" phiw="59*degree" rotz="300*degree" />
       </mirror>
     </detector>
   </detectors>