Hydjet  2.4
A Monte-Carlo model of jet quenching in ultrarelativistic heavy ion collisions
Short documentation

This is short documentation. For detailed one please see papers listed on About. Update list is on Updates

Physics validity of the model

  1. HYDJET++ is only applicable for symmetric AA collisions of heavy (A>40) ions at high energies (c.m.s. energy >~10 GeV per nucleon pair).
  2. Hydro-type approximation for heavy ion collisions is expected to be applicable for central and semi-central collisions. The result obtained for very peripheral collisions (b~2*RA) can be not adequate.
  3. We do not expect correct event description for very forward rapidities (|y|>3), where other mechanisms of particle production among hydro-flow and jets can be important.
  4. Physics model for description of medium-induced gluon radiation is based on Baier-Dokshitzer-Mueller-Schiff formalism and valid for relatively high transverse momenta of jet partons (>> 1 GeV/c). Thus setting reasonably high values of minimum pt in initial hard parton sub-processes (parameter 'ptmin') is preferable.

Installation

To install HYDJET++ required:

  1. the FORTRAN compiler
  2. cmake version >= 3.5
  3. C++11 support compiller
  4. ROOT v5.22 or leter

After unpacking .tar archive in HYDJET++ folder one can build it with/without binary test file. Shared LIBRARY will be created in lib/ folder.

Installation on LINUX:

For each new architecture please make sure You cleaned up the old files!

To use default mode (with binnary test file) please use shell command

./runconfigure

The result would be placed to folder ../HYDJET++2.4.x:

  • lib/ - library folde
  • Hy2Input - input parameters text file (by default Antares5 tune)
  • hydjet_test - test binary file
  • tunes/ - default tunes set (just replace Hy2Input with any of them)
  • RootMacros/ - examples of macros for analyzing the output of the root tuple

To use HISTO mode (instead of tuple one) for output, please use

./runconfigure histo 

or uncoment the following preprocessor directive in the test/RunHadronSourceHISTO.cxx:

#define HISTO_MODE

and do

./runconfigure 

NOTE!!! the folder "test" will be available only after first compilation!

To build HYDJET++ library without binary test file please use just

./configure --lib

To use created shared library (by default in ../HYDJET++2.4.x/lib), one can compile his owen code with g++ for example:

g++ -Wall -g -o Hyjet2 RunHadronSourceHISTO.cxx -lhydjet2 -Llib -L/usr/lib64/root -lGui -lCore -lImt -lRIO -lNet -lHist -lGraf -lGraf3d -lGpad -lROOTDataFrame -lROOTVecOps -lTree -lTreePlayer -lRint -lPostscript -lMatrix -lPhysics -lMathCore -lThread -lMultiProc -pthread -lm -ldl -rdynamic -pthread -std=c++17 -m64 -I/usr/include/root -L/usr/lib64/root -lCore -lImt -lRIO -lNet -lHist -lGraf -lGraf3d -lGpad -lROOTDataFrame -lROOTVecOps -lTree -lTreePlayer -lRint -lPostscript -lMatrix -lPhysics -lMathCore -lThread -lMultiProc -pthread -lm -ldl -rdynamic

The interface files needed for using such library is Hydjet2.h and InitialParams.h. One also have to care about export lib/ folder:

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:lib"

To build HYDJET++ program with HepMC output format please do

./configure --build-test --HepMC-output

To list all avaible options do:

./configure --help

NOTE!!! Some of the modern compiler using the new linker which has a different behaviour under many respect, and in particular it doesn't initialize correctly the common block coming from pydata because of how the dependency chain is structured. In this case the following message will be showed:

Fatal error: BLOCK DATA PYDATA has not been loaded!
The program execution is stopped now!

In this case, please use PYTHIA from source (–build-pythia option):

./configure --build-pythia --build-test

for HYDJET++ library with binary. And for HYDJET++ library only:

./configure --build-pythia

Installation on other platforms:

To install on other platforms please use cmake-gui with CMakeLists.txt

Input information

