20 #include "Pythia8/Pythia.h"
22 using namespace Jetscape;
34 void DoEnergyLoss(
double deltaT,
double time,
double Q2, vector<Parton> &pIn,
35 vector<Parton> &pOut);
36 void WriteTask(weak_ptr<JetScapeWriter> w);
37 void Dump_pIn_info(
int i, vector<Parton> &pIn);
39 double generate_L(
double form_time);
40 double sudakov_Pgg(
double g0,
double g1,
double loc_c,
double E);
41 double sud_val_GG(
double h0,
double h1,
double h2,
double loc_d,
double E1);
42 double sud_z_GG(
double cg,
double cg1,
double loc_e,
double l_fac,
double E2);
43 double P_z_gg_int(
double cg,
double cg1,
double loc_e,
double cg3,
44 double l_fac,
double E2);
45 double sudakov_Pqg(
double g0,
double g1,
double loc_c,
double E);
46 double sud_val_QG(
double h0,
double h1,
double h2,
double loc_d,
double E1);
47 double sud_z_QG(
double cg,
double cg1,
double loc_e,
double l_fac,
double E2);
48 double P_z_qg_int(
double cg,
double cg1,
double loc_e,
double cg3,
49 double l_fac,
double E2);
50 double sudakov_Pqg_w_M(
double M,
double g0,
double g1,
double loc_c,
52 double sud_val_QG_w_M(
double M,
double h0,
double h1,
double h2,
double loc_d,
54 double sud_z_QG_w_M(
double M,
double cg,
double cg1,
double loc_e,
55 double l_fac,
double E2);
56 double P_z_qg_int_w_M(
double M,
double cg,
double cg1,
double loc_e,
57 double cg3,
double l_fac,
double E2);
58 double sudakov_Pqq(
double q0,
double q1,
double loc_c,
double E);
60 double sud_val_QQ(
double h0,
double h1,
double h2,
double loc_d,
double E1);
61 double sud_z_QQ(
double cg,
double cg1,
double loc_e,
double l_fac,
double E2);
62 double P_z_qq_int(
double cg,
double cg1,
double loc_e,
double cg3,
63 double l_fac,
double E2);
64 double P_z_qp_int(
double cg,
double cg1,
double loc_e,
double cg3,
65 double l_fac,
double E2);
66 double sud_z_QP(
double cg,
double cg1,
double loc_e,
double l_fac,
double E2);
67 double sud_val_QP(
double h0,
double h1,
double h2,
double loc_d,
double E1);
68 double sudakov_Pqp(
double g0,
double g1,
double loc_c,
double E);
70 double sudakov_Pqq_w_M_vac_only(
double M,
double q0,
double q1,
double loc_c,
72 double sud_val_QQ_w_M_vac_only(
double M,
double h0,
double h1,
double h2,
73 double loc_d,
double E1);
74 double sud_z_QQ_w_M_vac_only(
double M,
double cg,
double cg1,
double loc_e,
75 double l_fac,
double E2);
76 double P_z_qq_int_w_M_vac_only(
double M,
double cg,
double cg1,
double loc_e,
77 double cg3,
double l_fac,
double E2);
80 double generate_vac_t(
int p_id,
double nu,
double t0,
double t,
double loc_a,
82 double generate_vac_t_w_M(
int p_id,
double M,
double nu,
double t0,
double t,
83 double loc_a,
int is);
84 double generate_vac_z(
int p_id,
double t0,
double t,
double loc_b,
double nu,
86 double generate_vac_z_w_M(
int p_id,
double M,
double t0,
double t,
87 double loc_b,
double nu,
int is);
88 double alpha_s(
double q2);
91 double generate_angle();
92 double generate_kt(
double local_qhat,
double dzeta);
99 unsigned int MaxColor = 0;
102 double fillQhatTab(
double y);
103 double fncQhat(
double zeta);
104 double fncAvrQhat(
double zeta,
double tau);
106 bool matter_on, in_vac, brick_med,
recoil_on, broadening_on;
108 double initR0, initRx, initRy, initRz, initVx, initVy,
initVz, initRdotV,
112 static const int dimQhatTab = 151;
113 double qhatTab1D[dimQhatTab] = {0.0};
114 double qhatTab2D[dimQhatTab][dimQhatTab] = {{0.0}};
122 static const int N_p1 = 500;
123 static const int N_T = 60;
124 static const int N_e2 = 75;
125 static double distFncB[N_T][N_p1][N_e2], distFncF[N_T][N_p1][N_e2],
126 distMaxB[N_T][N_p1][N_e2], distMaxF[N_T][N_p1][N_e2];
127 static double distFncBM[N_T][N_p1], distFncFM[N_T][N_p1];
129 double max_p1 = 1000.0;
130 double bin_p1 = (max_p1 - min_p1) / N_p1;
133 double bin_T = (max_T - min_T) / N_T;
135 double max_e2 = 15.0;
136 double bin_e2 = (max_e2 - min_e2) / N_e2;
138 static double RHQ[60][20];
139 static double RHQ11[60][20];
140 static double RHQ12[60][20];
141 static double qhatHQ[60][20];
149 double GeneralQhatFunction(
int QhatParametrization,
double Temperature,
double EntropyDensity,
double FixAlphas,
double Qhat0,
double E,
double muSquare);
150 double RunningAlphaS(
double muSquare);
151 double VirtualityQhatFunction(
int QhatParametrization,
double enerLoc,
double muSquare);
152 double ModifiedProbability(
int QhatParametrization,
double tempLoc,
double sdLoc,
double enerLoc,
double muSquare);
153 double IntegralPDF(
double xB,
double a,
double b);
157 void flavor(
int &CT,
int &KATT0,
int &KATT2,
int &KATT3,
158 unsigned int &max_color,
unsigned int &color0,
159 unsigned int &anti_color0,
unsigned int &color2,
160 unsigned int &anti_color2,
unsigned int &color3,
161 unsigned int &anti_color3);
162 void colljet22(
int CT,
double temp,
double qhat0ud,
double v0[4],
163 double p0[4],
double p2[4],
double p3[4],
double p4[4],
165 void trans(
double v[4],
double p[4]);
166 void transback(
double v[4],
double p[4]);
167 void rotate(
double px,
double py,
double pz,
double pr[4],
int icc);
168 float ran0(
long *idum);
169 double solve_alphas(
double var_qhat,
double var_ener,
double var_temp);
170 double fnc0_alphas(
double var_alphas,
double var_qhat,
double var_ener,
172 double fnc0_derivative_alphas(
double var_alphas,
double var_qhat,
173 double var_ener,
double var_temp);
176 double Mgc2gc(
double s,
double t,
double M);
177 double Mqc2qc(
double s,
double t,
double M);
178 void collHQ22(
int CT,
double temp,
double qhat0ud,
double v0[4],
double p0[4],
179 double p2[4],
double p3[4],
double p4[4],
double &qt);