Giter Site home page Giter Site logo

woywoy123 / analysisg Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 3.0 429.75 MB

A project which aims to abstract the analysis pipeline of a Particle Physics Analysis at ATLAS. This repository is a shared effort of University of Sydney, Duke and DESY.

License: MIT License

Python 21.03% C++ 24.56% Cuda 10.21% Shell 0.02% Cython 3.42% CMake 2.14% Jupyter Notebook 38.62% C 0.01%
atlas graphneuralnetwork high-energy-physics

analysisg's Introduction

A Graph Neural Network Framework for High Energy Particle Physics

building-analysisG Publish to PyPI

Getting Started:

The framework and tutorials are outlined within read the docs. Documentation Status

analysisg's People

Contributors

woywoy123 avatar lisasit avatar

Stargazers

Quantumphi avatar  avatar

Watchers

 avatar Quantumphi avatar

analysisg's Issues

MET calculation

I'm creating this issue because I don't think we ever came to a conclusion about this.
I found that we get different results when calculating the MET from the negative sum of all truth non-neutrino particles in the event or from the truth neutrinos themselves.
I wrote a test script to show this in truth-studies/Kinematics/testMET.py (here in branch dev_elise).
Below are the plots that are obtained with the script. I would expect "From truth neutrinos" to agree with "From neg sum of truth objects" or "From neg sum of truth objects incl rad". But it differs from both. Am I missing something?

MET
METDiff

Full class breakdown with bad attribute

Noticed when using the "el_isPrompt" and "mu_isPrompt" branches in Nominal_Loose tree. Both of these are essentially empty lists (I had small EventStop, so the compiled list was likely actually empty). The Electron and Muon classes then returned empty information when called, and there was no error message, so took a while to figure out what the problem was.

Number of neutrino solutions

When comparing different implementations of the neutrino reconstruction algorithm, we found different numbers of events.
This is demonstrated in the script models/NeutrinoReconstruction/DoubleNeutrino_noROOT_2methods.py (here in my branch dev_elise), which I modified from DoubleNeutrino.py.
It compares the PyTorch implementation with the original implementation from the paper except using python3 and no ROOT (found in NeutrinoReconstructionOriginal/neutrino_momentum_reconstruction.py on dev_elise).
The plots for pT, E, phi, eta, and mass all show good agreement but the plot for number of neutrino solutions shows a large difference (see below).
It's possible the difference could come from an increased precision when using the PyTorch implementation, but I would expect this difference to be relatively small. I also find it strange that the PyTorch approach always yields 4 solutions. Any ideas on this?
NumNeutrinoSolutions

Small bug with Neutrino Class

If I have c1, c2 (of type Particles.Children) and nu (of type Particles.Neutrino) and I do sum([nu, c1, c2]), I get an error "AttributeError: 'Neutrino' object has no attribute 'pt'". But if I do sum([c1, c2, nu]) it works. I'm guessing it has to do with how the sum is defined here. Would it be easy to change so that a sum involving neutrinos can be done in any order?

TopIndex

event.Tops[child.TopIndex] is not the same top as child.Parent[0] (or event.Tops[truthjet.TopIndex[0]] is not the same as truthjet.Tops[0] even when the truthjet is matched to only one top)

ghost matching

We need to check if the ghost matching which assigns partons to truth jets (see here) is really correct. In the past, it was found that when using this to match truth jets to jets, there was a bump in the dR(truth jet, jet) distribution right above 0.4. This bump was especially prominent for cases where a given jet was matched to two truth jets (@woywoy123 maybe you can include the plot here?). To investigate this, we produced test samples containing the full decay chain. We can then compare the results obtained using the full decay chain to those obtained from ghost matching. We can document the progress on this in this issue.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.