[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