| Message: Problem with radioactive decay | Not Logged In (login) |
My greetings to everyone, I am trying to simulate the beta-decay of 12N. I have constructed the generic ion and the corresponding Radioactive Decay process in my physics list. It compiles without a problem. However, when I start generating events as: /gun/particle ion /gun/ion 7 12 0 0 /run/beamOn 1 Here is the output:
===================================== G4EventManager::ProcessOneEvent() ===================================== 1 primaries are passed from G4EventTransformer. !!!!!!! Now start processing an event !!!!!!! ### pop requested out of 1 stacked tracks.
********************************************************************************************************* * G4Track Information: Particle = GenericIon, Track ID = 1, Parent ID = 0 *********************************************************************************************************
Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName
0 -432 -788 -3.7e+03 1e-06 0 0 0 scint_oil_tank_PV initStep
1 -432 -788 -3.7e+03 0 1e-06 3.52e-06 3.52e-06 scint_oil_tank_PV hIoni
G4RadoactiveDecay::LoadDecayTable() : cannot find ion radioactive decay file
2 -432 -788 -3.7e+03 0 0 0 3.52e-06 scint_oil_tank_PV Scintillation
Track (trackID 1, parentID 0) is processed with stopping code 2
### pop requested out of 0 stacked tracks.
### 0 waiting tracks are re-classified to
0 urgent tracks and 0 waiting tracks.
NULL returned from G4StackManager.
Terminate current event processing.
Run terminated.
Run Summary
Number of events processed : 1
User=0s Real=0s Sys=0s
-------------------------------------------------------------------------
So the problem is in G4RadoactiveDecay::LoadDecayTable() : cannot find ion radioactive decay file
I will appreciate if someone helps me out. Here is my physics list part:
void PhysicsList::ConstructGeneral()
{
// Add Decay Process
G4Decay* theDecayProcess = new G4Decay();
theParticleIterator->reset();
while( (*theParticleIterator)() ){
G4ParticleDefinition* particle = theParticleIterator->value();
G4ProcessManager* pmanager = particle->GetProcessManager();
if (theDecayProcess->IsApplicable(*particle)) {
pmanager ->AddProcess(theDecayProcess);
pmanager ->SetProcessOrdering(theDecayProcess, idxPostStep);
pmanager ->SetProcessOrdering(theDecayProcess, idxAtRest);
}
}
// Declare radioactive decay to the GenericIon in the IonTable
const G4IonTable *theIonTable = G4ParticleTable::GetParticleTable()->GetIonTable();
G4RadioactiveDecay *theRadioactiveDecay = new G4RadioactiveDecay();
for (G4int i=0; i<theIonTable->Entries(); i++)
{
G4String particleName = theIonTable->GetParticle(i)->GetParticleName();
if (particleName == "GenericIon")
{
G4ProcessManager* pmanager =
theIonTable->GetParticle(i)->GetProcessManager();
pmanager ->SetVerboseLevel(verboseLevel);
pmanager ->AddProcess(theRadioactiveDecay);
pmanager ->SetProcessOrdering(theRadioactiveDecay, idxPostStep,1);
pmanager ->SetProcessOrdering(theRadioactiveDecay, idxAtRest,1);
}
}
}
Thank you in advance,
Sincerely,
Bari.
|
|
to: |