Description of the simulation software
- Download code: pythia8215.tgz
- Additional information: http://home.thep.lu.se/~torbjorn/Pythia.html,
- Download the file pythia8215.tgz to a suitable location.
- Unzip and expand it with tar xvfz pythia8215.tgz.
- Do a make in the thus created pythia8215 directory (it will take a couple of minutes to compile)
- Examine the examples subdirectory and read the README file there for instructions how to do some test runs.
You can do so by simple issue a make mainNN followed
by ./mainNN > outNN, where NN is a two-digit number in the range 01 - 30.)
- You need to write a C++ code with the Pythia libraries (#include "Pythia.h") to generate events with Pythia
- First, you declare a pythia object via Pythia pythia;
- Then, you set the processes you are interested in. For general soft QCD interests, one should just set
pythia.readString("SoftQCD:all = on");, and for jet analysis, pythia.readString("HardQCD:all = on"); could also be used.
- The collision system and energy can then be set via pythia.readString("Beams:eCM = 7000"); and
pythia.readString("Beams:idA = 2212");
(and similarly for idB) where 2212 is the code for protons and the third parameter is the collision energy.
- The command pythia.next(); generates an event
- From within the code, you can access the created particle via the array pythia.event.
For example, the i-th particle's id is pythia.event[i].id(), while its four-momentum coordinates are accessible via
- You can compile your code via g++ mycode.cc lib/libpythia8.a -o mycode.exe -I./include -O2 -ansi -pedantic -W -Wall -Wshadow -fPIC -Wl,-rpath lib -ldl
- Download code: hijing1411.tgz
- Additional information: http://ntc0.lbl.gov/~xnwang/hijing/,
- Download hijing.tgz to a suitable location
- Unzip and expand with tar xzvf hijing.tgz
- Compile simulation package via make hijing1.211.o and make hipyset1.35.o
- Edit test.f to perform the desired simulation. The last part does the event printing, after CALL HIJING.
- Compile main program via make test.exe
- Edit test.in to achieve desired settings. Here the first number on each line is just a placeholder. The subsequent strings after the first comma are important, and they set the following: random seed; coordinate system, collision energy; colliding particle or nucleus; nucleus A,Z parameters; number of events; print warnings; print info of decayed particles;
- Run via ./test.exe < test.in > test.out
- A test.out text file has been created. It contains a string BEGINNINGOFEVENT at the beginning of each event. After that, the number of event, number of particles and total energy of particles is printed. After that, particles are listed with their number, id, parent particle number (if decays are remembered), status, four-momentum coordinates.
- Download code: therminator2_2.0.3.tar.gz
- Additional information: http://therminator2.ifj.edu.pl/,
- Download therminator2-latest.tar.gz
- Unzip and expand it with tar xzf therminator2-latest.tar.gz
- Compile with make
- Edit events.ini to achieve desired settings
- Simulate a number of events via runevents.sh
- Generate two-particle correlation functions with runhbt.sh
- Directory named "events" will contain the generated events, in subdirectories depending on the given particle freeze-out model.
- event*.root will contain all the event data in a ROOT tiree format, while femto*.root will contain quantumstatistical
correlation functions (the particles of the events don't have quantumstatistical features, these are separately generated)
- The output is stored in ASCII and ROOT files as well. The plain text version is easy to read,
it contains lines for each particle with particle number, parent particle number (if decay product),
particle ID, particle ID of parent particle, particle ID of original primordial particle,
decay flag, four-momentum, and four-coordinates of the creation point. However, this text
version is not effective in terms of disk space and data access.
- The structure of both files is described in Section 4 of Chojnacki et al., Comp.Phys.Commun. 183 (2012) 746
- ROOT trees (TTree objects) have to be read as described in the ROOT documentation, for example at
- First, you open your ROOT file via TFile *rootfile = new TFile("myfile.root","READ");
- Then you obtain your TTree via TTree *t = (TTree*)rootfile->Get("particles");
- Then you need to set the branch address for each set of objects in the tree via t->SetBranchAddress("particle",&particle);
where particle is a ParticleCoor object.
- The TTree has t->GetEntries() entries, and you can loop over them via a simple for loop, getting each
entry via t->GetEntry(i);. The variable particle set in the previous point will then contain
the ParticleCoor object of the given entry
- This class contains the following information (among others): eventid,eid,pid,decayed,e,px,py,pz and can be accessed via conventional
- This is a simplified description, just to give you an idea how things work with TTree objects. You can also use a full-blown Event analyzer, such as in
Working with real data
- You will just have to download this data from the location provided at the beginning of the course
- Download analysis code from my BNL public web area
- Put the data tree at the same location, name measure_createtree.root
- Create the exe, exe/object, exe/object/dependencies directories
- Check if you can get back to zvertex, centrality and reaction plane distributions given at my BNL public web area
- You can access the particle properties through p.GetEntry(ientry), and then p.E[itrack] and similar.