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