From 7ec9f8e49058770979e17ef321f529a0f0ce5a4b Mon Sep 17 00:00:00 2001 From: Eoin Clerkin <e.clerkin@gsi.de> Date: Thu, 17 Mar 2022 10:16:15 +0100 Subject: [PATCH] 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. --- passive/targetbox_v22c.gdml | 172 +++++++++++++++ passive/window_v22c.gdml | 402 +++++++++++++++++++++++++++++++++++ pipe/pipe_v22c.geo.root | Bin 0 -> 9969 bytes setup/setup_sis18_electron.C | 44 ++++ 4 files changed, 618 insertions(+) create mode 100644 passive/targetbox_v22c.gdml create mode 100644 passive/window_v22c.gdml create mode 100644 pipe/pipe_v22c.geo.root create mode 100644 setup/setup_sis18_electron.C diff --git a/passive/targetbox_v22c.gdml b/passive/targetbox_v22c.gdml new file mode 100644 index 0000000..29cc2de --- /dev/null +++ b/passive/targetbox_v22c.gdml @@ -0,0 +1,172 @@ +<?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> diff --git a/passive/window_v22c.gdml b/passive/window_v22c.gdml new file mode 100644 index 0000000..055a576 --- /dev/null +++ b/passive/window_v22c.gdml @@ -0,0 +1,402 @@ +<?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> + diff --git a/pipe/pipe_v22c.geo.root b/pipe/pipe_v22c.geo.root new file mode 100644 index 0000000000000000000000000000000000000000..cca43998bc912c3a5e86aa53ba4af253208e5fa9 GIT binary patch literal 9969 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 Mk;w1e*^&YO0s4c8_5c6? literal 0 HcmV?d00001 diff --git a/setup/setup_sis18_electron.C b/setup/setup_sis18_electron.C new file mode 100644 index 0000000..7991e89 --- /dev/null +++ b/setup/setup_sis18_electron.C @@ -0,0 +1,44 @@ +/** 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 +} -- GitLab