64 Init(anElement, dirName);
79 if ( registerCount > 5 )
throw G4HadronicException(__FILE__, __LINE__,
"Channel: Do not know what to do with this material");
80 if ( Z < 1 )
return false;
89 if ( Z <=theElement->
GetZ()-5 )
throw G4HadronicException(__FILE__, __LINE__,
"Channel: Do not know what to do with this material");
92 if(count == 0||registerCount!=0) count +=
112 for (
G4int i1=0; i1<nIsos; i1++)
179 G4int s_tmp = 0,
n=0, m_tmp=0;
185 while (a<anActive->GetVectorLength()&&p<aPassive->GetVectorLength())
194 if( std::abs(std::abs(xp-xa)/xa)<0.001 )
200 anActive = aPassive; a=p;
225 if ( anIsotope != -1 && anIsotope != -2 )
271 if( sum == 0 || random <= running/sum )
294 while(theFinalState==0)
308 return theFinalState;
size_t GetNumberOfIsotopes() const
G4double GetEnergy(G4int i) const
G4HadFinalState * ApplyYourself(const G4HadProjectile &projectile, G4int Z, G4int A)
void Harmonise(G4NeutronHPVector *&theStore, G4NeutronHPVector *theNew)
G4int GetVectorLength() const
virtual G4NeutronHPFinalState * New()=0
G4bool Register(G4NeutronHPFinalState *theFS)
G4double GetWeightedXsec(G4double energy, G4int isoNumber)
G4bool HasDataInAnyFinalState()
G4NeutronHPFinalState ** theFinalStates
G4NeutronHPVector * theChannelData
void Init(G4Element *theElement, const G4String dirName)
static G4NeutronHPManager * GetInstance()
G4int GetFirstIsotope(G4int Z)
G4NeutronHPReactionWhiteBoard * GetReactionWhiteBoard()
void Times(G4double factor)
void SetData(G4int i, G4double x, G4double y)
G4bool Init(G4int A, G4int Z, G4double abun, G4String dirName, G4String aFSType)
G4NeutronHPIsoData * theIsotopeWiseData
G4NeutronHPVector * theBuffer
G4HadFinalState * ApplyYourself(const G4HadProjectile &theTrack, G4int isoNumber=-1)
void InitializeANucleus(const G4int A, const G4int Z, const G4int M, const G4String &dataDirectory)
G4StableIsotopes theStableOnes
void UpdateData(G4int A, G4int Z, G4int index, G4double abundance)
G4double * GetRelativeAbundanceVector() const
G4double GetXsec(G4double energy)
static const double perCent
static const G4double A[nN]
void SetA_Z(G4double anA, G4double aZ, G4int aM=0)
G4double GetXsec(G4double energy)
G4int GetNumberOfIsotopes(G4int Z)
G4double GetFSCrossSection(G4double energy, G4int isoNumber)
G4int GetIsotopeNucleonCount(G4int number)
void FillChannelData(G4NeutronHPVector *aBuffer)
G4double GetXsec(G4int i)
T max(const T t1, const T t2)
brief Return the largest of the two arguments
G4double GetThermalEnergy(const G4HadProjectile &aP, const G4Element *anE, G4double aT)
G4double energy(const ThreeVector &p, const G4double m)
virtual G4HadFinalState * ApplyYourself(const G4HadProjectile &)
void Init(G4double A, G4double Z, G4String &dirName, G4String &aFSType)
G4bool HasAnyData(G4int isoNumber)
const G4Isotope * GetIsotope(G4int iso) const
G4double GetTemperature() const
const G4Material * GetMaterial() const
G4double GetAbundance(G4int number)
virtual G4double GetXsec(G4double)
G4NeutronHPVector * MakeChannelData()
G4WendtFissionFragmentGenerator *const wendtFissionGenerator