Git Product home page Git Product logo

map2rmm's Introduction

Map2RMM

This is a library for mapping collision data to the rapidity-mass matrices (RMM) for machine learning. This example uses input Monte Carlo data in the form of ProMC files from the HepSim Monte Carlo repository. The example builds anti-KT jets, and fill ROOT histograms.

The output RMM is "4t3n" since we use 4 types of objects (jet, e, mu, gamma) up to multiplicity 3. You can redefine the type of the RMM using these values inside example.cc:

   const int maxNumber=3; // max number for each object (MET is not counted)
   const int maxTypes=4;  // max numbers of types (met not counted)

To increase the multiplicity for each object, simply increase the value of maxNumber. If you need to go beyond 4 types in this example, you would need to extend the function in map2rmm/src/map2rmm.cxx.

Installation

This installation instruction works for any Linux computer with gcc4 and above.

  1. Install ProMC (http://atlaswww.hep.anl.gov/asc/promc/), ROOT and FastJet
  2. Check the installation. The variables:
   echo $PROMC
   echo $ROOTSYS
   echo $FASTJET

they should return the installation paths.

  1. Go to "map2rmm/" and compile the library as "make" This create 2 libraries :
      lib/libmap2rmm.so
      lib/libmap2rmm_static.a
  1. Go to the upper level and compile the example.cc "make". The compilation will link the above library

  2. Download ProMC files from HepSim and put them to the "data" directory. Use hs-tools as:

   hs-get tev100_higgs_ttbar_mg5 data

See the HepSim documentation.

  1. Process all files inside the directory "data" using the command "./example".

  2. Look at the output root file "output.root" with histograms. The RMM data are stored as a tree "inputNN" with "proj" branch. We store only non-zero values, row and column indicies.

Output

The output with RMM matrices is "output.root". Typically, you need "inputNN" tree which contains non-zero values of RMM (with indices). We keep only non-zero values since the RMM matrix is sparse. You need to add zeros if you want to get the real matrix. The script "prepare.py" gives an example of how to unpack the matrix stored inside this root file.

Reference

This algorithm is described in: S.Chekanov "Imaging particle collision data for event classification using machine learning", Nucl Inst. and Meth. in Phys. Research (NIMA), A931 (2019) p92 (https://arxiv.org/abs/1805.11650).

Different use cases for classification of experimental data using this algorithm were discussed in the article: "Machine learning using rapidity-mass matrices for event classification problems in HEP", (S.V.Chekanov), ANL-HEP-147750, https://arxiv.org/abs/1810.06669

S.Chekanov (ANL)

map2rmm's People

Contributors

chekanov avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Forkers

wenxingfang

map2rmm's Issues

Error: ld: symbol(s) not found for architecture x86_64

hello, I tried to install Map2RMM on Mac-Mojave 10.4 and got this error message after follow the instructions: the "make" on map2rmm gives:
.
.
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [lib] Error 1

Any idea on what is happening?

Thanks!

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.