Hi,
after calculating a drift line using DriftLineRKF::DriftElectron
you can retrieve the arrival time using the function GetEndPoint
. To determine the arrival time of the first electron that reaches the wire, you could do something along these lines:
for (unsigned int j = 0; j < nTracks; ++j) {
track.NewTrack(x0, y0, 0, 0, 0, 1, 0);
double xc = 0., yc = 0., zc = 0., tc = 0., ec = 0., extra = 0.;
int nc = 0;
double tmin = std::numeric_limits<double>::max();
while (track.GetCluster(xc, yc, zc, tc, nc, ec, extra)) {
for (int k = 0; k < nc; ++k) {
double xe = 0., ye = 0., ze = 0., te = 0., ee = 0.;
double dx = 0., dy = 0., dz = 0.;
track.GetElectron(k, xe, ye, ze, te, ee, dx, dy, dz);
drift.DriftElectron(xe, ye, ze, te);
double xf = 0., yf = 0., zf = 0., tf = 0.;
int stat = 0;
drift.GetEndPoint(xf, yf, zf, tf, stat);
tmin = std::min(tmin, tf);
}
}
std::cout << "First electron arrives at " << tmin << " ns.\n";
}