Commit b2a639c3 authored by Petr's avatar Petr
Browse files
parents 3728d4f0 2873ccec
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
/* Copyright (C) 2012-2021 Goethe-Universitaet Frankfurt, Frankfurt
/* Copyright (C) 2012-2022 GSI, Darmstadt
SPDX-License-Identifier: GPL-3.0-only
Authors: Mehul Shiroya [committer], Volker Friese, Evgeny Lavrik*/
Authors: Florian Uhlig [committer]*/
// clang-format off
/******************************************************************************
** Creation of STS geometry in ROOT format (TGeo).
**
** @file create_stsgeo_v21e.C
** @file create_stsgeo_v21z.C
** @author Volker Friese <v.friese@gsi.de>
** @since 15 June 2012
** @date 09.05.2014
** @author Tomas Balog <T.Balog@gsi.de>
**
** v21e_sis18: DE - remove the 3 upstream stations, move target downstream by 31.5 cm
** v21z_sis18: DE - remove the 3 upstream stations, move target downstream by 31.5 cm
**
** v21e: Airex foam in the front and back side wall (Solid).
* New beam pipe R = 2.0 cm with thickness 1mm.
......@@ -170,6 +170,10 @@
// Re-definiton of station from new ladders
#include "TGeoCompositeShape.h"
#include "TGeoCone.h"
#include "TGeoManager.h"
......@@ -345,14 +349,34 @@ TGeoManager* gGeoMan = NULL; // will be set later
// ====== Main function =====
// ============================================================================
void create_stsgeo_v21e_sis18(const char* geoTag = "v21e")
void create_stsgeo_v22b(const char* geoTag = "v22b")
{
// Load FairRunSim to ensure the correct unit system
FairRunSim* sim = new FairRunSim();
// FairRunSim* sim = new FairRunSim();
// Does not work on all systems.
// Fix the unit system to the ROOT one which was the default before ROOT v6.18.02.
// With ROOT v6.18.02 the ROOT team introduced a new unit system (taken from Geant4)
// for the geometry manager. The change was reverted with ROOT v6.25.1.
// Unfortunately the way to set the default units to the ROOT one is
// different for different ROOT versions such that the code needs some
// preprocessor statements.
// Before version v6.18.2 and after v6.25.1 the units are correct
// by default
#if ROOT_VERSION_CODE >= ROOT_VERSION(6, 18, 2) && ROOT_VERSION_CODE <= ROOT_VERSION(6, 22, 6)
TGeoUnit::setUnitType(TGeoUnit::kTGeoUnits);
#endif
#if ROOT_VERSION_CODE >= ROOT_VERSION(6, 22, 8) && ROOT_VERSION_CODE <= ROOT_VERSION(6, 25, 1)
TGeoManager::LockDefaultUnits(false);
TGeoManager::SetDefaultUnits(TGeoManager::EDefaultUnits::kRootUnits);
TGeoManager::LockDefaultUnits(true);
#endif
// ------- Geometry file name (output) ----------------------------------
TString geoFileName = "sts_";
geoFileName = geoFileName + geoTag + "_sis18.geo.root";
geoFileName = geoFileName + geoTag + ".geo.root";
// --------------------------------------------------------------------------
......@@ -361,7 +385,7 @@ void create_stsgeo_v21e_sis18(const char* geoTag = "v21e")
infoFileName.ReplaceAll("root", "info");
fstream infoFile;
infoFile.open(infoFileName.Data(), fstream::out);
infoFile << "STS geometry created with create_stsgeo_v21e_sis18.C" << endl;
infoFile << "STS geometry created with create_stsgeo_v22b.C" << endl;
infoFile << gVersionHighlight << endl;
infoFile << "Global variables: " << endl;
infoFile << "Sensor thickness = " << gkSensorThickness << " cm" << endl;
......@@ -631,6 +655,7 @@ void create_stsgeo_v21e_sis18(const char* geoTag = "v21e")
// where y = FEB box orientation
// where zz = sensor arrangement on ladder
// with FEB orientation - v19b
Int_t allUnitTypes[16][16] = {
{ -1, 15, 0, 13, 0, 12, 0, 4, 0, 112, 0, 112, 0, 114, 0, -1}, // unit00D Station01 00
{ -1, 0,1133, 0,1131, 0,1131, 0, 1004, 0,1031, 0,1032, 0,1034, -1}, // unit01U Station01 01
......@@ -656,6 +681,25 @@ void create_stsgeo_v21e_sis18(const char* geoTag = "v21e")
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, // unit07D Station08 14
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; // unit08U Station08 15
/*
Int_t allUnitTypes[8][16] = {
{ -1, 15, 0, 13, 0, 12, 0, 4, 0, 112, 0, 112, 0, 114, 0, -1}, // unit00D Station01 00
{ -1, 0,1133, 0,1131, 0,1131, 0, 1004, 0,1031, 0,1032, 0,1034, -1}, // unit01U Station01 01
{ -1, 0, 18, 0, 17, 0, 16, 0, 105, 0, 116, 0, 117, 0, 119, -1}, // unit01D Station02 02
{ -1,1119, 0,1117, 0,1116, 0,1105, 0,1016, 0,1017, 0,1018, 0, -1}, // unit02U Station02 03
{ -1, 19, 0, 17, 0, 16, 0, 6, 0, 116, 0, 117, 0, 118, 0, -1}, // unit02D Station03 04
{ -1, 0,1137, 0,1136, 0,1135, 0, 1006, 0,1035, 0,1036, 0,1038, -1}, // unit03U Station03 05
{ 21, 0, 25, 0, 20, 0, 20, 0, 107, 0, 120, 0, 120, 0, 127, 0}, // unit03D Station04 06
{ 0,1127, 0,1120, 0,1120, 0,1107, 0,1020, 0,1020, 0,1025, 0,1021}, // unit04U Station04 07
{ 0, 24, 0, 22, 0, 22, 0, 8, 0, 122, 0, 122, 0, 123, 0, 126}, // unit04D Station05 08
{1126, 0,1123, 0,1122, 0,1122, 0, 1008, 0,1022, 0,1022, 0,1024, 0}}; // unit05U Station05 09
*/
// orig // with FEB orientation - v19b
// orig Int_t allUnitTypes[16][16] = {
// orig { -1, -1, -1, -1, 10, 0, 9, 0, 101, 0, 109, 0, -1, -1, -1, -1}, // unit00D Station01 00
......@@ -717,7 +761,8 @@ void create_stsgeo_v21e_sis18(const char* geoTag = "v21e")
// dump unit
for (Int_t iUnit = 0; iUnit < 16; iUnit++) {
// FU: Only loop over the defined units
for (Int_t iUnit = 0; iUnit < 10; iUnit++) {
cout << "DE unitTypes[" << iUnit << "] = { ";
for (Int_t iLadder = 0; iLadder < 16; iLadder++) {
cout << allUnitTypes[iUnit][iLadder];
......@@ -729,8 +774,9 @@ void create_stsgeo_v21e_sis18(const char* geoTag = "v21e")
}
// --- Units 01 - 16
for (Int_t iUnit = 0; iUnit < 16; iUnit++) {
// --- Units 01 - 8
// FU: Only loop over the defined units
for (Int_t iUnit = 0; iUnit < 10; iUnit++) {
cout << endl;
nLadders = 0;
......@@ -806,7 +852,8 @@ void create_stsgeo_v21e_sis18(const char* geoTag = "v21e")
//cout << "stsPosZ " << stsPosZ << " " << statPos[15] << " " << statPos[0] << "*****" << endl;
// for (Int_t iUnit = 0; iUnit < 16; iUnit++) {
for (Int_t iUnit = 0; iUnit < 18; iUnit++) {
// FU: Only loop over the defined units
for (Int_t iUnit = 0; iUnit < 12; iUnit++) {
// for (Int_t iUnit = 0; iUnit < 32; iUnit++) {
TGeoVolume* station = gGeoMan->GetVolume(unitName18[iUnit]);
// Double_t posZ = statPos[iUnit] - stsPosZ;
......@@ -822,7 +869,9 @@ void create_stsgeo_v21e_sis18(const char* geoTag = "v21e")
}
// --- Import passive elements from GDML file
if (gkImportPassive) { ImportPassive(sts, geoTag, infoFile); }
// FU: Since v22b is a reduced version (only last 5 layers) of v21e we
// reuse the same box
if (gkImportPassive) { ImportPassive(sts, "v21e", infoFile); }
// --------------------------------------------------------------------------
// --------------------------------------------------------------------------
......@@ -865,7 +914,7 @@ void create_stsgeo_v21e_sis18(const char* geoTag = "v21e")
geoFile->Close();
TString geoFileName_ = "sts_";
geoFileName_ = geoFileName_ + geoTag + "_sis18_geo.root";
geoFileName_ = geoFileName_ + geoTag + "_geo.root";
geoFile = new TFile(geoFileName_, "RECREATE");
gGeoMan->Write(); // use this is you want GeoManager format in the output
......@@ -1876,7 +1925,7 @@ void ImportPassive(TGeoVolume* stsVolume, TString geoTag, fstream& infoFile)
{
TString passiveName = TString("sts_passive_") + geoTag;
TString basePath = gSystem->Getenv("VMCWORKDIR");
TString relPath = "/geometry/sts/passive/" + passiveName + "_sis18.gdml";
TString relPath = "/geometry/sts/passive/" + passiveName + ".gdml";
TString passiveFileName = basePath + relPath;
infoFile << std::endl << std::endl;
infoFile << "Importing STS passive materials from GDML file '" << relPath << "'." << std::endl;
......
......@@ -79,6 +79,10 @@ BP_carbonfiber 4 12.011 1.0079 35.453 15.999 6.0 1.0 17. 8.0 1.5 0.892
0 1 20. .001
0
BP_HexPly 4 12.011 1.0079 35.453 15.999 6.0 1.0 17. 8.0 1.5 0.8926 0.0192 0.0271 0.0611
0 1 20. .001
0
// ---------------------------------------------------------------------------
......
TFile* ofile
TFile* nfile
ofile = TFile::Open("mvd_v20c_tr.geo.root")
nfile = TFile::Open("mvd_v20g_tr.geo.root","RECREATE")
TGeoVolume* top = (TGeoVolume *) ofile->Get("Top")
TGeoNode* node = top->GetNode("MVDscripted_1")
TGeoNodeMatrix* nm
TGeoVolume* ntop
ntop = new TGeoVolume("Top", top->GetShape(), top->GetMedium())
int id=0
nm = (TGeoNodeMatrix *) node->GetDaughter(1)
ntop->AddNode(nm->GetVolume(),id++,nm->GetMatrix())
nm = (TGeoNodeMatrix *) node->GetDaughter(2)
ntop->AddNode(nm->GetVolume(),id++,nm->GetMatrix())
nm = (TGeoNodeMatrix *) node->GetDaughter(3)
ntop->AddNode(nm->GetVolume(),id++,nm->GetMatrix())
ntop->GetNodes()->Print()
ntop->GetName()
ntop->GetMedium()->Print()
ntop->SetAsTopVolume()
nfile->WriteTObject(ntop)
nfile->Close()
<?xml version="1.0" encoding="UTF-8"?>
<gdml xmlns:gdml="http://cern.ch/2001/Schemas/GDML" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://service-spi.web.cern.ch/service-spi/app/releases/GDML/schema/gdml.xsd">
<define>
<position name="central" x="0" y="0" z="0" unit="mm"/>
<rotation name="identity" x="0" y="0" z="0" unit="degree"/>
<variable name="DEGtoRAD" value="1.74532925199433E-02"/>
<variable name="StsZ" value="00.0" unit="mm"/>
<variable name="StsZ.bck" value="654.3"/>
</define>
<materials>
<element Z="8." formula="O" name="Oxygen">
<atom value="16.00" />
</element>
<element Z="6" formula="C" name="Carbon">
<atom value="12.011" />
</element>
<element Z="1" formula="H" name="Hydrogen">
<atom value="1.0079" />
</element>
<element Z="7." formula="N" name="Nitrogen">
<atom value="14.01" />
</element>
<element Z="13" formula="Al" name="Aluminium">
<atom value="26.98" />
</element>
<material formula="C" name="STSBoxCarbonFibre_21" Z="6.0">
<D value="1.75" unit="g/cm3"/>
<atom value="12.011"/>
</material>
<material formula="C" name="STSBoxCarbonFoam" Z="6.0">
<D value="0.11" unit="g/cm3"/>
<atom value="12.011"/>
</material>
<material formula=" " name="air">
<D value="0.001205" unit="g/cm3"/>
</material>
<material name="aluminium" Z="13.0">
<D value="2.70" unit="g/cm3"/>
<atom value="26.98"/>
</material>
<material formula=" " name="vacuum">
<D value="1.E-16" unit="torr"/> -->
<atom value="1"/>
</material>
</materials>
<solids>
<box name="Front_wall_box_frame" x="(440.000000)*2" y="(440.500000)*2" z="(8.000000)*2" lunit="mm"/>
<box name="Front_wall_box_frame_subtraction" x="(353.000000)*2" y="(353.000000)*2" z="(8.000001)*2" lunit="mm"/>
<subtraction name="Final_front_wall_box_frame">
<first ref="Front_wall_box_frame"/>
<second ref="Front_wall_box_frame_subtraction"/>
<positionref ref="central"/>
<rotationref ref="identity"/>
</subtraction>
<box name="Front_STS_box_op1" x="(369.00000)*2" y="(369.00000)*2" z="(111.5000)*5 + 110 -125" lunit="mm"/> <!-- Outside outer casing -->
<box name="Front_STS_box_op2" x="(232.500000)*2" y="(232.500000)*2" z="(111.50001)*5 + 110 " lunit="mm"/> <!-- box for square cutout on back panel of box -->
<box name="Front_STS_box_op3" x="(353.00000)*2" y="(353.00000)*2" z="(104.00001)*5 + 200 -125" lunit="mm"/> <!-- Inside outer casing -->
<subtraction name="Front_STS_box_C1">
<first ref="Front_STS_box_op1"/>
<second ref="Front_STS_box_op2"/>
<position name="identity"/>
<rotationref ref="identity"/>
</subtraction>
<!-- This volume consistents of the top, bottom, left and right sides of the box,
but also the square rim seperating the target box from the STS internals -->
<subtraction name="Front_STS_box_01">
<first ref="Front_STS_box_C1"/>
<second ref="Front_STS_box_op3"/>
<position name="box_pos" x="0" y="0" z="-7.5*5" unit="mm"/>
<rotationref ref="identity"/>
</subtraction>
<box name="Front_STS_box_op4" x="(232.50000)*2" y="(232.50000)*2" z="10.0000" lunit="mm"/>
<tube name="Front_STS_box_cutout" rmin="0.000000" rmax="133.500" z="10.00001" startphi="0.000000" deltaphi="360.000000" aunit="deg" lunit="mm"/>
<subtraction name="Front_STS_box_tube_cutout_01">
<first ref="Front_STS_box_op4"/>
<second ref="Front_STS_box_cutout"/>
<position name="identity"/>
<rotationref ref="identity"/>
</subtraction>
<volume name="Final_front_wall_box_MVD_frame_volume">
<materialref ref="aluminium"/>
<solidref ref="Final_front_wall_box_frame"/>
</volume>
<!-- This volume consistents of the top, bottom, left and right sides of the box,
but also the square rim seperating the target box from the STS internals -->
<volume name="Front_MVD_box_volume">
<materialref ref="aluminium"/>
<solidref ref="Front_STS_box_01"/>
</volume>
<!-- needed -->
<volume name="Front_STS_box_volume_t01">
<materialref ref="aluminium"/>
<solidref ref="Front_STS_box_tube_cutout_01"/>
</volume>
<assembly name="Front_t01_and_vaccum_window">
<physvol copynumber="1">
<volumeref ref="Front_STS_box_volume_t01"/>
<positionref ref="central"/>
<rotationref ref="identity"/>
</physvol>
</assembly>
<assembly name="targetbox">
<!-- I comment out the flange as it is already pulled into the geometry.
<physvol copynumber="1">
<volumeref ref="Inner_Flange_volume"/>
<position name="Beam_pipe_Flange_position" x="0" y="0" z="527.00000+StsZ/+13.70" unit="mm"/>
<rotationref ref="identity"/>
</physvol>
<physvol copynumber="1">
<volumeref ref="Outer_Flange_volume"/>
<position name="Beam_pipe_Flange_position" x="0" y="0" z="527.00000+StsZ+16.20" unit="mm"/>
<rotationref ref="identity"/>
</physvol>
-->
<!-- This is the rim (border frame) which attaches to the front of the STS box -->
<physvol copynumber="1">
<volumeref ref="Final_front_wall_box_MVD_frame_volume"/>
<position name="Final_front_wall_box_frame_volume_position" x="0" y="0" z="-687.000+StsZ+0.7" unit="mm"/>
<rotationref ref="identity"/>
</physvol>
<!-- This volume consistents of the top, bottom, left and right sides of the box,
but also the square rim seperating the target box from the STS internals -->
<physvol copynumber="1">
<volumeref ref="Front_MVD_box_volume"/>
<position name="Final_Front_STS_box_volume_position" x="0" y="0" z="-687.000+StsZ+120.2+145" unit="mm"/>
<rotationref ref="identity"/>
</physvol>
<!-- This is the back panel with the circular cutout onto with the window is attached -->
<physvol copynumber="1">
<volumeref ref="Front_t01_and_vaccum_window"/>
<position name="Front_t01_and_vaccum_window_position" x="0" y="0" z="-687.000+StsZ+227.70+440-125-2" unit="mm"/>
<rotationref ref="identity"/>
</physvol>
</assembly>
</structure>
<setup name="FAIRgeom" version="1.0">
<world ref="targetbox"/>
</setup>
</gdml>
<?xml version="1.0" encoding="UTF-8"?>
<gdml
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://service-spi.web.cern.ch/service-spi/app/releases/GDML/Schema/gdml.xsd">
<define>
<constant name="HALFPI" value="pi/2."/>
<constant name="PI" value="1.*pi"/>
<constant name="TWOPI" value="2.*pi"/>
<position name="center"/>
<rotation name="identity"/>
<position name="shiftbyx" x="20.0"/>
<rotation name="rotatebyx" x="HALFPI/2."/>
<rotation name="rotatebyall" x="HALFPI" y="PI" z="TWOPI"/>
<position name="tube_pos" z="38.1005" unit="cm"/> <!-- 24 cm + half of its length (28.201) = 38.1005 cm -->
<position name="cone_pos" z="87.6005" unit="cm"/> <!-- 24 cm + 28.201 + half of its length (70.799) = 87.6005 cm -->
<rotation name="inverse" y="PI"/>
<position name="flange_pos" z="47.5" unit="cm"/> <!-- 24cm + width of shell (2.181cm) -->
<position name="flange-rim_pos" z="24.35" unit="cm"/> <!-- 24cm + half of thickness (0.7cm) -->
<!-- Uses this for pipevac1 and positioning of MVD and target -->
<position name="origin" x="0.0" y="0.0" z="0.0"/>
<position name="flange3_pos" z="31.8" unit="cm"/>
<position name="positive_intersect" z="-500" unit="cm"/>
<position name="window_pos" z="24.7" unit="cm"/>
<position name="window3_pos" z="28.0731" unit="cm"/>
<!-- Cone starts at 218.19mm from the target.
Considering also half its length of 665mm then 33.25 + 21.819 = 55.07 cm
-->
<position name="cone_pos4" z="55.07 + 6.0" unit="cm"/>
<!-- 240mm + half of 7mm -->
<position name="flange4_pos" z="24.35" unit="cm"/>
</define>
<materials>
<element name="Hydrogen" formula="H" Z="1.">
<atom value="1.01"/>
</element>
<element name="Oxygen" formula="O" Z="8.">
<atom value="16.0"/>
</element>
<element name="Nitrogen" formula="N" Z="7.">
<atom value="14.01"/>
</element>
<element name="Carbon" formula="C" Z="6.0">
<atom value="12.0"/>
</element>
<material name="BP_HexPly">
<D value="1.56"/>
<composite n="1" ref="Carbon"/>
</material>
<material name="BP_vacuum" Z="1.0">
<D value="0.000001"/>
<atom value="1.0"/>
</material>
<material name="BP_aluminium" Z="13.0">
<D value="2.70"/>
<atom value="26.98"/>
</material>
<!--
<material name="BP_air">
<D value="1.290" unit="mg/cm3"/>
<fraction n="0.7" ref="Nitrogen"/>
<fraction n="0.3" ref="Oxygen"/>
</material>
-->
</materials>
<solids>
<define>
<quantity type="length" name="sizeoft500" unit="mm" value="500.0"/>
<position name="shiftbysizeoft500" x="500.0"/>
</define>
<!--
<box name="WorldBox" x="10000.0" y="10000.0" z="10000.0"/>
-->
<!-- Use this pixel for positioning of MVD and Target -->
<!-- <box name="pixel" x="10000" y="10000" z="10000" unit="mm"/> -->
<box name="pixel" x="1" y="1" z="1" unit="mm"/>
<!--
<cone name="c1" z="111.0" rmax1="22.0" rmax2="33.0" deltaphi="TWOPI"/>
<para name="p1" x="10.0" y="10.0" z="10.0" alpha="30.0" theta="30.0" phi="30.0"/>
<sphere name="s1" rmax="200.0" deltaphi="TWOPI" deltatheta="PI"/>
<trap name="trap1" z="100.0" theta="60.0" phi="60.0"
y1="10.0" x1="10.0" x2="10.0"
alpha1="30.0" y2="10.0" x3="10.0"
x4="10.0" alpha2="30.0"/>
<trd name="trd1" x1="10.0" x2="10.0" y1="10.0" y2="20.0" z="30.0"/>
<tube name="t1000" z="1000.0" rmax="100.0" deltaphi="TWOPI"/>
<tube name="t900" z="900.0" rmax="100.0" deltaphi="TWOPI"/>
<tube name="t100" z="102.0" rmax="30.0" deltaphi="TWOPI"/>
-->
<!-- wide conical section -->
<!--<cone name="cone1" lunit="cm" z="70.799" rmin1="2.0" rmax1="2.1" rmin2="3.8" rmax2="4.0" startphi="1" deltaph="TWOPI" />
<cone name="cone1_vac" lunit="cm" z="70.8" rmin1="0.0" rmax1="2.0" rmin2="0.0" rmax2="3.8" startphi="1" deltaphi="TWOPI" />
-->
<!-- As ED-1159370-D-001-I0 -->
<!--
<tube name="flange-rim" lunit="cm" z="0.7" rmax="20.8" rmin="16.8" deltaphi="TWOPI" />
<sphere name="flange-sphere" lunit="cm" aunit="rad" rmax="30.0" rmin="27.119" deltaphi="TWOPI" deltatheta="0.65"/>
<union name="flange-union">
<first ref="flange-rim"/>
<second ref="flange-sphere"/>
<positionref ref="sphere-rim_pos"/>
</union>
-->
<!--
<subtraction name="flange">
<first ref="flange-union"/>
<second ref="tube1_vac"/>
</subtraction>
-->
<!-- Slide 5 and 6 of STS Beam Pipe, concept, geometry and interfaces -->
<!-- 1mm CF diameter 104mm and 40mm -->
<!--
<cone
name="cone2"
lunit="cm"
z="98.0"
rmax1="2.0"
rmin1="1.9"
rmax2="5.2"
rmin2="5.1"
startphi="1"
deltaphi="TWOPI"
/>
<cone
name="cone3"
lunit="cm"
z="101.2"
rmax1="2.0"
rmin1="1.9"
rmax2="5.2"
rmin2="5.1"
startphi="1"
deltaphi="TWOPI"
/>
-->
<!-- According to ED-1159370-D-001-IO, the beam pipe has a concical length of 707.99 mm and a tubular lenght of 282.01 which comes up to upstream face of the outer flange. There is an additional 21.81 mm to the most upstream point on the window. This makes 1011.81 for a total length. Considering however that we are using a torsoidal window with radii 1 amd 2 of 62.5409 and 82.5409. Since the conical section should start at the semi circle then 6.25409 cm must be removed leaving 101.81-6.25409 = 955.5591 mm -->
<cone
name="cone4"
lunit="cm"
z="66.5"
rmax1="2.0"
rmin1="1.9"
rmax2="5.2"
rmin2="5.1"
startphi="0"
deltaphi="TWOPI"
/>
<!--
Window is modelled via a torus
hole in middle is 40mm
outside diameter of bounding cirle in x-y is 260mm
ergo
Radius 2
260mm-40mm=220mm
which is 110mm length in each section
so I imagine radius of 5.5cm for radius 2.
0.5mm thick so 5.45 for inside.
Radius 1
260mm diameter = 13.0 cm radius
minus the radius2 = 7.5
Radius 2 of 5.5 means
a pertushon of 5.5cm inside the MVD box.
On CAD it is
2.9cm
-->
<!--
<torus
name="torus1"
rmin="5.45"
rmax="5.5"
rtor="7.5"
deltaphi="TWOPI"
startphi="0"
aunit="rad"
lunit="cm"
/>
-->
<!--
To get only half the torus,
I made a box of the positive plane