18 hydro_type = paraRdr->
getVal(
"hydro_type");
24 if (hydro_type == 0) {
27 grid_tau0 = hydroinfo_ptr->getHydrogridTau0();
28 grid_tauf = hydroinfo_ptr->getHydrogridTaumax();
29 grid_x0 = - hydroinfo_ptr->getHydrogridXmax();
30 grid_y0 = - hydroinfo_ptr->getHydrogridYmax();
34 grid_tau0 = hydroinfo_MUSIC_ptr->get_hydro_tau0();
35 grid_tauf = hydroinfo_MUSIC_ptr->get_hydro_tau_max();
36 grid_x0 = (- hydroinfo_MUSIC_ptr->get_hydro_x_max()
37 + hydroinfo_MUSIC_ptr->get_hydro_dx());
40 T_dec = paraRdr->getVal(
"T_cut");
41 grid_dt = paraRdr->getVal(
"grid_dt");
42 grid_dx = paraRdr->getVal(
"grid_dx");
43 grid_dy = paraRdr->getVal(
"grid_dy");
50 cout <<
"check the position of the freeze-out surface "
51 <<
"at (T = " << Tdec <<
" GeV) ... " << endl;
53 int ntime =
static_cast<int>((grid_tauf - grid_tau0)/grid_dt) + 1;
54 int nx =
static_cast<int>(abs(2*grid_x0)/grid_dx) + 1;
55 int ny =
static_cast<int>(abs(2*grid_y0)/grid_dy) + 1;
62 for (
int itime = 0; itime < ntime; itime++) {
64 tau_local = grid_tau0 + itime*grid_dt;
65 for (
int i = 0;
i <
nx;
i++) {
67 double x_local = grid_x0 +
i*grid_dx;
68 for (
int j = 0;
j <
ny;
j++) {
69 double y_local = grid_y0 +
j*grid_dy;
73 if (fabs(temp_local - Tdec) < 0.001) {
74 output << tau_local <<
" " << x_local <<
" "
76 << sqrt(x_local*x_local + y_local*y_local) << endl;
87 cout <<
"output temperature vs tau ..." << endl;
89 int nt =
static_cast<int>((grid_tauf - grid_tau0)/grid_dt + 1);
90 int nx =
static_cast<int>(abs(2*grid_x0)/grid_dx) + 1;
91 int ny =
static_cast<int>(abs(2*grid_y0)/grid_dy) + 1;
94 output.open(
"results/tau_vs_T.dat");
97 for (
int it = 0;
it < nt;
it++) {
98 double tau_local = grid_tau0 +
it*grid_dt;
99 double avgTemp, stdTemp;
101 double tempSum = 0.0;
102 double tempSumsq = 0.0;
103 double tempMax = 0.0;
104 for (
int i = 0;
i <
nx;
i++) {
106 double x_local = grid_x0 +
i*grid_dx;
107 for (
int j = 0;
j <
ny;
j++) {
108 double y_local = grid_y0 +
j*grid_dy;
110 if (hydro_type == 0) {
112 hydroinfo_ptr->getHydroinfo(tau_local, x_local, y_local,
116 hydroinfo_MUSIC_ptr->getHydroValues(
117 x_local, y_local, 0.0, tau_local, fluidCellptr);
120 if (temp_local > T_dec) {
122 tempSum += temp_local;
123 tempSumsq += temp_local*temp_local;
124 if (tempMax < temp_local)
125 tempMax = temp_local;
133 avgTemp = tempSum/numCell;
134 stdTemp = sqrt((tempSumsq - tempSum*tempSum/numCell)/(numCell - 1));
136 output << tau_local <<
" " << avgTemp <<
" " << stdTemp
137 <<
" " << tempMax << endl;
144 cout <<
"output u^tau vs tau ... " << endl;
146 int nt =
static_cast<int>((grid_tauf - grid_tau0)/grid_dt + 1);
147 int nx =
static_cast<int>(abs(2.*grid_x0)/grid_dx) + 1;
148 int ny =
static_cast<int>(abs(2.*grid_y0)/grid_dy) + 1;
154 output <<
"# tau (fm) V4 (fm^4) <u^tau> theta" << endl;
156 for (
int it = 1;
it < nt;
it++) {
157 double tau_local = grid_tau0 +
it*grid_dt;
158 double volume_element = tau_local*grid_dt*grid_dx*grid_dy;
160 double avg_utau = 0.0;
161 double avg_theta = 0.0;
163 for (
int i = 0;
i <
nx;
i++) {
165 double x_local = grid_x0 +
i*grid_dx;
166 for (
int j = 0;
j <
ny;
j++) {
167 double y_local = grid_y0 +
j*grid_dy;
168 if (hydro_type == 0) {
170 hydroinfo_ptr->getHydroinfo(tau_local, x_local, y_local,
174 hydroinfo_MUSIC_ptr->getHydroValues(
175 x_local, y_local, 0.0, tau_local, fluidCellptr);
178 if (temp_local > T_dec) {
180 double vx_local = fluidCellptr->
vx;
181 double vy_local = fluidCellptr->
vy;
182 double v_perp = sqrt(vx_local*vx_local + vy_local*vy_local);
183 double gamma = 1./sqrt(1. - v_perp*v_perp);
185 double theta = compute_local_expansion_rate(
186 tau_local, x_local, y_local);
187 avg_utau += gamma*volume_element;
188 avg_theta += theta*volume_element;
189 V4 += volume_element;
199 avg_utau = avg_utau/V4;
200 avg_theta = avg_theta/V4;
202 output << tau_local <<
" " << V4 <<
" " << avg_utau <<
" "
203 << avg_theta << endl;
209 cout <<
"output utau vs T ... " << endl;
211 int nt =
static_cast<int>((grid_tauf - grid_tau0)/grid_dt + 1);
212 int nx =
static_cast<int>(abs(2*grid_x0)/grid_dx) + 1;
213 int ny =
static_cast<int>(abs(2*grid_y0)/grid_dy) + 1;
215 ofstream
output(
"results/T_vs_v.dat");
216 output <<
"# T (GeV) V (fm^4) <u^tau> theta" << endl;
220 double dT = (T_max - T_dec)/(n_bin - 1);
221 double *T_bin_avg =
new double[n_bin];
222 double *V4 =
new double[n_bin];
223 double *avg_utau =
new double[n_bin];
224 double *avg_theta =
new double[n_bin];
225 for (
int i = 0;
i < n_bin;
i++) {
233 for (
int it = 1;
it < nt;
it++) {
234 double tau_local = grid_tau0 +
it*grid_dt;
235 double volume_element = tau_local*grid_dt*grid_dx*grid_dy;
236 for (
int i = 0;
i <
nx;
i++) {
238 double x_local = grid_x0 +
i*grid_dx;
239 for (
int j = 0;
j <
ny;
j++) {
240 double y_local = grid_y0 +
j*grid_dy;
243 if (hydro_type == 0) {
245 hydroinfo_ptr->getHydroinfo(tau_local, x_local, y_local,
249 hydroinfo_MUSIC_ptr->getHydroValues(
250 x_local, y_local, 0.0, tau_local, fluidCellptr);
253 if (temp_local > T_dec) {
254 double vx_local = fluidCellptr->
vx;
255 double vy_local = fluidCellptr->
vy;
256 double utau_local = 1./sqrt(1. - vx_local*vx_local
257 - vy_local*vy_local);
258 double theta_local = compute_local_expansion_rate(
259 tau_local, x_local, y_local);
260 int T_idx =
static_cast<int>((temp_local - T_dec)/dT);
261 if (T_idx >= 0 && T_idx < n_bin-1) {
262 T_bin_avg[T_idx] += temp_local*volume_element;
263 avg_utau[T_idx] += utau_local*volume_element;
264 avg_theta[T_idx] += theta_local*volume_element;
265 V4[T_idx] += volume_element;
271 for (
int i = 0;
i < n_bin;
i++) {
272 double T_bin, utau_bin, theta_bin;
273 if (fabs(T_bin_avg[
i]) < 1
e-10) {
274 T_bin = T_dec + i*dT;
278 T_bin = T_bin_avg[
i]/(V4[
i] + 1
e-15);
279 utau_bin = avg_utau[
i]/(V4[
i] + 1
e-15);
280 theta_bin = avg_theta[
i]/(V4[
i] + 1
e-15);
282 output << scientific << setw(18) << setprecision(8)
283 << T_bin <<
" " << V4[
i] <<
" " << utau_bin <<
" "
284 << theta_bin << endl;
298 cout <<
"output momentum anisotropy vs tau ... " << endl;
300 int nt =
static_cast<int>((grid_tauf - grid_tau0)/grid_dt + 1);
301 int nx =
static_cast<int>(abs(2*grid_x0)/grid_dx) + 1;
302 int ny =
static_cast<int>(abs(2*grid_y0)/grid_dy) + 1;
306 output.open(
"results/tau_vs_epsP.dat");
308 for (
int it = 0;
it < nt;
it++) {
309 double tau_local = grid_tau0 +
it*grid_dt;
313 for (
int i = 0;
i <
nx;
i++) {
315 double x_local = grid_x0 +
i*grid_dx;
316 for(
int j = 0;
j <
ny;
j++) {
317 double y_local = grid_y0 +
j*grid_dy;
319 if (hydro_type == 0) {
321 hydroinfo_ptr->getHydroinfo(tau_local, x_local, y_local,
325 hydroinfo_MUSIC_ptr->getHydroValues(
326 x_local, y_local, 0.0, tau_local, fluidCellptr);
329 if (temp_local > T_dec) {
330 double e_local = fluidCellptr->
ed;
331 double p_local = fluidCellptr->
pressure;
332 double vx_local = fluidCellptr->
vx;
333 double vy_local = fluidCellptr->
vy;
334 double v_perp = sqrt(vx_local*vx_local
335 + vy_local*vy_local);
336 double gamma = 1./sqrt(1. - v_perp*v_perp);
337 double ux_local = gamma*vx_local;
338 double uy_local = gamma*vy_local;
339 double pi_xx = fluidCellptr->
pi[1][1];
340 double pi_yy = fluidCellptr->
pi[2][2];
342 (e_local+p_local)*ux_local*ux_local + p_local + pi_xx);
344 (e_local+p_local)*uy_local*uy_local + p_local + pi_yy);
348 if (fabs(TxxSum)+ fabs(TyySum) < 1
e-10)
351 epsP = (TxxSum - TyySum)/(TxxSum + TyySum);
353 output << tau_local-0.6 <<
" " << epsP << endl;
359 cout <<
"output 2D contour plot for temperature as function of "
360 <<
"tau and x ... " << endl;
362 int ntime =
static_cast<int>((grid_tauf - grid_tau0)/grid_dt) + 1;
363 int nx =
static_cast<int>(fabs(2.*grid_x0)/grid_dx) + 1;
368 output.open(
"results/TempasTauvsX.dat");
370 for (
int itime = 0; itime < ntime; itime++) {
372 tau_local = grid_tau0 + itime*grid_dt;
373 for (
int i = 0;
i <
nx;
i++) {
375 double x_local = grid_x0 +
i*grid_dx;
376 double y_local = 0.0;
378 if (hydro_type == 0) {
380 hydroinfo_ptr->getHydroinfo(tau_local, x_local, y_local,
384 hydroinfo_MUSIC_ptr->getHydroValues(
385 x_local, y_local, 0.0, tau_local, fluidCellptr);
388 if (temp_local > 0.05)
389 output << temp_local <<
" " ;
391 output << 0.0 <<
" " ;
402 cout <<
"output Knudersen Number as a function of tau and x ..." << endl;
404 int ntime =
static_cast<int>((grid_tauf - grid_tau0)/grid_dt) + 1;
405 int nx =
static_cast<int>(fabs(2.*grid_x0)/grid_dx);
411 output.open(
"results/KnudsenNumberasTauvsX.dat");
413 for (
int itime = 1; itime < ntime; itime++) {
415 double tau_local = grid_tau0 + itime*grid_dt;
416 for (
int i = 0;
i <
nx;
i++) {
418 double x_local = grid_x0 +
i*grid_dx;
419 double y_local = 0.0;
420 double theta = compute_local_expansion_rate(tau_local,
423 if (hydro_type == 0) {
425 hydroinfo_ptr->getHydroinfo(tau_local, x_local, y_local,
429 hydroinfo_MUSIC_ptr->getHydroValues(
430 x_local, y_local, 0.0, tau_local, fluidCellptr);
434 double L_micro = (5.*eta_s
436 double L_macro = 1/(fabs(theta) +
eps);
437 double Knudsen = L_micro/L_macro;
439 output << Knudsen <<
" ";
449 double tau_local,
double x_local,
double y_local) {
462 if (hydro_type == 0) {
464 hydroinfo_ptr->getHydroinfo(tau_local, x_local, y_local,
466 hydroinfo_ptr->getHydroinfo(tau_local-grid_dt, x_local, y_local,
468 hydroinfo_ptr->getHydroinfo(tau_local+grid_dt, x_local, y_local,
470 hydroinfo_ptr->getHydroinfo(tau_local, x_local-grid_dx, y_local,
472 hydroinfo_ptr->getHydroinfo(tau_local, x_local+grid_dx, y_local,
474 hydroinfo_ptr->getHydroinfo(tau_local, x_local, y_local-grid_dy,
476 hydroinfo_ptr->getHydroinfo(tau_local, x_local, y_local+grid_dy,
480 hydroinfo_MUSIC_ptr->getHydroValues(
481 x_local, y_local, 0.0, tau_local, fluidCellptr);
482 hydroinfo_MUSIC_ptr->getHydroValues(
483 x_local, y_local, 0.0, tau_local - grid_dt, fluidCellptrt1);
484 hydroinfo_MUSIC_ptr->getHydroValues(
485 x_local, y_local, 0.0, tau_local + grid_dt, fluidCellptrt2);
486 hydroinfo_MUSIC_ptr->getHydroValues(
487 x_local - grid_dx, y_local, 0.0, tau_local, fluidCellptrx1);
488 hydroinfo_MUSIC_ptr->getHydroValues(
489 x_local + grid_dx, y_local, 0.0, tau_local, fluidCellptrx2);
490 hydroinfo_MUSIC_ptr->getHydroValues(
491 x_local, y_local - grid_dy, 0.0, tau_local, fluidCellptry1);
492 hydroinfo_MUSIC_ptr->getHydroValues(
493 x_local, y_local + grid_dy, 0.0, tau_local, fluidCellptry2);
496 double u0 = 1./sqrt(1. - fluidCellptr->
vx*fluidCellptr->
vx
497 + fluidCellptr->
vy*fluidCellptr->
vy);
498 double u0t1 = 1./sqrt(1. - fluidCellptrt1->
vx*fluidCellptrt1->
vx
499 + fluidCellptrt1->
vy*fluidCellptrt1->
vy);
500 double u0t2 = 1./sqrt(1. - fluidCellptrt2->
vx*fluidCellptrt2->
vx
501 + fluidCellptrt2->
vy*fluidCellptrt2->
vy);
502 double u1x1 = (fluidCellptrx1->
vx
503 /sqrt(1. - fluidCellptrx1->
vx*fluidCellptrx1->
vx
504 + fluidCellptrx1->
vy*fluidCellptrx1->
vy));
505 double u1x2 = (fluidCellptrx2->
vx
506 /sqrt(1. - fluidCellptrx2->
vx*fluidCellptrx2->
vx
507 + fluidCellptrx2->
vy*fluidCellptrx2->
vy));
508 double u2y1 = (fluidCellptry1->
vy
509 /sqrt(1. - fluidCellptry1->
vx*fluidCellptry1->
vx
510 + fluidCellptry1->
vy*fluidCellptry1->
vy));
511 double u2y2 = (fluidCellptry2->
vy
512 /sqrt(1. - fluidCellptry2->
vx*fluidCellptry2->
vx
513 + fluidCellptry2->
vy*fluidCellptry2->
vy));
515 double d0u0 = (u0t2 - u0t1)/2./grid_dt;
516 double d1u1 = (u1x2 - u1x1)/2./grid_dx;
517 double d2u2 = (u2y2 - u2y1)/2./grid_dy;
518 double theta = (d0u0 + d1u1 + d2u2 + u0/tau_local);
521 delete fluidCellptrt1;
522 delete fluidCellptrt2;
523 delete fluidCellptrx1;
524 delete fluidCellptrx2;
525 delete fluidCellptry1;
526 delete fluidCellptry2;
531 cout <<
"output inverse Reynolds number as a function of "
532 <<
"tau and x ... " << endl;
534 int ntime =
static_cast<int>((grid_tauf - grid_tau0)/grid_dt) + 1;
535 int nx =
static_cast<int>(fabs(2.*grid_x0)/grid_dx) + 1;
541 output.open(
"results/inverseReynoldsNumberasTauvsX.dat");
543 for (
int itime = 0; itime < ntime; itime++) {
545 double tau_local = grid_tau0 + itime*grid_dt;
546 for(
int i = 0;
i <
nx;
i++) {
548 double x_local = grid_x0 +
i*grid_dx;
549 double y_local = 0.0;
551 if (hydro_type == 0) {
553 hydroinfo_ptr->getHydroinfo(tau_local, x_local, y_local,
557 hydroinfo_MUSIC_ptr->getHydroValues(
558 x_local, y_local, 0.0, tau_local, fluidCellptr);
561 fluidCellptr->
pi[0][0]*fluidCellptr->
pi[0][0]
562 + fluidCellptr->
pi[1][1]*fluidCellptr->
pi[1][1]
563 + fluidCellptr->
pi[2][2]*fluidCellptr->
pi[2][2]
564 + fluidCellptr->
pi[3][3]*fluidCellptr->
pi[3][3]
565 - 2.*(fluidCellptr->
pi[0][1]*fluidCellptr->
pi[0][1]
566 + fluidCellptr->
pi[0][2]*fluidCellptr->
pi[0][2]
567 + fluidCellptr->
pi[0][3]*fluidCellptr->
pi[0][3])
568 + 2.*(fluidCellptr->
pi[1][2]*fluidCellptr->
pi[1][2]
569 + fluidCellptr->
pi[1][3]*fluidCellptr->
pi[1][3]
570 + fluidCellptr->
pi[2][3]*fluidCellptr->
pi[2][3]));
572 double inverseReynold;
575 inverseReynold = sqrt(pi2)/(fluidCellptr->
ed
578 inverseReynold =
MAX;
580 output << inverseReynold <<
" " ;
590 cout <<
"output bulk inverse Reynolds number as a function of "
591 <<
"tau and x ... " << endl;
593 int ntime =
static_cast<int>((grid_tauf - grid_tau0)/grid_dt) + 1;
594 int nx =
static_cast<int>(fabs(2.*grid_x0)/grid_dx) + 1;
598 output.open(
"results/inverseReynoldsNumberasTauvsX.dat");
600 for (
int itime = 0 ; itime < ntime; itime++) {
602 double tau_local = grid_tau0 + itime*grid_dt;
603 for (
int i = 0;
i <
nx;
i++) {
605 double x_local = grid_x0 +
i*grid_dx;
606 double y_local = 0.0;
608 if (hydro_type == 0) {
610 hydroinfo_ptr->getHydroinfo(tau_local, x_local, y_local,
614 hydroinfo_MUSIC_ptr->getHydroValues(
615 x_local, y_local, 0.0, tau_local, fluidCellptr);
618 double inverseReynold;
619 inverseReynold = fabs(fluidCellptr->
bulkPi)/fluidCellptr->
pressure;
620 output << inverseReynold <<
" " ;
630 double V_3 = calculate_hypersurface_3volume(T_cut);
631 double V_4 = calculate_spacetime_4volume(T_cut);
632 double average_tau = calculate_average_tau(T_cut);
633 double average_T4 = calculate_average_temperature4(T_cut);
634 double average_GammaT =
635 calculate_average_integrated_photonRate_parameterization(T_cut);
637 output <<
"results/volume_info_for_photon_Tcut_" << T_cut <<
".dat";
638 ofstream
of(output.str().c_str());
639 of <<
"# V_4 <tau> V_3 <T_4> <GammaT> " << endl;
640 of << scientific << setw(18) << setprecision(8)
641 << V_4 <<
" " << average_tau <<
" "
642 << V_3 <<
" " << average_T4 <<
" " << average_GammaT << endl;
652 cout <<
"compute 4-volume inside T = " << T_cut <<
" GeV ..." << endl;
654 int ntime =
static_cast<int>((grid_tauf - grid_tau0)/grid_dt) + 1;
655 int nx =
static_cast<int>(fabs(2.*grid_x0)/grid_dx) + 1;
656 int ny =
static_cast<int>(fabs(2.*grid_y0)/grid_dy) + 1;
661 for (
int itime = 0; itime < ntime; itime++) {
663 double tau_local = grid_tau0 + itime*grid_dt;
664 double volume_element = tau_local*grid_dt*grid_dx*grid_dy;
665 for (
int i = 0;
i <
nx;
i++) {
667 double x_local = grid_x0 +
i*grid_dx;
668 for (
int j = 0;
j <
ny;
j++) {
669 double y_local = grid_y0 +
j*grid_dy;
671 if (hydro_type == 0) {
673 hydroinfo_ptr->getHydroinfo(tau_local, x_local, y_local,
677 hydroinfo_MUSIC_ptr->getHydroValues(
678 x_local, y_local, 0.0, tau_local, fluidCellptr);
681 if (T_local > T_cut) {
682 volume += volume_element;
696 cout <<
"compute <tau> ... " << endl;
698 int ntime =
static_cast<int>((grid_tauf - grid_tau0)/grid_dt) + 1;
699 int nx =
static_cast<int>(fabs(2.*grid_x0)/grid_dx) + 1;
700 int ny =
static_cast<int>(fabs(2.*grid_y0)/grid_dy) + 1;
704 double average_tau = 0.0;
706 for (
int itime = 0; itime < ntime; itime++) {
708 double tau_local = grid_tau0 + itime*grid_dt;
709 double volume_element = tau_local*grid_dt*grid_dx*grid_dy;
710 for (
int i = 0;
i <
nx;
i++) {
712 double x_local = grid_x0 +
i*grid_dx;
713 for (
int j = 0;
j <
ny;
j++) {
714 double y_local = grid_y0 +
j*grid_dy;
716 if (hydro_type == 0) {
718 hydroinfo_ptr->getHydroinfo(tau_local, x_local, y_local,
722 hydroinfo_MUSIC_ptr->getHydroValues(
723 x_local, y_local, 0.0, tau_local, fluidCellptr);
726 if (T_local > T_cut) {
727 volume += volume_element;
728 average_tau += tau_local*volume_element;
733 average_tau /= volume;
743 cout <<
"compute <T^4> ..." << endl;
744 int ntime =
static_cast<int>((grid_tauf - grid_tau0)/grid_dt) + 1;
745 int nx =
static_cast<int>(fabs(2.*grid_x0)/grid_dx) + 1;
746 int ny =
static_cast<int>(fabs(2.*grid_y0)/grid_dy) + 1;
750 double average_T4 = 0.0;
752 for (
int itime = 0; itime < ntime; itime++) {
754 double tau_local = grid_tau0 + itime*grid_dt;
755 double volume_element = tau_local*grid_dt*grid_dx*grid_dy;
756 for (
int i = 0;
i <
nx;
i++) {
758 double x_local = grid_x0 +
i*grid_dx;
759 for (
int j = 0;
j <
ny;
j++) {
760 double y_local = grid_y0 +
j*grid_dy;
762 if (hydro_type == 0) {
764 hydroinfo_ptr->getHydroinfo(tau_local, x_local, y_local,
768 hydroinfo_MUSIC_ptr->getHydroValues(
769 x_local, y_local, 0.0, tau_local, fluidCellptr);
772 if (T_local > T_cut) {
773 volume += volume_element;
775 T_local*T_local*T_local*T_local*volume_element);
780 average_T4 /= volume;
793 cout <<
"compute <Gamma(T)> ..." << endl;
794 int ntime =
static_cast<int>((grid_tauf - grid_tau0)/grid_dt) + 1;
795 int nx =
static_cast<int>(fabs(2.*grid_x0)/grid_dx) + 1;
796 int ny =
static_cast<int>(fabs(2.*grid_y0)/grid_dy) + 1;
800 double average_GammaT = 0.0;
803 for (
int itime = 0; itime < ntime; itime++) {
805 double tau_local = grid_tau0 + itime*grid_dt;
806 double volume_element = tau_local*grid_dt*grid_dx*grid_dy;
807 for (
int i = 0;
i <
nx;
i++) {
809 double x_local = grid_x0 +
i*grid_dx;
810 for (
int j = 0;
j <
ny;
j++) {
811 double y_local = grid_y0 +
j*grid_dy;
813 if (hydro_type == 0) {
815 hydroinfo_ptr->getHydroinfo(tau_local, x_local, y_local,
819 hydroinfo_MUSIC_ptr->getHydroValues(
820 x_local, y_local, 0.0, tau_local, fluidCellptr);
823 if (T_local > T_cut) {
824 volume += volume_element;
827 GammaT = 1.746*pow(T_local, 4.095);
829 GammaT = 11663.923*pow(T_local, 9.024);
831 average_GammaT += GammaT*volume_element;
836 average_GammaT /= volume;
838 return(average_GammaT);
847 cout <<
"compute 3-volume at T = " << T_cut <<
" GeV ... " << endl;
849 void* hydro_ptr = NULL;
850 if (hydro_type == 1) {
852 hydro_ptr = hydroinfo_ptr;
855 hydro_ptr = hydroinfo_MUSIC_ptr;
861 ifstream
surf(
"hyper_surface_2+1d.dat");
862 if (!surf.is_open()) {
863 cout <<
"FluidcellStatistic::calculate_hypersurface_3volume:"
864 <<
"can not open the file hyper_surface_2+1d.dat!" << endl;
870 surf >> tau >> x >> y >> da0 >> da1 >> da2 >> T >> vx >>
vy;
871 while (!surf.eof()) {
872 double u0 = 1./sqrt(1. - vx*vx - vy*vy);
875 volume += tau*(u0*da0 + ux*da1 + uy*da2);
876 surf >> tau >> x >> y >> da0 >> da1 >> da2 >> T >> vx >>
vy;