summaryrefslogtreecommitdiff
path: root/chroma/cuda/propagate.cu
AgeCommit message (Collapse)Author
2021-05-09Allow for option of forced scattering or forced non-scattering on the first ↵Stan Seibert
step during photon propagation.
2021-05-09Add optional weight to each photon being propagated.Stan Seibert
For consistence, weights must be less than or equal to one at all times. When weight calculation is enabled by the likelihood calculator, photons are prevented from being absorbed, and instead their weight is decreased to reflect their probability of survival. Once the photon's weight drops below a given threshold (0.01 for now), the weighting procedure is stopped and the photon can be extinguished. With weighting enabled, the detection efficiency of surfaces is also applied to the weight, and the photon terminated with the DETECT bit set in the history. This is not completely accurate, as a photon could pass through the surface, reflect, and reintersect the surface later (or some other PMT) and be detected. As a result, weighting will slightly underestimate PMT efficiency compared to the true Monte Carlo. This is not intrinsic to the weighting procedure, but only comes about because of the inclusion of detection efficiency into the weight. Without the detection efficiency included, weighting cuts in half the number of evaluations required to achieve a given likelihood uncertainty (at least for the hit probabilities). Add in the detection efficiency, and that factor becomes 1/5 or 1/6!
2021-05-09Add a select function to GPUPhotons to extract a reduced list of photons ↵Stan Seibert
that all have a particular interaction process code set. Handy for selection just the detected photons from a large list of photons.
2011-09-16Move CUDA source inside chroma package, rename tests directory to testStan Seibert