How to select daughter decays

Hi all,
I’d like to check the whole decay of the 177Lu metastable, separating each component. I mean, 177mLu decays into 177Lu (which decays into 177Hf) and into 177Hf. I want to select each time what channel to follow, stopping the others. I tried using /grdm/nucleusLimits 177 177 71 71 but, since 177Lu has the same A and Z, it obviously did not work.

Could anyone suggest me an alternative method? I’m a beginner with geant4.

Thank you in advance

Claretta

I also tried to use
/grdm/nucleusLimits 170 170 70 70
with which I expected the decay of the secondary 177Lu was disabled. However I obtained more counts under the 208keV peak than without any limit. How is it possible? Now I think I didn’t understand the mechanism of the /grdm/nucleusLimits command.

Ciao Claretta,

one possibility would be to check the secondary nuclei that are generated by the primary decay of Lu177m. I mean, you generate Lu177m as initial state of Geant4. Then, in the StackAction you can see what’s is produced by the decay: if you meet “Lu177[0.0]” (i.e. the ground state), you can flag the event as IT, if you meet a Hf177 nucleus, you have the beta- branch.

The logic to implement would be something like

 if (particle is a nucleus && particle is created by RadioactiveDecay)
   //check name, A and Z to decide which channel you are

I think that you cannot do that by UI commands only, but you need some coding. Hope it helps. Luciano

1 Like

Hi Claretta, in addition to Luciano’s comment, you may want to look at the extended examples on radioactive decay.

Cheers
Susanna

1 Like

Hi all,
I’ve studied a lot in these days and your suggestions were very very very usefull. However I’m still a little bit confused about my code.
I started from the idea of Luciano and then I studied TrackinAction part of the rdecay01 extended example, as suggested by Susanna. I tried to combined the mechanisms, thus adding a TrackingAction file to my program, where I wrote something like this:

 if (fCharge > 2.) {						
    if (ID == 1) {fEvent->AddDecayChain(name);}			
    	else       {
        fEvent->AddDecayChain(" ---> " + name);		
        G4Track* tr = (G4Track*) track;
		if(name == "Hf177[1315.450]"){tr->SetTrackStatus(fKillTrackAndSecondaries);}
		else tr->SetTrackStatus(fAlive);  }
     }
//AddDecayChain is a function that records track names in a private string of the Event class, which is "cout-ed" in my Event.cc file

A little part of my output is:

→ Event 5 starts.
End of event. Decay chain: Lu177[970.175] —> Hf177[1315.450]
→ Event 6 starts.
End of event. Decay chain: Lu177[970.175] —> Hf177[1315.450]
→ Event 7 starts.
End of event. Decay chain: Lu177[970.175] —> Hf177[1315.450]
→ Event 8 starts.
End of event. Decay chain: Lu177[970.175] —> Lu177[854.307] —> Lu177[440.642] —> Lu177[268.785] —> Lu177 —> Hf177[112.950] —> Hf177
→ Event 9 starts.
End of event. Decay chain: Lu177[970.175] —> Lu177[854.307] —> Lu177[440.642] —> Lu177[121.621] —> Lu177 —> Hf177

Is the command SetTrackStatus(fKillTrackAndSecondaries) working as it should? I mean, am I only saving the name of the Hf177[1315.450] track or is it still doing something around?

Could you also tell me the difference between the fKillTrackAndSecondaries and fStopAndKill arguments, please?

Thank you again for your suggestions and your kindness.

Claretta

Hi Claretta,

good to hear that you are making progresses with your tasks.

Is the command SetTrackStatus(fKillTrackAndSecondaries) working as it should? I mean, am I only saving the name of the Hf177[1315.450] track or is it still doing something around?

Well, it depends on the details of fEvent->AddDecayChain(). If it is the one from rdecay01, I think it should save only the string (name).

Could you also tell me the difference between the fKillTrackAndSecondaries and fStopAndKill arguments, please?

When you track a particle, all secondaries (e.g. delta-electrons from ionization) are saved in the stack, to be tracked later. If you set fStopAndKill you set the kinetic energy of the particle which is being tracked to zero and you kill it: yet, all secondaries that have been possibly generated and are stored in the stack will be tracked. If you set fKillTrackAndSecondaries the secondaries stored in the stack will be killed as well (= not tracked). The possible parameters are listed here. In your specific case, it shouldn’t make too much difference, as you probably don’t generated secondaries along the track (e.g. by ionization), but only at the end, by radioactive decay.

Hope it helps, ciao,
Luciano

1 Like

Thank you very much Luciano, your answers were always very usefull for me.
I didn’t solve my global problem about the simulation of the HPGe, but finally I can manage the decay of mLu.

I still have a doubt about geant4’s handling of the decay. I noticed that in the radioactive decay
scheme of a radionuclide there is also its decay constant. However I thought that geant4 by default did not consider a temporal development of the simulation. Should the decay constants be considered in any way in the calculation of the emission spectrum of a nuclide?

Thank you again and good evening

Claretta

Ciao Claretta,

yes, indeed: Geant4 takes care also of the temporal development. The time associated to the secondaries produced by G4RadioactiveDecay is sampled according to an exponential with the appropriate half-life. So, if you wish, you can also use the timing information to disentangle different contribution from the simulation. Ciao, hope it helps,
Luciano

Hi Luciano,
I don’t know if I understood the mechanism.
Is the half life influencing the number of emitted particles during the decay of a certain radionuclide? If it is, could you please try to explain me how?

Sorry and thank you again

Claretta

Hi Claretta,

sorry for the mis-understading. Of course, the final state of a radioactive decay does not depend on the half-life (apart maybe from very special situation, i.e. decay of very short-lived nuclei, which is not your case). I am only saying that the time which is attached to the G4Track’s of the secondaries is sampled according to the proper half-life and that this information can be used in the analysis.

Ciao, hope it helps
Luciano

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.