Run of the program (from ../HYDJET++2.4.x) is controlled by the file "Hy2Input" for different type of input parameters. All available parameter sets listed on the web-site.

The following input parameters should be specified:

  • fNevnt - number of events to generate;
  • femb - embedding flag, to switch on embedding mode (reading underline event for each generated one, to proper mixing later)
    =0 embedding is off,
    =1 simple embedding mode,
    =2 special emedding mode for Pyquen, with correction of the number of NN sub-collisions (subtracting sub-collision to replace it by Pyquen's one)
  • fSqrtS - c.m.s. energy per nucleon pair in GeV;
  • fAw - atomic weight of nuclei;
  • fIfb - flag of type of centrality generation
    =0 impact parameter is fixed (fBfix )
    >0 impact parameter is generated with standard Glauber geometry between minimum (fBmin) and maximum (fBmax) values;
  • fBmin - minimum impact parameter in units of nucleus radius RA;*
  • fBmax - maximum impact parameter in units of nucleus radius RA;*
  • fBfix - fixed impact parameter in units of nucleus radius RA.

The following input parameters may be changed by user from their default values.

  • fSeed - parameter to set the random number seed
    =0 the current time is used to set the random generator seed
    >0 the value "fSeed" is used to set the random generator seed (then state of random number generator in PYTHIA MRPY(1)=fSeed) (default: fSeed=0);

Parameters for soft hydro-type part of the event.

  • fT- chemical freeze-out temperature in GeV;
  • fMuB - chemical baryon potential per unit charge in GeV;
  • fMuS - chemical strangeness potential per unit charge in GeV;
  • fMuC - chemical charm potential per unit charge in GeV;
  • fMuI3 - chemical isospin potential per unit charge in GeV;
  • fTthFO - thermal freeze-out temperature in GeV;
  • fMu_th_pip - chemical potential of positively charged pions at thermal
  • freeze-out in GeV;
  • fTau - proper time at thermal freeze-out for central collisions in fm/c;
  • fSigmaTau - duration of emission at thermal freeze-out for central collisions in fm/c;
  • fR - maximal transverse radius at thermal freeze-out for central collisions in fm;
  • fYlmax - maximal longitudinal flow rapidity at thermal freeze-out;
  • fUmax - maximal transverse flow rapidity at thermal freeze-out for central collisions;
  • fRhou2, fRhou3, fRhou3 - parameters to specify/switch on(>0)/off(0) elliptic, triangular and quadrangular modulations of the collective velocity profile respectively for the alternative scenario of anisotropic flow treatment (L.V. Bravina et al., Eur. Phys. J. C 74 (2014) 2807) (default: 0., 0., 0.);
  • fDelta - momentum azimuthal anizotropy parameter at thermal freeze-out (for given centrality class);
  • fEpsilon - spatial azimuthal anisotropy parameter at thermal freeze-out (for given centrality class);
  • fKeps2, fKeps3 - parameters to specify/switch on(>0)/off(0) the strenght of elliptic and triangular flow fluctuations respectively (L.V. Bravina et al., Eur. Phys. J. C 75 (2015) 588) (default: 0.34, 0.52);
  • fIfDeltaEpsilon - flag to specify fDelta and fEpsilon values (if =0 - specified by user values are used, if >=1 - calculated values are used) (default: 0.);
  • fDecay - flag to include hadron decays (if =0 - off, if >=1 - on) (default: 1.);
  • fWeakDecay - low decay width threshold in GeV (if width < fWeakDecay - decay off, width >= fDecayWidth - decay on; can be used to switch off weak decays) (default: 0.);
  • fEtaType - flag to specify longitudinal flow rapidity distribution (if =0 - uniform in the range [-fYlmax,fYlmax], if >0 - Gaussian with the dispersion fYlmax (default: 1);
  • fTMuType - flag to use calculated chemical freeze-out temperature, baryon and strangeness potentials as a function of 'fSqrtS' (if =0 - specified by user values are used, if >0 - calculated values are used) (default: 0);
  • fCorrS - flag and value to include strangeness supression with fCorrS value: (0 < fCorrS =< 1, if fCorrS =< 0 then it is calculated as a function of chemical freeze-out temperature and baryon potential, default: 1);
  • fIcharm - flag to include thermal charm production (=0 no charm production, >=1 charm production) (default: 0);
  • fCorrC - flag and value to include charmness enhancement with fCorrC value: (fCorrC > 0, if fCorrC =< 0 then it is calculated with PYTHIA, default: -1).

Parameters for treatment of hard multi-partonic part of the event.

  • fNhsel - flag to include jet and hydro state production (default: 2)
    (0 - jet production off, hydro on)
    (1 - jet production on, jet quenching off, hydro on)
    (2 - jet production on, jet quenching on, hydro on)
    (3 - jet production on, jet quenching off, hydro off)
    (4 - jet production on, jet quenching on, hydro off);
  • fIshad - flag to include impact parameter dependent nuclear shadowing for gluons and light sea quarks (u,d,s) (default: 1): (0 - no shadowing, 1 - shadowing is included);
  • fPtmin - minimal pt of parton-parton scattering in PYTHIA event in GeV (the PYTHIA parameter ckin(3)=fPtmin);
  • fIedit - flag to suppress the output of particle history from PYTHIA (=1 only final state particles; =0 full particle history from PYTHIA) (default: 1).

PYQUEN energy loss model parameters,

  • fT0 - initial maximum temperature (in GeV) of quark-gluon plasma for central PbPb collisions at mid-rapidity (initial temperature for other centralities and atomic numbers will be calculated automatically) (allowed range is 0.2 < fT0 < 2.);
  • fTau0 - proper time of quark-gluon plasma formation in fm/c (allowed range is 0.01 < fTau0 < 10.);
  • fNf - number of active quark flavours in quark-gluon plasma
  • (fNf=0, 1, 2 or 3);
  • fIenglu - flag to fix type of in-medium partonic energy loss (default: 0) (fIenglu=0 - radiative and collisional loss,
  • fIenglu=1 - radiative loss only, fIenglu=2 - collisional loss only);
  • fIanglu - flag to fix type of angular distribution of in-medium emitted gluons (default: 0) (fIanglu=0 - small-angular, fIanglu=1 - wide-angular, fIanglu=2 - collinear).

A number of important PYTHIA parameters also may be changed/specified in PythiaTune (by default) file. The rest PYTHIA parameters may be changed (if it is necessary) using corresponding common blocks in the file "progs_fortran.f".

NOTE! If specified by user value of such parameter extends out of allowed range, its default value is used in HYDJET++ run.

NOTE! At this moment nuclear shadowing parameterization is implemented only for Pb, Au, Pd or Ca ions.

Output information (standard tuple)

The program output is directed to ROOT file specified by the user in the command line, or by default to "Hydjet2_tuple.root". The output file contains a tree named "td", which keeps the entire event record including primary particles and decay products with their coordinates and momenta information. Each decay product contains the unique index of its parent particle so that the entire event history may be obtained. Besides particle information, the output file contains also the following global output parameters for each event.

  • Bgen - generated value of impact parameter in units of nucleus radius RA;
  • Sigin - total inelastic NN cross section at given "fSqrtS" (in mb);
  • Sigjet - hard scattering NN cross section at given "fSqrtS" & "fPtmin" (in mb);
  • Ntot - generated value of total event multiplicity (Ntot=Nhyd+Npyt);
  • Nhyd - generated multiplicity of "soft" hydro-induced particles;
  • Npyt - generated multiplicity of "hard" jet-induced particles;
  • Njet - generated number of hard parton-parton scatterings with pt>fPtmin;
  • Nbcol - mean number of binary NN sub-collisions at given "Bgen";
  • Npart - mean number of nucleons-participants at given "Bgen".
  • iJet - number of subevent (jet number). For hydro = 0

The event output tree "ROOT::TTree" is organized as follows:

td->Branch("nev",&nev,"nev/I"); // event number
td->Branch("Bgen",&Bgen,"Bgen/F"); // generated impact parameter
td->Branch("Sigin",&Sigin,"Sigin/F"); // total inelastic NN cross section
td->Branch("Sigjet",&Sigjet,"Sigjet/F"); // hard scattering NN cross section
td->Branch("Ntot",&Ntot,"Ntot/I"); // total event multiplicity
td->Branch("Nhyd",&Nhyd,"Nhyd/I"); // multiplicity of hydro-induced particles
td->Branch("Npyt",&Npyt,"Npyt/I"); // multiplicity of jet-induced particles
td->Branch("Njet",&Njet,"Njet/I"); // number of hard parton-parton scatterings
td->Branch("Nbcol",&Nbcol,"Nbcol/I"); // mean number of NN sub-collisions
td->Branch("Npart",&Npart,"Npart/I"); // mean number of nucleon-participants
td->Branch("Px",&Px[0],"Px[npart]/F"); // x-component of the momentum, in GeV/c
td->Branch("Py",&Py[0],"Py[npart]/F"); // y-component of the momentum, in GeV/c
td->Branch("Pz",&Pz[0],"Pz[npart]/F"); // z-component of the momentum, in GeV/c
td->Branch("E",&E[0],"E[npart]/F"); // energy, in GeV
td->Branch("X",&X[0],"X[npart]/F"); // x-coordinate at emission point, in fm
td->Branch("Y",&Y[0],"Y[npart]/F"); // y-coordinate at emission point, in fm
td->Branch("Z",&Z[0],"Z[npart]/F"); // z-coordinate at emission point, in fm
td->Branch("T",&T[0],"T[npart]/F"); // proper time of particle emission at emission point, in fm/c
td->Branch("pdg",&pdg[0],"pdg[npart]/I"); //Geant particle code
td->Branch("Mpdg",&Mpdg[0],"Mpdg[npart]/I"); // Geant code of mother particle, -1 for primordinary particles
td->Branch("type",&type[0],"type[npart]/I"); // origin of particle (=0 - from soft hydro part, >0 - from hard jet part)
td->Branch("iJet",&iJet[0],"iJet[npart]/I"); // number of sub-event (jets), 0 for hydro-part td->Branch("Index",&Index[0],"Index[Ntot]/I"); // unique zero based index of the particle
td->Branch("MotherIndex",&MotherIndex[0],"MotherIndex[Ntot]/I"); // index of the mother particle (-1 if its a primary particle)
td->Branch("NDaughters",&NDaughters[0],"NDaughters[Ntot]/I"); // number of daughter particles
td->Branch("FirstDaughterIndex",&FirstDaughterIndex[0],"FirstDaughterIndex[Ntot]/I"); // index of the first daughter (-1 if it does not exist)
td->Branch("LastDaughterIndex",&LastDaughterIndex[0],"LastDaughterIndex[Ntot]/I"); // index of the last daughter
td->Branch("pythiaStatus",&pythiaStatus[0],"pythiaStatus[Ntot]/I"); // PYTHIA status code (-1 if the particle is from soft component)
td->Branch("final",&final[0],"final[Ntot]/I"); // an integer branch keeping 1 for final state particles and 0 for decayed particles
td->Branch("iJet",&iJet[0],"iJet[Ntot]/I"); // an integer branch keeping number of subevent (all hydro particles has 0)

Impact parameters table

The ranges of impact parameters in the units of nuclear radius for different centralities at RHIC (AuAu, 200 A GeV) and LHC (PbPb, 2760-5500 A GeV) are specified below (the standard Woods-Saxon nucleon distribution is assumed).

% centrality      b/RA (RHIC)        b/RA (LHC)
0                 0                  0 
5                 0.5                0.51 
6                 0.55               0.57 
10                0.72               0.74 
12                0.79               0.81 
15                0.89               0.91 
20                1.02               1.05 
25                1.15               1.18 
30                1.26               1.29 
35                1.36               1.39 
40                1.46               1.49 
45                1.55               1.58 
50                1.63               1.67 
55                1.71               1.75 
60                1.79               1.83 
65                1.86               1.90 
70                1.93               1.97 
75                2.01               2.06