Generacja i analiza zdarzeń pp (proton-proton) z wykorzystaniem Pythia 8 i ROOT.
- C++17
- ROOT 6 (https://root.cern/install/)
- Pythia 8 (https://pythia.org/)
- CMake 3.15+
# Ustaw zmienną środowiskową PYTHIA8_DIR
export PYTHIA8_DIR=/ścieżka/do/pythia8
# Kompilacja
mkdir -p build
cd build
cmake ..
cmake --build .
cd ..Po kompilacji w katalogu build/ znajdą się:
run_pythia- generator zdarzeńanalyze- program analizujący
CMake oferuje custom targets do automatyzacji pipeline:
# Tylko kompilacja binarek (domyślne)
cmake --build .
# Uruchom generator (używa domyślnych parametrów z programu)
cmake --build . --target generate
# Uruchom analizę
cmake --build . --target analyze_data
# Pełny pipeline: generacja → analiza → wykresy
cmake --build . --target pipeline./build/run_pythia -n 100000 -o data/pythia_events.rootOpcje:
-n, --nevents <N>- liczba zdarzeń (domyślnie: 100000)-s, --seed <N>- seed generatora (domyślnie: 12345)-e, --energy <E>- energia √s w GeV (domyślnie: 13600)-o, --output <path>- plik wyjściowy-h, --help- pomoc
Proces: SoftQCD:all (minimum bias pp collisions)
./build/analyze -i data/pythia_events.root -o data/analysis.rootOpcje:
-i, --input <path>- plik wejściowy ROOT-o, --output <path>- plik wyjściowy ROOT--phi-mode <mode>- tryb zakresu φ: std/fold/full (domyślnie: std)-h, --help- pomoc
Wyjście: 32 histogramy (4 zmienne × 8 kategorii cząstek)
- Zmienne: N (multiplicity), pT, η, φ
- Kategorie: all, ch, π⁺, π⁻, K⁺, K⁻, p, p̄
W głównym katalogu:
root -l -q macros/draw_plots.CWyjście: w katalogu plots/
- 32 indywidualne histogramy (PNG + PDF)
- 4 wykresy porównawcze (PNG + PDF)
pp_analysis/
├── CMakeLists.txt # Konfiguracja CMake
├── README.md # Instrukcje
├── build/ # Skompilowane binaria
│ ├── run_pythia # Generator
│ └── analyze # Analyzer
├── data/ # Dane
│ ├── pythia_events.root # Wygenerowane zdarzenia
│ └── analysis.root # Wyniki analizy
├── macros/
│ └── draw_plots.C # Makro ROOT do wykresów
├── plots/ # Wykresy PNG/PDF
└── src/ # Kod źródłowy
├── main_generator.cpp
├── main_analyze.cpp
├── generators/
│ ├── PythiaGenerator.h
│ └── PythiaGenerator.cpp
└── analysis/
├── Analyzer.h
└── Analyzer.cpp
# 1. Kompilacja
export PYTHIA8_DIR=/Users/ptak/Documents/Development/pythia/pythia8316
mkdir -p build && cd build
cmake .. && cmake --build .
cd ..
# 2. Generacja zdarzeń
./build/run_pythia -n 100000 -o data/pythia_events.root
# 3. Analiza
./build/analyze -i data/pythia_events.root -o data/analysis.root
# 4. Wykresy
root -l -q macros/draw_plots.CProblem: "Pythia8 include dir not found"
export PYTHIA8_DIR=/ścieżka/do/pythia8Problem: ROOT nie znaleziony
source /ścieżka/do/root/bin/thisroot.shProblem: Brak katalogu data/ lub plots/
mkdir -p data plotsIgor Ptak