Title: The PLUTO event generator
1The PLUTO Event Generator
Romain Holzmann, GSI Darmstadt
- design and implementation
- physics
- elementary reactions
- AA collisions
- examples
CBM Software Week May 2004
2What is PLUTO?
- In simple terms
-
- PLUTO is a ROOT-based framework for implementing
- customized event generators
- object-oriented (C), modular, flexible,
extensible - fast simulations (kinematics, decays)
- filters (e.g. acceptances, efficiencies)
- no transport through media, no geometry, no
field! - PLUTO designed by Marios Kagarlis (GSI 2000/2001)
- Documentation at www-hades.gsi.de/computing/pluto/
html/PlutoIndex.html
3The PLUTO web page
User manual
Class documentation
Tar ball
To be updated soon!
4Basic design of PLUTO
TClonesArray of PParticle
- Main classes
- PParticle
- PChannel
- PReaction
- PDecayManager
- PData
- PUtils
TTree
HADES specific!
5Physics implemented in PChannel
- kinematics (E and P conservation)
- build-in particle table (extendable)
- build-in and/or user-defined
- angular distributions
- resonances with G G(M)
- form factors in Dalitz decays
- beam momentum spread
6Particle decay engine
Use internal PLUTO engine or Pythia engine
(needs libPythia6.so)
7Output formats
- PLUTO offers 2 output formats
- Root file (TFile/TTree)
- Ascii file
8Modes of operation
- 1) Simulate a specific reaction, e.g. 1.1 GeV
p-p?n? -
1 ? p0ee- -
2
4 - (? define a PReaction made of 4 PChannels)
3 ? ?? -
- 2) Simulate a reaction with all decays open, e.g.
25 AGeV AuAu - (? define a PReaction made of thermal sources
T, sy, flow)
9Example 1 p-p ? n? ? p0 ee-
PParticle pim new PParticle("pi-",1.1)
// define projectile and target PParticle p
new PParticle("p") PParticle s new
PParticle(pimp) PParticle omeg new
PParticle("w") PParticle n new
PParticle("n") PParticle pl1
s,n,omeg PChannel ch1 new PChannel(pl1)
// define 1st reaction step PParticle
pi0 new PParticle("pi0") PParticle epem
new PParticle("dilepton") PParticle pl2
omeg, pi0, epem PChannel ch2 new
PChannel(pl2) // define 2nd reaction
step PParticle gam1 new PParticle("g")
PParticle gam2 new PParticle("g") PParticle
pl3 pi0, gam1, gam2 PChannel ch3 new
PChannel(pl3) // define 3rd reaction
step PParticle ep new PParticle("e")
PParticle em new PParticle("e-") PParticle
pl4 epem, ep, em PChannel ch4 new
PChannel(pl4) // define 4th reaction
step PChannel ch ch1, ch2, ch3, ch4
PReaction r new PReaction(ch, "w-Dalitz", 4,
1, 0, 0) // define reaction r-gtPrint()
r-gtloop(10000) //
run simulation
10Example 2 Pions from 25 AGeV AuAu
Float_t Ebeam 25 // beam
energy Float_t T 0.12 //
temperature Float_t sigma 1. //
rapidity distribution Float_t blast 0.3
// blast Int_t Mpi 400
// pion multiplicity PFireball pip new
PFireball("pi",Ebeam, T, 0, 1, blast,0,0,0,0)
// pi source pip-gtsetSigma(sigma)
PFireball pim new PFireball("pi",Ebeam, T, 0,
1, blast,0,0,0,0) // pi- source
pim-gtsetSigma(sigma) PFireball pi0 new
PFireball("pi",Ebeam, T, 0, 1, blast,0,0,0,0)
// pi0 source pi0-gtsetSigma(sigma)
PChannel ch1 pip-gtmakeChannel(800,Mpi)
PChannel ch2 pim-gtmakeChannel(800,Mpi)
PChannel ch3 pi0-gtmakeChannel(800,Mpi)
PChannel ch ch1, ch2, ch3 PReaction r
new PReaction(ch, "AuAu25AgeV", 3, 1, 0, 0)
// define reaction r-gtsetDecayAll(10.)
// decay all particles with lifetime lt10 ns
r-gtPrint() r-gtloop(10000)
// run simulation
11PLUTO for CBM VMC
- Interfaced to CBM simulation
- via Root files (existing)
- internal (to be implemeted)