diff --git a/compact/pid/drich.xml b/compact/pid/drich.xml
index cde823bfac..1ba614fc15 100644
--- a/compact/pid/drich.xml
+++ b/compact/pid/drich.xml
@@ -143,6 +143,11 @@
vis="DRICH_filter_vis"
thickness="DRICH_filter_thickness"
/>
+
diff --git a/src/DRICH_geo.cpp b/src/DRICH_geo.cpp
index afb889935a..71e4f3df36 100644
--- a/src/DRICH_geo.cpp
+++ b/src/DRICH_geo.cpp
@@ -72,6 +72,11 @@ static Ref_t createDetector(Detector& desc, xml::Handle_t handle, SensitiveDetec
auto airgapMat = desc.material(airgapElem.attr(_Unicode(material)));
auto airgapVis = desc.visAttributes(airgapElem.attr(_Unicode(vis)));
auto airgapThickness = airgapElem.attr(_Unicode(thickness));
+ //ribs
+ auto ribElem = radiatorElem.child(_Unicode(rib));
+ auto ribMat = desc.material(ribElem.attr(_Unicode(material)));
+ auto ribVis = desc.visAttributes(ribElem.attr(_Unicode(vis)));
+ auto ribThickness = ribElem.attr(_Unicode(thickness));
// - mirror
auto mirrorElem = detElem.child(_Unicode(mirror));
auto mirrorMat = desc.material(mirrorElem.attr(_Unicode(material)));
@@ -300,11 +305,67 @@ static Ref_t createDetector(Detector& desc, xml::Handle_t handle, SensitiveDetec
det.setPlacement(vesselPV);
// BUILD RADIATOR ====================================================================
-
+ float aeroMin = 0.;
+ float aeroMax = 0.;
+ float phiStart = 0.;
+ float phiEnd = 0.;
+ int nTiles[5] = {10, 20, 25, 30, 35};
// solid and volume: create aerogel and filter
- Cone aerogelSolid(aerogelThickness / 2, radiatorRmin, radiatorRmax,
- radiatorRmin + boreDelta * aerogelThickness / vesselLength,
- radiatorRmax + snoutDelta * aerogelThickness / snoutLength);
+ auto radiatorPos = Position(0., 0., radiatorFrontplane + 0.5 * aerogelThickness) + originFront;
+ //std::cout<