Skip to content

Geant4 simulation and characterisation code for the deuteron isovector polarization experiment (Thesis 2026).

Notifications You must be signed in to change notification settings

luozichen/Isovector-Polarimeter-Dev

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

132 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Deuteron Isovector Polarimeter Development

Project Info Details
Author Zichen Luo
Institution Tsinghua University, Department of Physics
Supervisor Prof. Xiao Zhigang
Focus Hardware Dev & Geant4 Simulation

πŸ“ Project Goal

Detector Hardware Development

  • Voltage-Divider Design: Iteratively design and manufacture the PMT Voltage Divider PCB. [2025-12-03]
  • PMT base: Iteratively design and 3D print the base mechanical components. [2025-12-30]
  • Mechanical Structure: Design and 3D print the detector outer casing. [2026-01-14]
  • System Integration: Complete the optical coupling of scintillators to PMTs and the final assembly of 4 detector units. [2026-01-15]
  • Cosmic Ray Testing: Construct a cosmic ray telescope system to verify the detector's logic coincidence and long-term operational stability. [2026-01-18]
  • Energy Calibration: Utilize the laboratory's Thorium source (Th-232) to perform precise energy calibration.
  • Digital Twin Simulation: Create a Geant4 "digital twin" of the detector stack and run simulations to obtain expected energy deposition distributions. [2026-01-17]
  • Energy Calibration: Perform energy calibration by matching experimental Cosmic Ray Muon Landau distributions with Geant4 simulated energy deposits (replacing Th-232 method). [2026-01-19]
  • Time Resolution: Measure detector jitter and time resolution. Note: due to the lack of "good detector pair data", we use results obtained using software collimation (Landau cuts) on Run 003 data to isolate vertical events and solved the system of pair variances. [2026-01-20]
  • Further Data Acquisition: Acquire more data with detector pairs in the middle to get "good detector pair data". Get all 6*1000 waveforms for all 6 possible middle configurations (4C2). [2026-01-22]
  • Improved Calibration: Calculate improved energy deposit calibration using more data (Each detector has two sets of middle data. Analyse Combined Data). [2026-01-22]
  • Improved Jitter: Calculate improved jitter calculation using the good detector pair data (which we previously lacked in first calculation, and we had to use cutting of the top and bottom detectors to get required data). [2026-01-22]
  • Thorium Investigation: Investigating thorium on detectors anyways.
  • (Added on 2026-02-01) Comprehensive jitter study methods
  • (Added on 2026-02-01) Jitter-WorkingVoltage study, and Calibration-WorkingVoltage curve study.

Theoretical Derivation & Physics Simulation

  • Polarization Derivation: Starting from quantum scattering theory, derive the analytical relationship between the deuteron-proton (d-p) elastic scattering cross-section and the beam's tensor polarization.
  • Detection Simulation: Write code to simulate the scattering of the polarized deuteron beam on a methlyne target, and obtain the detector response, verifying the derivation and the rationality of the detector layout.
  • Physics Verification: Using the ImQMD transport model to simulate the entire IVR experiment process, verifying the sensitivity of the experimental results to the beam polarization.

πŸ“Š Final Results Summary

1. Energy Calibration (800V working voltage)

Methodology: Matched experimental MPVs (Combined Analysis, 6000 events) with Geant4 simulation reference energy (1M event Long Run). Reference Energy (Simulation): 30.01 MeV (Average of middle detectors Scin1/Scin2).

Detector Experimental MPV (mV) Calibration Constant (MeV/mV) 1 MeV Signal (mV)
Det 1 277.16 0.1083 9.24
Det 2 257.40 0.1166 8.58
Det 3 264.44 0.1135 8.81
Det 4 299.42 0.1002 9.98

2. Time Resolution (800V working voltage)

Methodology: Least-squares solution of pairwise variances using 6 "Golden" middle-layer stack configurations.

Detector Intrinsic Jitter ($\sigma$) Resolution (FWHM)
Det 1 0.505 ns 1.189 ns
Det 2 0.507 ns 1.194 ns
Det 3 0.541 ns 1.274 ns
Det 4 0.531 ns 1.250 ns
Average 0.521 ns 1.227 ns

πŸ“… Development Log

February 2026

  • 2026-02-02:
    • Procurement: Ordered a replacement batch of 10 Voltage Divider PCBs.
  • 2026-02-01:
    • Hardware Repair Attempt (PMT Base):
      • Disassembly: Attempted to disassemble the faulty base unit. The current assembly relies on friction fit between the pin receptacles and the 3D-printed socket housing pilot holes (aligned prior to soldering).
      • Rework: Successfully separated the PCB from the housing despite significant mechanical resistance. Re-crimped each individual receptacle to ensure tighter mechanical tolerance before re-aligning and re-assembling with the socket housing.
      • Test Result: Failure. The rework did not resolve the high-voltage instability.
    • Failure Analysis (V-I Characterisation):
      • Observation: Tested the reworked base at 800V. Observed anomalous V-I behaviour indicative of dielectric breakdown or arcing.
      • Specific Anomaly: As voltage ramped to ~360V, leakage current rose to 53 Β΅A. At ~400V, current read 57 Β΅A before the voltage collapsed to ~200V. This voltage collapse was followed by a delayed current reading spike (displaying ~100 Β΅A at ~200V), suggesting a massive transient short occurred at the 400V threshold that triggered the PSU's protection circuit faster than the display sampling rate.
      • Hypothesis: The components or PCB substrate likely exhibit a voltage-dependent breakdown. While they test nominal under low-voltage/DC conditions (multimeter), they undergo catastrophic failure or arcing under high field strengths (>300V).
    • Salvage Attempt: Attempted to recover the first PCBv2 board (which was previously sidelined due to not crimping at all). However, the legacy socket housing design created excessive friction, making non-destructive disassembly impossible. The unit was deemed unsalvageable.
    • Analysis Strategy: Defined new goals for "Robust Jitter Extraction." Current methods rely on "Golden Pairs" (physically collimated middle detectors). The objective is to develop an algorithm capable of extracting intrinsic jitter from single detectors or imperfect stacks by using advanced data filtering (software collimation) to compensate for geometric variance.

