3 // Nikolai Amelin, Ludmila Malinina, Timur Pocheptsov (C) JINR/Dubna
4 // amelin@sunhe.jinr.ru, malinina@sunhe.jinr.ru, pocheptsov@sunhe.jinr.ru
10 #include "StrangePotential.h"
12 //_____________________________________________________________________
13 Double_t StrangePotential::CalculateStrangePotential() {
15 // compute strange potential
17 Double_t minFunction = this->operator()(fMinStrangePotential);
18 Double_t maxFunction = this->operator()(fMaxStrangePotential);
21 while(minFunction < 0.0 && iter++ < fNIteration) {
22 fMinStrangePotential -= 0.5*fMinStrangePotential;
23 minFunction = this->operator()(fMinStrangePotential);
27 while(minFunction*maxFunction > 0.0 && iter++ < fNIteration) {
28 fMaxStrangePotential += 1.5*TMath::Abs(fMaxStrangePotential-fMinStrangePotential);
29 maxFunction = this->operator()(fMaxStrangePotential);
32 if(minFunction*maxFunction > 0.0) {
33 Error("StrangePotential::CalculateStrangePotential", "minFunction*maxFunction is positive!\n");
37 EquationSolver<StrangePotential> * theSolver =
38 new EquationSolver<StrangePotential>(fNSolverIteration, fTolerance);
40 theSolver->SetIntervalLimits(fMinStrangePotential, fMaxStrangePotential);
42 if (!theSolver->Brent(*this))
43 Error("StrangePotential::CalculateStrangePotential", "the root is not found!\n");
45 Double_t strangePotential = theSolver->GetRoot();
47 return strangePotential;
50 //_____________________________________________________________________
51 Double_t StrangePotential::CalculateStrangeDensity(const Double_t strangePotential)
54 //calculate hadron system strange density
56 fGc.SetStrangePotential(strangePotential);
57 fGc.SetTemperature(fTemperature);
58 fGc.SetBaryonPotential(fBaryonPotential);
59 return fGc.StrangenessDensity(fDatabase);