Skip to content

Application of a Recurrent Neural Network (RNN) to determine the dead layer parameters of high purity germanium detectors used in the LEGEND experiment

Notifications You must be signed in to change notification settings

abialexander/RNN_DeadLayerFit

Repository files navigation

RNN Dead Layer Fit Project

Project Aim:

Use a Recurrent Neural Network (RNN) as a classifier to make decisions about the dead layer parameters of high purity germanium detectors used in the LEGEND Experiment.

Data

The training data are post-processed MC simulations of a germanium detector characterised at the HADES underground laboratory with different dead layer parameters (the labels). The detectors are exposed to uncollimated Ba-133, at 78.5 mm above top of cryostat and the data is the energy spectrum recorded by the detector. For each detector (just V05268A for now), randomly generated combinations of FCCD (Full Charge Collection Depth) and DLF (Dead Layer Fraction) for a linear transition layer were created. This labeled data is stored as binned histograms.

  • data/V05268A_data/training_data_V05268A_5000randomFCCDs_randomDLFs/: ~5000 MC with random FCCDs and random DLFs
  • data/V05268A_data/training_data_V05268A_5000randomFCCDs_DLF1/: ~5000 MC with random FCCDs, all DLFs=1.0
  • data/V05268A_data/experimental_data_V05268A.h5: single experimental data file
  • data/V05268A_data/MCBestFit_V05268A_FCCD0.97mm/: 11 MC with fixed best fit FCCD (0.97mm) from traditional method, and evenly varied DLFs = [0.0,1.0]

RNN and Workflow

Functions and classes: src/

  • src/data.py: Classes and functions for handling of the training dataset
  • src/RNN.py: Classes and functions for the RNN
  • src/training.py: Classes and functions for training and evaluating of the RNN

The workflow is controlled by python scripts and jupyter notebooks that use the functions and classes from /src/

Training:

  • runRNNtraining.py: Python script that runs training Training/Testing evaluation:
  • RNNtraining_MC2DLF1.ipynb: Training where MC2 has a fixed DLF=1 and a quantile regression loss fucntion is used on DLF Label

Final Results on real data:

  • RNNperformance_RealData.ipynb: Notebook that compares different RNN performance and tests it on real data

Results

Different versions of the RNN (i.e. with different training parameters or trained with different restrictions of training data) are saved as pytorch pkl files in saved_models/<RNN_ID>/. In this folder we also save the results for each RNN - i.e. plots and json files with performance metrics (e.g. accuracy, recall and precision). These are excluded from the github (they are in the .gitignore) with the exception of RNN_ID = RNN_MC2DLF1_20epochs_LR0.005_fulldataset_10000trials and RNN_MC2DLF1_20epochs_LR0.005_maxFCCDdiff0.05mm_10000trials/.

About

Application of a Recurrent Neural Network (RNN) to determine the dead layer parameters of high purity germanium detectors used in the LEGEND experiment

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published