Skip to content

karopastal/signal_generator

Repository files navigation

Physics beyond the Standard Model

Signal over background discovery using CWT and autoencoders.

  1. Overview
  2. Setup
  3. Signals, Backgrounds and Wavelets
  4. Analysis

Overview

This projects aim is to develop a tool for discovering signals in invariant mass distributions. We will take a model-agunostic approach and provide a system for custom signal and background generation. In order to analyze the invariant mass distribution we will perform a Continuous Wavelet Transform (CWT) in order to get the mass intervals where the signal is present. In order to create a tool for anomaly detection, meaning detecting when a signal is present, we will train different types and configurations of autoencoders (AE) on background. Thus we will reconstruct background with ease after learning the typical background fluctuations and reconstruct poorly background + signal.

Results Example:

Comparing the AEs sensitivity to the signal size for a specific dataset:

Flow Example:

Type Plot
Signal + Background
Signal + Background + Fluctuations
CWT
Local p-value representation
Example: Sparse AE with KL divergence reconstruction

Setup

python 3.8.6

$ git clone https://github.com/karopastal/signal_generator.git

if repository already cloned, pull changes with:

$ git pull

install dependencies:

$ pip3 install -r requirements.txt

run the managment app:

$ make web

visit: http://127.0.0.1:5000/

Signals, Backgrounds and Wavelets

In order to configure signals, background and wavelets use the managment app. This is a basic summary of the commands and functionality, for the full tutorial visit here

sessions

After configuring the signals, backgrounds and wavelets via the managment app, the session of a particular configuration can be saved manually or from the app.

Save session:

  $ make save-session NAME={sessions_name}

Load a saved session:

  $ make load-session NAME={sessions_name}

Delete a saved session:

  $ make delete-session NAME={sessions_name}

List the saved sessions:

  $ make list-sessions

commands

All commands accept ids (integers) as arguments according to the configurations at src/signals, src/backgrounds, src/wavelets for example:

make plot-cwt-clean SIGNAL_ID=1 BG_ID=0 WAVELET_ID=0 

plot signal

$ make plot-signal SIGNAL_ID={ 0, 1 ... }

plot background

$ make plot-background BG_ID={ 0, 1 ... }

plot clean signal + background

$ make plot-clean SIGNAL_ID={ 0, 1 ... } BG_ID={ 0, 1 ... }

plot fluctuated signal + background

$ make plot-fluctuations SIGNAL_ID={ 0, 1 ... } BG_ID={ 0, 1 ... }

plot CWT using Morlet wavelet w/o fluctuations

$ make plot-cwt-clean SIGNAL_ID={ 0, 1 ... } BG_ID={ 0, 1 ... } WAVELET_ID={0, 1 ... }

plot CWT using Morlet wavelet w/ fluctuations

$ make plot-cwt-fluctuations SIGNAL_ID={ 0, 1 ... } BG_ID={ 0, 1 ... } WAVELET_ID={0, 1 ... }

Analysis

The analysis consists of training different models and test their performance.

$ ./scripts/build_dataset.sh

Autoencoders

$ ./scripts/train_autoencoder.sh

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published