<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><style>body { max-width: 980px; margin: 16px auto; } body .markdown-body { padding: 45px; } @font-face { font-family: fontawesome-mini; src: url(data:font/woff;charset=utf-8;base64,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) format('woff'); } .markdown-body { font-family: sans-serif; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; color: #333333; overflow: hidden; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif; font-size: 16px; line-height: 1.6; word-wrap: break-word; } .markdown-body a { background: transparent; } .markdown-body a:active, .markdown-body a:hover { outline: 0; } .markdown-body b, .markdown-body strong { font-weight: bold; } .markdown-body mark { background: #ff0; color: #000; font-style: italic; font-weight: bold; } .markdown-body sub, .markdown-body sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } .markdown-body sup { top: -0.5em; } .markdown-body sub { bottom: -0.25em; } .markdown-body h1 { font-size: 2em; margin: 0.67em 0; } .markdown-body img { border: 0; } .markdown-body hr { -moz-box-sizing: content-box; box-sizing: content-box; height: 0; } .markdown-body pre { overflow: auto; } .markdown-body code, .markdown-body kbd, .markdown-body pre, .markdown-body samp { font-family: monospace, monospace; font-size: 1em; } .markdown-body input { color: inherit; font: inherit; margin: 0; } .markdown-body html input[disabled] { cursor: default; } .markdown-body input { line-height: normal; } .markdown-body input[type="checkbox"] { box-sizing: border-box; padding: 0; } .markdown-body table { border-collapse: collapse; border-spacing: 0; } .markdown-body td, .markdown-body th { padding: 0; } .markdown-body .codehilitetable, .markdown-body .highlighttable { border: 0; border-spacing: 0; } .markdown-body .codehilitetable tr, .markdown-body .highlighttable { border: 0; } .markdown-body .codehilitetable pre, .markdown-body .codehilitetable div.codehilite, .markdown-body .highlighttable pre, .markdown-body .highlighttable div.highlight { margin: 0; } .markdown-body .linenos, .markdown-body .code, .markdown-body .codehilitetable td, .markdown-body .highlighttable td { border: 0; padding: 0; } .markdown-body td:not(.linenos) .linenodiv { padding: 0 !important; } .markdown-body .code { width: 100%; } .markdown-body .linenos div pre, .markdown-body .linenodiv pre, .markdown-body .linenodiv { border: 0; -webkit-border-radius: 0; -moz-border-radius: 0; border-radius: 0; -webkit-border-top-left-radius: 3px; -webkit-border-bottom-left-radius: 3px; -moz-border-radius-topleft: 3px; -moz-border-radius-bottomleft: 3px; border-top-left-radius: 3px; border-bottom-left-radius: 3px; } .markdown-body .code div pre, .markdown-body .code div { border: 0; -webkit-border-radius: 0; -moz-border-radius: 0; border-radius: 0; -webkit-border-top-right-radius: 3px; -webkit-border-bottom-right-radius: 3px; -moz-border-radius-topright: 3px; -moz-border-radius-bottomright: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; } .markdown-body * { -moz-box-sizing: border-box; box-sizing: border-box; } .markdown-body input { font: 13px Helvetica, arial, freesans, clean, sans-serif, "Segoe UI Emoji", "Segoe UI Symbol"; line-height: 1.4; } .markdown-body a { color: #4183c4; text-decoration: none; } .markdown-body a:hover, .markdown-body a:focus, .markdown-body a:active { text-decoration: underline; } .markdown-body hr { height: 0; margin: 15px 0; overflow: hidden; background: transparent; border: 0; border-bottom: 1px solid #ddd; } .markdown-body hr:before, .markdown-body hr:after { display: table; content: " "; } .markdown-body hr:after { clear: both; } .markdown-body h1, .markdown-body h2, .markdown-body h3, .markdown-body h4, .markdown-body h5, .markdown-body h6 { margin-top: 15px; margin-bottom: 15px; line-height: 1.1; } .markdown-body h1 { font-size: 30px; } .markdown-body h2 { font-size: 21px; } .markdown-body h3 { font-size: 16px; } .markdown-body h4 { font-size: 14px; } .markdown-body h5 { font-size: 12px; } .markdown-body h6 { font-size: 11px; } .markdown-body blockquote { margin: 0; } .markdown-body ul, .markdown-body ol { padding: 0; margin-top: 0; margin-bottom: 0; } .markdown-body ol ol, .markdown-body ul ol { list-style-type: lower-roman; } .markdown-body ul ul ol, .markdown-body ul ol ol, .markdown-body ol ul ol, .markdown-body ol ol ol { list-style-type: lower-alpha; } .markdown-body dd { margin-left: 0; } .markdown-body code, .markdown-body pre, .markdown-body samp { font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 12px; } .markdown-body pre { margin-top: 0; margin-bottom: 0; } .markdown-body kbd { background-color: #e7e7e7; background-image: -moz-linear-gradient(#fefefe, #e7e7e7); background-image: -webkit-linear-gradient(#fefefe, #e7e7e7); background-image: linear-gradient(#fefefe, #e7e7e7); background-repeat: repeat-x; border-radius: 2px; border: 1px solid #cfcfcf; color: #000; padding: 3px 5px; line-height: 10px; font: 11px Consolas, "Liberation Mono", Menlo, Courier, monospace; display: inline-block; } .markdown-body>*:first-child { margin-top: 0 !important; } .markdown-body>*:last-child { margin-bottom: 0 !important; } .markdown-body .headerlink { font: normal 400 16px fontawesome-mini; vertical-align: middle; margin-left: -16px; float: left; display: inline-block; text-decoration: none; opacity: 0; color: #333; } .markdown-body .headerlink:focus { outline: none; } .markdown-body h1 .headerlink { margin-top: 0.8rem; } .markdown-body h2 .headerlink, .markdown-body h3 .headerlink { margin-top: 0.6rem; } .markdown-body h4 .headerlink { margin-top: 0.2rem; } .markdown-body h5 .headerlink, .markdown-body h6 .headerlink { margin-top: 0; } .markdown-body .headerlink:hover, .markdown-body h1:hover .headerlink, .markdown-body h2:hover .headerlink, .markdown-body h3:hover .headerlink, .markdown-body h4:hover .headerlink, .markdown-body h5:hover .headerlink, .markdown-body h6:hover .headerlink { opacity: 1; text-decoration: none; } .markdown-body h1 { padding-bottom: 0.3em; font-size: 2.25em; line-height: 1.2; border-bottom: 1px solid #eee; } .markdown-body h2 { padding-bottom: 0.3em; font-size: 1.75em; line-height: 1.225; border-bottom: 1px solid #eee; } .markdown-body h3 { font-size: 1.5em; line-height: 1.43; } .markdown-body h4 { font-size: 1.25em; } .markdown-body h5 { font-size: 1em; } .markdown-body h6 { font-size: 1em; color: #777; } .markdown-body p, .markdown-body blockquote, .markdown-body ul, .markdown-body ol, .markdown-body dl, .markdown-body table, .markdown-body pre, .markdown-body .admonition { margin-top: 0; margin-bottom: 16px; } .markdown-body hr { height: 4px; padding: 0; margin: 16px 0; background-color: #e7e7e7; border: 0 none; } .markdown-body ul, .markdown-body ol { padding-left: 2em; } .markdown-body ul ul, .markdown-body ul ol, .markdown-body ol ol, .markdown-body ol ul { margin-top: 0; margin-bottom: 0; } .markdown-body li>p { margin-top: 16px; } .markdown-body dl { padding: 0; } .markdown-body dl dt { padding: 0; margin-top: 16px; font-size: 1em; font-style: italic; font-weight: bold; } .markdown-body dl dd { padding: 0 16px; margin-bottom: 16px; } .markdown-body blockquote { padding: 0 15px; color: #777; border-left: 4px solid #ddd; } .markdown-body blockquote>:first-child { margin-top: 0; } .markdown-body blockquote>:last-child { margin-bottom: 0; } .markdown-body table { display: block; width: 100%; overflow: auto; word-break: normal; word-break: keep-all; } .markdown-body table th { font-weight: bold; } .markdown-body table th, .markdown-body table td { padding: 6px 13px; border: 1px solid #ddd; } .markdown-body table tr { background-color: #fff; border-top: 1px solid #ccc; } .markdown-body table tr:nth-child(2n) { background-color: #f8f8f8; } .markdown-body img { max-width: 100%; -moz-box-sizing: border-box; box-sizing: border-box; } .markdown-body code, .markdown-body samp { padding: 0; padding-top: 0.2em; padding-bottom: 0.2em; margin: 0; font-size: 85%; border-radius: 3px; } .markdown-body code:not(.highlight):not(.codehilite), .markdown-body samp { background-color: rgba(0,0,0,0.04); } .markdown-body code:before, .markdown-body code:after { letter-spacing: -0.2em; content: "\00a0"; } .markdown-body pre>code { padding: 0; margin: 0; font-size: 100%; word-break: normal; white-space: pre; background: transparent; border: 0; } .markdown-body .codehilite, .markdown-body .highlight { margin-bottom: 16px; } .markdown-body .codehilite pre, .markdown-body .highlight pre, .markdown-body pre { padding: 16px; overflow: auto; font-size: 85%; line-height: 1.45; } .markdown-body .codehilite, .markdown-body .highlight, .markdown-body pre { border-radius: 3px; } .markdown-body :not(.highlight) > pre { background-color: #f7f7f7; } .markdown-body .codehilite pre, .markdown-body .highlight pre { margin-bottom: 0; word-break: normal; } .markdown-body pre { word-wrap: normal; } .markdown-body pre code { display: inline; max-width: initial; padding: 0; margin: 0; overflow: initial; line-height: inherit; word-wrap: normal; background-color: transparent; border: 0; } .markdown-body pre code:before, .markdown-body pre code:after { content: normal; } /* Admonition */ .markdown-body .admonition { -webkit-border-radius: 3px; -moz-border-radius: 3px; position: relative; border-radius: 3px; border: 1px solid #e0e0e0; border-left: 6px solid #333; padding: 10px 10px 10px 30px; } .markdown-body .admonition table { color: #333; } .markdown-body .admonition p { padding: 0; } .markdown-body .admonition-title { font-weight: bold; margin: 0; } .markdown-body .admonition>.admonition-title { color: #333; } .markdown-body .attention>.admonition-title { color: #a6d796; } .markdown-body .caution>.admonition-title { color: #d7a796; } .markdown-body .hint>.admonition-title { color: #96c6d7; } .markdown-body .danger>.admonition-title { color: #c25f77; } .markdown-body .question>.admonition-title { color: #96a6d7; } .markdown-body .note>.admonition-title { color: #d7c896; } .markdown-body .admonition:before, .markdown-body .attention:before, .markdown-body .caution:before, .markdown-body .hint:before, .markdown-body .danger:before, .markdown-body .question:before, .markdown-body .note:before { font: normal normal 16px fontawesome-mini; -moz-osx-font-smoothing: grayscale; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; line-height: 1.5; color: #333; position: absolute; left: 0; top: 0; padding-top: 10px; padding-left: 10px; } .markdown-body .admonition:before { content: "\f056\00a0"; color: 333; } .markdown-body .attention:before { content: "\f058\00a0"; color: #a6d796; } .markdown-body .caution:before { content: "\f06a\00a0"; color: #d7a796; } .markdown-body .hint:before { content: "\f05a\00a0"; color: #96c6d7; } .markdown-body .danger:before { content: "\f057\00a0"; color: #c25f77; } .markdown-body .question:before { content: "\f059\00a0"; color: #96a6d7; } .markdown-body .note:before { content: "\f040\00a0"; color: #d7c896; } .markdown-body .admonition::after { content: normal; } .markdown-body .attention { border-left: 6px solid #a6d796; } .markdown-body .caution { border-left: 6px solid #d7a796; } .markdown-body .hint { border-left: 6px solid #96c6d7; } .markdown-body .danger { border-left: 6px solid #c25f77; } .markdown-body .question { border-left: 6px solid #96a6d7; } .markdown-body .note { border-left: 6px solid #d7c896; } .markdown-body .admonition>*:first-child { margin-top: 0 !important; } .markdown-body .admonition>*:last-child { margin-bottom: 0 !important; } /* progress bar*/ .markdown-body .progress { display: block; width: 300px; margin: 10px 0; height: 24px; -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; background-color: #ededed; position: relative; box-shadow: inset -1px 1px 3px rgba(0, 0, 0, .1); } .markdown-body .progress-label { position: absolute; text-align: center; font-weight: bold; width: 100%; margin: 0; line-height: 24px; color: #333; text-shadow: 1px 1px 0 #fefefe, -1px -1px 0 #fefefe, -1px 1px 0 #fefefe, 1px -1px 0 #fefefe, 0 1px 0 #fefefe, 0 -1px 0 #fefefe, 1px 0 0 #fefefe, -1px 0 0 #fefefe, 1px 1px 2px #000; -webkit-font-smoothing: antialiased !important; white-space: nowrap; overflow: hidden; } .markdown-body .progress-bar { height: 24px; float: left; -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; background-color: #96c6d7; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .5), inset 0 -1px 0 rgba(0, 0, 0, .1); background-size: 30px 30px; background-image: -webkit-linear-gradient( 135deg, rgba(255, 255, 255, .4) 27%, transparent 27%, transparent 52%, rgba(255, 255, 255, .4) 52%, rgba(255, 255, 255, .4) 77%, transparent 77%, transparent ); background-image: -moz-linear-gradient( 135deg, rgba(255, 255, 255, .4) 27%, transparent 27%, transparent 52%, rgba(255, 255, 255, .4) 52%, rgba(255, 255, 255, .4) 77%, transparent 77%, transparent ); background-image: -ms-linear-gradient( 135deg, rgba(255, 255, 255, .4) 27%, transparent 27%, transparent 52%, rgba(255, 255, 255, .4) 52%, rgba(255, 255, 255, .4) 77%, transparent 77%, transparent ); background-image: -o-linear-gradient( 135deg, rgba(255, 255, 255, .4) 27%, transparent 27%, transparent 52%, rgba(255, 255, 255, .4) 52%, rgba(255, 255, 255, .4) 77%, transparent 77%, transparent ); background-image: linear-gradient( 135deg, rgba(255, 255, 255, .4) 27%, transparent 27%, transparent 52%, rgba(255, 255, 255, .4) 52%, rgba(255, 255, 255, .4) 77%, transparent 77%, transparent ); } .markdown-body .progress-100plus .progress-bar { background-color: #a6d796; } .markdown-body .progress-80plus .progress-bar { background-color: #c6d796; } .markdown-body .progress-60plus .progress-bar { background-color: #d7c896; } .markdown-body .progress-40plus .progress-bar { background-color: #d7a796; } .markdown-body .progress-20plus .progress-bar { background-color: #d796a6; } .markdown-body .progress-0plus .progress-bar { background-color: #c25f77; } .markdown-body .candystripe-animate .progress-bar{ -webkit-animation: animate-stripes 3s linear infinite; -moz-animation: animate-stripes 3s linear infinite; animation: animate-stripes 3s linear infinite; } @-webkit-keyframes animate-stripes { 0% { background-position: 0 0; } 100% { background-position: 60px 0; } } @-moz-keyframes animate-stripes { 0% { background-position: 0 0; } 100% { background-position: 60px 0; } } @keyframes animate-stripes { 0% { background-position: 0 0; } 100% { background-position: 60px 0; } } .markdown-body .gloss .progress-bar { box-shadow: inset 0 4px 12px rgba(255, 255, 255, .7), inset 0 -12px 0 rgba(0, 0, 0, .05); } /* MultiMarkdown Critic Blocks */ .markdown-body .critic_mark { background: #ff0; } .markdown-body .critic_delete { color: #c82829; text-decoration: line-through; } .markdown-body .critic_insert { color: #718c00 ; text-decoration: underline; } .markdown-body .critic_comment { color: #8e908c; font-style: italic; } .markdown-body .headeranchor { font: normal normal 16px fontawesome-mini; line-height: 1; display: inline-block; text-decoration: none; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .headeranchor:before { content: '\e157'; } .markdown-body .task-list-item { list-style-type: none; } .markdown-body .task-list-item+.task-list-item { margin-top: 3px; } .markdown-body .task-list-item input { margin: 0 4px 0.25em -20px; vertical-align: middle; } .markdown-body diagram-div, .markdown-body div.uml-sequence-diagram, .markdown-body, div.uml-flowchart { overflow: auto; } /* Media */ @media only screen and (min-width: 480px) { .markdown-body { font-size:14px; } } @media only screen and (min-width: 768px) { .markdown-body { font-size:16px; } } @media print { .markdown-body * { background: transparent !important; color: black !important; filter:none !important; -ms-filter: none !important; } .markdown-body { font-size:12pt; max-width:100%; outline:none; border: 0; } .markdown-body a, .markdown-body a:visited { text-decoration: underline; } .markdown-body .headeranchor-link { display: none; } .markdown-body a[href]:after { content: " (" attr(href) ")"; } .markdown-body abbr[title]:after { content: " (" attr(title) ")"; } .markdown-body .ir a:after, .markdown-body a[href^="javascript:"]:after, .markdown-body a[href^="#"]:after { content: ""; } .markdown-body pre { white-space: pre; white-space: pre-wrap; word-wrap: break-word; } .markdown-body pre, .markdown-body blockquote { border: 1px solid #999; padding-right: 1em; page-break-inside: avoid; } .markdown-body .progress, .markdown-body .progress-bar { -moz-box-shadow: none; -webkit-box-shadow: none; box-shadow: none; } .markdown-body .progress { border: 1px solid #ddd; } .markdown-body .progress-bar { height: 22px; border-right: 1px solid #ddd; } .markdown-body tr, .markdown-body img { page-break-inside: avoid; } .markdown-body img { max-width: 100% !important; } .markdown-body p, .markdown-body h2, .markdown-body h3 { orphans: 3; widows: 3; } .markdown-body h2, .markdown-body h3 { page-break-after: avoid; } } </style><style>/*GitHub*/ .highlight {background-color:#f7f7f7;color:#333333;} .highlight .hll {background-color:#ffffcc;} .highlight .c{color:#999988;font-style:italic} .highlight .err{color:#a61717;background-color:#e3d2d2} .highlight .k{font-weight:bold} .highlight .o{font-weight:bold} .highlight .cm{color:#999988;font-style:italic} .highlight .cp{color:#999999;font-weight:bold} .highlight .c1{color:#999988;font-style:italic} .highlight .cs{color:#999999;font-weight:bold;font-style:italic} .highlight .gd{color:#000000;background-color:#ffdddd} .highlight .ge{font-style:italic} .highlight .gr{color:#aa0000} .highlight .gh{color:#999999} .highlight .gi{color:#000000;background-color:#ddffdd} .highlight .go{color:#888888} .highlight .gp{color:#555555} .highlight .gs{font-weight:bold} .highlight .gu{color:#800080;font-weight:bold} .highlight .gt{color:#aa0000} .highlight .kc{font-weight:bold} .highlight .kd{font-weight:bold} .highlight .kn{font-weight:bold} .highlight .kp{font-weight:bold} .highlight .kr{font-weight:bold} .highlight .kt{color:#445588;font-weight:bold} .highlight .m{color:#009999} .highlight .s{color:#dd1144} .highlight .n{color:#333333} .highlight .na{color:teal} .highlight .nb{color:#0086b3} .highlight .nc{color:#445588;font-weight:bold} .highlight .no{color:teal} .highlight .ni{color:purple} .highlight .ne{color:#990000;font-weight:bold} .highlight .nf{color:#990000;font-weight:bold} .highlight .nn{color:#555555} .highlight .nt{color:navy} .highlight .nv{color:teal} .highlight .ow{font-weight:bold} .highlight .w{color:#bbbbbb} .highlight .mf{color:#009999} .highlight .mh{color:#009999} .highlight .mi{color:#009999} .highlight .mo{color:#009999} .highlight .sb{color:#dd1144} .highlight .sc{color:#dd1144} .highlight .sd{color:#dd1144} .highlight .s2{color:#dd1144} .highlight .se{color:#dd1144} .highlight .sh{color:#dd1144} .highlight .si{color:#dd1144} .highlight .sx{color:#dd1144} .highlight .sr{color:#009926} .highlight .s1{color:#dd1144} .highlight .ss{color:#990073} .highlight .bp{color:#999999} .highlight .vc{color:teal} .highlight .vg{color:teal} .highlight .vi{color:teal} .highlight .il{color:#009999} .highlight .gc{color:#999;background-color:#EAF2F5} </style><title>README</title></head><body><article class="markdown-body"><h1 id="redvid-collision-event-data-tracks-and-hits">REDVID Collision Event Data – Tracks and Hits<a class="headerlink" href="#redvid-collision-event-data-tracks-and-hits" title="Permanent link"></a></h1> <p><em>dr. ir. Uraz Odyurt</em></p> <h2 id="introduction">Introduction<a class="headerlink" href="#introduction" title="Permanent link"></a></h2> <p>REDuced VIrtual Detector (REDVID) is a simulation framework and a synthetic data generator written in Python. The generator simulates the propagation of subatomic particles, inspired by the detectors installed at the Large Hadron Collider (LHC). The simulation model is complexity-reduced and is intended for generating source data for Machine Learning (ML) algorithms.</p> <p>For further information, refer to <a href="https://virtualdetector.com/redvid/">REDVID website</a>.</p> <h2 id="detector-geometry">Detector geometry<a class="headerlink" href="#detector-geometry" title="Permanent link"></a></h2> <p>A detector’s geometry consists of multiple layers of sub-detectors of different shapes, belonging to different categories. Each category defines the relevant shape of a sub-detector. However, dimensions and the placement of different layers, relative to the detector origin, will vary within each category.</p> <p>Such details, as well as particulars defining the presence/absence of categories of sub-detectors are provided as a configuration file(s).</p> <h3 id="2d-structure">2D structure<a class="headerlink" href="#2d-structure" title="Permanent link"></a></h3> <p>As a result of the oversimplified design of this 2D variant, sub-detector categories have minute differences. In essence, all sub-detector layers are circles centred at the origin. Although the simulator supports filled or partially filled circle designs, the only filled sub-detector is the innermost circle, i.e., the Pixel sub-detector.</p> <p>The following sub-detector categories are available for a 2D variant:</p> <ul> <li>Pixel</li> <li>Short-strip</li> <li>Long-strip</li> </ul> <h3 id="3d-structure">3D structure<a class="headerlink" href="#3d-structure" title="Permanent link"></a></h3> <p>The 3D variant is a big step forward towards closing the gap with the real-world detector apparatus. The available sub-detectors can take the forms of disks and cylinders, or generally speaking, cylinders. As a matter of fact, a disk is a special case for the cylinder shape.</p> <p>The following sub-detector categories are available for a 3D variant:</p> <ul> <li>Pixel</li> <li>Short-strip</li> <li>Long-strip</li> <li>Barrel</li> </ul> <p>The Pixel and the Barrel categories are of the cylindrical shape, with the Pixel being a filled shape and the Barrel being only a shell and without the end-caps. These two categories are centred at the origin.</p> <p>Both the Short-strip and the Long-strip categories consist of sub-detectors in the shape of disks. These disks are centred on the Z-axis. There are multiple such disks, which are mirrored relative to the XY-plane. In other words, each disk has an identical twin on the opposite side of the XY-plane. The shape, the size and the orientation of these pairs are the same.</p> <p>All sub-detector shapes, regardless of their category, are positioned around the Z-axis, i.e., the Z-axis goes through their centre.</p> <h2 id="data-description">Data description<a class="headerlink" href="#data-description" title="Permanent link"></a></h2> <p>The generated data includes information on geometry, tracks and hits from experiments. While the information on the geometry is included, the bulk of the data set covers data for tracks and hits. There are differences in the data generated for the 2D and the 3D structures.</p> <p>Tracks and hits belonging to the experiments performed on the 2D structure are given by means of function coefficients and point coordinates in the Cartesian coordinate system, respectively. Additionally, conversion to the polar coordinate system is included.</p> <p>Tracks and hits belonging to the experiments performed on the 3D structure on the other hand, are defined as parameters of line equations and point coordinates in the Cylindrical coordinate system, respectively.</p> <h3 id="folder-structure">Folder structure<a class="headerlink" href="#folder-structure" title="Permanent link"></a></h3> <p>The generated folder structure, holding the data files, is as follows:</p> <div class="highlight"><pre>ANCHOR_PATH |-- detector_<detector_id> |-- detector_<detector_type> |-- experiment_<detector_type>_<experiment_tag> |-- events_all |-- hits_<detector_type>_events_all.csv |-- hits_and_tracks_<detector_type>_events_all.csv |-- hits_and_tracks_polar_<detector_type>_events_all.csv |-- tracks_<detector_type>_events_all.csv |-- events_individual |-- event_<detector_type>_<event_id> |-- hits_<detector_type>_<event_id>.csv |-- tracks_<detector_type>_<event_id>.csv |-- ... |-- report |-- dataset_<detector_type>_report.txt |-- geometry_<detector_type> |-- geometry_<detector_type>.csv </pre></div> <h3 id="file-combinations">File combinations<a class="headerlink" href="#file-combinations" title="Permanent link"></a></h3> <p>The generated data is saved in multiple CSV files, with the same data being replicated in three file combinations. The user can opt for any of these combinations and will end up with a complete set. These file combinations are as follows:</p> <ul> <li>The complete collection of files per event, i.e., all <code>hits_<detector_type>_<event_id>.csv</code> and <code>tracks_<detector_type>_<event_id>.csv</code> files under the <code>events_individual</code> folder tree are to be considered.</li> <li>The files <code>hits_<detector_type>_events_all.csv</code> and <code>tracks_<detector_type>_events_all.csv</code>, residing inside the <code>events_all</code> folder, have to be considered.</li> <li>The file <code>hits_and_tracks_<detector_type>_events_all.csv</code>, residing inside the <code>events_all</code> folder, has to be considered.</li> </ul> <h3 id="conversions-to-polar-coordinate-system-for-the-2d-structure">Conversions to polar coordinate system for the 2D structure<a class="headerlink" href="#conversions-to-polar-coordinate-system-for-the-2d-structure" title="Permanent link"></a></h3> <p>A post-generation step exists, performing the conversion of the original hit point coordinates from the Cartesian system into the polar coordinate system, as well as the conversion of the track line slope to a degree given in radians.</p> <p>The extra headers generated as a result of this step are appended as new columns to the most comprehensive data file, <code>hits_and_tracks_<detector_type>_events_all.csv</code>. The resulting extended CSV file is save as <code>hits_and_tracks_polar_<detector_type>_events_all.csv</code> in the same location.</p> <h3 id="data-headers-for-the-2d-structure">Data headers for the 2D structure<a class="headerlink" href="#data-headers-for-the-2d-structure" title="Permanent link"></a></h3> <p>Data headers, i.e., CSV column titles, apply to all CSV files. Different CSV files include different subsets of the headers, depending on the contained data. These headers are as follows:</p> <ol> <li> <p><code>event_id</code> - An incremental identifier for events belonging to an experiment, which is unique within the scope of the experiment.<br/> Type => <code>integer</code></p> </li> <li> <p><code>sub_detector_id</code> - An incremental identifier for different sub-detector layers belonging to a geometry, which is unique within the scope of the geometry.<br/> Type => <code>integer</code></p> </li> <li> <p><code>sub_detector_type</code> - The type of the sub-detector layer recording a hit, which can be one of three available types, pixel, short-strip, or long-strip.<br/> Type => <code>string</code></p> </li> <li> <p><code>track_id</code> - An incremental identifier for tracks belonging to an event, which is unique within the scope of the event.<br/> Type => <code>integer</code></p> </li> <li> <p><code>track_type</code> - Indicates the type of function defining the track in terms of polynomial degree. At the moment, all tracks are ‘linear’.<br/> Type => <code>string</code></p> </li> <li> <p><code>coefficient_1</code> - The first track polynomial function coefficient. Not applicable.<br/> Type => <code>float</code></p> </li> <li> <p><code>coefficient_2</code> - The second track polynomial function coefficient. Not applicable.<br/> Type => <code>float</code></p> </li> <li> <p><code>slope</code> - The third track polynomial function coefficient (<code>coefficient_3</code>), i.e., slope.<br/> Type => <code>float</code></p> </li> <li> <p><code>y_intercept</code> - The forth track polynomial function coefficient (<code>coefficient_4</code>), i.e., y-intercept.<br/> Type => <code>float</code></p> </li> <li> <p><code>hit_id</code> - An incremental identifier for hits belonging to an event, which is unique within the scope of the event.<br/> Type => <code>integer</code></p> </li> <li> <p><code>hit_x</code> - The X coordinate of the hit, in the Cartesian coordinate system.<br/> Type => <code>float</code></p> </li> <li> <p><code>hit_y</code> - The Y coordinate of the hit, in the Cartesian coordinate system.<br/> Type => <code>float</code></p> </li> <li> <p><code>track_theta</code> (polar) - The slope degree of the track line in radians.<br/> Type => <code>float</code></p> </li> <li> <p><code>hit_r</code> (polar) - The vector radius, or in other words, the distance of the hit from the origin.<br/> Type => <code>float</code></p> </li> <li> <p><code>hit_theta</code> (polar) - The hit vector slope degree in radians. As a result of the added random noise during data generation, this value is slightly different compared to the <code>track_theta</code> value.<br/> Type => <code>float</code></p> </li> </ol> <p>The header inclusion map for different files are as follows:</p> <ul> <li><code>hits_<detector_type>_<event_id>.csv</code> - 1, 2, 3, 4, 10, 11, 12</li> <li><code>tracks_<detector_type>_<event_id>.csv</code> - 1, 4, 5, 6, 7, 8, 9</li> <li><code>hits_<detector_type>_events_all.csv</code> - 1, 2, 3, 4, 10, 11, 12</li> <li><code>tracks_<detector_type>_events_all.csv</code> - 1, 4, 5, 6, 7, 8, 9</li> <li><code>hits_and_tracks_<detector_type>_events_all.csv</code> - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12</li> <li><code>hits_and_tracks_polar_<detector_type>_events_all.csv</code> - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15</li> </ul> <h3 id="data-headers-for-the-3d-structure">Data headers for the 3D structure<a class="headerlink" href="#data-headers-for-the-3d-structure" title="Permanent link"></a></h3> <p>Data headers, i.e., CSV column titles, apply to all CSV files. Different CSV files include different subsets of the headers, depending on the contained data. These headers are as follows:</p> <ol> <li> <p><code>event_id</code> - An incremental identifier for events belonging to an experiment, which is unique within the scope of the experiment.<br/> Type => <code>integer</code></p> </li> <li> <p><code>sub_detector_id</code> - An incremental identifier for different sub-detector layers belonging to a geometry, which is unique within the scope of the geometry.<br/> Type => <code>integer</code></p> </li> <li> <p><code>sub_detector_type</code> - The type of the sub-detector layer recording a hit, which can be one of three available types, pixel, short-strip, or long-strip.<br/> Type => <code>string</code></p> </li> <li> <p><code>track_id</code> - An incremental identifier for tracks belonging to an event, which is unique within the scope of the event.<br/> Type => <code>integer</code></p> </li> <li> <p><code>track_type</code> - Indicates the type of function defining the track in terms of polynomial degree. Available types are ‘linear’, ‘helical_uniform’ and ‘helical_expanding’.<br/> Type => <code>string</code></p> </li> <li> <p><code>r_0</code> or <code>radial_const</code> - The <code>r</code> coordinate of the <code>(r, theta, z)</code> tuple defining the point <code>P_0</code>, used in a track’s parametric set of equations. The value will represent origin smearing for <code>r</code>. <code>r_0</code> and <code>radial_const</code> are applicable to ‘linear’ and ‘helical_expanding’ track types, respectively.<br/> Type => <code>float</code></p> </li> <li> <p><code>theta_0</code> or <code>azimuthal_const</code> - The <code>theta</code> coordinate of the <code>(r, theta, z)</code> tuple defining the point <code>P_0</code>, used in a track’s parametric set of equations. The value will represent origin smearing for <code>theta</code>. <code>theta_0</code> and <code>azimuthal_const</code> are applicable to ‘linear’ and ‘helical_expanding’ track types, respectively.<br/> Type => <code>float</code></p> </li> <li> <p><code>z_0</code> or <code>pitch_const</code> - The <code>z</code> coordinate of the <code>(r, theta, z)</code> tuple defining the point <code>P_0</code>, used in a track’s parametric set of equations. The value will represent origin smearing for <code>z</code>. <code>z_0</code> and <code>pitch_const</code> are applicable to ‘linear’ and ‘helical_expanding’ track types, respectively.<br/> Type => <code>float</code></p> </li> <li> <p><code>r_d</code> - The <code>r</code> coordinate of the <code>(r, theta, z)</code> tuple defining the direction vector <code>V_d</code>, used in a track’s parametric set of equations. <code>r_d</code> is applicable to the ‘linear’ track type.<br/> OR,<br/> <code>radial_coeff</code> - The coefficient affecting the radius rate in the helical track. <code>radial_coeff</code> is applied to the free variable in the equation for <code>r</code>. <code>radial_coeff</code> is applicable to the ‘helical_expanding’ track type.<br/> Type => <code>float</code></p> </li> <li> <p><code>theta_d</code> - The <code>theta</code> coordinate of the <code>(r, theta, z)</code> tuple defining the direction vector <code>V_d</code>, used in a track’s parametric set of equations. <code>theta_d</code> is applicable to the ‘linear’ track type.<br/> OR,<br/> <code>azimuthal_coeff</code> - The coefficient affecting the clockwise/counter-clockwise extrusion direction of the helical track. <code>azimuthal_coeff</code> is applied to the free variable in the equation for <code>theta</code>. <code>azimuthal_coeff</code> is applicable to the ‘helical_expanding’ track type.<br/> Type => <code>float</code></p> </li> <li> <p><code>z_d</code> - The <code>z</code> coordinate of the <code>(r, theta, z)</code> tuple defining the direction vector <code>V_d</code>, used in a track’s parametric set of equations. This value will be <code>1</code> or <code>-1</code>, depending on which side of the XY-plane the track is being directed to. <code>z_d</code> is applicable to the ‘linear’ track type.<br/> OR,<br/> <code>pitch_coeff</code> - The coefficient affecting the pitch rate in the helical track. <code>pitch_coeff</code> is applied to the free variable in the equation for <code>z</code>. <code>pitch_coeff</code> is applicable to the ‘helical_expanding’ track type.<br/> Type => <code>integer</code></p> </li> <li> <p><code>hit_id</code> - An incremental identifier for hits belonging to an event, which is unique within the scope of the event.<br/> Type => <code>integer</code></p> </li> <li> <p><code>hit_r</code> - The <code>r</code> coordinate of the <code>(r, theta, z)</code> tuple defining the recorded hit point on the relevant sub-detector.<br/> Type => <code>float</code></p> </li> <li> <p><code>hit_theta</code> - The <code>theta</code> coordinate of the <code>(r, theta, z)</code> tuple defining the recorded hit point on the relevant sub-detector.<br/> Type => <code>float</code></p> </li> <li> <p><code>hit_z</code> - The <code>z</code> coordinate of the <code>(r, theta, z)</code> tuple defining the recorded hit point on the relevant sub-detector.<br/> Type => <code>float</code></p> </li> </ol> <p>The header inclusion map for different files are as follows:</p> <ul> <li><code>hits_<detector_type>_<event_id>.csv</code> - 1, 2, 3, 4, 12, 13, 14, 15</li> <li><code>tracks_<detector_type>_<event_id>.csv</code> - 1, 4, 5, 6, 7, 8, 9, 10, 11</li> <li><code>hits_<detector_type>_events_all.csv</code> - 1, 2, 3, 4, 12, 13, 14, 15</li> <li><code>tracks_<detector_type>_events_all.csv</code> - 1, 4, 5, 6, 7, 8, 9, 10, 11</li> <li><code>hits_and_tracks_<detector_type>_events_all.csv</code> - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15</li> </ul> <h3 id="report">Report<a class="headerlink" href="#report" title="Permanent link"></a></h3> <p>A textual report file is generated and saved under the <code>report</code> folder within an experiment’s folder tree. The automatically composed report lists many of the detector-specific configuration directly from the information provided in the relevant configuration file(s). Not every configuration field is needed by the user and only the fields facilitating the understanding of the data are considered. Other than the set of important experiment parameters, basic statistical information regarding the data set are also included. These fields would be most meaningful when dealing with variable event conditions, e.g., variable number of tracks.</p> <h2 id="usage-and-citation">Usage and citation<a class="headerlink" href="#usage-and-citation" title="Permanent link"></a></h2> <p>If you use this data set in your research or any publication, we kindly request you to cite the following paper:</p> <div class="highlight"><pre>@inproceedings{Odyurt:YEAR:REDVID, author = {Odyurt, Uraz and Swatman, Stephen Nicholas and Varbanescu, Ana-Lucia and Caron, Sascha}, title = {Reduced Simulations for High-Energy Physics, a Middle Ground for Data-Driven Physics Research}, booktitle = {UPDATE AS APPROPRIATE}, year = {UPDATE AS APPROPRIATE}, doi = {GIVEN IN ZENODO METADATA} } </pre></div> <p>We put significant effort into curating and providing this data set and proper citation helps acknowledge and support the continued development of this resource.</p> <h2 id="support">Support<a class="headerlink" href="#support" title="Permanent link"></a></h2> <p>Note that this data set is being shared on an “as is” basis, without any express or implied warranties or obligations of support. While we have made efforts to ensure the accuracy and completeness of the data, we cannot guarantee its fitness for any particular purpose or provide any form of ongoing support.</p> <p>As the creators and sharers of this data set, we are unable to offer any dedicated support or assistance in working with or analysing the data. We do not commit to responding to inquiries, fixing issues, or providing additional documentation or guidance related to this data set. Should you encounter any challenges or have questions, we recommend referring to the existing documentation.</p> <h2 id="roadmap">Roadmap<a class="headerlink" href="#roadmap" title="Permanent link"></a></h2> <p><em>Confidential</em></p> <h2 id="authors-and-acknowledgement">Authors and acknowledgement<a class="headerlink" href="#authors-and-acknowledgement" title="Permanent link"></a></h2> <p>The REDVID simulation framework and the generated data sets are authored by:</p> <ul> <li><em>dr. ir. Uraz Odyurt</em> - Radboud University; Nikhef</li> </ul> <p>The collaborating team includes:</p> <ul> <li><em>dr. Sascha Caron</em> - Radboud University; Nikhef</li> <li><em>dr. ir. Ana-Lucia Varbanescu</em> - University of Twente; University of Amsterdam</li> <li><em>dr. Roel Aaij</em> - Nikhef</li> </ul> <p>Previous collaborating members:</p> <ul> <li><em>MSc Stephen Nicholas Swatman</em> - University of Amsterdam; CERN</li> </ul> <h2 id="licence">Licence<a class="headerlink" href="#licence" title="Permanent link"></a></h2> <p>The data set is licenced under the <a href="https://creativecommons.org/licenses/by/4.0/legalcode">Creative Commons Attribution 4.0 International License (CC-BY-4.0)</a>, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited, as shown <a href="#usage-and-citation">above</a>.</p> <p>If you have any questions regarding the licence or usage of the data set, please contact the authors.</p> <p>Note: The licence applies only to the data set itself and not to any third-party content or software that may be included with the data set. Please review any licences or terms of use associated with those components separately.</p> <h2 id="project-status">Project status<a class="headerlink" href="#project-status" title="Permanent link"></a></h2> <p>As of January 2024, the project is under active development.</p> <hr /></article></body></html>