I am reading the resource code of Geant4 to update the HPFission model. Becouse I can’t find any file to help me to understand this part codes, I has some questions of it.
(1) G4ParticleHPFission::ApplyYourself should have calculated the final states after fission happening. But I can’t find this part codes in this function. And in G4ParticleHPFission::BuildPhysicsTable , I find the G4ParticleHPFissionFS class. I think it should deal with the final state. But in the Geant4, how to use this function or where is it used? I can’t understand;
(2)In G4ParticleHPFissionFS, I find that it used G4ParticleHPFSFissionFS, G4ParticleHPFCFissionFS, G4ParticleHPSCFissionFS, G4ParticleHPTCFissionFS, G4ParticleHPLCFissionFS, G4ParticleHPFFFissionFS. I think all these class are used to calculate the final state. But what is the difference for them?
(3)In G4ParticleHPFSFissionFS::Init , what is the physical meaning of the parameter M of SetAZMs( A, Z, M, aFile )?
Hello,
I may have some answers to your questions, because I have dealt with ParticleHP package recently and tried to find all connections in it.
The final state of fission is finally calculated in G4ParticleHPFissionFS::ApplyYourself, which calls the different FC, SC, TC or LC fission final states, but I do not know what is the difference between them. The continuity is that G4ParticleHPFission::ApplyYourself calls G4ParticleHPChannel::ApplyYourself, which selects the isotope and calls G4ParticleHPFissionFS::ApplyYourself, which returns the final state.
I am not sure, but they correspond to different final states in NeutronHP data G4NDL.
Thanks for your reply!
I had noticed the G4ParticleHPChannel and carefully readed the code of it. However , I can’t find any code, which call G4ParticleHPFissionFS::ApplyYourself . And G4ParticleHPFission::BuildPhysics actually called the G4ParticleHPFissionFS.
what’s the purpose of G4ParticleHPFission::BuildPhysicsTable in the program ?
G4ParticleHPFissionFS::ApplyYourself is called in this line of G4ParticleHPChannel: theFinalState = theFinalStates[it]->ApplyYourself(theTrack);
Methods BuildPhysicsTable are called at the beginning of the application and they prepare data for all materials in the simulation - they read cross sections and final state information from the data file and put them in the appropriate data structures.
Thank you very much!
There is a little confusion for me. In G4ParticleHPChannel, ‘’‘theFinalStates’‘’ is from G4ParticleHPFinalState and in this class, theApplyYourself method is virtual.
Why this place can call theApplyYourself method from G4ParticleHPFissionFS?
Methods BuildPhysicsTable help us to call theApplyYourself method from G4ParticleHPFissionFS?
G4ParticleHPFissionFS is derived class from G4ParticleHPFinalState and its theApplyYourself method is concrete implementation of the virtual method in base class. I am not a C++ expert, but in this way, you can create theFinalStates for all processes (elastic, capture, inelastic, fission) and than call theApplyYourself method of the concrete process.