]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TUHKMgen/UHKM/StrangeDensity.cxx
New generator: TUHKMgen
[u/mrichter/AliRoot.git] / TUHKMgen / UHKM / StrangeDensity.cxx
1 #ifndef NAStrangeDensity_h
2 #include "StrangeDensity.h"
3 #endif
4
5 NAStrangeDensity::NAStrangeDensity() {
6   fTemperature = 0.*GeV;
7   fBaryonPotential = 0.*GeV;
8   fStrangePotential = 0.*GeV;
9   fNMax = 5;
10 }
11 // compute hadron system strangeness density
12 Double_t NAStrangeDensity::StrangenessDensity(DatabasePDG* database) {
13   Double_t meanStrangenessDensity = 0.;
14   for(Int_t particleIndex = 0; particleIndex < database->GetNParticles(); particleIndex++) {
15     ParticlePDG *particle = database->GetPDGParticleByIndex(particleIndex);
16     Double_t particleDensity = ParticleNumberDensity(particle);
17     meanStrangenessDensity += particleDensity*particle->GetStrangeness();
18   }
19   return meanStrangenessDensity;
20 }
21
22 // compute hadron number density
23 Double_t NAStrangeDensity::ParticleNumberDensity(ParticlePDG* pDef) {
24   Double_t particleMass = pDef->GetMass();
25   Int_t particleStrangeness = Int_t(pDef->GetStrangeness());
26   Double_t particleBaryon = pDef->GetBaryonNumber();
27   //compute chemical potential
28   Double_t particleChemPotential = fBaryonPotential*particleBaryon + 
29                                    fStrangePotential*particleStrangeness;
30   //compute degeneracy factor
31   Double_t particleDegFactor = 2*pDef->GetSpin() + 1.;     // IA: In ParticlePDG() GetSpin() returns spin not 2*spin !!
32   Double_t d = 1.;//for fermions
33   if(Int_t(2*pDef->GetSpin())%2 == 0)//it gives 0 for Spin = 0,2,4,.. and it gives 1 for Spin = 1,3,7,
34     d = -1; //for bosons
35
36   Double_t prefactor;
37   Double_t postfactor;
38   prefactor = (particleDegFactor*particleMass*particleMass*
39                fTemperature/hbarc/hbarc/hbarc)/(2.*N_PI*N_PI);  
40   postfactor = 0.;
41  
42   for(Int_t n = 1; n <= fNMax; n++) {
43     postfactor += pow(-d,n+1)/(n)*exp(n*particleChemPotential/fTemperature)*
44       HankelKn(2,n*particleMass/fTemperature);
45   }
46   return prefactor*postfactor;
47 }
48