Geant4  10.03.p03
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4ParticleHPChannel Class Reference

#include <G4ParticleHPChannel.hh>

Public Member Functions

 G4ParticleHPChannel (G4ParticleDefinition *projectile)
 
 G4ParticleHPChannel ()
 
 ~G4ParticleHPChannel ()
 
G4double GetXsec (G4double energy)
 
G4double GetWeightedXsec (G4double energy, G4int isoNumber)
 
G4double GetFSCrossSection (G4double energy, G4int isoNumber)
 
G4bool IsActive (G4int isoNumber)
 
G4bool HasFSData (G4int isoNumber)
 
G4bool HasAnyData (G4int isoNumber)
 
G4bool Register (G4ParticleHPFinalState *theFS)
 
void Init (G4Element *theElement, const G4String dirName)
 
void Init (G4Element *theElement, const G4String dirName, const G4String fsType)
 
void UpdateData (G4int A, G4int Z, G4int index, G4double abundance, G4ParticleDefinition *projectile)
 
void UpdateData (G4int A, G4int Z, G4int M, G4int index, G4double abundance, G4ParticleDefinition *projectile)
 
void Harmonise (G4ParticleHPVector *&theStore, G4ParticleHPVector *theNew)
 
G4HadFinalStateApplyYourself (const G4HadProjectile &theTrack, G4int isoNumber=-1)
 
G4int GetNiso ()
 
G4double GetN (G4int i)
 
G4double GetZ (G4int i)
 
G4double GetM (G4int i)
 
G4bool HasDataInAnyFinalState ()
 
void DumpInfo ()
 
G4String GetFSType () const
 
G4ParticleHPFinalState ** GetFinalStates () const
 

Detailed Description

Definition at line 57 of file G4ParticleHPChannel.hh.

Constructor & Destructor Documentation

G4ParticleHPChannel::G4ParticleHPChannel ( G4ParticleDefinition projectile)
inline

Definition at line 61 of file G4ParticleHPChannel.hh.

62  : wendtFissionGenerator(getenv("G4NEUTRON_HP_USE_WENDT_FISSION_MODEL") == NULL ? NULL : G4WendtFissionFragmentGenerator::GetInstance())
63  {
64  theProjectile = const_cast<G4ParticleDefinition*>(projectile);
65  theChannelData = new G4ParticleHPVector;
66  theBuffer = 0;
67  theIsotopeWiseData = 0;
68  theFinalStates = 0;
69  active = 0;
70  registerCount = -1;
71  niso = -1;
72  theElement = NULL;
73  }
static G4WendtFissionFragmentGenerator * GetInstance()
G4ParticleHPChannel::G4ParticleHPChannel ( )
inline

Definition at line 75 of file G4ParticleHPChannel.hh.

76  : wendtFissionGenerator(getenv("G4NEUTRON_HP_USE_WENDT_FISSION_MODEL") == NULL ? NULL : G4WendtFissionFragmentGenerator::GetInstance())
77  {
78  theProjectile = G4Neutron::Neutron();
79  theChannelData = new G4ParticleHPVector;
80  theBuffer = 0;
81  theIsotopeWiseData = 0;
82  theFinalStates = 0;
83  active = 0;
84  registerCount = -1;
85  niso = -1;
86  theElement = NULL;
87  }
static G4WendtFissionFragmentGenerator * GetInstance()
static G4Neutron * Neutron()
Definition: G4Neutron.cc:104

Here is the call graph for this function:

G4ParticleHPChannel::~G4ParticleHPChannel ( )
inline

Definition at line 89 of file G4ParticleHPChannel.hh.

90  {
91  delete theChannelData;
92  // Following statement disabled to avoid SEGV
93  // theBuffer is also deleted as "theChannelData" in
94  // ~G4ParticleHPIsoData. FWJ 06-Jul-1999
95  //if(theBuffer != 0) delete theBuffer;
96  if(theIsotopeWiseData != 0) delete [] theIsotopeWiseData;
97  // Deletion of FinalStates disabled to avoid endless looping
98  // in the destructor heirarchy. FWJ 06-Jul-1999
99  //if(theFinalStates != 0)
100  //{
101  // for(i=0; i<niso; i++)
102  // {
103  // delete theFinalStates[i];
104  // }
105  // delete [] theFinalStates;
106  //}
107  // FWJ experiment
108  //if(active!=0) delete [] active;
109 // T.K.
110  if ( theFinalStates != 0 )
111  {
112  for ( G4int i = 0 ; i < niso ; i++ )
113  {
114  delete theFinalStates[i];
115  }
116  delete [] theFinalStates;
117  }
118  if ( active != 0 ) delete [] active;
119 
120  }
int G4int
Definition: G4Types.hh:78

