]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TUHKMgen/UHKM/StrangePotential.h
for TPC pid get the momentum at tpc inner wall
[u/mrichter/AliRoot.git] / TUHKMgen / UHKM / StrangePotential.h
1 //
2 //
3 //        Nikolai Amelin, Ludmila Malinina, Timur Pocheptsov (C) JINR/Dubna
4 //      amelin@sunhe.jinr.ru, malinina@sunhe.jinr.ru, pocheptsov@sunhe.jinr.ru
5 //                           November. 2, 2005
6 //
7 //
8 //This class is used to calculate strange potential from
9 //the known initial strange density = 0 at given temperature and baryon potential.
10
11 #ifndef STRANGEPOTENTIAL_H
12 #define STRANGEPOTENTIAL_H
13
14 #include "StrangeDensity.h"
15 #include "EquationSolver.h"
16 #include "DatabasePDG.h"
17 #include "UKUtility.h"
18                                          
19 class StrangePotential {
20  public:
21   StrangePotential(const Double_t initialStrangeDensity=0, DatabasePDG* database=0x0) :
22     fTemperature(0),
23     fBaryonPotential(0),
24     fStrangeDensity(initialStrangeDensity),
25     fMinStrangePotential(0.0001*kGeV),
26     fMaxStrangePotential(0.9*kGeV),
27     fNIteration(100),
28     fNSolverIteration(100),
29     fTolerance(1.e-8),
30     fDatabase(database),
31     fGc()
32     {};
33
34   ~StrangePotential() {};
35    
36   Double_t operator()(const Double_t strangePotential) { 
37     return (fStrangeDensity - this->CalculateStrangeDensity(strangePotential))/fStrangeDensity; 
38   }     
39
40   void SetTemperature(Double_t value) {fTemperature = value;}
41   void SetBaryonPotential(Double_t value) {fBaryonPotential = value;}
42   void SetMinStrangePotential(Double_t value) {fMinStrangePotential = value;}
43   void SetMaxStrangePotential(Double_t value) {fMaxStrangePotential = value;}
44   Double_t CalculateStrangePotential();
45
46  private:
47   StrangePotential();
48   StrangePotential(const StrangePotential&);
49   StrangePotential& operator=(const StrangePotential&);
50
51   Double_t fTemperature;         // temperature
52   Double_t fBaryonPotential;     // baryo-chemical potential
53   Double_t fStrangeDensity;      // strangeness density
54   Double_t fMinStrangePotential;//initial min value of strange potential 
55   Double_t fMaxStrangePotential;//initial max value of strange potential
56   Int_t fNIteration; //to find proper [minStrangePotential, maxStrangePotential] interval
57   Int_t fNSolverIteration; //to find root in [minStrangePotential,maxStrangePotential] interval
58   Double_t fTolerance;//to find root 
59   DatabasePDG* fDatabase;        // PDG database
60   StrangeDensity fGc;            // strangeness density object
61   //compute hadron  system strange density through strange potential
62   Double_t CalculateStrangeDensity(const Double_t strangePotential);
63 };
64
65 #endif