3 Nikolai Amelin, Ludmila Malinina, Timur Pocheptsov (C) JINR/Dubna
4 amelin@sunhe.jinr.ru, malinina@sunhe.jinr.ru, pocheptsov@sunhe.jinr.ru
9 #ifndef NAStrangePotential_h
10 #include "StrangePotential.h"
13 Double_t NAStrangePotential::CalculateStrangePotential() {
14 Double_t minFunction = this->operator()(fMinStrangePotential);
15 Double_t maxFunction = this->operator()(fMaxStrangePotential);
18 while(minFunction < 0.0 && iter++ < fNIteration) {
19 fMinStrangePotential -= 0.5*fMinStrangePotential;
20 minFunction = this->operator()(fMinStrangePotential);
24 while(minFunction*maxFunction > 0.0 && iter++ < fNIteration) {
25 fMaxStrangePotential += 1.5*Abs(fMaxStrangePotential-fMinStrangePotential);
26 maxFunction = this->operator()(fMaxStrangePotential);
29 if(minFunction*maxFunction > 0.0) {
30 Error("StrangePotential::CalculateStrangePotential", "minFunction*maxFunction is positive!\n");
34 NAEquationSolver<NAStrangePotential> * theSolver =
35 new NAEquationSolver<NAStrangePotential>(fNSolverIteration, fTolerance);
37 theSolver->SetIntervalLimits(fMinStrangePotential, fMaxStrangePotential);
39 if (!theSolver->Brent(*this))
40 Error("StrangePotential::CalculateStrangePotential", "the root is not found!\n");
42 Double_t strangePotential = theSolver->GetRoot();
44 return strangePotential;
47 //calculate hadron system strange density
48 Double_t NAStrangePotential::CalculateStrangeDensity(const Double_t strangePotential)
50 fGc.SetStrangePotential(strangePotential);
51 fGc.SetTemperature(fTemperature);
52 fGc.SetBaryonPotential(fBaryonPotential);
53 return fGc.StrangenessDensity(fDatabase);