Hi guys, I have a question to verify I am doing right. I have a model of an X-ray tube and want to know the dose for 1mA beam current. I am running 1e9 electrons which takes 6 hours to complete. If I ran 1E16 electrons, which correspond to 1 mA current, it would take years of calculations. What I am doing now is that I am scaling up the dose at 1E9 electrons to 1e16 electrons linearly, that is, I multiply the dose by 1E7. Is this the right way to do? I would appreciate your help.
Need more information, such as the geometry and what dose you care about. If you have a traditional x-ray tube you could just draw an invisible air spherical (or whatever) shape shell around your target and save all particle id’s, energy, momentum, and location (on the shell). Then use that as a distribution for a separate simulation with that as a particle gun. That would make every single event count.
I am also confused about why 1E9 electrons takes 6 hours. The aggressive use of range cuts and production cuts in regions should significantly shorten the number of tracks that need to be followed.
Thank you, jrellin, very much for your response. One reason it takes 6 hours is I set many bins, 2000 bins for 100kV energy range. I could reduce it by two times, if I reduce more I will lose XRF peaks. Another reason is I have to use the Livermore physics constructor, which is a slow one. I could play with range and production cuts, and with all this I could potentially reduce the calculation time from 6 to 1 hour, or maybe 0.5 hour for 1E9 electrons, but still it is huge time for 1E16 electrons - I would need to multiply this calculation time by 1E7 to reach 1E16 electrons. Even if I reduce the calculation time to 1 min, I would get 19 years of calculation time. The only way I see to account for 1 mA current is if you calculate the dose for 1E9 electrons, which gives a reasonable noise level, and multiply the result by 1E7 times. But I never saw publications stating this, and I wondered if I was missing something.
Very confusing how changing the bins of a histogram changes computational time. But generally need a lot more details to help.
What dose are you specifically looking to get? A target sample? A user? Where? Are you using the Livermore model because there is a biological sample of interest?
How are you calculating dose? If there is an ROI that you care about, are you voxelizing it? Pixelating it? That will determine how many counts you need in each point in space to be confident you can just scale a smaller runtime result.
Hi, it looks like the problem is more complex than I thought. I am a beginner in Geant4, I am afraid I will confuse you more with my explanation. Maybe you can direct me to a project where the dose is simulated for a large number of particles? Or share a sample project you might have?