Member Function Documentation

G4HadFinalState * G4ParticleHPChannel::ApplyYourself ( const G4HadProjectile theTrack,
G4int  isoNumber = -1 
)

Definition at line 225 of file G4ParticleHPChannel.cc.

226  {
227 // G4cout << "G4ParticleHPChannel::ApplyYourself+"<<niso<<G4endl;
228  if ( anIsotope != -1 && anIsotope != -2 )
229  {
230  //Inelastic Case
231  //G4cout << "G4ParticleHPChannel Inelastic Case"
232  //<< " Z= " << this->GetZ(it) << " A = " << this->GetN(it) << G4endl;
235  return theFinalStates[anIsotope]->ApplyYourself(theTrack);
236  }
237  G4double sum=0;
238  G4int it=0;
239  G4double * xsec = new G4double[niso];
240  G4ParticleHPThermalBoost aThermalE;
241  for (G4int i=0; i<niso; i++)
242  {
243  if(theFinalStates[i]->HasAnyData())
244  {
245  xsec[i] = theIsotopeWiseData[i].GetXsec(aThermalE.GetThermalEnergy(theTrack,
246  theFinalStates[i]->GetN(),
247  theFinalStates[i]->GetZ(),
248  theTrack.GetMaterial()->GetTemperature()));
249  sum += xsec[i];
250  }
251  else
252  {
253  xsec[i]=0;
254  }
255  }
256  if(sum == 0)
257  {
258 // G4cout << "G4ParticleHPChannel::ApplyYourself theFinalState->Initialize+"<<G4endl;
259 // G4cout << "G4ParticleHPChannel::ApplyYourself theFinalState->Initialize-"<<G4endl;
260  it = static_cast<G4int>(niso*G4UniformRand());
261  }
262  else
263  {
264 // G4cout << "Are we still here? "<<sum<<G4endl;
265 // G4cout << "TESTHP 23 NISO="<<niso<<G4endl;
266  G4double random = G4UniformRand();
267  G4double running=0;
268 // G4cout << "G4ParticleHPChannel::ApplyYourself Done the sum"<<niso<<G4endl;
269 // G4cout << "TESTHP 24 NISO="<<niso<<G4endl;
270  for (G4int ix=0; ix<niso; ix++)
271  {
272  running += xsec[ix];
273  //if(random<=running/sum)
274  if( sum == 0 || random <= running/sum )
275  {
276  it = ix;
277  break;
278  }
279  }
280  if(it==niso) it--;
281  }
282  delete [] xsec;
283  G4HadFinalState * theFinalState=0;
284  const G4int A = (G4int)this->GetN(it);
285  const G4int Z = (G4int)this->GetZ(it);
286  const G4int M = (G4int)this->GetM(it);
287 
288  //-2:Marker for Fission
289  if(wendtFissionGenerator&&anIsotope==-2)
290  {
291  theFinalState = wendtFissionGenerator->ApplyYourself(theTrack, Z, A);
292  }
293 
294  // Use the standard procedure if the G4FissionFragmentGenerator model fails
295  if (!theFinalState)
296  {
297 
298  G4int icounter=0;
299  G4int icounter_max=1024;
300  while(theFinalState==0) // Loop checking, 11.05.2015, T. Koi
301  {
302  icounter++;
303  if ( icounter > icounter_max ) {
304  G4cout << "Loop-counter exceeded the threshold value at " << __LINE__ << "th line of " << __FILE__ << "." << G4endl;
305  break;
306  }
307 // G4cout << "TESTHP 24 it="<<it<<G4endl;
308  theFinalState = theFinalStates[it]->ApplyYourself(theTrack);
309  }
310  }
311 
312  //G4cout <<"THE IMPORTANT RETURN"<<G4endl;
313  //G4cout << "TK G4ParticleHPChannel Elastic, Capture and Fission Cases "
314  //<< " Z= " << this->GetZ(it) << " A = " << this->GetN(it) << G4endl;
318 
319  return theFinalState;
320  }
static G4ParticleHPManager * GetInstance()
G4HadFinalState * ApplyYourself(const G4HadProjectile &projectile, G4int Z, G4int A)
virtual G4HadFinalState * ApplyYourself(const G4HadProjectile &)
G4double GetM(G4int i)
G4double GetXsec(G4double energy)
G4double GetN(G4int i)
int G4int
Definition: G4Types.hh:78
#define G4UniformRand()
Definition: Randomize.hh:97
G4GLOB_DLL std::ostream G4cout
double A(double temperature)
G4double GetZ(G4int i)
G4double GetThermalEnergy(const G4HadProjectile &aP, const G4Element *anE, G4double aT)
G4bool HasAnyData(G4int isoNumber)
G4double GetTemperature() const
Definition: G4Material.hh:182
#define G4endl
Definition: G4ios.hh:61
const G4Material * GetMaterial() const
double G4double
Definition: G4Types.hh:76
G4ParticleHPReactionWhiteBoard * GetReactionWhiteBoard()

