66 Init(anElement, dirName);
81 if ( registerCount > 5 )
throw G4HadronicException(__FILE__, __LINE__,
"Channel: Do not know what to do with this material");
82 if ( Z < 1 )
return false;
91 if ( Z <=theElement->
GetZ()-5 )
throw G4HadronicException(__FILE__, __LINE__,
"Channel: Do not know what to do with this material");
94 if(count == 0||registerCount!=0) count +=
115 for (
G4int i1=0; i1<nIsos; i1++)
182 G4int s_tmp = 0,
n=0, m_tmp=0;
188 while (a<anActive->GetVectorLength()&&
p<aPassive->GetVectorLength())
197 if( std::abs(std::abs(xp-xa)/xa)<0.001 )
203 anActive = aPassive; a=
p;
228 if ( anIsotope != -1 && anIsotope != -2 )
274 if( sum == 0 || random <= running/sum )
299 G4int icounter_max=1024;
300 while(theFinalState==0)
303 if ( icounter > icounter_max ) {
304 G4cout <<
"Loop-counter exceeded the threshold value at " << __LINE__ <<
"th line of " << __FILE__ <<
"." <<
G4endl;
319 return theFinalState;
330 for(
int i=0;i<
niso;i++){
335 G4cout<<
" Cross Section (total for this channel):"<<
G4endl;
338 for(
int i=0;i<np;i++){
T max(const T t1, const T t2)
brief Return the largest of the two arguments
static G4ParticleHPManager * GetInstance()
G4ParticleDefinition * theProjectile
void Init(G4Element *theElement, const G4String dirName)
std::vector< ExP01TrackerHit * > a
G4double * GetRelativeAbundanceVector() const
const G4String & GetName() const
void SetA_Z(G4double anA, G4double aZ, G4int aM=0)
G4int GetNumberOfIsotopes(G4int Z)
static constexpr double perCent
G4double GetThermalEnergy(const G4HadProjectile &aP, const G4Element *anE, G4double aT)
G4bool HasAnyData(G4int isoNumber)
void UpdateData(G4int A, G4int Z, G4int index, G4double abundance, G4ParticleDefinition *projectile)
void Times(G4double factor)
G4double GetXsec(G4int i)
G4double GetWeightedXsec(G4double energy, G4int isoNumber)
virtual G4double GetXsec(G4double)
const G4Material * GetMaterial() const
G4double GetFSCrossSection(G4double energy, G4int isoNumber)
G4ParticleHPVector * theChannelData
G4StableIsotopes theStableOnes
G4ParticleHPVector * theBuffer
void Init(G4double A, G4double Z, G4String &dirName, G4String &aFSType, G4ParticleDefinition *projectile)
G4ParticleHPReactionWhiteBoard * GetReactionWhiteBoard()
double A(double temperature)
G4ParticleHPIsoData * theIsotopeWiseData
static constexpr double eV
void SetData(G4int i, G4double x, G4double y)
G4double GetAbundance(G4int number)
virtual G4ParticleHPFinalState * New()=0
void InitializeANucleus(const G4int A, const G4int Z, const G4int M, const G4String &dataDirectory)
G4double G4ParticleHPJENDLHEData::G4double result
G4HadFinalState * ApplyYourself(const G4HadProjectile &projectile, G4int Z, G4int A)
virtual G4HadFinalState * ApplyYourself(const G4HadProjectile &)
G4double GetXsec(G4double energy)
G4WendtFissionFragmentGenerator *const wendtFissionGenerator
G4bool Register(G4ParticleHPFinalState *theFS)
G4GLOB_DLL std::ostream G4cout
G4int GetVectorLength() const
const G4Isotope * GetIsotope(G4int iso) const
G4ParticleHPVector * MakeChannelData()
G4double GetXsec(G4double energy)
G4bool HasDataInAnyFinalState()
void FillChannelData(G4ParticleHPVector *aBuffer)
G4int GetFirstIsotope(G4int Z)
void Harmonise(G4ParticleHPVector *&theStore, G4ParticleHPVector *theNew)
G4double GetTemperature() const
G4double GetEnergy(G4int i) const
G4int GetIsotopeNucleonCount(G4int number)
G4bool Init(G4int A, G4int Z, G4double abun, G4String dirName, G4String aFSType)
size_t GetNumberOfIsotopes() const
G4HadFinalState * ApplyYourself(const G4HadProjectile &theTrack, G4int isoNumber=-1)
void SetProjectile(G4ParticleDefinition *projectile)
G4ParticleHPFinalState ** theFinalStates