Skip to content
Snippets Groups Projects
Commit 7ec9f8e4 authored by Eoin Clerkin's avatar Eoin Clerkin
Browse files

CBM experiment using sis18

An interest in running simulations of the CBM experiment with beam from sis18. Adds much setup
based on full electron setup. Magnet, TRD, and psd geometries removed from setups.
Magnetic field same as before but rescaled to 30%.

GDML script for beam window, effectively a smaller STS beampipe is included.
GDML script for elarged target (aka MVD) box design.
pipe_v22c which is root geometry binary with combines these two geometries.
parent 0499d070
No related branches found
No related tags found
No related merge requests found
<?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
and intersect it with the above torus
-->
<!--
<box
name="positive"
x="1000"
y="1000"
z="1000"
lunit="cm"
/>
<intersection name="halftorus_window_old">
<first ref="torus1"/>
<second ref="positive"/>
<positionref ref="positive_intersect"/>
<rotationref ref="identity"/>
</intersection>
-->
<!-- Based on calculations from ED-1159370-D-001-IO -->
<!--
<torus
name="torus2"
rmin="5.8625"
rmax="5.9125"
rtor="7.9125"
deltaphi="TWOPI"
startphi="0"
aunit="rad"
lunit="cm"
/>
-->
<torus
name="torus3"
rmin="6.20409"
rmax="6.25409"
rtor="8.25409"
deltaphi="TWOPI"
startphi="0"
aunit="rad"
lunit="cm"
/>
<!--
To cut away the correct sections of the torus,
I imagine half the torus cut away in the positive plane.
Then, I imagine a solid tube that cuts away the top section
but leaves the inner section.
-->
<box
name="positive2"
x="1000"
y="1000"
z="1000"
lunit="cm"
/>
<intersection name="halftorus_window">
<first ref="torus3"/>
<second ref="positive2"/>
<positionref ref="positive_intersect"/>
</intersection>
<!-- torus radius 62.5409 mm minus 21.81 mm = 40.7309 mm length
which I will double so that both the positive and negative relattive to its origin
radius must be greater than 40mm/2 so 21 mm
and out larger than 288mm/2 so 150mm
-->
<tube
name="remove"
rmin="37.0"
rmax="150.0"
z="81.4618"
lunit="mm"/>
<subtraction name="window3">
<first ref="halftorus_window"/>
<second ref="remove"/>
<positionref ref="center"/>
<rotationref ref="identity"/>
</subtraction>
<!-- flange
modelled by tube
7mm in length
outside radius 300/2 mm
insider radius 260/2 mm which would just touch the torus
so I will also subtract the thickness of the torus.
-->
<tube
name="tube3"
z="0.7"
rmin="12.95"
rmax="15.0"
lunit="cm"
/>
</solids>
<structure>
<!--
Beam pipe is split into three sections,
[1] conical section
[2] window
[3] flange
-->
<assembly name="pipevac1">
</assembly>
<!--
<volume name="pipevac1">
<materialref ref="BP_vacuum"/>
<solidref ref="pixel"/>
</volume>
-->
<volume name="pipe2">
<materialref ref="BP_HexPly"/>
<solidref ref="cone4"/>
<auxiliary auxtype="Color" auxvalue="purple"/>
</volume>
<volume name="flange4">
<materialref ref="BP_HexPly"/>
<solidref ref="tube3"/>
<auxiliary auxtype="Color" auxvalue="red"/>
</volume>
<volume name="pipe1">
<materialref ref="BP_HexPly"/>
<solidref ref="window3"/>
<auxiliary auxtype="Color" auxvalue="blue"/>
</volume>
<assembly name="pipe">
<physvol>
<volumeref ref="pipe1"/>
<positionref ref="window3_pos"/>
<rotationref ref="identity"/>
</physvol>
<physvol>
<volumeref ref="pipe2"/>
<positionref ref="cone_pos4"/>
<rotationref ref="identity"/>
</physvol>
<physvol>
<volumeref ref="pipevac1"/>
<positionref ref="origin"/>
<rotationref ref="identity"/>
</physvol>
` <physvol>
<volumeref ref="flange4"/>
<positionref ref="flange4_pos"/>
<rotationref ref="identity"/>
</physvol>
</assembly>
</structure>
<setup name="Test1" version="1.0">
<world ref="pipe"/>
</setup>
</gdml>
File added
/** ROOT macro to define the CBM setup sis_18_electron
**
**/
// 2022-03-31 - EC - Updated with new STS, removal of TRD etc.
// 2022-03-15 - EC - Introduced after proposal to use CBM with sis18 beam.
// clang-format off
#include <TGeoTranslation.h>
void setup_sis18_electron()
{
// ----- Geometry Tags --------------------------------------------------
TString pipeGeoTag = "v22c";
TString mvdGeoTag = "v20a_tr";
TString stsGeoTag = "v21e_sis18";
TString tofGeoTag = "v21b_1h_sis18";
// ----- Magnetic field -------------------------------------------------
TString fieldTag = "v18a";
Double_t fieldZ = 0;
Double_t fieldScale = 0.3;
// ------------------------------------------------------------------------
// ----- Create setup ---------------------------------------------------
CbmSetup* setup = CbmSetup::Instance();
if ( ! setup->IsEmpty() ) {
std::cout << "-W- setup_sis18_electron: overwriting existing setup"
<< setup->GetTitle() << std::endl;
setup->Clear();
}
setup->SetTitle("SIS100 - Electron Setup");
setup->SetModule(ECbmModuleId::kPipe, pipeGeoTag);
setup->SetModule(ECbmModuleId::kMvd, mvdGeoTag);
setup->SetModule(ECbmModuleId::kSts, stsGeoTag);
setup->SetModule(ECbmModuleId::kTof, tofGeoTag);
setup->SetField(fieldTag, fieldScale, 0., 0., fieldZ);
// ------------------------------------------------------------------------
// ----- Screen output ------------------------------------------------
setup->Print();
// ------------------------------------------------------------------------
// clang-format on
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment