status of a.l.i.c.e. simulation
DESCRIPTION
Status of A.L.I.C.E. Simulation. 25/11/2003 @ NIKHEF ! by Emanuele Simili. Summary. What I’m doing here . And why. What is AliRoot. Generators & “virtual events”. Some plots & results. Impact Parameter & Reaction Plane. Flow & Fourier Analysis. Next steps …. - PowerPoint PPT PresentationTRANSCRIPT
Status of A.L.I.C.E. Simulation
25/11/2003 @ NIKHEF !
by Emanuele Simili
Summary
• What I’m doing here . And why .
• What is AliRoot .
• Generators & “virtual events” .
• Some plots & results .
• Impact Parameter & Reaction Plane .
• Flow & Fourier Analysis .
• Next steps …
Basic IdeaThe basic idea of my PhD is to study Flow from high energy heavy ion collision in the next to come A.L.I.C.E. experiment (Au+Au
~5.5 TeV) .• What’s Flow:
• Why Flow:
Particle squeeze out from the collision region with a non-spherical momenta distribution .
Flow gives us informations about the Thermo-Dynamical state in the collision region .
EQUATION OF STATE
How to … Up to 2007 (when A.L.I.C.E. experiment is planned to
start at LHC) our study is limited to MC simulations .
Monte Carlo generators
…that’s all we need to build Virtual Datas
Well known ROOT’s analysis tools
(Pythia, GeVSim, etc…)
Virtual DetectorsVirtual Interactions & HitsVirtual Reconstruction & Tracking
(Geometry, Material, etc…)
(Geant3, etc…)
(macros)
(& more…)
! constantly under development !
In A.L.I.C.E. the simulation has gone so far that the entire experiment is “stored” in ~180 Mb of C++ code :
+
AliRoot Configuration AliRoot (as Root) is entirely based on C++ : • Functions, Macros and Commands must
follow the standard C++ sintax (Cint) . • The event generation is handled via a configuration file (that is also a C++ script) .
Config.C
Initialize Geant3
Initialize Pythia
Initialize the Generator
Switch on/off detectors and mag. fieldSet detectors parameters . . .
*
Generators & GeVSim AliRoot can generate events using different kind of particle generators . We can choose the one that best fits our needs :• Hijing : p-p collision (Pythia) + Glauber model .• Shaker : random phase space distribution .• GeVSim : user defined PT, Y, Φ distributions .• Other external generators …
Best to study Flow : GeVSimGeVSim (by S.Radomski) is the evolution, up to A.L.I.C.E. energies, of the MeVSim generator used in S.T.A.R. .
*
Why GeVSim (1) Particles’ Flow is a fenomenon not completly understood microscopically (i.e.
from basic principles) . It means that we do not have a theoretical model to simulate Flow during the collision .
Flow must be added externally to simulated datas ! …and GeVSim does it .
boost
Why GeVSim (2) Possibility to generate arbitrary distribution of the physical variables, particle type, etc . 4 different analytical d2N/dPTdY distribution (built from four different expansion model of a thermal source), or user-defined ones .
For more information see :http://radomski.home.cern.ch/radomski
…yes, this is MapleV running under Windows98, under VMware, under Linux RH7.2 .
GeVSim ConfigurationConstructor
GeVSim does NOT simulate Real Physics !
…
AliGenGeVSim *gener = new AliGenGeVSim(0); // 0 = reaction plane angle
AliGeVSimParticle *piPlus = new AliGeVSimParticle(kPiPlus, 2, 100, 0.18) ;AliGeVSimParticle *piMinus = new AliGeVSimParticle(kPiMinus, 2, 100, 0.18) ;// AliGeVSimParticle *KPlus = new AliGeVSimParticle(kKPlus, 2, 500, 0.16) ;// AliGeVSimParticle *KMinus = new AliGeVSimParticle(kKMinus, 2, 500, 0.16) ;
piPlus->SetEllipticSimple(0.12) ; gener->AddParticleType(piPlus) ;piMinus->SetEllipticSimple(0.12) ; gener->AddParticleType(piMinus) ;
gener->SetMomentumRange(0., 999.) ;gener->SetPtRange(0., 10.) ;gener->SetPhiRange(0, 360) ;gener->SetOrigin(0, 0, 0) ; // vertex positiongener->SetYRange(-4, 4) ;
…
gener->SetTrackingFlag(0); // no transport
gener->Init();…
Particle typesBoost (Flow)
Initialization
Physical limits &
Settings
…but (warning!) :
Config.C
Example of Event (the Event Display )
Some thousands of π, no flow .
Event Structure
TTree
Kinematics(produced particles)
Detectors Parameters
This is the output file gAlice.root
each version of each detector requires his
own TTree of hits
Hits for each detector
Event Reconstruction Each detector involved in the event (i.e. switched on in
Config.C) requires it’s own external reconstruction routines ( ! ) . The path is :
TTreeH (hits) digits clusters tracks
From gAlice.root
The output of each detector is a TTree containing the reconstructed Tracks as C++ objects…
TPC (the only one I use at the moment) : Class AliTPCtrack .
…of a different Class for each detector .
Angular Distributions (No Flow)MC
TPC
10.000 π , GeVSim model 2 , T=0.18, Ev.Plane=0° , elliptic simple=0 .
Angular Distributions (Elliptic Flow)MC
TPC
10.000 π , GeVSim model 1 , T=0.18 , σ=0.6 , Ev.Plane=0° , elliptic simple=0.2 .
Pt-Y Distributions
10.000 π , GeVSim model 2 , T=0.18 .
(Transverse) Momentum Spectra
dN/dP dN/dPT 1/PT dN/dPT dN/dMT 1/MT dN/dMT
MC
TPC
10.000 π , GeVSim model 1 , T=0.18 , σ=0.6 .
Fits (p1 ~ T = 0.18 GeV)
slope ~ -1/T = 5.555
MC
TPC
10.000 π , GeVSim model 2 , T=0.18 .
…fit functions…
…rapidity win…
Reaction Plane
xy
z
bb
Reaction
Plane
b (distance between nuclei
centers) is a vector in the xy-plane x
y
bb
b and the z-axis define the :
z
P distribution is approximately symmetric with respect to the Reaction Plane .
LHC = z
Plane angle calculation
2
22
1
22
1
)()()(
a
papppD
yv
xvy
v
Nxv
N
vjv
iv
ji mppF1
, 2
There are a lot of different methods to find out Φ : the angle of vector b . x
y
I mostly use 3 (4) of them, event by event :
bb
ΦΦ
#3 Azimuthal Correlation :
#2 Transverse Momentum Analysis :
#1 Kinetic Sphericity Tensor :
(#4) First Fourier Angle : …ψ1 should be Φ ± π …
…direction of b = eigenvector with the greatest eigenvalue .
…direction of b = direction of Q .
N
vpwQ1
…angle of b = parameter a that minimizes the function D2 .
Implementation// #1 Kinetic Sphericity Tensor -----------------------------------------Double_t KSphT(TTree* TT, Bool_t ptrl=0) { TMatrix F(3,3) ; TParticle* tp ; ... for(Int_t vv=0; vv<numerodientries; vv++) { TT->GetEntry(vv) ; if(CutP(tp)) { P[0] = tp->Px() ; P[1] = tp->Py() ; P[2] = tp->Pz() ; mass = tp->GetCalcMass() ; for(Int_t ii=0; ii<3; ii++) { for(Int_t jj=0; jj<3; jj++) { F(ii,jj) += (P[ii] * P[jj]) / (2 * mass) ; } } } } eigenv = F->EigenVectors(eigvals) ; TVector v1= TMatrixColumn(eigenv,0) ; Rangle = atan2(v1[2],v1[1]) ; return Rangle ;}
// #2 Transverse Momentum Analysis --------------------------------------Double_t TrMan(TTree* TT, Bool_t ptrl=0) { TVector Q(2) ; TParticle* tp ; ... for(Int_t vv=0; vv<numerodientries; vv++) { TT->GetEntry(vv) ; w = (tp->Pz())/((fabs(tp->Pz()))*(tp->Pt())) ; Q[0] += w*(tp->Px()) ; Q[1] += w*(tp->Py()) ; } Rangle = atan2(Q[1],Q[0]) ; return Rangle ;}
// #3 Azimuthal Correlation --------------------------------------------Double_t AzCorr(TTree* TT, Bool_t ptrl=0) { Double_t Parametro[2] ; TVector P(2) ; TParticle* tp ; ... for(Int_t vv=0; vv<numerodientries; vv++) { TT->GetEntry(vv) ; P[0] = tp->Px() ; P[1] = tp->Py() ; sx += P[0]*P[0] ; sy += P[1]*P[1] ; sxy += P[0]*P[1] ; } Parametro[0] = 1/2*(sy -sx +sqrt(sx*sx -2*sx*sy +sy*sy +4*sxy*sxy)) / sxy ; Parametro[1] = 1/2*(sy -sx -sqrt(sx*sx -2*sx*sy +sy*sy +4*sxy*sxy)) / sxy ; a = Parametro[0] ; Double_t D20 = sx = sy - (sx + a*sy + a*sxy)/(1-a*a) ; a = Parametro[1] ; Double_t D21 = sx = sy - (sx + a*sy + a*sxy)/(1-a*a) ; ... if(D20>D21) { a = Parametro[1] ; } else { a = Parametro[0] ; } return a ;}
#1
#3
#2
For reconstructed tracks, TParticle* becomes AliTPCtrack* .
Results (MC only)Reaction Plane fixed (0°)
Reaction Plane rotating (0°→360°)
#1 #2
#3 #4
#1 #2
#3 #4
…but I work out .
Ok! ~
under development wrong!
Ok! ~
under development wrong!
Fourier Analysis
1
0 )sin()cos(1
2
)(
nnn
T nynxx
d
dp
)sin(
)cos(
vv v
Tn
vv v
Tn
nd
dpy
nd
dpx
Since the distribution dpT(Φ)/dΦ is a periodical funcion, it can be written in the form of fourier expansion :
Where the Fourier Coefficient (xn , yn) are integrals of dpT(Φ)/dΦ weighted by cos(nΦ) & sin(nΦ)
respectively . From datas we can estrapolate (event by event) :
n
nn
nnn
x
yTg
yxV
1
22
…in polar cords :
There’s Flow if V2 ≠ 0 .
Fourier Routine & Results// Fourier analysis -----------------------------------------------------TVector FourCoff(TTree* TT, Int_t N, Double_t RapWin=.9) { Double_t pT, Y, phi ; TParticle* tp ; … for(Int_t vv=0;vv<numerodientries;vv++) { TT->GetEntry(vv) ; if(CutP(tp)) { pT = tp->Pt() ; phi = tp->Phi() ; Y = Ycalc(tp) ; XX += pT*cos(N*phi) ; YY += pT*sin(N*phi) ; } } VPsi[0] = sqrt(XX*XX + YY*YY) ; VPsi[1] = atan2(YY,XX) ; return VPsi ;} // ----------------------------------------------------------------------)
ψ1‘s values distribution over 100 events
ψi evolution (i=0..4) over the same set of 100 events…
!
Should be a gaussian centered on 0° (angle of the
reaction plane) .
Should be exactly 0°, it
is!
Should fluctuate
around 0° .
. . .
Wro
ng !?!
Going On …
• Fix GeVSim’s details about PT distribution and Slope Parameter (Radomski is coming from Germany…) .
• Develop & debug the Fourier Analysis routines (…or grab them somewere else) .
• Start with the “Cumulants Method” .
• …and, of course, hope for a more stable release of AliRoot !
to be continued…