31 assert(order >= 0 && order <= 4);
33 std::map<std::vector<int>,
double> ret;
43 ret[std::vector<int>{0, 0, 0}] = model->Pressure() /
xMath::GeVtoifm3() / pow(T, 4);
49 ret[std::vector<int>{1, 0, 0}] = model->BaryonDensity() /
xMath::GeVtoifm3() / pow(T, 3);
50 ret[std::vector<int>{0, 1, 0}] = model->ElectricChargeDensity() /
xMath::GeVtoifm3() / pow(T, 3);
51 ret[std::vector<int>{0, 0, 1}] = model->StrangenessDensity() /
xMath::GeVtoifm3() / pow(T, 3);
93 for(
int imuB = 0; imuB <= 3; imuB++) {
94 for(
int imuQ = 0; imuQ <= 3; imuQ++) {
95 for(
int imuS = 0; imuS <= 3; imuS++) {
96 if(imuB + imuQ + imuS == 3) {
97 std::vector<int> key{imuB, imuQ, imuS};
99 std::vector<int> key2 = std::vector<int>{imuB - 1, imuQ, imuS};
100 ret[key] = (SuscmuBp[key2] - SuscmuBm[key2]) / (2 * dmuTnum);
101 }
else if (imuS > 0) {
102 std::vector<int> key2 = std::vector<int>{imuB, imuQ, imuS - 1};
103 ret[key] = (SuscmuSp[key2] - SuscmuSm[key2]) / (2 * dmuTnum);
106 std::vector<int> key2 = std::vector<int>{imuB, imuQ - 1, imuS};
107 ret[key] = (SuscmuQp[key2] - SuscmuQm[key2]) / (2 * dmuTnum);
118 for(
int imuB = 0; imuB <= 4; imuB++) {
119 for(
int imuQ = 0; imuQ <= 4; imuQ++) {
120 for(
int imuS = 0; imuS <= 4; imuS++) {
121 if(imuB + imuQ + imuS == 4) {
122 std::vector<int> key{imuB, imuQ, imuS};
124 std::vector<int> key2 = std::vector<int>{imuB - 2, imuQ, imuS};
125 ret[key] = (SuscmuBp[key2] - 2 * ret[key2] + SuscmuBm[key2]) / (dmuTnum * dmuTnum);
126 }
else if (imuS > 1) {
127 std::vector<int> key2 = std::vector<int>{imuB, imuQ, imuS - 2};
128 ret[key] = (SuscmuSp[key2] - 2 * ret[key2] + SuscmuSm[key2]) / (dmuTnum * dmuTnum);
131 std::vector<int> key2 = std::vector<int>{imuB, imuQ - 2, imuS};
132 ret[key] = (SuscmuQp[key2] - 2 * ret[key2] + SuscmuQm[key2]) / (dmuTnum * dmuTnum);
143 assert(order >= 0 && order <= 4);
145 std::map<std::vector<int>,
double> ret;
158 ret[std::vector<int>{0, 0, 0}] = (model->EntropyDensity() - 4. * model->Pressure() / T) /
xMath::GeVtoifm3() / pow(T, 4);
213 for(
int imuB = 0; imuB <= 3; imuB++) {
214 for(
int imuQ = 0; imuQ <= 3; imuQ++) {
215 for(
int imuS = 0; imuS <= 3; imuS++) {
216 if(imuB + imuQ + imuS == 3) {
217 std::vector<int> key{imuB, imuQ, imuS};
218 ret[key] = Susc[key] / T;
220 std::vector<int> key2 = std::vector<int>{imuB - 1, imuQ, imuS};
221 ret[key] += (dSuscmuBp[key2] - dSuscmuBm[key2]) / (2 * dmuTnum);
222 }
else if (imuS > 0) {
223 std::vector<int> key2 = std::vector<int>{imuB, imuQ, imuS - 1};
224 ret[key] += (dSuscmuSp[key2] - dSuscmuSm[key2]) / (2 * dmuTnum);
227 std::vector<int> key2 = std::vector<int>{imuB, imuQ - 1, imuS};
228 ret[key] += (dSuscmuQp[key2] - dSuscmuQm[key2]) / (2 * dmuTnum);
239 for(
int imuB = 0; imuB <= 4; imuB++) {
240 for(
int imuQ = 0; imuQ <= 4; imuQ++) {
241 for(
int imuS = 0; imuS <= 4; imuS++) {
242 if(imuB + imuQ + imuS == 4) {
243 std::vector<int> key{imuB, imuQ, imuS};
244 ret[key] = 2. * Susc[key] / T;
246 std::vector<int> key2 = std::vector<int>{imuB - 2, imuQ, imuS};
247 ret[key] += (dSuscmuBp[key2] - 2 * ret[key2] + dSuscmuBm[key2]) / (dmuTnum * dmuTnum);
248 }
else if (imuS > 1) {
249 std::vector<int> key2 = std::vector<int>{imuB, imuQ, imuS - 2};
250 ret[key] += (dSuscmuSp[key2] - 2 * ret[key2] + dSuscmuSm[key2]) / (dmuTnum * dmuTnum);
253 std::vector<int> key2 = std::vector<int>{imuB, imuQ - 2, imuS};
254 ret[key] += (dSuscmuQp[key2] - 2 * ret[key2] + dSuscmuQm[key2]) / (dmuTnum * dmuTnum);