I saw in the manual a function for photon transport:void TransportPhoton(const double x0, const double y0, const double z0,
const double t0, const double e0,
const double dx0, const double dy0, const double dz0,int& nel);。
Can I use Garfield++ to simulate the signal produced in a detector by low energy photons (eg X-rays at 5.9keV)?
Thank you for your answer.
Hi,
yes, you can. You can find an example in Examples/Heed/
:
Ok,Thank you.
How to continue to simulate the drift of photoelectrons and Auger-electrons produced in the photon conversion after using TransportPhoton?
Is it possible to continue cycling the electrons in all the clusters?
Use this code from the manual?
// Loop over the clusters along the track.
double xc = 0., yc = 0., zc = 0., tc = 0., ec = 0., extra = 0.;
int nc = 0;
while (track.GetCluster(xc, yc, zc, tc, nc, ec, extra)) {
// Loop over the electrons in the cluster.
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);
}
}
You can loop over the electrons produced by the photon like this:
track.TransportPhoton(x0, y0, z0, t0, egamma, 0., 0., 1., ne);
for (int k = 0; k < ne; ++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);
// ...
}
Thank you.
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.