hybrid-analyser

Data analyser for AMPT and IPGlasma+MUSIC+iSS

https://github.com/lolle2001/hybrid-analyser

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
    Links to: arxiv.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.9%) to scientific vocabulary

Keywords

a-multi-phase-transport-model ampt blast-wave-model event-generator heavy-ion-collisions ipglasma iss multithreading music-hydro physics
Last synced: 6 months ago · JSON representation ·

Repository

Data analyser for AMPT and IPGlasma+MUSIC+iSS

Basic Info
  • Host: GitHub
  • Owner: Lolle2001
  • License: mit
  • Language: C++
  • Default Branch: stable
  • Homepage:
  • Size: 2.99 MB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 1
Topics
a-multi-phase-transport-model ampt blast-wave-model event-generator heavy-ion-collisions ipglasma iss multithreading music-hydro physics
Created almost 2 years ago · Last pushed over 1 year ago
Metadata Files
Readme License Citation

README.md

Hybrid Analyser

[!IMPORTANT] This code was developed for my thesis. If you use/fork this code, please use the following citation in your work:

L. J. Huisman, Data analyser for AMPT and IP-Glasma+MUSIC+iSS, version 1.0.0 (2024). https://github.com/Lolle2001/HybridProcessor

:rocket: About

This program is for the data analysis of heavy ion collision simulations. Currently it analyses data generated with AMPT[^1] and the hybrid framework IPGlasma+MUSIC+iSS[^2][^3][^4]. This program (analyser) uses the similarity of the AMPT and iSS data output. The form of the data is in essence a list of particles and their properties for multiple events. The raw data is parsed by this program and processed into histograms. Currently the histograms are hard coded and the framework is setup to generate histograms for yield, transverse momentum spectra, (pseudo)rapidity spectra, anisotropic flow, average transverse momentum and the nuclear modification factor. All histograms are binned as function of centrality, transverse momentum and rapidity. It is easy to change the binning of histograms to a desired format. In addition subprograms exist (evo-music and evo-ampt) to parse evolution data into a format that can be used for animations. There also is a subprogram (fitter) that is able to fit blast wave models to (experimental) data of heavy ion collisions. Currently only simultaneous fitting of the transverse momentum spectrum is supported.

:wrench: Installation

Dependencies

Before compilation first make sure that all dependencies are installed.

  • ROOT - Used for simultaneous fitting.
  • json - Used for reading and writing JSON files.
  • fmt - Used for formatting of streams.
  • argparse - Used for parsing command line arguments.
  • omp -Used for multi-threading.

Compilation

Compilation is done by running the following code,

```shell

Main program: analyser

bash compile.sh

Animation subprograms: evo-ampt & evo-music

bash compile-evo.sh

Fitter subprogram: fitter

bash compile-fitter.sh ```

[!WARNING] The program has been tested on linux and MacOS. Depending on your system you might need to modify the makefiles. Currently there is no CMake support.

:books: Documentation

Required data structure

For the usage of analyser, evo-music and evo-ampt it is assumed that the files have a certain name and that the data is sorted in a subfolders. In the following cases, the -i argument is given {NAME} as input. {N} is the event/batch number and is automatically determined. fitter is intended as a framework and uses by default JSON formatted data, the user however can change this to suit their needs.

File Paths

Software File Path Required for (type)
IPGlasma {DATA}/{NAME}/usedParameters{N}.dat analyser iss (log)
MUSIC {DATA}/{NAME}/{NAME}-{N}/evolution_for_movie_xyeta.dat evo-music (data)
iSS {DATA}/{NAME}/{NAME}-{N}/particle_samples.bin analyser iss (data)
AMPT {DATA}/{NAME}/{NAME}-{N}/ana/ampt.dat analyser ampt (data)
{DATA}/{NAME}/{NAME}-{N}/ampt.log analyser ampt (log)
{DATA}/{NAME}/{NAME}-{N}/ana1/h-animate.dat evo-ampt (data)
{DATA}/{NAME}/{NAME}-{N}/ana1/p-animate.dat evo-ampt (data)
{DATA}/{NAME}/{NAME}-{N}/ana1/p-finalft.dat evo-ampt (data)

Running analyser with command line arguments

Running with command line arguments allows to use all features of the program. It was designed for the above structure, but it should work for more. analyser has tow subprograms called iss and ampt which can be used as follows,

