[Gate-users] GateDoseSpectrumActor

Andreas Resch andreas.resch at meduniwien.ac.at
Tue Feb 1 15:10:27 CET 2022



Hi David, Maikol,

just had a brief look into the source code of DoseSpectrumActor. Looks 
fine at the first glance, but is obsolete as 1 of the two scoring 
results is also part of ESpectrActor. Would be only few lines of extra 
code to add the second option (square of energy deposit) to 
ESpectrActor. Although I wonder if it is really necessary. Shouldn't it 
be enough to do the square of the bin vector in a post processing step? 
(using a high resolution binning of course)

best,

Andreas

Am 2022-02-01 10:17, schrieb Maikol Salas Ramirez:

> Hello David,
> 
> Thank you for the answer. I re-check my calculation, and I found out 
> that the units are well (I mean the EnergySpectrumActor and 
> GateDoseSpectrumActor agree in the deposited energy calculations).
> 
> To check it, I attached both actors to the same logical volume and 
> calculated the deposited energy for comparison. In the case of 
> EnergySpectrumActor, I summed the energy spectrum, and for 
> GateDoseSpectrumActor, it provides the total energy (sum) plus the 
> uncertainty directly.
> 
> The GateDoseSpectrumActor has the advantage that it provides the total 
> deposited energy with its uncertainty. This information is impossible 
> to obtain with the EnergySpectrumActor, because it does not give the 
> square of the sum of the energies.
> 
> I think the GateDoseSpectrumActor could be useful for the community. 
> But, it is not documented in the opengate.readthedocs.io [1], and the 
> C++ classes are probably incomplete (probably the goal was the absorbed 
> dose calculation, but its development stops with the energy 
> calculation). At this moment, the GateDoseSpectrumActor help me resolve 
> my task straightforwardly. I think it is better to keep it. Hopefully, 
> it will be a chance to improve it in the future.
> 
> I am finalizing some details of the simulation (blood irradiation with 
> radionuclides); if it would interest you, I can share it for the GATE 
> examples with some documentation.
> 
> Best regards,
> Maikol
> 
> El mar, 1 feb 2022 a las 8:05, David Sarrut 
> (<david.sarrut at creatis.insa-lyon.fr>) escribió:
> Hello Maikol,
> 
> I don't know this actor and, looking at the history, it was started 
> before we started the git version (2015), so the original author is 
> lost.
> As there is no doc and I don't really get what it means compared to the 
> EnergySpectrumActor, I would suggest to remove it.
> 
> However, if you think it could be useful for you, please let us know. 
> The idea would be to propose some docs and use case.
> 
> thanks,
> David
> 
> On Mon, Jan 31, 2022 at 5:50 PM Maikol Salas Ramirez 
> <mmsalas at gmail.com> wrote:
> 
> Dear Gate users,
> 
> Recently I found the .cc and .hh files of a GateDoseSpectrumActor. This 
> actor is not mentioned in opengate.readthedocs.io [2] or any webpage.
> I would like to ask if someone is working on it. Is it a prototype?
> 
> I tested the energy calculation using the EnergySpectrumActor and the 
> energy units differ:
> 
> I simulated a Ac-225 source using the Ion source definition. I scored 
> the deposited energy with both actors (EnergySpectrumActor and 
> GateDoseSpectrumActor). The deposited energy differs by a factor of 
> 1000. The only justification that I can find is that, in the 
> GateDoseSpectrumActor, the deposited energy is expressed in keV/(1000 
> events) OR (eV/event) and there is a typo in the code (the units shoud 
> be eV instead of keV):
> #-------------------------------------------
> /// Save data
> void GateDoseSpectrumActor::SaveData()
> {
> GateVActor::SaveData();
> std::ofstream DoseResponseFile;
> OpenFileOutput(mSaveFilename, DoseResponseFile);
> DoseResponseFile << "Incoming energy (keV)" << " "
> << "Average energy deposit (keV)" << " "
> << "Energy uncertainty (keV)"  << Gateendl;
> std::map< G4double, G4double>::iterator itermEnergy;
> for( itermEnergy = mEnergy.begin(); itermEnergy != mEnergy.end(); 
> itermEnergy++)
> {
> G4double energyIn = itermEnergy->first;
> G4double totEnergyOut = mEnergy[energyIn];
> G4double numPart = mNumParticPerEnergy[energyIn];
> G4double avgEnergyOut = totEnergyOut / numPart;
> G4double avgEnergySq  = mEnergySquare[energyIn] / numPart;
> G4double error = sqrt( (1.0 / ( numPart - 1)) * ( avgEnergySq - pow( 
> avgEnergyOut, 2)));
> DoseResponseFile << energyIn/keV << " "
> << avgEnergyOut/keV << " "
> << error/keV  << Gateendl;
> }
> #-------------------------------------------
> 
> Is anyone working on this?
> 
> Best regards
> Maikol
> _______________________________________________
> Gate-users mailing list
> Gate-users at lists.opengatecollaboration.org
> http://lists.opengatecollaboration.org/mailman/listinfo/gate-users
> --
> 
> David Sarrut, Phd
> Directeur de recherche CNRS
> CREATIS, UMR CNRS 5220, Inserm U1294
> Centre de lutte contre le cancer Léon Bérard
> 28 rue Laënnec, 69373 Lyon cedex 08
> Tel : 04 78 78 51 51 / 06 74 72 05 42
> http://dsarrut.github.io
> _________________________________
> "2 + 2 = 5,  for extremely large values of 2"
> _________________________________

_______________________________________________
Gate-users mailing list
Gate-users at lists.opengatecollaboration.org
http://lists.opengatecollaboration.org/mailman/listinfo/gate-users

Links:
------
[1] http://opengate.readthedocs.io/
[2] http://opengate.readthedocs.io
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opengatecollaboration.org/pipermail/gate-users/attachments/20220201/dd850991/attachment.html>


More information about the Gate-users mailing list