Forced scattering towards detector

Hi,

I am simulating an x-ray fluorescence spectrometer geometry with sample excitation using an external (placed outside fluorescence test sample) collimated x-ray beam. The SensitiveDetector consists of a shielded spectrometer placed orthogonal to the excitation beam direction with a small pinhole aperture/collimator before the detector to allow only the scattered (Compton, Rayleigh) and fluorescence x-ray photons to reach the sensitive material.

The problem I face is that I get very low detected counts of either scattered or fluorescence photons due to the small solid angle of detection from the pinhole. I would like to find an effective way to force the scattered/fluorescence x-rays towards my detector via the pinhole. I tried several forms of biasing techniques like:

1. Geometry biasing - similar to example GB03 using GB03BOptrGeometryBasedBiasing.hh as the biasing operator and GB03BOptnSplitOrKillOnBoundary.hh performing the splitting and killing process, where I split gammas at the interaction point if the GetPreStepPoint()->GetMomentumDirection() vector is within a certain emission angle (found from the acos() of the dot product between GetMomentumDirection() and unit vector to the pinhole center from the interaction point). The splitting is performed for both scattering and fluorescence events in this cone. There is a small enhancement in the counts, however, not sufficient for my analysis.

2. Physics-based EM secondary biasing - For biasing secondary processes of interest like the Compton, Rayleigh, and Photoelectric effect (for fluorescence production), I use secondary cross-section biasing through macro commands, maximizing gamma process and minimizing electron process.

/process/em/setSecBiasing compt sample 10 100 keV
/process/em/setSecBiasing Rayl sample 10 100 keV
/process/em/setSecBiasing eIoni sample 0.1 100 keV
/process/em/setSecBiasing eBrem sample 0.1 100 keV
/process/em/setSecBiasing phot sample 10 100 keV

I combine physics biasing and geometry biasing as mentioned above and get a little better result, but still not sufficient !!

3. Reverse Monte Carlo - I am thinking to implement this, however, Reverse MC doesn’t make much sense for this case since, besides a small SensitiveDetector geometry due to pinhole (opening diameter in mm scale), my excitation source is also small (disk diameter in mm scale).

I looked into the status of a "DXTRAN " MCNP-like option to bias particles towards a preferred solid angle (the pinhole opening in my case) but it seems this is still not yet implemented. I currently use Geant4 10.1 for my simulations. What can potentially solve this problem? am I missing something? are there any other options?.

Any help is much appreciated !!!

Hiya,

Really sorry for bumping this old thread, but I’m looking into biasing in almost this exact same scenario (prioritising scattering which aims towards a pinhole collimator)

Did you manage to sort out a good set of optimisations for your simulation @kgit? I’ve also looked into the DXTRAN-like biasing progress in Geant4, but it doesn’t seem to have a concrete implementation yet (besides finding some odd mentions here and there in previous years’ roadmaps)

If anyone has advice for good solid-angle biasing, that would be fantastic, thanks!

I am no expert in XRF but there might be a way to do this with 2 simulations. The first simulation would be on the sample with an “air” sphere placed around it. You would record E, theta, phi in 4pi solid angle for each event for any particle that passes out of the sphere that isn’t track ID 0/incident particle type. The idea is that collimated beam sources tend to give cylindrically symmetric distributions (about the incident particle axis). You would then collapse the distribution to E, theta where this new theta is with respect to the axis. The distribution should be smooth and you would integrate all counts at each theta boosting the statistics of this distribution D.

Next, you’d use this distribution to create a source at the samples location but with the emission angle constrained towards only your pinhole acceptance angle and with an energy profile and intensity (and particle type) distribution sampled from the results of the distribution D.

The first simulation would have to be a large one but fortunately, every event counts. The second would then avoid the pinhole efficiency problems.