25 double incidentAngle,
double pixS) {
39 alpha = 0.0072973525693;
51 const double theta_rad)
const {
52 const int abs_truth_pid =
abs(truth_pid);
62 std::cout << __PRETTY_FUNCTION__
63 <<
": not processing non-hadronic tracks " << truth_pid
71 std::cout << __PRETTY_FUNCTION__
72 <<
": not processing out of acceptance tracks theta_rad = "
73 << theta_rad << std::endl;
77 if (momentum < pLow or momentum >
pHigh) {
80 std::cout << __PRETTY_FUNCTION__
81 <<
": not processing out of acceptance tracks momentum = "
82 << momentum << std::endl;
87 double Nsigma_epi = 0;
88 double Nsigma_piK = 0;
102 Nsigma_epi = dth / sigThc;
103 if (isnan(Nsigma_epi)) Nsigma_epi = 0;
114 double sigThc = sqrt(pow(sigTh / sqrt(
getNgamma(
L,
mPion, momentum)), 2) +
116 Nsigma_piK = dth / sigThc;
117 if (isnan(Nsigma_piK)) Nsigma_piK = 0;
128 double sigThc = sqrt(pow(sigTh / sqrt(
getNgamma(
L,
mKaon, momentum)), 2) +
130 Nsigma_Kp = dth / sigThc;
131 if (isnan(Nsigma_Kp)) Nsigma_Kp = 0;
135 std::cout << __PRETTY_FUNCTION__
136 <<
": processing tracks momentum = " << momentum
137 <<
" Nsigma_epi = " << Nsigma_epi
138 <<
" Nsigma_piK = " << Nsigma_piK
139 <<
" Nsigma_Kp = " << Nsigma_Kp
142 const double electron_sigma_space_ring_radius = +Nsigma_piK + Nsigma_epi;
143 const double pion_sigma_space_ring_radius = +Nsigma_piK;
144 const double kaon_sigma_space_ring_radius = 0;
145 const double proton_sigma_space_ring_radius = -Nsigma_Kp;
147 double sigma_space_ring_radius = gRandom->Gaus(0, 1);
149 sigma_space_ring_radius += electron_sigma_space_ring_radius;
151 sigma_space_ring_radius += pion_sigma_space_ring_radius;
153 sigma_space_ring_radius += kaon_sigma_space_ring_radius;
155 sigma_space_ring_radius += proton_sigma_space_ring_radius;
158 -0.5 * pow(sigma_space_ring_radius - electron_sigma_space_ring_radius, 2);
160 -0.5 * pow(sigma_space_ring_radius - pion_sigma_space_ring_radius, 2);
162 -0.5 * pow(sigma_space_ring_radius - kaon_sigma_space_ring_radius, 2);
164 -0.5 * pow(sigma_space_ring_radius - proton_sigma_space_ring_radius, 2);
171 double beta = mom / sqrt(pow(mom, 2) + pow(mass, 2));
172 double thc = acos(1. /
n / beta);
173 double th0p = asin(sin(
th0) /
n);
174 double dthc = thc - th0p;
175 double theta = asin(
n * sin(dthc));
182 double beta = mom / sqrt(pow(mom, 2) + pow(mass, 2));
183 double thc = acos(1. /
n / beta);
184 double th0p = asin(sin(
th0) /
n);
185 double dthc = thc - th0p;
186 double theta = asin(
n * sin(dthc));
190 double sig_pix =
a * pow(cos(theta), 2) /
f / sqrt(12.);
192 double sigTh = sqrt(pow(sig_ep, 2) + pow(sig_chro, 2) + pow(sig_pix, 2));
199 double beta = mom / sqrt(pow(mom, 2) + pow(mass, 2));
200 double thc = acos(1. /
n / beta);
201 double th0p = asin(sin(
th0) /
n);
202 double dthc = thc - th0p;
203 double theta = asin(
n * sin(dthc));
214 double beta = mom / sqrt(pow(mom, 2) + pow(mass, 2));
215 double fact = 2. *
pi *
alpha * t * (1. - 1. / pow(
n * beta, 2));
216 double T_lensWin = 0.92 * 0.92;
217 double xmin = 300.e-7;
218 double xmax = 650.e-7;
219 double dx = (xmax -
xmin) / tot;
221 for (
int j = 0; j < tot; j++) {
222 double x = xmin + j * dx + dx / 2.;
223 sum +=
T_QE(x) *
T_Aer(t, x) / pow(x, 2);
225 return fact * T_lensWin * sum *
dx;
230 return 0.34 * exp(-1. * pow(lam - 345.
e-7, 2) / (2. * pow(119.
e-7, 2)));
235 return 0.83 * exp(-1. * t * 56.29
e-20 / pow(lam, 4));