]>
Commit | Line | Data |
---|---|---|
b1c2e580 | 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, 2006 | |
6 | ||
7 | */ | |
8 | ||
9 | #ifndef NAStrangePotential_h | |
10 | #include "StrangePotential.h" | |
11 | #endif | |
12 | ||
13 | Double_t NAStrangePotential::CalculateStrangePotential() { | |
14 | Double_t minFunction = this->operator()(fMinStrangePotential); | |
15 | Double_t maxFunction = this->operator()(fMaxStrangePotential); | |
16 | ||
17 | Int_t iter = 0; | |
18 | while(minFunction < 0.0 && iter++ < fNIteration) { | |
19 | fMinStrangePotential -= 0.5*fMinStrangePotential; | |
20 | minFunction = this->operator()(fMinStrangePotential); | |
21 | } | |
22 | ||
23 | iter = 0; | |
24 | while(minFunction*maxFunction > 0.0 && iter++ < fNIteration) { | |
25 | fMaxStrangePotential += 1.5*Abs(fMaxStrangePotential-fMinStrangePotential); | |
26 | maxFunction = this->operator()(fMaxStrangePotential); | |
27 | } | |
28 | ||
29 | if(minFunction*maxFunction > 0.0) { | |
30 | Error("StrangePotential::CalculateStrangePotential", "minFunction*maxFunction is positive!\n"); | |
31 | return 0.; | |
32 | } | |
33 | ||
34 | NAEquationSolver<NAStrangePotential> * theSolver = | |
35 | new NAEquationSolver<NAStrangePotential>(fNSolverIteration, fTolerance); | |
36 | ||
37 | theSolver->SetIntervalLimits(fMinStrangePotential, fMaxStrangePotential); | |
38 | ||
39 | if (!theSolver->Brent(*this)) | |
40 | Error("StrangePotential::CalculateStrangePotential", "the root is not found!\n"); | |
41 | ||
42 | Double_t strangePotential = theSolver->GetRoot(); | |
43 | delete theSolver; | |
44 | return strangePotential; | |
45 | } | |
46 | ||
47 | //calculate hadron system strange density | |
48 | Double_t NAStrangePotential::CalculateStrangeDensity(const Double_t strangePotential) | |
49 | { | |
50 | fGc.SetStrangePotential(strangePotential); | |
51 | fGc.SetTemperature(fTemperature); | |
52 | fGc.SetBaryonPotential(fBaryonPotential); | |
53 | return fGc.StrangenessDensity(fDatabase); | |
54 | } |