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