45 return std::max(0., theChannelData->
GetXsec(energy));
50 return theIsotopeWiseData[isoNumber].
GetXsec(energy);
55 return theFinalStates[isoNumber]->
GetXsec(energy);
62 Init(anElement, dirName);
68 theElement = anElement;
77 if ( registerCount > 5 )
throw G4HadronicException(__FILE__, __LINE__,
"Channel: Do not know what to do with this material");
78 if ( Z < 1 )
return false;
87 if ( Z <=theElement->
GetZ()-5 )
throw G4HadronicException(__FILE__, __LINE__,
"Channel: Do not know what to do with this material");
90 if(count == 0||registerCount!=0) count +=
93 delete [] theIsotopeWiseData;
98 delete [] theFinalStates;
100 delete theChannelData;
102 for(
G4int i=0; i<niso; i++)
104 theFinalStates[i] = theFS->
New();
110 for (
G4int i1=0; i1<nIsos; i1++)
118 theFinalStates[i1]->
SetA_Z(A, Z, M);
133 theFinalStates[i1]->
SetA_Z(A, Z);
145 theFinalStates[
index]->
Init(A, Z, M, theDir, theFSType);
146 if(!theFinalStates[index]->
HasAnyData())
return;
150 if(theFinalStates[index]->HasXsec())
153 theBuffer->
Times(abundance/100.);
160 active[
index] = theIsotopeWiseData[
index].
Init(A, Z, M, abundance, theDir, tString);
163 if(theBuffer != 0)
Harmonise(theChannelData, theBuffer);
168 G4int s_tmp = 0,
n=0, m_tmp=0;
174 while (a<anActive->GetVectorLength()&&
p<aPassive->GetVectorLength())
183 if( std::abs(std::abs(xp-xa)/xa)<0.001 )
189 anActive = aPassive; a=
p;
214 if ( anIsotope != -1 )
227 for (
G4int i=0; i<niso; i++)
232 theFinalStates[i]->
GetN(),
233 theFinalStates[i]->
GetZ(),
256 for (
G4int ix=0; ix<niso; ix++)
260 if( sum == 0 || random <= running/sum )
270 while(theFinalState==0)
280 return theFinalState;