Here is the call graph for this function:

Here is the caller graph for this function:

void G4ParticleHPChannel::DumpInfo ( )

Definition at line 323 of file G4ParticleHPChannel.cc.

323  {
324 
325  G4cout<<" Element: "<<theElement->GetName()<<G4endl;
326  G4cout<<" Directory name: "<<theDir<<G4endl;
327  G4cout<<" FS name: "<<theFSType<<G4endl;
328  G4cout<<" Number of Isotopes: "<<niso<<G4endl;
329  G4cout<<" Have cross sections: "<<G4endl;
330  for(int i=0;i<niso;i++){
331  G4cout<<theFinalStates[i]->HasXsec()<<" ";
332  }
333  G4cout<<G4endl;
334  if(theChannelData){
335  G4cout<<" Cross Section (total for this channel):"<<G4endl;
336  int np=theChannelData->GetVectorLength();
337  G4cout<<np<<G4endl;
338  for(int i=0;i<np;i++){
339  G4cout<<theChannelData->GetEnergy(i)/eV<<" "<<theChannelData->GetXsec(i)<<G4endl;
340  }
341  }
342 
343 }
G4double GetEnergy(G4int i) const
G4int GetVectorLength() const
G4double GetXsec(G4int i)
G4GLOB_DLL std::ostream G4cout
static constexpr double eV
Definition: G4SIunits.hh:215
#define G4endl
Definition: G4ios.hh:61
const G4String & GetName() const
Definition: G4Element.hh:127

Here is the call graph for this function:

Here is the caller graph for this function:

G4ParticleHPFinalState** G4ParticleHPChannel::GetFinalStates ( ) const
inline

Definition at line 171 of file G4ParticleHPChannel.hh.

171  {
172  return theFinalStates;
173  }
G4double G4ParticleHPChannel::GetFSCrossSection ( G4double  energy,
G4int  isoNumber 
)

Definition at line 57 of file G4ParticleHPChannel.cc.

58  {
59  return theFinalStates[isoNumber]->GetXsec(energy);
60  }
G4double energy(const ThreeVector &p, const G4double m)
virtual G4double GetXsec(G4double)

Here is the call graph for this function:

Here is the caller graph for this function:

G4String G4ParticleHPChannel::GetFSType ( ) const
inline

Definition at line 167 of file G4ParticleHPChannel.hh.

167  {
168  return theFSType;
169  }
G4double G4ParticleHPChannel::GetM ( G4int  i)
inline

Definition at line 152 of file G4ParticleHPChannel.hh.

152 {return theFinalStates[i]->GetM();}

Here is the call graph for this function:

Here is the caller graph for this function:

G4double G4ParticleHPChannel::GetN ( G4int  i)
inline

Definition at line 150 of file G4ParticleHPChannel.hh.

150 {return theFinalStates[i]->GetN();}

Here is the call graph for this function:

Here is the caller graph for this function:

G4int G4ParticleHPChannel::GetNiso ( )
inline

Definition at line 148 of file G4ParticleHPChannel.hh.

148 {return niso;}

Here is the caller graph for this function:

G4double G4ParticleHPChannel::GetWeightedXsec ( G4double  energy,
G4int  isoNumber 
)

Definition at line 52 of file G4ParticleHPChannel.cc.

53  {
54  return theIsotopeWiseData[isoNumber].GetXsec(energy);
55  }
G4double GetXsec(G4double energy)
G4double energy(const ThreeVector &p, const G4double m)

