Message: Absorption Leaves Isotope Unchanged? Not Logged In (login)
 Next-in-Thread Next-in-Thread
 Next-in-Forum Next-in-Forum

Question Absorption Leaves Isotope Unchanged? 

Forum: Hadronic Processes
Date: 10 Aug, 2010
From: Joel Long <Joel Long>

Using the high precision neutron data, when I print out the information stored in G4IsoParticleChange,nearly every time the process is neutron capture, the resultant isotope displays as "UNCHANGED". I'm firing plain neutrons, so I would think that implies an (n,n) reaction, but I expected that to show up as an elastic reaction. So my question is, what reactions qualify as absorption, and why does the isotope show up as unchanged?

Thanks to everyone in advance, Joel

Details:

I am firing 14.1 MeV neutrons at natural copper, using the LHEP_BERT_HP preset physics (as I understand it, the HP physics should be in effect at the energies I am using). I need to know how many (n,2n) reactions there are (with Cu63 and Cu65 both) compared to the number of (n,gamma) reactions in both isotopes. I have added a G4NeutronIsotopeProduction to each of the relevant processes (see excerpt from physics list, below), and enabled isotope production.

when I began to examine my results, I found something strange. I was just printing out the Z and N from the mother nucleous and the resultant isotope (both accessed through G4IsoParticleChange). I got lots of Cu63 going to Cu62 and Cu65 going to Cu64, as expected. And then, whenever the process is nCapture, I get Cu63 to UNCHANGED and Cu65 to UNCHANGED.

Physics list excerpt:

Yes, I know I shouldn't catch exceptions that way, but this is just test code. I am not getting any exceptions, so that isn't the problem.

void ModularPhysicsLists::ConstructProcess()
{
	G4HadronicProcess::EnableIsotopeProductionGlobally();
	G4VModularPhysicsList::ConstructProcess();
	AddTransportation();

	G4ProcessVector* procVect = G4ProcessTable::GetProcessTable()->FindProcesses();
	G4int initSize = procVect->size();
	for(int c = 0; c < initSize; c++){
		G4HadronicProcess* temp = dynamic_cast<G4HadronicProcess*>(procVect->removeLast());
		if(temp != NULL){
			try{
				std::cout<<temp->GetProcessName()<<std::endl;
				G4NeutronIsotopeProduction* test = new G4NeutronIsotopeProduction();
				temp->RegisterIsotopeProductionModel(test);
			}catch(std::exception e){
				G4cout<<"Oh, bother, an exception "<<e.what()<<G4endl;
			}
			temp->EnableIsotopeCounting();
//			temp->RegisterIsotopeProductionModel(new G4ProtonIsotopeProduction());
		}
	}
}

 Add Message Add Message
to: "Absorption Leaves Isotope Unchanged?"

 Subscribe Subscribe

This site runs SLAC HyperNews version 1.11-slac-98, derived from the original HyperNews


[ Geant 4 Home | Geant 4 HyperNews | Search | Request New Forum | Feedback ]