224 double time,
double x_cm,
double y_cm,
double z_cm,
double dx,
double dy,
231 const double rWire = 25.e-4;
233 const double rTube = 1.45;
235 const double lTube = 10.;
237 double eKin_eV = ekin_MeV * 1e+6;
239 double xc = 0., yc = 0., zc = 0., tc = 0.;
251 if (particleName ==
"gamma") {
253 x_cm, y_cm, z_cm, time, eKin_eV, dx, dy, dz, nc);
257 x_cm, y_cm, z_cm, time, eKin_eV, dx, dy, dz, nc);
261 for (
int cl = 0; cl < nc; cl++) {
262 double xe, ye, ze, te;
263 double ee, dxe, dye, dze;
264 fTrackHeed->GetElectron(cl, xe, ye, ze, te, ee, dxe, dye, dze);
265 if (ze < lTube && ze > -lTube && sqrt(xe * xe + ye * ye) < rTube) {
267 if (particleName ==
"gamma") {
274 if (newTime < time) {
281 fDrift->DriftElectron(xe, ye, ze, te);
283 double xe1, ye1, ze1, te1;
284 double xe2, ye2, ze2, te2;
287 fDrift->GetElectronEndpoint(
288 0, xe1, ye1, ze1, te1, xe2, ye2, ze2, te2, status);
290 if (0 < xe2 && xe2 < rWire) {
293 if (0 > xe2 && xe2 > -rWire) {
296 if (0 < ye2 && ye2 < rWire) {
299 if (0 > ye2 && ye2 > -rWire) {
304 fAvalanche->AvalancheElectron(xe2, ye2, ze2, te2, e2, 0, 0, 0);
315 fTrackHeed->NewTrack(x_cm, y_cm, z_cm, time, dx, dy, dz);
317 while (
fTrackHeed->GetCluster(xc, yc, zc, tc, nc, ec, extra)) {
318 if (zc < lTube && zc > -lTube && sqrt(xc * xc + yc * yc) < rTube) {
321 for (
int cl = 0; cl < nc; cl++) {
322 double xe, ye, ze, te;
323 double ee, dxe, dye, dze;
324 fTrackHeed->GetElectron(cl, xe, ye, ze, te, ee, dxe, dye, dze);
325 if (ze < lTube && ze > -lTube && sqrt(xe * xe + ye * ye) < rTube) {
330 if (newTime < time) {
334 "e-", ee, newTime, xe, ye, ze, dxe, dye, dze));
337 fDrift->DriftElectron(xe, ye, ze, te);
339 double xe1, ye1, ze1, te1;
340 double xe2, ye2, ze2, te2;
343 fDrift->GetElectronEndpoint(
344 0, xe1, ye1, ze1, te1, xe2, ye2, ze2, te2, status);
346 if (0 < xe2 && xe2 < rWire) {
349 if (0 > xe2 && xe2 > -rWire) {
352 if (0 < ye2 && ye2 < rWire) {
355 if (0 > ye2 && ye2 > -rWire) {
360 fAvalanche->AvalancheElectron(xe2, ye2, ze2, te2, e2, 0, 0, 0);