Here is the call graph for this function:

Here is the caller graph for this function:

G4double G4ParticleHPChannel::GetXsec ( G4double  energy)

Definition at line 47 of file G4ParticleHPChannel.cc.

48  {
49  return std::max(0., theChannelData->GetXsec(energy));
50  }
G4double GetXsec(G4int i)
T max(const T t1, const T t2)
brief Return the largest of the two arguments
G4double energy(const ThreeVector &p, const G4double m)

Here is the call graph for this function:

Here is the caller graph for this function:

G4double G4ParticleHPChannel::GetZ ( G4int  i)
inline

Definition at line 151 of file G4ParticleHPChannel.hh.

151 {return theFinalStates[i]->GetZ();}

Here is the call graph for this function:

Here is the caller graph for this function:

void G4ParticleHPChannel::Harmonise ( G4ParticleHPVector *&  theStore,
G4ParticleHPVector theNew 
)

Definition at line 180 of file G4ParticleHPChannel.cc.

181  {
182  G4int s_tmp = 0, n=0, m_tmp=0;
183  G4ParticleHPVector * theMerge = new G4ParticleHPVector;
184  G4ParticleHPVector * anActive = theStore;
185  G4ParticleHPVector * aPassive = theNew;
186  G4ParticleHPVector * tmp;
187  G4int a = s_tmp, p = n, t;
188  while (a<anActive->GetVectorLength()&&p<aPassive->GetVectorLength()) // Loop checking, 11.05.2015, T. Koi
189  {
190  if(anActive->GetEnergy(a) <= aPassive->GetEnergy(p))
191  {
192  G4double xa = anActive->GetEnergy(a);
193  theMerge->SetData(m_tmp, xa, anActive->GetXsec(a)+std::max(0., aPassive->GetXsec(xa)) );
194  m_tmp++;
195  a++;
196  G4double xp = aPassive->GetEnergy(p);
197  if( std::abs(std::abs(xp-xa)/xa)<0.001 )
198  {
199  p++;
200  }
201  } else {
202  tmp = anActive; t=a;
203  anActive = aPassive; a=p;
204  aPassive = tmp; p=t;
205  }
206  }
207  while (a!=anActive->GetVectorLength()) // Loop checking, 11.05.2015, T. Koi
208  {
209  theMerge->SetData(m_tmp++, anActive->GetEnergy(a), anActive->GetXsec(a));
210  a++;
211  }
212  while (p!=aPassive->GetVectorLength()) // Loop checking, 11.05.2015, T. Koi
213  {
214  if(std::abs(theMerge->GetEnergy(std::max(0,m_tmp-1))-aPassive->GetEnergy(p))/aPassive->GetEnergy(p)>0.001)
215  theMerge->SetData(m_tmp++, aPassive->GetEnergy(p), aPassive->GetXsec(p));
216  p++;
217  }
218  delete theStore;
219  theStore = theMerge;
220  }
G4double GetEnergy(G4int i) const
G4int GetVectorLength() const
std::vector< ExP01TrackerHit * > a
Definition: ExP01Classes.hh:33
void SetData(G4int i, G4double x, G4double y)
const char * p
Definition: xmltok.h:285
int G4int
Definition: G4Types.hh:78
G4double GetXsec(G4int i)
const G4int n
T max(const T t1, const T t2)
brief Return the largest of the two arguments
double G4double
Definition: G4Types.hh:76

Here is the call graph for this function:

Here is the caller graph for this function:

G4bool G4ParticleHPChannel::HasAnyData ( G4int  isoNumber)
inline

Definition at line 132 of file G4ParticleHPChannel.hh.

132 { return theFinalStates[isoNumber]->HasAnyData(); }

Here is the call graph for this function:

Here is the caller graph for this function:

G4bool G4ParticleHPChannel::HasDataInAnyFinalState ( )
inline

Definition at line 154 of file G4ParticleHPChannel.hh.

155  {
156  G4bool result = false;
157  G4int i;
158  for(i=0; i<niso; i++)
159  {
160  if(theFinalStates[i]->HasAnyData()) result = true;
161  }
162  return result;
163  }
G4double G4ParticleHPJENDLHEData::G4double result
int G4int
Definition: G4Types.hh:78
bool G4bool
Definition: G4Types.hh:79
G4bool HasAnyData(G4int isoNumber)

Here is the call graph for this function:

Here is the caller graph for this function:

G4bool G4ParticleHPChannel::HasFSData ( G4int  isoNumber)
inline

Definition at line 130 of file G4ParticleHPChannel.hh.

130 { return theFinalStates[isoNumber]->HasFSData(); }

Here is the call graph for this function:

void G4ParticleHPChannel::Init ( G4Element theElement,
const G4String  dirName 
)

Definition at line 69 of file G4ParticleHPChannel.cc.

70  {
71  theDir = dirName;
72  theElement = anElement;
73  }

Here is the caller graph for this function:

void G4ParticleHPChannel::Init ( G4Element theElement,
const G4String  dirName,
const G4String  fsType 
)

Definition at line 63 of file G4ParticleHPChannel.cc.

64  {
65  theFSType = aFSType;
66  Init(anElement, dirName);
67  }
void Init(G4Element *theElement, const G4String dirName)

Here is the call graph for this function:

G4bool G4ParticleHPChannel::IsActive ( G4int  isoNumber)
inline

Definition at line 128 of file G4ParticleHPChannel.hh.

128 { return active[isoNumber]; }
G4bool G4ParticleHPChannel::Register ( G4ParticleHPFinalState theFS)

Definition at line 75 of file G4ParticleHPChannel.cc.

76  {
77  registerCount++;
78  G4int Z = G4lrint(theElement->GetZ());
79 
80  Z = Z-registerCount;
81  if ( registerCount > 5 ) throw G4HadronicException(__FILE__, __LINE__, "Channel: Do not know what to do with this material"); // for Elastic, Capture, Fission case
82  if ( Z < 1 ) return false;
83 /*
84  if(registerCount<5)
85  {
86  Z = Z-registerCount;
87  }
88 */
89  //if(Z=theElement->GetZ()-5) throw G4HadronicException(__FILE__, __LINE__, "Channel: Do not know what to do with this material");
90  // Bug fix by TK on behalf of AH
91  if ( Z <=theElement->GetZ()-5 ) throw G4HadronicException(__FILE__, __LINE__, "Channel: Do not know what to do with this material");
92  G4int count = 0;
93  if(registerCount==0) count = theElement->GetNumberOfIsotopes();
94  if(count == 0||registerCount!=0) count +=
95  theStableOnes.GetNumberOfIsotopes(Z);
96  niso = count;
97  delete [] theIsotopeWiseData;
98  theIsotopeWiseData = new G4ParticleHPIsoData [niso];
99  delete [] active;
100  active = new G4bool[niso];
101 
102  delete [] theFinalStates;
103  theFinalStates = new G4ParticleHPFinalState * [niso];
104  delete theChannelData;
105  theChannelData = new G4ParticleHPVector;
106  for(G4int i=0; i<niso; i++)
107  {
108  theFinalStates[i] = theFS->New();
109  theFinalStates[i]->SetProjectile(theProjectile);
110  }
111  count = 0;
112  G4int nIsos = niso;
113  if(theElement->GetNumberOfIsotopes()!=0&&registerCount==0)
114  {
115  for (G4int i1=0; i1<nIsos; i1++)
116  {
117  // G4cout <<" Init: normal case"<<G4endl;
118  G4int A = theElement->GetIsotope(i1)->GetN();
119  G4int M = theElement->GetIsotope(i1)->Getm();
120  G4double frac = theElement->GetRelativeAbundanceVector()[i1]/perCent;
121  //theFinalStates[i1]->SetA_Z(A, Z);
122  //UpdateData(A, Z, count++, frac);
123  theFinalStates[i1]->SetA_Z(A, Z, M);
124  UpdateData(A, Z, M, count++, frac, theProjectile);
125  }
126  } else {
127  //G4cout <<" Init: mean case: "
128  // <<theStableOnes.GetNumberOfIsotopes(Z)<<" "
129  // <<Z<<" "<<theElement
130  // << G4endl;
131  G4int first = theStableOnes.GetFirstIsotope(Z);
132  for(G4int i1=0;
133  i1<theStableOnes.GetNumberOfIsotopes(Z);
134  i1++)
135  {
136  G4int A = theStableOnes.GetIsotopeNucleonCount(first+i1);
137  G4double frac = theStableOnes.GetAbundance(first+i1);
138  theFinalStates[i1]->SetA_Z(A, Z);
139  UpdateData(A, Z, count++, frac, theProjectile);
140  }
141  }
143 
144  //To avoid issuing hash by worker threads
145  if ( result ) theChannelData->Hash();
146 
147  return result;
148  }
G4double G4ParticleHPJENDLHEData::G4double result
size_t GetNumberOfIsotopes() const
Definition: G4Element.hh:159
void UpdateData(G4int A, G4int Z, G4int index, G4double abundance, G4ParticleDefinition *projectile)
G4int GetFirstIsotope(G4int Z)
static constexpr double perCent
Definition: G4SIunits.hh:332
G4double GetZ() const
Definition: G4Element.hh:131
virtual G4ParticleHPFinalState * New()=0
int G4int
Definition: G4Types.hh:78
G4int GetN() const
Definition: G4Isotope.hh:94
double A(double temperature)
G4int Getm() const
Definition: G4Isotope.hh:100
bool G4bool
Definition: G4Types.hh:79
G4double GetZ(G4int i)
G4double * GetRelativeAbundanceVector() const
Definition: G4Element.hh:167
void SetProjectile(G4ParticleDefinition *projectile)
G4int GetNumberOfIsotopes(G4int Z)
G4int GetIsotopeNucleonCount(G4int number)
int G4lrint(double ad)
Definition: templates.hh:163
const G4Isotope * GetIsotope(G4int iso) const
Definition: G4Element.hh:170
void SetA_Z(G4double anA, G4double aZ, G4int aM=0)
G4double GetAbundance(G4int number)
double G4double
Definition: G4Types.hh:76