```shell

AMPT

./analyser \ # Main program. -col ${CLASS} \ # Option for centrality class definitions. ampt \ # Subprogram to parse ampt data. -i ${NAME1} ${NAME2} ... ${NAMEn} \ # Input folders. -id ${DATA} \ # Input folder directory. -o ${OUT} \ # Output folder. -od ${OUTDIR} \ # Output folder directory.

IPGlasma & iSS

./analyser \ # Main program. -col ${CLASS} \ # Option for centrality class definitions. iss \ # Subprogram to parse ampt data. -i ${NAME1} ${NAME2} ... ${NAMEn} \ # Input folders. -id ${DATA} \ # Input folder directory. -l ${LOG1} ${LOG2} ... ${LOGn} \ # Log folders. -ld ${LOGDIR} \ # Log folder directory. -o ${OUT} \ # Output folder. -od ${OUTDIR} \ # Output folder directory. ```

${OUTDIR} could be the same as ${DATA} and ${OUT} the same as ${NAME} if one folder is given as input. It is then recommended to for example write -o ${NAME}/processed. In the program the -id, -ld and -od arguments are put in front of the arguments for -i, -l and -o respectively, to define the right paths. It is possible to give the full path to -i, -l and -o if the data is stored in a different folders.

Running analyser with a configuration file

Running with a configuration file allows to setup jobs quickly when the data is stored in the same folders. If the flag -p is used, then the default arguments will be overwritten by those in the configuration file. Only -col, -o, -i and -l have to be specified. The use would then look like,

```shell

By default -pf is analyser.par and -pd ./

The configuration file specifies -id, -ld and -od and

assumes that data is put in a subfolder of ${OUT}.

./analyser -p -col ${CLASS} ampt -o ${OUT} \ -i \ ${NAME1} \ ${NAME1} \ ... \ ${NAMEn}

```

Running evo-ampt

[!NOTE] This program requires some updates for proper usage.

Running evo-music

[!NOTE] This program requires some updates for proper usage.

Running fitter

[!NOTE] This program requires some updates for proper usage.

Instructions Define a function in the form ```cpp double function(double * x, double * par); ``` Then do ```cpp void dofit(){ CFitter::Chi2Function chi2; chi2.SetParIndexes(indexmap); chi2.SetData(xvals, yvals, xerrs, yerrs); chi2.SetSpecies(species); chi2.SetFitRange(fitranges); chi2.SetFitFunction(function); CFitter::MultiFitter fitter; fitter.FixPars(fixedpars); fitter.LimitPars(limitpars); fitter.SetParLimits(parlimits); fitter.SetParStepsize(parsteps); fitter.SetParNames(parnames); fitter.SetParInit(parinit); fitter.StepsizePars(stepsizepars); fitter.Run(chi2); ROOT::Fit::FitResult result = fitter.GetResult(); } ```

[^1]: Z. W. Lin, C. M. Ko, B. A. Li, B. Zhang and S. Pal, A Multi-phase transport model for relativistic heavy ion collisions. Phys. Rev. C 72, 064901 (2005). https://doi.org/10.1103/PhysRevC.72.064901 [^2]: Schenke, S. Jeon, C. Gale. 3+1D hydrodynamic simulation of relativistic heavy-ion collisions. Phys.Rev.C 82, 014903 (2010) arXiv:1004.1408 [^3]: Schenke, S. Jeon, C. Gale. Elliptic and triangular flow in event-by-event (3+1)D viscous hydrodynamics. Phys.Rev.Lett. 106, 042301 (2011). arXiv:1009.3244 [^4]: J.-F. Paquet, C. Shen, G. S. Denicol, M. Luzum, B. Schenke, S. Jeon, and C. Gale. Production of photons in relativistic heavy-ion collisions. Phys. Rev. C 93, 044906 (2016). arXiv:1509.06738

Owner

  • Login: Lolle2001
  • Kind: user

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: File handling and multiprocessing framework for AMPT
message: Please cite this software and the preferred citation.
type: software
authors:
  - given-names: Lieuwe Johannes
    family-names: Huisman
repository-code: "https://github.com/Lolle2001/HybridProcessor"
abstract: >-
  This framework does data analysis of AMPT, iSS and MUSIC data. It also contains a subframework for fitting blast wave models.
keywords:
  - AMPT
  - Multiprocessing
  - Framework
  - Heavy ion collisions
license: MIT
version: 1.0.0
date-released: "2024-07-20"
references:
  - type: thesis
    authors:
      - given-names: Lieuwe Johannes
        family-names: Huisman
    title: "Characterization of QGP, A comparison between a fluid dynamical approach and transport approach."
    thesis-type: BsC
    department: Departement Natuurkunde
    institution:
      name: Universiteit Utrecht
      city: Utrecht
      country: NL
    database: Utrecht University Student Theses Repository
    date-published: 2024-07-20
    year: 2024
    url: https://studenttheses.uu.nl/

GitHub Events

Total
Last Year