diff --git a/docs/RomanPot.rst b/docs/RomanPot.rst index cd7d1c414ce26a80c654c7b4305e60603c2fadc8..7fec589812e01f7a14074d29213cf2282cda7c75 100644 --- a/docs/RomanPot.rst +++ b/docs/RomanPot.rst @@ -1,7 +1,12 @@ Roman Pot ========= -A pair of Roman Pot-style detectors for detection of particles scattered by very small angles. +A pair of Roman Pot-style detectors for detection of particles scattered by very small angles, typically in forward and far-forward regions. + +Generic information about design of Roman pot detectors can be found in references describing units used at LHC `ref 1`_ and `ref 2`_. + +.. image:: images/RP.png + :width: 400 Example use: @@ -23,6 +28,9 @@ Example use: Detector description variables ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.. image:: images/rp_schem.pdf + :width: 400 + dimensions Dimensions of the sensitive detector. @@ -44,20 +52,23 @@ frame thickness of the frame. position -Positioning of the whole detector pair relative to the beamline. + Positioning of the whole detector pair relative to the beamline. + + z_offset + Distance along the beamline. -z_offset - Distance along the beamline. + rotation + Boolean which determines whether the detector pair is horizontal (false) or vertical (true). + vmax + Furthest distance of the detector from the beam (used to create the full unit unclosure). + v + Current insertion depth of the detectors (distance of the inner edge relative to the beam axis). - rotation - Boolean which determines whether the detector pair is horizontal (false) or vertical (true). - vmax - Furthest distance of the detector from the beam (used to create the full unit unclosure). - v - Current insertion depth of the detectors (distance of the inner edge relative to the beam axis). + layer + Material stack used for the sensitive detector. -layer - Material stack used for the sensitive detector. + repeat + Number of layers in a single detectors. - repeat - Number of layers in a single detectors. +.. _ref 1: https://doi.org/10.1016/j.nima.2007.08.034 +.. _ref 2: https://accelconf.web.cern.ch/e06/PAPERS/MOPLS013.PDF diff --git a/docs/beamline_magnets.rst b/docs/beamline_magnets.rst new file mode 100644 index 0000000000000000000000000000000000000000..fc0d9e19f2075021d47c85f136fca91e653b80ec --- /dev/null +++ b/docs/beamline_magnets.rst @@ -0,0 +1,62 @@ +Beamline magnet elements +======================== + +These detector elements don't directly serve a role in particle detection, but have to be included to accomodate for particle-matter interactions. The provided magnet types are :ref:`dipole <dip>` and :ref:`quadrupole <quad>` magnets and :ref:`spin rotators <snake>`. + +.. _dip: + +Dipole magnets +~~~~~~~~~~~~~~ + +Magnets generating dipole field used for beam steering and spectrometry. + +example use: + +.. code-block:: XML + + <detector id="3" name="B0PF_BeamlineMagnet" type="B0pFMag"> + <placement x="B0PF_XPosition" y="0*m" z="B0PF_CenterPosition" theta="B0PF_RotationAngle" /> + <dimensions x="B0PF_InnerRadius*4" y="B0PF_InnerRadius*4" z="B0PF_Length*0.5" /> + <apperture x="B0PF_InnerRadius*2" y="B0PF_InnerRadius*2" /> + <coil dx="0.1*m" dy="0.03*m" /> + </detector> + +.. _quad: + +Quadrupole magnets +~~~~~~~~~~~~~~~~~~ + +Magnets used for bea focusing, loosely based on design shown `here <https://indico.cern.ch/event/763185/contributions/3415423/attachments/1914495/3164671/MT26-Thu-Af-Or22-07_JLab_Renuka.pdf>`_. More information can be also found at reference discussing the `EIC design <https://doi.org/10.1109/TASC.2019.2896376>`_. + +example use: + +.. code-block:: XML + + <detector id="1" name="quad_example" vis="RedVis" type="QuadMagnet"> + <placement x="0*m" y="0*m" z="0*m" theta="0.0" /> + <dimensions r="0.2*m" z="3.8*m" /> + <coil dx="8*cm" dy="2.5*cm" /> + <apperture r="0.131*m" /> + </detector> + + +.. _snake: + +Helical dipole magnets +~~~~~~~~~~~~~~~~~~~~~~ + +These beamline elements are used for spin rotation. See this `reference <https://doi.org/10.1063/1.2750932>`_ for more information. + +.. image:: images/D-helix.png + :width: 400 + +example use: + +.. code-block:: XML + + <detector id="1" name="spinp_example" vis="RedVis" type="HelicalDipole"> + <placement x="0*m" y="0*m" z="0*m" theta="0.0" psi="0.0" /> + <dimensions r="0.2*m" z="2.3*m" /> + <coil dy="2.5*cm" /> + <apperture r="0.131*m" /> + </detector> diff --git a/docs/contents.rst b/docs/contents.rst index 4b8b3e451f99de3add7d2e27481367a863e34996..8e7b7118968271ab82eff1aadfc8b16d45249c05 100644 --- a/docs/contents.rst +++ b/docs/contents.rst @@ -6,3 +6,4 @@ detectors RomanPot Calorimeters + beamline_magnets diff --git a/docs/images/D-helix.png b/docs/images/D-helix.png new file mode 100644 index 0000000000000000000000000000000000000000..c41d1ec48d5de8c0e48127bd5e9a6593cb32cf01 Binary files /dev/null and b/docs/images/D-helix.png differ diff --git a/docs/images/RP.png b/docs/images/RP.png new file mode 100644 index 0000000000000000000000000000000000000000..ba00a90d7d4a1171d4bb30a31188a0e3a22e1299 Binary files /dev/null and b/docs/images/RP.png differ diff --git a/docs/images/rp_schem.pdf b/docs/images/rp_schem.pdf new file mode 100644 index 0000000000000000000000000000000000000000..2d378432f2198c9da9e762e33b9003cf3d685e71 Binary files /dev/null and b/docs/images/rp_schem.pdf differ diff --git a/src/ConceptDetectors/topside/compact/materials.xml b/src/ConceptDetectors/topside/compact/materials.xml index 455f35019ecce3c5315bf34e6ec9f0ea1cb48d1e..7f07b91ca16ba36957a0d00c74531348baa10aa4 100644 --- a/src/ConceptDetectors/topside/compact/materials.xml +++ b/src/ConceptDetectors/topside/compact/materials.xml @@ -65,6 +65,11 @@ <composite n="2" ref="Al"/> <composite n="3" ref="O"/> </material> + <material name="SiliconNitride"> + <D type="density" value="3.17" unit="g/cm3"/> + <composite n="3" ref="Si"/> + <composite n="4" ref="N"/> + </material> <material name="PyrexGlass"> <D type="density" value="2.23" unit="g/cm3"/> <fraction n="0.806" ref="SiliconOxide"/> diff --git a/src/ConceptDetectors/topside/compact/simple_topside.xml b/src/ConceptDetectors/topside/compact/simple_topside.xml index f17f81f24f8158eb887ddd6f468b7a628d1af42e..849c8fc6897db0036c358af97254c0bac88c2f80 100644 --- a/src/ConceptDetectors/topside/compact/simple_topside.xml +++ b/src/ConceptDetectors/topside/compact/simple_topside.xml @@ -864,141 +864,129 @@ Gradient [T/m] 0.0 0.0 -72.608 -66.180 40.737 <!--<constant name="B2PF_XPosition" value="40.00*cm + CrossingSlope * B2PF_CenterPosition"/>--> <detector id="40" name = "RomanPot1" type="RomanPot" readout="ForwardRomanPotHits" vis = "RedVis"> <position x="20.0*cm+ CrossingSlope*30.0*m" y="0.0" z="30.0*m" z_offset="0.0*m" rotation="true" vmax="10*cm" v="2*cm" /> - <dimensions x="25.0*cm" y="25.0*cm" delta="0.005*cm" /> + <dimensions x="10.0*cm" y="10.0*cm" delta="0.005*cm" /> <frame x="40.0*cm" y="30.0*cm" z="2*cm" /> <layer repeat="5"> - <slice material="Carbon" thickness="0.5*mm" vis="BlueVis" /> + <slice material="SiliconNitride" thickness="0.001*mm" vis="BlueVis" /> <slice material="Silicon" thickness="0.03*cm" vis="GreenVis" sensitive="true" /> - <slice material="Carbon" thickness="0.5*mm" vis="BlueVis" /> <slice material="Vacuum" thickness="1.0*mm" vis="InvisibleWithDaughters" /> </layer> </detector> <detector id="41" name = "RomanPot2" type="RomanPot" readout="ForwardRomanPotHits" vis = "RedVis"> <position x="20.0*cm+ CrossingSlope*30.5*m" y="0.0" z="30.5*m" z_offset="0.0*m" rotation="true" vmax="10*cm" v="2*cm" /> - <dimensions x="25.0*cm" y="25.0*cm" delta="0.005*cm" /> + <dimensions x="10.0*cm" y="10.0*cm" delta="0.005*cm" /> <frame x="40.0*cm" y="30.0*cm" z="2*cm" /> <layer repeat="5"> - <slice material="Carbon" thickness="0.5*mm" vis="BlueVis" /> + <slice material="SiliconNitride" thickness="0.001*mm" vis="BlueVis" /> <slice material="Silicon" thickness="0.03*cm" vis="GreenVis" sensitive="true" /> - <slice material="Carbon" thickness="0.5*mm" vis="BlueVis" /> <slice material="Vacuum" thickness="1.0*mm" vis="InvisibleWithDaughters" /> </layer> </detector> <detector id="42" name = "RomanPot3" type="RomanPot" readout="ForwardRomanPotHits" vis = "RedVis"> <position x="30.0*cm+ CrossingSlope*33.0*m" y="0.0" z="33.0*m" z_offset="0.0*m" rotation="true" vmax="10*cm" v="2.5*cm" /> - <dimensions x="25.0*cm" y="25.0*cm" delta="0.005*cm" /> + <dimensions x="10.0*cm" y="10.0*cm" delta="0.005*cm" /> <frame x="40.0*cm" y="30.0*cm" z="2*cm" /> <layer repeat="5"> - <slice material="Carbon" thickness="0.5*mm" vis="BlueVis" /> + <slice material="SiliconNitride" thickness="0.001*mm" vis="BlueVis" /> <slice material="Silicon" thickness="0.03*cm" vis="GreenVis" sensitive="true" /> - <slice material="Carbon" thickness="0.5*mm" vis="BlueVis" /> <slice material="Vacuum" thickness="1.0*mm" vis="InvisibleWithDaughters" /> </layer> </detector> <detector id="43" name = "RomanPot4" type="RomanPot" readout="ForwardRomanPotHits" vis = "RedVis"> <position x="30.0*cm+ CrossingSlope*33.5*m" y="0.0" z="33.5*m" z_offset="0.0*m" rotation="true" vmax="10*cm" v="2.5*cm" /> - <dimensions x="25.0*cm" y="25.0*cm" delta="0.005*cm" /> + <dimensions x="10.0*cm" y="10.0*cm" delta="0.005*cm" /> <frame x="40.0*cm" y="30.0*cm" z="2*cm" /> <layer repeat="5"> - <slice material="Carbon" thickness="0.5*mm" vis="BlueVis" /> + <slice material="SiliconNitride" thickness="0.001*mm" vis="BlueVis" /> <slice material="Silicon" thickness="0.03*cm" vis="GreenVis" sensitive="true" /> - <slice material="Carbon" thickness="0.5*mm" vis="BlueVis" /> <slice material="Vacuum" thickness="1.0*mm" vis="InvisibleWithDaughters" /> </layer> </detector> <detector id="44" name = "RomanPot44" type="RomanPot" readout="ForwardRomanPotHits" vis = "RedVis"> <position x="40.0*cm+ CrossingSlope*(B2PF_CenterPosition-B2PF_Length/2.0-0.6*m)" y="0.0" z="B2PF_CenterPosition-B2PF_Length/2.0-0.6*m" z_offset="0.0*m" rotation="true" vmax="10*cm" v="2.0*cm" /> - <dimensions x="25.0*cm" y="25.0*cm" delta="0.005*cm" /> + <dimensions x="10.0*cm" y="10.0*cm" delta="0.005*cm" /> <frame x="40.0*cm" y="30.0*cm" z="2*cm" /> <layer repeat="5"> - <slice material="Carbon" thickness="0.5*mm" vis="BlueVis" /> + <slice material="SiliconNitride" thickness="0.001*mm" vis="BlueVis" /> <slice material="Silicon" thickness="0.03*cm" vis="GreenVis" sensitive="true" /> - <slice material="Carbon" thickness="0.5*mm" vis="BlueVis" /> <slice material="Vacuum" thickness="1.0*mm" vis="InvisibleWithDaughters" /> </layer> </detector> <detector id="45" name = "RomanPot45" type="RomanPot" readout="ForwardRomanPotHits" vis = "RedVis"> <position x="40.0*cm+ CrossingSlope*(B2PF_CenterPosition-B2PF_Length/2.0-0.3*m)" y="0.0" z="(B2PF_CenterPosition-B2PF_Length/2.0-0.3*m)" z_offset="0.0*m" rotation="true" vmax="10*cm" v="2.0*cm" /> - <dimensions x="25.0*cm" y="25.0*cm" delta="0.005*cm" /> + <dimensions x="10.0*cm" y="10.0*cm" delta="0.005*cm" /> <frame x="40.0*cm" y="30.0*cm" z="2*cm" /> <layer repeat="5"> - <slice material="Carbon" thickness="0.5*mm" vis="BlueVis" /> + <slice material="SiliconNitride" thickness="0.001*mm" vis="BlueVis" /> <slice material="Silicon" thickness="0.03*cm" vis="GreenVis" sensitive="true" /> - <slice material="Carbon" thickness="0.5*mm" vis="BlueVis" /> <slice material="Vacuum" thickness="1.0*mm" vis="InvisibleWithDaughters" /> </layer> </detector> <detector id="46" name = "RomanPot46" type="RomanPot" readout="ForwardRomanPotHits" vis = "RedVis"> <position x="45.0*cm+ CrossingSlope*(QPFC1_CenterPosition-QPFC1_Length/2.0 - 0.3*m)" y="0.0" z="(QPFC1_CenterPosition-QPFC1_Length/2.0 - 0.3*m)" z_offset="0.0*m" rotation="true" vmax="10*cm" v="3.0*cm" /> - <dimensions x="25.0*cm" y="25.0*cm" delta="0.005*cm" /> + <dimensions x="10.0*cm" y="10.0*cm" delta="0.005*cm" /> <frame x="40.0*cm" y="30.0*cm" z="2*cm" /> <layer repeat="5"> - <slice material="Carbon" thickness="0.5*mm" vis="BlueVis" /> + <slice material="SiliconNitride" thickness="0.001*mm" vis="BlueVis" /> <slice material="Silicon" thickness="0.03*cm" vis="GreenVis" sensitive="true" /> - <slice material="Carbon" thickness="0.5*mm" vis="BlueVis" /> <slice material="Vacuum" thickness="1.0*mm" vis="InvisibleWithDaughters" /> </layer> </detector> <detector id="47" name = "RomanPot47" type="RomanPot" readout="ForwardRomanPotHits" vis = "RedVis"> <position x="45.0*cm+ CrossingSlope*(QPFC1_CenterPosition-QPFC1_Length/2.0 - 0.6*m)" y="0.0" z="(QPFC1_CenterPosition-QPFC1_Length/2.0 - 0.6*m)" z_offset="0.0*m" rotation="false" vmax="10*cm" v="5.0*cm" /> - <dimensions x="25.0*cm" y="25.0*cm" delta="0.005*cm" /> + <dimensions x="10.0*cm" y="10.0*cm" delta="0.005*cm" /> <frame x="40.0*cm" y="30.0*cm" z="2*cm" /> <layer repeat="5"> - <slice material="Carbon" thickness="0.5*mm" vis="BlueVis" /> + <slice material="SiliconNitride" thickness="0.001*mm" vis="BlueVis" /> <slice material="Silicon" thickness="0.03*cm" vis="GreenVis" sensitive="true" /> - <slice material="Carbon" thickness="0.5*mm" vis="BlueVis" /> <slice material="Vacuum" thickness="1.0*mm" vis="InvisibleWithDaughters" /> </layer> </detector> <detector id="48" name = "RomanPot48" type="RomanPot" readout="ForwardRomanPotHits" vis = "RedVis"> <position x="45.0*cm+ CrossingSlope*(QPFC2_CenterPosition-QPFC2_Length/2.0 - 0.6*m)" y="0.0" z="(QPFC2_CenterPosition-QPFC2_Length/2.0 - 0.6*m)" z_offset="0.0*m" rotation="true" vmax="10*cm" v="1.0*cm" /> - <dimensions x="25.0*cm" y="25.0*cm" delta="0.005*cm" /> + <dimensions x="10.0*cm" y="10.0*cm" delta="0.005*cm" /> <frame x="40.0*cm" y="30.0*cm" z="2*cm" /> <layer repeat="5"> - <slice material="Carbon" thickness="0.5*mm" vis="BlueVis" /> + <slice material="SiliconNitride" thickness="0.001*mm" vis="BlueVis" /> <slice material="Silicon" thickness="0.03*cm" vis="GreenVis" sensitive="true" /> - <slice material="Carbon" thickness="0.5*mm" vis="BlueVis" /> <slice material="Vacuum" thickness="1.0*mm" vis="InvisibleWithDaughters" /> </layer> </detector> <detector id="49" name = "RomanPot49" type="RomanPot" readout="ForwardRomanPotHits" vis = "RedVis"> <position x="45.0*cm+ CrossingSlope*(QPFC2_CenterPosition-QPFC2_Length/2.0 - 0.3*m)" y="0.0" z="(QPFC2_CenterPosition-QPFC2_Length/2.0 - 0.3*m)" z_offset="0.0*m" rotation="false" vmax="10*cm" v="1.0*cm" /> - <dimensions x="25.0*cm" y="25.0*cm" delta="0.005*cm" /> + <dimensions x="10.0*cm" y="10.0*cm" delta="0.005*cm" /> <frame x="40.0*cm" y="30.0*cm" z="2*cm" /> <layer repeat="5"> - <slice material="Carbon" thickness="0.5*mm" vis="BlueVis" /> + <slice material="SiliconNitride" thickness="0.001*mm" vis="BlueVis" /> <slice material="Silicon" thickness="0.03*cm" vis="GreenVis" sensitive="true" /> - <slice material="Carbon" thickness="0.5*mm" vis="BlueVis" /> <slice material="Vacuum" thickness="1.0*mm" vis="InvisibleWithDaughters" /> </layer> </detector> <detector id="50" name = "RomanPot50" type="RomanPot" readout="ForwardRomanPotHits" vis = "RedVis"> <position x="45.0*cm+ CrossingSlope*(QPFC2_CenterPosition+QPFC2_Length/2.0 + 0.3*m)" y="0.0" z="(QPFC2_CenterPosition+QPFC2_Length/2.0 + 0.3*m)" z_offset="0.0*m" rotation="false" vmax="10*cm" v="1.0*cm" /> - <dimensions x="25.0*cm" y="25.0*cm" delta="0.005*cm" /> + <dimensions x="10.0*cm" y="10.0*cm" delta="0.005*cm" /> <frame x="40.0*cm" y="30.0*cm" z="2*cm" /> <layer repeat="5"> - <slice material="Carbon" thickness="0.5*mm" vis="BlueVis" /> + <slice material="SiliconNitride" thickness="0.001*mm" vis="BlueVis" /> <slice material="Silicon" thickness="0.03*cm" vis="GreenVis" sensitive="true" /> - <slice material="Carbon" thickness="0.5*mm" vis="BlueVis" /> <slice material="Vacuum" thickness="1.0*mm" vis="InvisibleWithDaughters" /> </layer> </detector> <detector id="51" name = "RomanPot51" type="RomanPot" readout="ForwardRomanPotHits" vis = "RedVis"> <position x="45.0*cm+ CrossingSlope*(QPFC2_CenterPosition+QPFC2_Length/2.0 + 0.6*m)" y="0.0" z="(QPFC2_CenterPosition+QPFC2_Length/2.0 + 0.6*m)" z_offset="0.0*m" rotation="true" vmax="10*cm" v="1.0*cm" /> - <dimensions x="25.0*cm" y="25.0*cm" delta="0.005*cm" /> + <dimensions x="10.0*cm" y="10.0*cm" delta="0.005*cm" /> <frame x="40.0*cm" y="30.0*cm" z="2*cm" /> <layer repeat="5"> - <slice material="Carbon" thickness="0.5*mm" vis="BlueVis" /> + <slice material="SiliconNitride" thickness="0.001*mm" vis="BlueVis" /> <slice material="Silicon" thickness="0.03*cm" vis="GreenVis" sensitive="true" /> - <slice material="Carbon" thickness="0.5*mm" vis="BlueVis" /> <slice material="Vacuum" thickness="1.0*mm" vis="InvisibleWithDaughters" /> </layer> </detector> diff --git a/src/GenericDetectors/trackers/compact/RomanPot_example.xml b/src/GenericDetectors/trackers/compact/RomanPot_example.xml index 945a652e7e850af2d078a044f7dbcf5b8d50c100..ffd72eaa73fc99d4487765245eaeec22c3a64dea 100644 --- a/src/GenericDetectors/trackers/compact/RomanPot_example.xml +++ b/src/GenericDetectors/trackers/compact/RomanPot_example.xml @@ -68,9 +68,8 @@ <frame x = "10.0*cm" y = "5.0*cm" z = "2*cm" /> <position z_offset = "0.0*m" rotation = "false" vmax = "10*cm" v = "2.0*cm" /> <layer repeat = "5"> - <slice material="Carbon" thickness="0.5*mm" vis = "BlueVis" /> - <slice material="Silicon" thickness="0.3*mm" vis = "GreenVis" sensitive = "true" /> - <slice material="Carbon" thickness="0.5*mm" vis = "BlueVis" /> + <slice material="SiliconNitride" thickness="0.001*mm" vis="BlueVis" /> + <slice material="Silicon" thickness="0.03*cm" vis="GreenVis" sensitive="true" /> <slice material="Vacuum" thickness="1.0*mm" vis="InvisibleWithDaughters" /> </layer> </detector> diff --git a/src/GenericDetectors/trackers/compact/materials.xml b/src/GenericDetectors/trackers/compact/materials.xml index fdeb5a22a828cadd46fd875313016c35b20395bf..34d6c1f4e45468d75d3806e963ea5d24bfbfc459 100644 --- a/src/GenericDetectors/trackers/compact/materials.xml +++ b/src/GenericDetectors/trackers/compact/materials.xml @@ -65,6 +65,12 @@ <composite n="2" ref="O"/> </material> + <material name="SiliconNitride"> + <D type="density" value="3.17" unit="g/cm3"/> + <composite n="3" ref="Si"/> + <composite n="4" ref="N"/> + </material> + <material name="BoronOxide"> <D type="density" value="2.46" unit="g/cm3"/> <composite n="2" ref="B"/>