Exemple #1
0
Fission::Fission(const AceIsotope* isotope, const Ace::NeutronReaction& ace_reaction) :
		GenericReaction(isotope, ace_reaction), prompt_nu(0) {

	/* Get distribution of emerging particles */
	const Ace::TyrDistribution& tyr = ace_reaction.getTyr();
	/* Sanity check */
	assert(tyr.getType() == Ace::TyrDistribution::fission);
	/* Get the NU data related to this fission reaction */
	vector<Ace::NUBlock::NuData*> nu_data = tyr.getFission();

	/* TODO - For now just sample particles with prompt spectrum */
	if(nu_data.size() >= 2)
		prompt_nu = buildNuSampler(nu_data[1]);
	else if(nu_data.size() == 1)
		prompt_nu = buildNuSampler(nu_data[0]);
	else
		throw(AceModule::AceError(isotope->getUserId(),
			"Cannot create reaction for mt = " + toString(ace_reaction.getMt()) + " : Information in NU block is not available" ));
}
		InelasticScattering(const AceIsotopeBase* isotope, const Ace::NeutronReaction& ace_reaction) :
			 GenericReaction(isotope, ace_reaction), FramePolicy(isotope->getAwr()), NuPolicy(ace_reaction.getTyr()) {/* */};