50 material_cache = NULL;
68 if ( unavailable_elements->find( element->
GetName() ) != unavailable_elements->end() )
return false;
79 if ( dp->
GetKineticEnergy() == ke_cache && element == element_cache && material == material_cache )
return xs_cache;
82 element_cache = element;
93 theInelasticChannel = pChannel;
94 unavailable_elements = pSet;
102 element_cache = NULL;
103 material_cache = NULL;
124 throw G4HadronicException(__FILE__, __LINE__,
"Attempt to use NeutronHP data for particles other than neutrons!!!");
130 for (
size_t i=0 ; i < numberOfElements; ++i )
134 if ( unavailable_elements->find( (*theElementTable)[i]->GetName() ) == unavailable_elements->end() )
138 theElementData->
Init( (*theElementTable)[i] );
155 thePhysVec = aPhysVector;
172 throw G4HadronicException(__FILE__, __LINE__,
"Attempt to use NeutronHP data for particles other than neutrons!!!");
196 theNeutron.SetKineticEnergy( eKinetic );
216 while(counter == 0 || std::abs(buffer-result/std::max(1,counter)) > 0.03*buffer)
218 if(counter) buffer = result/counter;
223 boosted.
Lorentz(theNeutron, aThermalNuc);
226 aXsection = theInelasticChannel[
index].
GetXsec( theEkin );
229 aXsection *= (targetVelocity-neutronVelocity).mag()/neutronVMag;