]>
Commit | Line | Data |
---|---|---|
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 | //__________________________________________________________ |
17 | StrangeDensity::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 | //__________________________________________________________ | |
29 | Double_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 | //__________________________________________________________ |
43 | Double_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 |