January 2026

  • 2026-01-30 & 2026-01-31:

    • Project Pause: Temporarily halted hardware debugging to mitigate burnout.
    • Infrastructure: Deployed KataGo on a remote server (utilising RTX 5090 compute) for high-performance Go analysis.
    • Algorithm Development: Continued conceptual work on the robust jitter extraction methodology during the hardware downtime.
  • 2026-01-29:

    • Developing more jitter extraction methods
    • Codebase Refactor:
      • Modularization: Transformed analysis/ into a Python package with a utils/ module for standardized I/O, physics calculations, and plotting.
      • Robustness: Replaced ad-hoc scripts with unified tools (process_run.py, compare_runs.py) that handle configuration dynamically.
      • Dependencies: Added requirements.txt for reproducibility.
    • Experimental Status:
      • Run 17 (Failed): The attempted high-statistics (10,000 events) run at 900V failed.
      • Issue: Channel 2 of the HV power supply exhibited instability, dropping to 0V (Undervoltage). No data was saved.
      • Root Cause: Suspected overheating of the power supply unit when driving all 4 channels at 900V. The system was previously stable for days at 800V.
      • Plan: Retrying the 4x 900V run today, monitoring thermal conditions closely.
    • Failure Analysis (Run 017 - 900V Instability):
      • Symptom: The 4-channel 900V run failed repeatedly due to instability on Channel 2 (Detector 3).
      • Troubleshooting Steps:
        1. PSU Swap: Switched power modules. (From NDT1471 to another module). Result: Failure persisted. (Ruled out PSU Module).
        2. Channel Swap: Swapped cables to drive Detector 3 via Channel 0. Result: Failure followed the detector. (Ruled out PSU Channel).
        3. Base Swap: Replaced the PMT base on Detector 3 with the official base unit for that PMT. Result: System stabilised.
      • Conclusion: The root cause is a hardware defect within the specific PMT Base unit used for Detector 3.
    • Component Inspection:
      • Performed a bench inspection of the faulty base. Multimeter checks showed nominal resistance and capacitance values, ruling out obvious component failure.
      • Suspected Cause: A "soft" connection failure where the crimped receptacles make intermittent contact with the PMT pins, or a high-voltage breakdown path that is only active under load (not detectable via low-voltage multimeter).
  • 2026-01-28:

    • Robustify analyse_physical.py: Different treatment for different runs. Backwards compatible.
    • Analysis of run017 (10000 events), 900V working voltage, config 1342
  • 2026-01-27:

    • High-Resolution Single Detector Calibration:
      • Run 015 (Background) & Run 016 (Thorium): Acquired 20,000 events each on Det 3 with a 10 mV threshold.
      • Improvement: Increased vertical resolution to 50 mV/div (previously 100 mV/div) to better resolve the low-energy region.
      • Plots: Generated thorium_comparison_run15_16_0_100mV.png, thorium_comparison_run15_16_full_range.png, and thorium_comparison_run15_16_full_range_log.png.
    • Operational Stability:
      • Status: The detector system has been running continuously for several days at 800V. Stability remains excellent with no observed gain shifts.
  • 2026-01-26:

    • Single Detector Calibration (Transition to Single Fold):
      • Strategy Shift: Moved away from 4-fold coincidence for source studies to avoid accidental coincidence artifacts. Switched to Single Detector (1-fold) triggering.
      • Run 013 (Background) & Run 014 (Thorium): 10,000 events collected on Det 1 with 10 mV threshold.
      • Observation: The single-detector spectra show a clear low-energy excess for the Thorium run compared to the background control. Data analysis is ongoing.
      • Plots: Generated thorium_comparison_run13_14_0_100mV.png and thorium_comparison_run13_14_full_range.png.
    • Thorium Calibration Verification:
      • Run 012 (Background): Acquired 1000 waveforms without Thorium source at the minimal 5 mV discriminator threshold.
      • Comparison Analysis: Performed a head-to-head comparison between Run 011 (Thorium) and Run 012 (Background).
      • Verification: The comparison clearly identifies a distinct low-energy Thorium signal excess above the background. This confirms that the 5 mV threshold is sufficient to resolve external radioactive sources while the logic trigger (4-fold coincidence) effectively filters out random noise.
      • Plot: Generated thorium_comparison_5mV.png.
    • πŸ•΅οΈ Special Investigation: The "Thorium Mystery"
      • The Anomaly: Observed a sharp peak at 2-3 mV in Run 011, despite the hardware discriminator being set to 5 mV. Furthermore, it is physically unlikely for a single 2.6 MeV gamma to trigger a 4-fold coincidence across 15cm detectors.
      • Key Findings:
        1. Path Attenuation: The consistent observation of signals at ~50% of the hardware threshold suggests a factor of 2 attenuation in the signal path to the oscilloscope relative to the logic unit path.
        2. Accidental Coincidences: At the 5 mV threshold, the system becomes sensitive to Single Photoelectrons (SPE). The high rate of the Thorium source likely causes a high frequency of random 4-fold overlaps (accidental coincidences) of single photons.
        3. SPE Peak: The "peak" at 2-3 mV is likely the intrinsic SPE response of the PMTs, rather than a Muon-like energy loss distribution. This explains why Landau fits fail for this specific dataset.
      • Conclusion: The 4-fold coincidence method is suboptimal for radioactive source studies due to the high accidental rate at low thresholds. Future source calibration will shift to single-detector triggering to obtain clean Compton spectra.
  • 2026-01-25:

    • Thorium Calibration (Lowest Threshold):
      • Run 011: Acquired 1000 waveforms with Thorium source and a minimal discriminator threshold of 5 mV (previously 15 mV).
      • Objective: Further investigate the low-energy spectrum and search for Thorium decay signatures.
      • Observation: The energy deposition graph reveals a new, unexplained peak. It is currently unclear if this is a genuine physical signal or electronic/background noise.
      • Results:
        • Statistics: 1000 events collected. 48.4% clean.
        • Jitter: Middle detectors continue to show excellent timing resolution (Det 3: 0.24 ns, Det 4: 0.15 ns), though the extremely low threshold may be introducing some timing artifacts in the outer detectors.
      • Next Steps: Proceeding to acquire a control dataset with the same 5 mV threshold but without the Thorium source to isolate the origin of the new peak.
  • 2026-01-24:

    • Started Run 011 (Even Lower Threshold):
  • 2026-01-23:

    • Thorium Calibration (Low Threshold):
      • Run 009: Acquired 1000 waveforms with Thorium source and a lower discriminator threshold of 15 mV (previously 50 mV).
      • Objective: Investigate spectrum at lower energies.
      • Results:
        • Statistics: 1000 events collected. 36.9% clean (5.4% noise, 57.7% clipped).
        • Plots: Generated run009_landau_fits.png, run009_timing_pairs.png, etc.
        • Jitter Analysis: Consistent with previous findings, middle detectors (Det 3, Det 4) show intrinsic resolution ~0.4-0.5 ns.
    • Background Run (Low Threshold):
      • Run 010: Acquired 1000 waveforms without Thorium source (Background) and a lower discriminator threshold of 15 mV.
      • Objective: Compare with Run 009 to isolate the Thorium spectrum.
      • Results:
        • Statistics: 1000 events collected. 39.1% clean (5.0% noise, 55.9% clipped).
        • Comparison: Generated thorium_comparison_15mV.png comparing the normalized energy deposition spectra of Run 009 and Run 010.
  • 2026-01-22:

    • Data Acquisition (Stack 1342):
      • Status: Acquisition and Analysis Complete.
      • Run 007 Results:
        • Statistics: 1000 events collected. 48.9% clean (0.4% noise, 50.7% clipped).
        • Plots: Generated run007_landau_fits.png, run007_timing_pairs.png, etc.
        • Jitter Analysis: Middle detectors showed superior performance: Det 3 (0.48 ns) and Det 4 (0.34 ns).
    • Run 007 Analysis:
      • Completed analysis for Stack 1342.
      • Continued observation of geometric effects on jitter:
        • Middle (Det 3, 4): ~0.34 - 0.48 ns (Individual run fits)
        • Outer (Det 1, 2): ~0.74 - 0.76 ns
      • This consistent pattern confirmed the need for a global fit using only middle-layer data.
    • Combined Jitter Analysis (Golden):
      • Solved the overdetermined system of timing variances using only the 6 "Golden Pairs" (middle detectors from Runs 002-007).
      • Methodology: $\sigma_{pair}^2 = \sigma_A^2 + \sigma_B^2$. System of 6 equations, 4 unknowns. No amplitude cuts applied (only noise rejection) to preserve true timing statistics.
      • Results (Intrinsic $\sigma$):
        • Det 1: 0.505 ns
        • Det 2: 0.507 ns
        • Det 3: 0.541 ns
        • Det 4: 0.531 ns
      • Validation: The model fits the experimental data exceptionally well. A least-squares analysis of pairwise variances yielded a model consistency with typical residuals of $\sim 5$ ps, confirming the robustness of the calculated intrinsic resolution.
      • Conclusion: The detectors exhibit remarkable uniformity. The intrinsic timing resolution of the system is consistently ~0.5 ns. Previous variations were dominated by geometric path length differences in outer positions.
    • Combined Landau Analysis:
      • Aggregated data from Runs 002-007, strictly selecting only events where detectors were in Middle positions.
      • Methodology Refinement: Removed amplitude-based cuts (e.g., >90% MPV) for these detectors. Relied on physical collimation from the outer detectors to ensure event purity, applying only electronic noise rejection. This preserves the natural lower-energy tail of the Landau distribution.
      • Physics Interpretation: The theoretical Landau distribution assumes a fixed path length. In reality, the measured spectrum is a convolution of the intrinsic Landau fluctuations (straggling) and the Path Length Distribution determined by the detector geometry.
        • Outer Detectors: Accept a wide range of angles and corner clips, creating a messy path length distribution that distorts the spectrum.
        • Middle Detectors: Physical collimation constrains the path length $L$ to be nearly constant (approx. detector thickness). This allows the measured spectrum to closely approach the ideal Landau shape, though slight broadening remains due to the residual angular acceptance.
      • Generated combined_landau_fits.png showcasing high-statistics Landau distributions for all four detectors (Det 1-4), validating their energy response uniformity.
    • Combined Calibration Results:
      • Stability Analysis: Performed individual Landau fits for each detector across different runs using a 50-bin resolution. Results showed exceptional stability and consistency, with all individual fits converging successfully. This confirms that the detector gains are remarkably stable across the entire acquisition period.
      • Updated MPV Constants:
        • Det 1: 272.5 mV β†’ 277.2 mV (+1.7%)
        • Det 2: 258.6 mV β†’ 257.4 mV (-0.5%)
        • Det 3: 264.1 mV β†’ 264.4 mV (+0.1%)
        • Det 4: 293.8 mV β†’ 299.4 mV (+1.9%)
      • Conclusion: The combined analysis (Runs 002-007) leveraging physical collimation and high statistics provides the most accurate experimental MPVs to date.
    • Final Energy Calibration:
      • Objective: Establish definitive MeV/mV conversion constants for the detector system.
      • Methodology: Leveraged the 1M event Geant4 "Long Run" (v0200_coincidence) to determine the reference energy deposition. Selected 4-fold coincidence events matching experimental conditions. Used the average MPV of middle detectors (Scin1, Scin2) to minimize geometric bias.
      • Reference Energy (Simulation): 30.01 MeV.
      • Results: Derived final calibration constants for all 4 detectors by matching simulated energy to experimental MPVs. The conversion constants range from 0.100 to 0.117 MeV/mV.
      • Conclusion: The system is now fully calibrated with high statistics, enabling precise energy spectroscopy for future experiments.
    • Trigger Jitter Analysis (Method 3):
      • Objective: Assess the timing precision of the hardware trigger logic relative to the detector signals.
      • Methodology: Calculated the standard deviation of the signal arrival time (dCFD) with respect to the trigger time for middle detectors.
      • Results: Observed jitter values ranging from 0.8 ns to 3.0 ns, significantly higher than the intrinsic system jitter (~0.5 ns) determined by the pair-difference method.
      • Conclusion: The hardware trigger logic introduces substantial timing uncertainty ("wobble"). High-precision timing measurements must rely on offline dCFD-dCFD analysis between detectors rather than referencing the trigger signal.
    • Thorium Calibration Analysis: Placed a thorium source directly above top detector. Acquired the nessesary data (run008, 1000 waveforms per detector, discriminator module set to 50 mV, same as all previous runs) with the same detector configuration as run007 (1324). Compared the energy deposition across the two runs. No noticable difference. Plan to acquire more data with lower threshold.
    • Infrastructure & Simulation Update:
      • Simulation Milestone: Successfully completed the 1M event Geant4 "Long Run" (v0200_coincidence), providing a high-statistics dataset for precise energy loss and angular distribution modeling.
      • Code Standardization: Renamed and standardized analysis scripts (e.g., analyse_v0200.py for standard calibration, analyse_v0200_advanced.py for physics validation) to align with the new simulation versioning.
      • Git Policy Update: Removed .wfm files and the data/ directory from .gitignore. Raw waveform data (binary WFM) is now tracked to ensure full reproducibility of the analysis pipeline. Large intermediate .csv files remain ignored to manage repository size.
  • 2026-01-21:

    • Infrastructure Update:
      • Directory Reorganization: Separated results into results/physical/ (experimental data) and results/simulation/ (Geant4 outputs) for better organization.
      • Analysis Pipeline Upgrade: Transitioned from parsing .csv files to reading binary .wfm files directly.
    • New Data Acquisition (Stack 2134):
      • Configuration: Det 2 (Top) -> Det 1 (Mid1) -> Det 3 (Mid2) -> Det 4 (Bot).
      • Goal: Place Det 1 and Det 3 in the geometric center of the stack to acquire "golden" vertical events naturally, validating the software collimation results.
      • Status: Acquisition and Analysis Complete.
      • Run 004 Results:
        • Statistics: 1000 events collected. 76.6% clean (6.6% noise, 16.8% clipped).
        • Plots: Generated run004_landau_fits.png, run004_timing_pairs.png, etc.
        • Jitter Analysis: Middle detectors showed superior performance: Det 1 (0.31 ns) and Det 3 (0.52 ns).
    • New Data Acquisition (Stack 3124):
      • Configuration: Det 3 (Top) -> Det 1 (Mid1) -> Det 2 (Mid2) -> Det 4 (Bot).
      • Goal: Place Det 1 and Det 2 in the geometric center of the stack to acquire "golden" vertical events naturally, validating the software collimation results.
      • Status: Acquisition and Analysis Complete.
      • Run 005 Results:
        • Statistics: 1000 events collected. 75.3% clean (0.8% noise, 23.9% clipped).
        • Plots: Generated run005_landau_fits.png, run005_timing_pairs.png, etc.
        • Jitter Analysis: Middle detectors showed superior performance: Det 1 (0.29 ns) and Det 2 (0.40 ns).
    • New Data Acquisition (Stack 1243):
      • Configuration: Det 1 (Top) -> Det 2 (Mid1) -> Det 4 (Mid2) -> Det 3 (Bot).
      • Goal: Place Det 2 and Det 4 in the geometric center of the stack.
      • Status: Acquisition and Analysis Complete.
      • Run 006 Results:
        • Stricter Software Collimation: Implemented more aggressive Landau cuts (90% of MPV instead of 60%) to isolate strictly "golden" vertical events. This led to a higher rejection rate (50.7% clipped) but ensured higher data purity.
        • Statistics: 1000 events collected. 48.2% clean (1.1% noise, 50.7% clipped).
        • Plots: Generated run006_landau_fits.png, run006_timing_pairs.png, etc.
        • Jitter Analysis: Middle detectors showed superior performance: Det 2 (0.46 ns) and Det 4 (0.40 ns).
        • Methodology Note: While calculating jitter from individual runs is generally suboptimal compared to global multi-run fits, this investigation aims to quantify the reliability of single-run measurements. It serves as a test to see if using "strict Landau cuts" is an effective strategy for extracting high-quality timing data from limited datasets.
    • New Data Acquisition (Stack 1342):
      • Configuration: Det 1 (Top) -> Det 3 (Mid1) -> Det 4 (Mid2) -> Det 2 (Bot).
      • Goal: Place Det 3 and Det 4 in the geometric center of the stack.
  • 2026-01-20:

    • Started a 1M long Geant4 (G4) simulation run to get better data (not physical detector data).
    • Theoretical Derivation Started:
      • Began deep dive into deuteron polarization scattering theory.
      • Currently analyzing:
        • M matrix properties and constraints by symmetry.
        • Analyzing power definitions.
        • Beam polarization formalism.
        • Spherical tensor operators.
        • Madison convention standards.
    • Jitter Analysis (Software Collimation):
      • Objective: Determine intrinsic timing jitter ($\sigma$) for individual detectors using cosmic ray data.
      • Methodology:
        • Software Collimation: Implemented "Landau Cuts" to filter out low-amplitude "corner-clipping" events which degrade timing resolution. (Kept 631/1000 events from Run 003).
        • Timing Extraction: Used Digital Constant Fraction Discriminator (dCFD) at 30% fraction with linear interpolation.
        • Solver: Solved the overdetermined system of pair variances ($\sigma_i^2 + \sigma_j^2 = \sigma_{ij}^2$) to extract individual detector jitter.
      • Tool: Created analysis/analyse_jitter.py.
      • Results (Run 003):
        • Det 1: 1.643 ns
        • Det 2: 1.490 ns
        • Det 3: 1.043 ns (Best Performance)
        • Det 4: 2.873 ns (Needs investigation)
      • Future Plan: Perform higher-quality measurements by physically placing different detector pairs in the center of the stack (position 2 and 3). This will ensure "golden" vertical events for all detectors without requiring software collimation/filtering. Scheduled for the next available lab session.
  • 2026-01-19:

    • ❄️ Official start of the Winter Holidays. ❄️
    • Run 003 Analysis (Switched Detectors):
      • Status: Analyzed 1000 events from the "switched" configuration (Inner/Outer detectors swapped).
      • Noise/Stability: Observed significantly higher noise floor compared to Run 002. Mean baseline noise rose to ~50-60mV.
        • Rejection Rate: 27.1% (271/1000) rejected with the standard 30mV threshold (vs 1.9% in Run 002).
      • Burst Noise Investigation:
        • Identified a major noise burst lasting 155 consecutive events (Indices 136-290).
        • Identified a secondary burst of 58 events (Indices 505-562).
        • This explains the rapid count increase observed during acquisition.
      • Results: Successfully generated Landau fits for the 729 clean events. Plots updated with Run ID labels for clarity.
    • Energy Calibration Update:
      • Methodology Change: Re-evaluated the "True Energy" reference from Geant4 simulation.
        • Golden Events (Face-to-Face): Selecting strictly vertical muons passing through the top face of the top detector and bottom face of the bottom detector. Result: 29.50 MeV.
        • Realistic (4-Fold Coincidence): Selecting all events that trigger the 4-fold coincidence (matching experiment). Averaged the energy deposition of the middle two detectors (Scin1, Scin2) as they are less prone to geometric corner-clipping effects than the outer detectors in this broader acceptance mode. Result: 29.85 MeV.
        • Decision: Adopted the Realistic (29.85 MeV) value as it better represents the experimental trigger condition (which accepts angled tracks with slightly longer path lengths).
      • Calculated Calibration Constants:
        • Ch1 (Top): 272.5 mV β†’ 0.1095 MeV/mV
        • Ch2 (Mid1): 258.6 mV β†’ 0.1154 MeV/mV
        • Ch3 (Mid2): 264.1 mV β†’ 0.1130 MeV/mV
        • Ch4 (Bot): 293.8 mV β†’ 0.1016 MeV/mV
    • Run 002 Analysis (1000 events):
      • Noise Filtering: Implemented a threshold-based filter (rejecting events with Max Voltage > 30mV) to remove large positive noise excursions.
        • Result: 19/1000 events (1.9%) rejected as noise. Confirmed rejected events were indeed artifacts.
      • Landau Distributions:
        • Middle Detectors (Ch2, Ch3): Observed clean, well-defined Landau peaks; successfully identified voltage MPVs.
        • Top/Bottom Detectors (Ch1, Ch4): Observed broader distributions with "clipping" effects, consistent with geometric acceptance limitations in a 4-fold coincidence setup.
      • Data Acquisition (ADC-free): Utilized the oscilloscope's FastFrame feature to capture 1000 events directly, successfully bypassing the need for an external ADC module.
      • Power Supply Stability: Channel 0 of the NDT1471 failed again in the morning but showed stability in the afternoon. Decided to proceed with all four detectors; Ch0 has remained stable throughout the afternoon acquisition.
      • New Acquisition: Started the second 1000-event run with inner and outer detectors switched to investigate systematic effects.
    • Experimental Status:
      • Validated analysis on a 10-event test run (run001).
      • Started acquisition of a large run (1000 events) to improve statistical significance.
    • Waveform Analysis:
      • Created analysis/analyse_waveform.py to process oscilloscope data (Tektronix CSV format).
      • Can parse multiple "FastFrame" events from a single CSV.
      • Generates waveform plots and peak amplitude statistics.
    • Simulation & Analysis Upgrade:
      • Cleaned up erroneous data from previous test runs (v00/v01).
      • Developed robust analysis tools for the 4-detector coincidence setup (v0200):
        • analyse_v0200.py: Performs Landau fits on energy deposition data to verify detector calibration.
        • analyse_advanced.py: Conducts detailed physics validation, including beam spot heatmaps, zenith angle reconstruction, and path length vs. energy correlation (dE/dx).
      • Successfully processed 100,000 simulated events.
      • Generated key validation plots:
        • Calibration: Verified distinct Landau peaks for all 4 detectors (~860 coincident events).
        • Physics Check: Confirmed "Corner Clipping" effect and validated the expected dE/dx behavior.
  • 2026-01-18:

    • Set up Git. Cleaned up messy runs.
    • Implemented logic for cosmic ray triggering.
      • N625: Signal duplication. There are four sections. Each sections have four inputs and four outputs. Outputs in each section is identical, the value is the sum of the inputs of the section.
      • N843: Discriminator. Converts signals to 0 or 1 depending on whether they meet the threshold voltage or not. (Takes negative voltage inputs)
      • N405: AND/OR.
      • NDT1471: the power supply (used already for many weeks).
    • Setup
      • Each detector output is connected to N625, where the signal is duplicated.
      • A copy of each signal is sent to the oscilliscope.
      • Another copy is sent to N843. Discriminator for each signal is set to -100mV.
      • The four outputs are then sent to N405. The AND gate takes in these four inputs, and creates one output.
      • AND gate output sent to oscilliscope auxilliary channel. Trigger is set to the AUX channel, with voltage -400mV.
    • Snags
      • CH0 of the power supply keeps failing to output the voltage (900V) and instead drops to 3V and displaying UnV warning.
      • Turned off and on the power supply. Works initially, but failed within a few minutes.
      • Switched power supply between DET01 and DET02, (CH0 and CH1). CH0 still failed. Ruled out detector problems.
      • Suspecting overheating of power supply. Decreased output of all four channels from 900V to 800V.
      • Signal is still seen from the logic trigger despite PMT voltage reduction. Lowered discriminator to 50mV anyways.
      • CH0 still fails after a while.
  • 2026-01-17:

    • Identified another critical bug in the Geant4 simulation v01_coincidence. Due to the non-standard geometry orientation used, the cosmic rays should be entering from the y direction, instead of the z direction. Although that was included in the original code, it broke the cos^2 implementation, making all the particles enter parallel to the detector stack. (But then how would this explain the corner clipping effect seen previously with data from this run?)
    • Identified a bug in v01_coincidence simulation, the two detector labels were switched.
    • Fixed the geometry of the 2-detector stack (v01.1). In this version, the whole detector system is reoriented so that z is the direction of cosmic-rays (which matches the G4 standard)
    • Coded the geometry of the 4-detector stack (v02). The ROOT file now also records the precise Entry and Exit coordinates for every detector layer. This is imporant for a) Geometric Acceptance Verification, and b) "Golden Event" Filtering.
    • Simulated 100,000 events. Analysed the resulting ROOT files.
  • 2026-01-16:

    • Identified a critical bug in the Geant4 simulation v01_coincidence regarding the cosmic ray source definition. The source plane was incorrectly oriented and partially intersecting the geometry of the top detector. Correcting the source coordinates and rotation to ensure a proper flux through the detector stack.
  • 2026-01-15:

    • Assembled fourth and final detector with finalised design: (Outer scintillator casing v3 + Outer PMT casing v2 + Outer base casing v3 + Base 01)
    • Cosmic rays detected in all four detectors.
    • Switched the polarity of NDT1471's CH1 and CH2 to negative. (So that all four channels have negative polarity)
    • All four detectors placed in a vertical stack. Some cosmic ray signals detected simultaneously by all detectors.
  • 2026-01-14:

    • Printed outer casing for Base (v3) for the first and final time, applied bed adhesive for improved first-layer adhesion. (The cavity of the casing is slightly deeper ~2mm than v2, needed for Base 01, as it doesn't fit as tightly to the PMT as the other bases)
    • Assembled third detector with finalised design: (Outer scintillator casing v3 + Outer PMT casing v2 + Outer base casing v2 + Base 03)
      • Before assembly, the PMT and base was tested with LED signal. Signal was picked up in the oscilloscope, but not caused by LED. LED was definitely working (visible blue light when cranked up to 5V.) But PMT couldn't measure the signal when LED was at 2.8V, which had worked before. Unsure of what caused the issue.
      • Gambled on the assumption that PMT and base were working fine, and assembled the detector anyways. Cosmic rays were detected.
  • 2026-01-13:

    • Printed outer casing for Base (v2) for the second time, applied bed adhesive for improved first-layer adhesion.
    • Printed outer casing for Base (v2) for the third time, applied bed adhesive for improved first-layer adhesion.
    • Reassembled first detector with finalised design: (Outer scintillator casing v3 + Outer PMT casing v2 + Outer base casing v2 + Base 02)
    • Assembled second detector with finalised design: (Outer scintillator casing v3 + Outer PMT casing v2 + Outer base casing v2 + Base 04)
    • Detected cosmic ray signal passing through both detectors.
    • Submitted the Literature report, Thesis Proposal Assessment, and Thesis Progress report to the department.
  • 2026-01-12:

    • Printed outer casing for PMT (v2) for the fourth and final time, applied bed adhesive for improved first-layer adhesion.
    • Designed outer casing for Base (v2). Improvements: changed the design of the pilot holes to be compatible with 60mm M3 bolts.
    • Printed outer casing for Base (v2) for the first time, applied bed adhesive for improved first-layer adhesion.
    • Received the batch of 100 M3 bolts (60mm).
  • 2026-01-11:

    • Printed outer casing for PMT (v2) for the second time, applied bed adhesive for improved first-layer adhesion.
    • Printed outer casing for PMT (v2) for the third time, applied bed adhesive for improved first-layer adhesion.
  • 2026-01-10:

    • Designed outer casing for PMT (v2). Improvements: Increase in diameter for the PMT to go through (to account for the increase in diamter when PMT is wrapped in tin foil and electric tape.) Also, changed the pilot hole design to be compatible for 60mm M3 bolts.
    • Printed outer casing for PMT (v2) for the first time, applied bed adhesive for improved first-layer adhesion.
    • Completed thesis proposal presentation and assessment.
  • 2026-01-09:

    • Ordered a batch of 100 M3 bolts (60mm).
  • 2026-01-08:

    • Printed outer casing for Scintillator (v3) for the fourth (and final) time, applied bed adhesive for improved first-layer adhesion.
    • Literature review for undergraduate thesis proposal submitted to Prof Xiao.
  • 2026-01-07:

    • Printed outer casing for Scintillator (v3) for the third time, applied bed adhesive for improved first-layer adhesion.
  • 2026-01-06:

    • Milestone: First "Full Detector" Prototype (Preview Version) assembled and functional.
    • Assembly Details:
      • Integrated Scintillator casing (v3), PMT casing (v1), and Base casing (v1).
      • Used silicone gel at the scintillator-PMT interface for optical coupling.
      • Applied a light-tightness layer: Teflon tape on the scintillator's exposed face, followed by black electrical tape.
      • Wrapped the PMT in tin foil (for electromagnetic shielding/reflection) and secured with electrical tape.
      • Note: Casings have minor dimensional misalignments; used electrical tape for structural joining in this iteration.
      • Note: This iteration serves as a proof-of-concept; future versions will feature refined casing tolerances to eliminate the need for adhesive tape for structural integrity.
    • Printed outer casing for Scintillator (v3) for the second time, applied bed adhesive for improved first-layer adhesion.
    • Logistics: Teflon tape arrived.
    • Troubleshooting (PMT Signal): Partially resolved the "weird signal" issue from Jan 01.
      • Investigation: Ruled out oscilloscope and PMT hardware defects (swapped channels, tested with a 3rd fresh PMT).
      • Solution: Adjusted parameters per Zhou Yan's advice. Reduced LED drive from 5.5V to 2.8V and switched oscilloscope trigger from LED Source to PMT Signal (Self-Trigger).
      • Result: Valid PMT pulses observed on the commercial base. Swapped back to custom bases (v2) and original PMTs; valid signals confirmed on all units.
      • Conclusion: Previous "square" signals and Over Current (OvC) were due to excessive LED driving voltage. PMTs are not burnt; PCBs are functional. True single-photoelectron signals are stochastic and require self-triggering to resolve at low voltages.
  • 2026-01-05:

    • Printed outer casing for Scintillator (v3), applied bed adhesive for improved first-layer adhesion.
    • Printed outer casing for Base (v1) applied bed adhesive for improved first-layer adhesion.
  • 2026-01-04:

    • Simulation: Successfully ran 10,000 event simulation (v01). Updated to accurate geometry (150x150x120mm), excluding Teflon/tape wrapping.
    • Analysis: Verified coincidence logic between stacked detectors. Observed "Corner Clipping" effect in the bottom detector.
    • Hardware: Printed outer casing for PMT (v1), applied bed adhesive for improved first-layer adhesion.
  • 2026-01-03: Printing outer casing for Scintillator (v2). But there were some curvature. Didn't apply 3D printing adhesive to the printing bed.

  • 2026-01-02:

    • Milestone: Produced the first clean Landau distribution plots via G4 simulation (v00).
    • Successfully ran first batch of 10,000 events (CSV data, 152.5x152.5x122.5mm scintillator size).
    • Printing outer casing for Scintillator (v1). But the casing dimensions were slightly off. Did not account for thickness of the teflon and electric tape.
  • 2026-01-01:

    • Testing of the 4 bases.
    • Issue: Anomalous signal detected across all four bases (even previously verified ones). Suspecting PMT defects, though switching PMTs did not resolve the issue. Neither did switching bases.

December 2025

  • 2025-12-31:
    • Happy New Year!
  • 2025-12-30:
    • Inventory: 100x Pin Receptacles arrived.
    • Printed Socket housing v4 two times.
    • Soldered the remaining two PCB boards (Aligned the PCBv2 with Socket housing v4. Then crimped, and inserted, and soldered in place the 15 receptacles.)
    • Noticed that the bulkhead plate v2 was "slippery". The connectors slide when trying to connect/unconnect them.
    • Designed and printed bulkhead plate v3, with double D cut. (but faulty dimensions for bnc)
    • Designed and printed four bulkhead plates v4, with correct double D cut dimensions.
    • Assembly:
      • Ressembled first 2 bases. PCBv2 + Socket Housing v3 + Bulkhead Plate v4 + Inner casing v1 + 4x M2 50mm bolts and nuts.
      • Assembled last 2 bases. PCBv2 + Socket Housing v4 + Bulkhead Plate v4 + Inner casing v1 + 4x M2 50mm bolts and nuts.
    • Note: Base 1 doesn't plug into the PMT as well as the others, (due to how it was soldered). It doesn't plug in "as fully". Resulting in a slightly longer total length from end of base to the other end (PMT). Need to consider this when making outer casing.
  • 2025-12-29:
    • Inventory: 6x PETG Filament rolls and 50x M2 50mm bolts arrived.
    • Printed Socket housing v3 for the second time.
    • Printed Bulkhead Plate v1. (But realised that in reality the BNC connector was slightly smaller than SHV connector)
    • Designed and printed Bulkhead Plate v2. (Which has better hole sizes of each connector)
    • Printed Inner Casing v1. (A cylindrical shell. The "Shell" is about 5mm thick, with 4 pilot holes extruded all the way through to allow M2 bolts to go through.)
    • Assembly: Assembled base 1 and base 2 (Socket housing v3 + PCBv2 board + Inner casing v1 + bulkhead plate v2).
    • Tested both bases using Dark Box + Blue LED. Signal was observed across both Bases.
  • 2025-12-27:
    • Designed bulkhead plate v1
  • 2025-12-26:
    • PLA filament ran out. Plan to switch printing material from PLA to PETG. Ordered 6 rolls.
    • Ordered restock of receptacles (x100)
    • Ordered a batch of 50 M2 bolts (50mm).
    • Resigned Socket housing (v4), slightly increase diameter for the "donut hole" of the socket housing ring. Purpose was to avoid it from contacting with the solder bump, which will offset the alignment. (Not a major offset, did not affect base 1 and 2 a lot)
  • 2025-12-25: πŸŽ„ Merry Christmas! Dark Box and LED test on (PCBv2Board2 + ZRJ's bulkhead plate). Signal Detected.
  • 2025-12-24:
    • Printed Socket housing (v1).
    • Printed Socket housing (v2), with a shorter housing height to match the length of the receptacle. Also increase socket size slightly, (to account for change of diameter when recaptacles are crimped)
    • Printed Socket housing (v3), with another increase of socket diameter over v2.
    • Crimped receptacles that were connected to Socket housing (v3) were soldered to PCBv2Board2.
  • 2025-12-23: Began independent design of Socket housing (v1).
  • 2025-12-22:
    • Test: Connected HV to first prototype. Conducted Dark box + LED test.
    • Result: Failure (Faulty connection on PCBv2Board1).
  • 2025-12-20:
    • New soldering set arrived.
    • Soldered BNC/SHV connectors.
    • First Base prototype completed (Hybrid design: My PCB + ZRJ mechanicals).
  • 2025-12-19:
    • BNC/SHV connectors arrived.
    • Old soldering set gave away. Ordered better soldering equipment.
  • 2025-12-17:
    • Soldered receptacles to ZRJ's housing.
    • Circuit confirmed functional with multimeter tests.
  • 2025-12-12: ZRJ finalised designs for bulkhead plate and socket housing. Printed out with PLA filament.
  • 2025-12-06: Batch of 50 pin receptacles arrived.
  • 2025-12-03: Voltage Divider PCB v2 arrived (x5).

November 2025

  • 2025-11-26: Sent Voltage Divider PCB v2 for manufacturing.
  • 2025-11-25: Purchased initial batch of 50 pin receptacles.
  • 2025-11-17: Started design of Voltage Divider v2.
  • 2025-11-12: Voltage Divider PCB v1 arrived (x5).
  • 2025-11-05: Sent Voltage Divider PCB v1 for manufacturing.

About

Geant4 simulation and characterisation code for the deuteron isovector polarization experiment (Thesis 2026).

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published