Coding conventions (Ionut)
[u/mrichter/AliRoot.git] / TUHKMgen / UHKM / StrangeDensity.cxx
CommitLineData
03896fc4 1//
2// Nikolai Amelin, Ludmila Malinina, Timur Pocheptsov (C) JINR/Dubna
3// amelin@sunhe.jinr.ru, malinina@sunhe.jinr.ru, pocheptsov@sunhe.jinr.ru
4// November. 2, 2005
5//
6//
7//This class is used to obtain grand canonical description of strange density
8//by means of the temperature and chemical potentials (input). As for output
9
10#include <TMath.h>
b1c2e580 11#include "StrangeDensity.h"
03896fc4 12#include "DatabasePDG.h"
13#include "ParticlePDG.h"
14#include "UKUtility.h"
b1c2e580 15
03896fc4 16//__________________________________________________________
17StrangeDensity::StrangeDensity():
18 fTemperature(0.*kGeV),
19 fBaryonPotential(0.*kGeV),
20 fStrangePotential(0.*kGeV),
786056a2 21 fNMax(5)
22{
03896fc4 23 //
24 // constructor
25 //
b1c2e580 26}
03896fc4 27
28//__________________________________________________________
29Double_t StrangeDensity::StrangenessDensity(const DatabasePDG* database) {
30 //
31 // compute hadron system strangeness density
32 //
b1c2e580 33 Double_t meanStrangenessDensity = 0.;
34 for(Int_t particleIndex = 0; particleIndex < database->GetNParticles(); particleIndex++) {
35 ParticlePDG *particle = database->GetPDGParticleByIndex(particleIndex);
36 Double_t particleDensity = ParticleNumberDensity(particle);
37 meanStrangenessDensity += particleDensity*particle->GetStrangeness();
38 }
39 return meanStrangenessDensity;
40}
41
03896fc4 42//__________________________________________________________
43Double_t StrangeDensity::ParticleNumberDensity(ParticlePDG* pDef) {
44 //
45 // compute hadron number density
46 //
b1c2e580 47 Double_t particleMass = pDef->GetMass();
48 Int_t particleStrangeness = Int_t(pDef->GetStrangeness());
49 Double_t particleBaryon = pDef->GetBaryonNumber();
50 //compute chemical potential
51 Double_t particleChemPotential = fBaryonPotential*particleBaryon +
52 fStrangePotential*particleStrangeness;
53 //compute degeneracy factor
54 Double_t particleDegFactor = 2*pDef->GetSpin() + 1.; // IA: In ParticlePDG() GetSpin() returns spin not 2*spin !!
55 Double_t d = 1.;//for fermions
56 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,
57 d = -1; //for bosons
58
59 Double_t prefactor;
60 Double_t postfactor;
61 prefactor = (particleDegFactor*particleMass*particleMass*
03896fc4 62 fTemperature/kHbarc/kHbarc/kHbarc)/(2.*TMath::Pi()*TMath::Pi());
b1c2e580 63 postfactor = 0.;
64
65 for(Int_t n = 1; n <= fNMax; n++) {
66 postfactor += pow(-d,n+1)/(n)*exp(n*particleChemPotential/fTemperature)*
67 HankelKn(2,n*particleMass/fTemperature);
68 }
69 return prefactor*postfactor;
70}
71