| <p># AraSim CSE Spring 2024 Work</p>
<p>## Goals <br />
The main goal was to get a working multithreaded version of the AraSim codebase working. Doing this, the hope was to learn how to multithread the code and get it in a good place to hopefully also integrate GPU's at a later date.</p>
<p>## Where is it at currently? <br />
A bulk of the work done was to functionalize the Connect_Interaction_Detector_V2 to allow for multithreading and to cleanup codebase. </p>
<p>### Going through code added/changed<br />
Helper functions for multiple parts of code. They went through and split it up into multiple parts. Putting line numbers when needed</p>
<p>Part 1: Clearning Antenna Data<br />
Part 2: Determine gain channel<br />
Part 3: solve ray tracing (Not Done)<br />
Part 4: Process Ray Tracing Solution (Not Done)<br />
Part 5: Calculate Signal Factors (Not Done)<br />
Part 6: Calculate Antenna Gain Factors (Not Done)<br />
Part 7: Process Frequency Domain Signal<br />
Part 8A: Process Neutrino Events. Lines 908 - 1208 (Not Done)<br />
Part 8B: Process Arbitrary Events. Lines 1209 - 1475 <br />
Part 8C: Process Simple Pulser Simulation. Lines 1478 - 1747 (Not Done)<br />
Part 8D: Process PVA Pulser Simulation. Lines 1751 - 2110 (Not Done)<br />
Part 8E: Process Calpulser Event. Lines 2113 - 2445<br />
Part 9A: Process Noise. Lines 2593 - 2955<br />
Part 9B: Process Trigger and Mimic Waveforms. Lines 2994 - 3624</p>
<p>## What still needs to be done? <br />
- Multithreading still isn't working, multiple threads are writing data to the same place causing the program to crash. This need to be resolved to at least have a working prototype. </p>
<p>- I believe for multithreading we need to mark explicitly where file/data writing is happening to be able to adjust to make thread-safe</p>
<p>- Double checking that new functions are passing variables in the correct way. The CSE students had this has a slight fear. </p>
<p>- Some helper functions are still not completed (3-6, 8A, 8C, 8D) </p>
<p>- Current completed parts of code are all in separate branches and need to be merged after double checking that variable passing is correct</p> |