I’d like to score LETd by weighting the LETV in a voxel by the dose in the same voxel using USRBIN detector. To achieve this, I have added the GETLET function into the comscwo.f routine.
I assume “-1” represents TDELTA where secondary electrons are included (unrestricted LET).
I have also included the following line at the very beginning, as I found it elsewhere:
PARTID = JTRACK
PARTID = J0TRCK
The question is: With this setting being added to the comscw.f, does FLUKA estimate only LET from primary source or it includes LET from secondary particles resulting from nuclear interactions?
If not, what should I do to include LET from secondary particles?
The comscw routine is called for any energy deposition event, by any (primary or secondary) particle.
With TDELTA set to -1, one gets indeed the unrestricted LET of the current (primary or secondary) particle.
Note that with your logic point-like energy depositions by untransported particles (for which JTRACK>62), such as low-energy nuclear recoils or photoelectrons below threshold, will be multiplied by the LET of the particle “generating” them, which may be zero (for neutrons or photons).
Thank you @ceruttif for your response and the explanation. The first part of my question regarding the comscw routine and the calculation of LET for primary and secondary particles is clear. For the second part, if I understood correctly, we should ignore low energy particles. If that is the case, the following statement was already added to handle low-energy particles:
IF (EKPART.LT. 0.00005) THEN
LSCZER = .TRUE.
LETV = 0
If this not related to the point you raised, could you please provide more insight into this process and its potential impact on the accuracy of the LET calculation?
Well, ignoring low-energy particles is not particularly accurate.
I’m not sure how you calculate EKPART, which is not a variable made available in comscw, but this seems to refer to transported particles (whose identity is JTRACK, or J0TRCK). I was referring instead to low-energy particles that are not transported (whose identity is not tracked there), but whose energy is deposited on the spot as a result of the interaction (undergone by J0TRCK) that generated them.
In general, I’d tend to suggest to adopt low (EMFCUT and PART-THR) thresholds and ask for ion transport (by IONTRANS, remembering that the ion transport threshold is set through the alpha one, which can be lowered by PART-THR). This way, the number of transported particles will increase and you should be able to get their own LET. Anyway, any discarded deposited energy amount brings inevitably in some inaccuracy.
Thank you @ceruttif for valuable response.
To provide further context, I am simulating proton, alpha, and carbon ion beams. For the carbon ion beam, I have already included the IONTRANS card for transporting HEAVYION and enabled full transport of heavy and light ions using the DPMJET card. In this case, I have commented out the PART-THR card for alphas, considering the IONTRANS card instead. selecting HADROTHErapy as s default along with other physics cards is made as well. For the proton and alpha beams, I have enabled the PRECISIOn in default card.
I would appreciate your input on whether this approach is acceptable for accurate LET calculations in the respective beam simulations.
In this case the IONTRANS card is actually superfluous, since the beam nature already makes FLUKA activate the full ion transport. I guess you do not refer to the DPMJET card (?), rather to the DPMJET library linked in the executable (flukadpm, or - in your user routine case - to be generated with ldpmqmd). IONTRANS (here useless) is not at all alternative to PART-THR, since the latter sets the transport threshold, which is otherwise determined by DEFAULTS (100 keV for HADROTHE, namely 25 keV/n for ions).
I do not see the reason for the different choice. On the other hand, here is where IONTRANS is instead needed, if you want the accurate transport of nuclear recoils from nuclear reactions.
I wonder if you considered the possibility of scoring directly DOSEQLET, where the (unrestricted - in water) LET weighting is properly done by FLUKA itself.
Thank you for your response and guidance on the IONTRANS card and the transport threshold in FLUKA. I appreciate your clarification that the IONTRANS card is not needed in this case, as the beam nature already activates full ion transport.
Regarding the PART-THRes card, I followed your recommendation and added it to my simulation. I set the threshold to be 4e-6 for ions between protons up to 4-He. However, I have observed that adding the PART-THRes card did not significantly impact the results in the case of a broad carbon ion beam. Both with and without the PART-THRes card, the simulation yielded almost identical results.
For comparison, I also scored DOSEQLET for the same settings, and interestingly, the results were also the same.
I would be grateful if you could shed some light on why these simulations produced such similar outcomes despite the implementation of the PART-THRes card.
This is because in the considered case the aforementioned default threshold turns out to be already low enough for your purposes.
My general recommendation was oriented to properly treat the energy deposition by nuclear recoils. Then, their actual impact on the resulting picture depends on the specific case, and the threshold sensitivity study you did is a good sanity check.