Temigo / displit

DIpole SPLITting | Projet 3A

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

DISPLIT Project

Goal : Investigate hadrons internal structure through the multiplicity distribution of gluons in high-energy scatterings of hadrons.

Using Monte-Carlo simulations in C++/ROOT

Install and configure ROOT framework

ROOT is a C++ framework for large scale data analysis developed at CERN. See https://root.cern.ch/.

The CMakeLists.txt file assumes you have defined an environment variable called $ROOTSYS pointing to your ROOT installation directory.

For instance you could add these lines in your ~/.bashrc file:

export ROOTSYS=/usr/local
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ROOTSYS/lib

Compile and run

You will also need MPI libraries to compile displit. For example on Ubuntu run :

$ sudo apt-get install libopenmpi-dev

Go then to displit root directory and type :

$ mkdir build
$ cd build
$ cmake ..
$ make
$ ./main [options]

To run displit, either use ./main [options] or if using MPI (only with options generate-mpi and fluctuations-mpi) use mpiexec -np $NB_TASKS ./main [options].

Options

Warning : filenames are used to get/set parameters. Do not change it.

Generation of events and histograms

generate [nb_events] [delta] [max_y] [cutoff_type]

Generate nb_events events with UV cutoff delta, maximal rapidity max_y and an IR cutoff type cutoff_type. Each event is stored as a TTree in a ROOT file. You can stop it with Ctrl-C and events generated until this point will be saved.

generate-mpi [parameters file]

Example of parameters file :

1000000 0.01 3.00 gaussian
1000000 0.01 3.00 lorentzian1

The pattern for each line is nb_events delta max_y cutoff_type where delta is the UV cutoff and cutoff_type is the IR cutoff.

fluctuations [filename]
fluctuations-mpi [file]

Example of files list (1 filename per line) :

mpi_tree_100000events_cutoff0.010000_ymax2.000000_gaussian.root
mpi_tree_100000events_cutoff0.010000_ymax2.000000_lorentzian1.root
generate-fluctuations-mpi [parameters file]

Example of parameters file :

100 10000 0.01 3.00 2.0 gaussian
100 10000 0.01 3.00 2.0 lorentzian1

The pattern for each line is nb_tasks nb_events_per_task delta max_y R cutoff_type.

Plots and graphics

draw-fluctuations [histogram file] [max_y]

Draw the distribution of probability of having n dipoles (fluctuations) after an evolution until rapidity max_y.

compare [histofile]

Draw the fluctuations for different histograms on the same canvas.

compare-c [histofile] [mode]

Draw the value of c for different values of parameter mode which can be r, delta or ymax. The histograms filenames are in histofile. All parameters other than mode should be fixed.

compare-R [histofile]

Test the fluctuations dependance in x_{01}/R.

Miscellaneous

list-cutoffs

List available IR cutoffs.

draw-cutoffs

Draw some IR cutoffs (not all of them).

check [tree_file]

Check the real number of events recorded in [tree_file] against the theoretical number (encoded in the filename).

fit-bare-r [delta] [max_y]

Draw the distribution of dipoles size for given parameters : UV cutoff delta and maximal rapidity max_y, comparing with and without an IR cutoff (rigid).

ancestors [nb_events] [rho] [max_y]

Not fully tested yet.

Running displit with SLURM + MPI

The file generic.slurm is provided as an example to launch displit on a cluster using SLURM and OpenMP.

References

[1] T. Liou, A.H. Mueller, S. Munier. Fluctuations of the multiplicity of produced particles in proton-nucleus collisions. 2016

[2] G.P. Salam. OEDIPUS: Onium evolution, dipole interaction and perturbative unitarization simulation. Comput.Phys.Commun. 105 (1997) 62-76.

About

DIpole SPLITting | Projet 3A


Languages

Language:C++ 95.9%Language:C 2.1%Language:CMake 1.1%Language:Shell 0.8%