Here is the call graph for this function:

Here is the caller graph for this function:

void G4ParticleHPChannel::UpdateData ( G4int  A,
G4int  Z,
G4int  index,
G4double  abundance,
G4ParticleDefinition projectile 
)
inline

Definition at line 141 of file G4ParticleHPChannel.hh.

141 { G4int M = 0; UpdateData( A, Z, M, index, abundance, projectile); };
void UpdateData(G4int A, G4int Z, G4int index, G4double abundance, G4ParticleDefinition *projectile)
int G4int
Definition: G4Types.hh:78
double A(double temperature)

Here is the call graph for this function:

Here is the caller graph for this function:

void G4ParticleHPChannel::UpdateData ( G4int  A,
G4int  Z,
G4int  M,
G4int  index,
G4double  abundance,
G4ParticleDefinition projectile 
)

Definition at line 151 of file G4ParticleHPChannel.cc.

152  {
153  // Initialze the G4FissionFragment generator for this isomer if needed
154  if(wendtFissionGenerator)
155  {
156  wendtFissionGenerator->InitializeANucleus(A, Z, M, theDir);
157  }
158 
159  theFinalStates[index]->Init(A, Z, M, theDir, theFSType, projectile);
160  if(!theFinalStates[index]->HasAnyData()) return; // nothing there for exactly this isotope.
161 
162  // the above has put the X-sec into the FS
163  theBuffer = 0;
164  if(theFinalStates[index]->HasXsec())
165  {
166  theBuffer = theFinalStates[index]->GetXsec();
167  theBuffer->Times(abundance/100.);
168  theIsotopeWiseData[index].FillChannelData(theBuffer);
169  }
170  else // get data from CrossSection directory
171  {
172  G4String tString = "/CrossSection";
173  //active[index] = theIsotopeWiseData[index].Init(A, Z, abundance, theDir, tString);
174  active[index] = theIsotopeWiseData[index].Init(A, Z, M, abundance, theDir, tString);
175  if(active[index]) theBuffer = theIsotopeWiseData[index].MakeChannelData();
176  }
177  if(theBuffer != 0) Harmonise(theChannelData, theBuffer);
178  }
void Init(G4double A, G4double Z, G4String &dirName, G4String &aFSType, G4ParticleDefinition *projectile)
void Harmonise(G4ParticleHPVector *&theStore, G4ParticleHPVector *theNew)
void InitializeANucleus(const G4int A, const G4int Z, const G4int M, const G4String &dataDirectory)
double A(double temperature)
void Times(G4double factor)
G4ParticleHPVector * MakeChannelData()
G4bool HasAnyData(G4int isoNumber)
virtual G4double GetXsec(G4double)
G4bool Init(G4int A, G4int Z, G4double abun, G4String dirName, G4String aFSType)
void FillChannelData(G4ParticleHPVector *aBuffer)

Here is the call graph for this function:


The documentation for this class was generated from the following files: