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;
83 material_cache = material;
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] );
150 for (
G4int ii=0; ii<len; ii++ )
155 thePhysVec = aPhysVector;
172 throw G4HadronicException(__FILE__, __LINE__,
"Attempt to use NeutronHP data for particles other than neutrons!!!");
213 G4int size =
G4int(std::max(10., aT/60*kelvin));
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;
std::vector< G4Element * > G4ElementTable
G4ParticleDefinition * GetDefinition() const
G4double GetKineticEnergy() const
G4ThreeVector GetMomentum() const
static size_t GetNumberOfElements()
const G4String & GetName() const
static const G4ElementTable * GetElementTable()
void PutValues(size_t binNumber, G4double binValue, G4double dataValue)
G4double GetTemperature() const
G4double GetXsec(G4double anEnergy)
void Init(G4Element *theElement)
G4NeutronHPVector * GetData(G4NeutronHPFissionData *)
G4int GetVectorLength() const
G4double GetX(G4int i) const
G4double GetY(G4double x)
void BuildPhysicsTable(const G4ParticleDefinition &)
void DumpPhysicsTable(const G4ParticleDefinition &)
G4double GetIsoCrossSection(const G4DynamicParticle *, G4int, G4int, const G4Isotope *, const G4Element *, const G4Material *)
G4double GetCrossSection(const G4DynamicParticle *, const G4Element *, G4double aT)
~G4NeutronHPorLEInelasticData()
G4bool IsIsoApplicable(const G4DynamicParticle *, G4int, G4int, const G4Element *, const G4Material *)
G4NeutronHPorLEInelasticData()
static G4Neutron * Neutron()
static G4double GetNuclearMass(const G4double A, const G4double Z)
G4ReactionProduct GetThermalNucleus(G4double aMass, G4double temp=-1) const
G4double GetPDGMass() const
void push_back(G4PhysicsVector *)
void SetMomentum(const G4double x, const G4double y, const G4double z)
G4double GetKineticEnergy() const
G4ThreeVector GetMomentum() const
void Lorentz(const G4ReactionProduct &p1, const G4ReactionProduct &p2)
void SetKineticEnergy(const G4double en)
G4double GetMaxKinEnergy() const
void SetMaxKinEnergy(G4double value)
void SetMinKinEnergy(G4double value)
G4double GetMinKinEnergy() const