Geant4  10.03.p01
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
G4ExcitationHandler Class Reference

#include <G4ExcitationHandler.hh>

Public Member Functions

 G4ExcitationHandler ()
 
 ~G4ExcitationHandler ()
 
G4ReactionProductVector * BreakItUp (const G4Fragment &theInitialState)
 
void ModelDescription (std::ostream &outFile) const
 
void Initialise ()
 
void SetEvaporation (G4VEvaporation *ptr, G4bool isLocal=false)
 
void SetMultiFragmentation (G4VMultiFragmentation *ptr)
 
void SetFermiModel (G4VFermiBreakUp *ptr)
 
void SetPhotonEvaporation (G4VEvaporationChannel *ptr)
 
void SetDeexChannelsType (G4DeexChannelType val)
 
void SetMaxZForFermiBreakUp (G4int aZ)
 
void SetMaxAForFermiBreakUp (G4int anA)
 
void SetMaxAandZForFermiBreakUp (G4int anA, G4int aZ)
 
void SetMinEForMultiFrag (G4double anE)
 
G4VEvaporation * GetEvaporation ()
 
G4VMultiFragmentation * GetMultiFragmentation ()
 
G4VFermiBreakUp * GetFermiModel ()
 
G4VEvaporationChannel * GetPhotonEvaporation ()
 
void SetOPTxs (G4int opt)
 
void UseSICB ()
 

Detailed Description

Definition at line 64 of file G4ExcitationHandler.hh.

Constructor & Destructor Documentation

G4ExcitationHandler::G4ExcitationHandler ( )
explicit

Definition at line 85 of file G4ExcitationHandler.cc.

86  : maxZForFermiBreakUp(9),maxAForFermiBreakUp(17),
87  fVerbose(0),isInitialised(false),isEvapLocal(true)
88 {
89  theTableOfIons = G4ParticleTable::GetParticleTable()->GetIonTable();
90  nist = G4NistManager::Instance();
91 
92  theMultiFragmentation = nullptr;
93  theFermiModel = nullptr;
95  theEvaporation = new G4Evaporation();
96  thePhotonEvaporation = theEvaporation->GetPhotonEvaporation();
97  theResults.reserve(60);
98  results.reserve(30);
99  theEvapList.reserve(30);
100  thePhotoEvapList.reserve(10);
101  SetParameters();
102  if(fVerbose > 0) { G4cout << "### New handler " << this << G4endl; }
103 }
static G4Pow * GetInstance()
Definition: G4Pow.cc:55
G4VEvaporationChannel * GetPhotonEvaporation()
static G4NistManager * Instance()
G4IonTable * GetIonTable() const
G4GLOB_DLL std::ostream G4cout
static G4ParticleTable * GetParticleTable()
#define G4endl
Definition: G4ios.hh:61

Here is the call graph for this function:

G4ExcitationHandler::~G4ExcitationHandler ( )

Definition at line 105 of file G4ExcitationHandler.cc.

106 {
107  //G4cout << "### Delete handler " << this << G4endl;
108  delete theMultiFragmentation;
109  delete theFermiModel;
110  if(isEvapLocal) { delete theEvaporation; }
111 }

Member Function Documentation

G4ReactionProductVector * G4ExcitationHandler::BreakItUp ( const G4Fragment &  theInitialState)

Definition at line 202 of file G4ExcitationHandler.cc.

203 {
204  // Variables existing until end of method
205  G4Fragment * theInitialStatePtr = new G4Fragment(theInitialState);
206  if(fVerbose > 1) {
207  G4cout << "@@@@@@@@@@ Start G4Excitation Handler @@@@@@@@@@@@@ " << G4endl;
208  G4cout << theInitialState << G4endl;
209  }
210  if(!isInitialised) { Initialise(); }
211 
212  // pointer to fragment vector which receives temporal results
213  G4FragmentVector * theTempResult = nullptr;
214 
215  theResults.clear();
216  thePhotoEvapList.clear();
217  theEvapList.clear();
218 
219  // Variables to describe the excited configuration
220  G4double exEnergy = theInitialState.GetExcitationEnergy();
221  G4int A = theInitialState.GetA_asInt();
222  G4int Z = theInitialState.GetZ_asInt();
223 
224  // In case A <= 1 the fragment will not perform any nucleon emission
225  if (A <= 1) {
226  theResults.push_back( theInitialStatePtr );
227 
228  // check if a fragment is stable
229  } else if(exEnergy < minExcitation && nist->GetIsotopeAbundance(Z, A) > 0.0) {
230  theResults.push_back( theInitialStatePtr );
231 
232  // JMQ 150909: first step in de-excitation is treated separately
233  // Fragments after the first step are stored in theEvapList
234  } else {
235  if((A<maxAForFermiBreakUp && Z<maxZForFermiBreakUp)
236  || exEnergy <= minEForMultiFrag*A) {
237  theEvapList.push_back(theInitialStatePtr);
238 
239  // Statistical Multifragmentation will take place only once
240  } else {
241  theTempResult = theMultiFragmentation->BreakItUp(theInitialState);
242  if(!theTempResult) {
243  theEvapList.push_back(theInitialStatePtr);
244  } else {
245  size_t nsec = theTempResult->size();
246 
247  // no fragmentation
248  if(0 == nsec) {
249  theEvapList.push_back(theInitialStatePtr);
250 
251  // secondary are produced - sort out secondary fragments
252  } else {
253  G4bool deletePrimary = true;
254  G4FragmentVector::iterator j;
255  for (j = theTempResult->begin(); j != theTempResult->end(); ++j) {
256 
257  if((*j) == theInitialStatePtr) { deletePrimary = false; }
258  A = (*j)->GetA_asInt();
259 
260  // gamma, p, n
261  if(A <= 1) {
262  theResults.push_back(*j);
263 
264  // Analyse fragment A > 1
265  } else {
266  G4double exEnergy1 = (*j)->GetExcitationEnergy();
267 
268  // cold fragments
269  if(exEnergy1 < minExcitation) {
270  Z = (*j)->GetZ_asInt();
271  if(nist->GetIsotopeAbundance(Z, A) > 0.0) {
272  theResults.push_back(*j); // stable fragment
273  } else {
274  theEvapList.push_back(*j);
275  }
276  // hot fragments are unstable
277  } else {
278  theEvapList.push_back(*j);
279  }
280  }
281  }
282  if( deletePrimary ) { delete theInitialStatePtr; }
283  }
284  delete theTempResult; // end multifragmentation
285  }
286  }
287  }
288  if(fVerbose > 2) {
289  G4cout << "## After first step " << theEvapList.size() << " for evap; "
290  << thePhotoEvapList.size() << " for photo-evap; "
291  << theResults.size() << " results. " << G4endl;
292  }
293  // -----------------------------------
294  // FermiBreakUp and De-excitation loop
295  // -----------------------------------
296 
297  static const G4int countmax = 1000;
298  G4Fragment* frag;
299  size_t kk;
300  for (kk=0; kk<theEvapList.size(); ++kk) {
301  frag = theEvapList[kk];
302  if(fVerbose > 2) {
303  G4cout << "Next evaporate: " << G4endl;
304  G4cout << *frag << G4endl;
305  }
306  if(kk >= countmax) {
308  ed << "Infinite loop in the de-excitation module: " << kk
309  << " iterations \n"
310  << " Initial fragment: \n" << theInitialState
311  << "\n Current fragment: \n" << *frag;
312  G4Exception("G4ExcitationHandler::BreakItUp","had0333",FatalException,
313  ed,"Stop execution");
314 
315  }
316  A = frag->GetA_asInt();
317  Z = frag->GetZ_asInt();
318  results.clear();
319 
320  // Fermi Break-Up
321  if(theFermiModel->IsApplicable(Z, A, frag->GetExcitationEnergy())) {
322  theFermiModel->BreakFragment(&results, frag);
323  size_t nsec = results.size();
324  if(fVerbose > 2) { G4cout << "FermiBreakUp Nsec= " << nsec << G4endl; }
325 
326  // FBU takes care to delete input fragment or add it to the results
327  // The secondary may be excited - photo-evaporation should be applied
328  for(size_t j=0; j<nsec; ++j) {
329  exEnergy = results[j]->GetExcitationEnergy();
330  if(exEnergy < minExcitation) { theResults.push_back(results[j]); }
331  else { thePhotoEvapList.push_back(results[j]); }
332  }
333  continue;
334  }
335  // apply Evaporation, residual nucleus is always added to the results
336  theEvaporation->BreakFragment(&results, frag);
337  size_t nsec = results.size();
338  if(fVerbose > 2) { G4cout << "Evaporation Nsec= " << nsec << G4endl; }
339 
340  // no evaporation
341  if(1 >= nsec) {
342  theResults.push_back(frag);
343  continue;
344  }
345 
346  // Sort out secondary fragments
347  for (size_t j = 0; j<nsec; ++j) {
348  if(fVerbose > 3) {
349  G4cout << "Evaporated product #" << j << G4endl;
350  G4cout << results[j] << G4endl;
351  }
352  A = results[j]->GetA_asInt();
353  if(A <= 1) {
354  theResults.push_back(results[j]); // gamma, p, n
355  continue;
356  }
357  exEnergy = results[j]->GetExcitationEnergy();
358 
359  // hot fragment
360  if(exEnergy >= minExcitation) {
361  theEvapList.push_back(results[j]);
362 
363  // cold fragment
364  } else {
365  Z = results[j]->GetZ_asInt();
366 
367  // natural isotope
368  if(nist->GetIsotopeAbundance(Z, A) > 0.0) {
369  theResults.push_back(results[j]); // stable fragment
370 
371  } else {
372  theEvapList.push_back(results[j]);
373  }
374  }
375  } // end of loop on secondary
376  } // end of the loop over theEvapList
377  if(fVerbose > 2) {
378  G4cout << "## After 2nd step " << theEvapList.size() << " was evap; "
379  << thePhotoEvapList.size() << " for photo-evap; "
380  << theResults.size() << " results. " << G4endl;
381  }
382  // -----------------------
383  // Photon-Evaporation loop
384  // -----------------------
385 
386  // at this point only photon evaporation is possible
387  size_t kkmax = thePhotoEvapList.size();
388  for (kk=0; kk<kkmax; ++kk) {
389  frag = thePhotoEvapList[kk];
390  if(fVerbose > 2) {
391  G4cout << "Next photon evaporate: " << thePhotonEvaporation << G4endl;
392  G4cout << *frag << G4endl;
393  }
394  exEnergy = frag->GetExcitationEnergy();
395 
396  // photon de-excitation only for hot fragments
397  if(exEnergy > minExcitation) {
398  thePhotonEvaporation->BreakUpChain(&theResults, frag);
399  }
400 
401  // primary fragment is kept
402  theResults.push_back(frag);
403 
404  } // end of photon-evaporation loop
405  if(fVerbose > 2) {
406  G4cout << "## After 3d step " << theEvapList.size() << " was evap; "
407  << thePhotoEvapList.size() << " was photo-evap; "
408  << theResults.size() << " results. " << G4endl;
409  }
410  G4ReactionProductVector * theReactionProductVector =
412 
413  // MAC (24/07/08)
414  // To optimise the storing speed, we reserve space in memory for the vector
415  theReactionProductVector->reserve( theResults.size() );
416 
417  G4int theFragmentA, theFragmentZ;
418 
419  if(fVerbose > 1) {
420  G4cout << "### ExcitationHandler provides " << theResults.size()
421  << " evaporated products:" << G4endl;
422  }
423  kkmax = theResults.size();
424  for (kk=0; kk<kkmax; ++kk) {
425  frag = theResults[kk];
426  if(fVerbose > 1) { G4cout << *frag << G4endl; }
427 
428  theFragmentA = frag->GetA_asInt();
429  theFragmentZ = frag->GetZ_asInt();
430  G4double etot= frag->GetMomentum().e();
431  G4double eexc = 0.0;
432  const G4ParticleDefinition* theKindOfFragment = nullptr;
433  if (theFragmentA == 0) { // photon or e-
434  theKindOfFragment = frag->GetParticleDefinition();
435  } else if (theFragmentA == 1 && theFragmentZ == 0) { // neutron
436  theKindOfFragment = G4Neutron::NeutronDefinition();
437  } else if (theFragmentA == 1 && theFragmentZ == 1) { // proton
438  theKindOfFragment = G4Proton::ProtonDefinition();
439  } else if (theFragmentA == 2 && theFragmentZ == 1) { // deuteron
440  theKindOfFragment = G4Deuteron::DeuteronDefinition();
441  } else if (theFragmentA == 3 && theFragmentZ == 1) { // triton
442  theKindOfFragment = G4Triton::TritonDefinition();
443  } else if (theFragmentA == 3 && theFragmentZ == 2) { // helium3
444  theKindOfFragment = G4He3::He3Definition();
445  } else if (theFragmentA == 4 && theFragmentZ == 2) { // alpha
446  theKindOfFragment = G4Alpha::AlphaDefinition();;
447  } else {
448 
449  // fragment
450  eexc = frag->GetExcitationEnergy();
451  G4int idxf = frag->GetFloatingLevelNumber();
452  if(eexc < minExcitation) {
453  eexc = 0.0;
454  idxf = 0;
455  }
456 
457  theKindOfFragment = theTableOfIons->GetIon(theFragmentZ,theFragmentA,eexc,
458  G4Ions::FloatLevelBase(idxf));
459  if(fVerbose > 2) {
460  G4cout << "### EXCH: Find ion Z= " << theFragmentZ << " A= " << theFragmentA
461  << " Eexc(MeV)= " << eexc/MeV << " " << theKindOfFragment
462  << G4endl;
463  }
464  }
465  // fragment identified
466  if(theKindOfFragment) {
467  G4ReactionProduct * theNew = new G4ReactionProduct(theKindOfFragment);
468  theNew->SetMomentum(frag->GetMomentum().vect());
469  theNew->SetTotalEnergy(etot);
470  theNew->SetFormationTime(frag->GetCreationTime());
471  theReactionProductVector->push_back(theNew);
472 
473  // fragment not found out ground state is created
474  } else {
475  theKindOfFragment =
476  theTableOfIons->GetIon(theFragmentZ,theFragmentA,0.0,noFloat,0);
477  if(theKindOfFragment) {
478  G4ThreeVector mom(0.0,0.0,0.0);
479  G4double ionmass = theKindOfFragment->GetPDGMass();
480  if(etot <= ionmass) {
481  etot = ionmass;
482  } else {
483  G4double ptot = std::sqrt((etot - ionmass)*(etot + ionmass));
484  mom = (frag->GetMomentum().vect().unit())*ptot;
485  }
486  G4ReactionProduct * theNew = new G4ReactionProduct(theKindOfFragment);
487  theNew->SetMomentum(mom);
488  theNew->SetTotalEnergy(etot);
489  theNew->SetFormationTime(frag->GetCreationTime());
490  theReactionProductVector->push_back(theNew);
491  if(fVerbose > 2) {
492  G4cout << "### Find ion Z= " << theFragmentZ << " A= " << theFragmentA
493  << " ground state, energy corrected E(MeV)= " << etot << G4endl;
494  }
495  }
496  }
497  delete frag;
498  }
499  if(fVerbose > 2) {
500  G4cout << "@@@@@@@@@@ End G4Excitation Handler "<< G4endl;
501  }
502  return theReactionProductVector;
503 }
static G4Triton * TritonDefinition()
Definition: G4Triton.cc:90
G4int GetFloatingLevelNumber() const
Definition: G4Fragment.hh:427
static G4He3 * He3Definition()
Definition: G4He3.cc:89
virtual void BreakFragment(G4FragmentVector *results, G4Fragment *theNucleus)=0
std::ostringstream G4ExceptionDescription
Definition: globals.hh:76
virtual G4bool BreakUpChain(G4FragmentVector *theResult, G4Fragment *theNucleus)
void SetMomentum(const G4double x, const G4double y, const G4double z)
G4ParticleDefinition * GetIon(G4int Z, G4int A, G4int lvl=0)
Definition: G4IonTable.cc:503
static G4Proton * ProtonDefinition()
Definition: G4Proton.cc:88
virtual void BreakFragment(G4FragmentVector *, G4Fragment *theNucleus)
const G4ParticleDefinition * GetParticleDefinition() const
Definition: G4Fragment.hh:438
virtual G4FragmentVector * BreakItUp(const G4Fragment &theNucleus)=0
virtual G4bool IsApplicable(G4int Z, G4int A, G4double mass) const =0
int G4int
Definition: G4Types.hh:78
std::vector< G4ReactionProduct * > G4ReactionProductVector
static G4Ions::G4FloatLevelBase FloatLevelBase(char flbChar)
Definition: G4Ions.hh:189
Hep3Vector vect() const
G4GLOB_DLL std::ostream G4cout
double A(double temperature)
G4int GetA_asInt() const
Definition: G4Fragment.hh:266
G4double GetCreationTime() const
Definition: G4Fragment.hh:448
bool G4bool
Definition: G4Types.hh:79
const G4LorentzVector & GetMomentum() const
Definition: G4Fragment.hh:307
void SetTotalEnergy(const G4double en)
std::vector< G4Fragment * > G4FragmentVector
Definition: G4Fragment.hh:63
G4double GetIsotopeAbundance(G4int Z, G4int N) const
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
G4double GetPDGMass() const
Hep3Vector unit() const
G4int GetZ_asInt() const
Definition: G4Fragment.hh:271
#define G4endl
Definition: G4ios.hh:61
static constexpr double MeV
Definition: G4SIunits.hh:214
void SetFormationTime(G4double aTime)
double G4double
Definition: G4Types.hh:76
static G4Deuteron * DeuteronDefinition()
Definition: G4Deuteron.cc:89
static G4Alpha * AlphaDefinition()
Definition: G4Alpha.cc:84
static G4Neutron * NeutronDefinition()
Definition: G4Neutron.cc:99
#define noFloat
Definition: G4Ions.hh:118
G4double GetExcitationEnergy() const
Definition: G4Fragment.hh:283

Here is the call graph for this function:

Here is the caller graph for this function:

G4VEvaporation * G4ExcitationHandler::GetEvaporation ( )
inline

Definition at line 168 of file G4ExcitationHandler.hh.

169 {
170  return theEvaporation;
171 }

Here is the caller graph for this function:

G4VFermiBreakUp * G4ExcitationHandler::GetFermiModel ( )
inline

Definition at line 178 of file G4ExcitationHandler.hh.

179 {
180  return theFermiModel;
181 }
G4VMultiFragmentation * G4ExcitationHandler::GetMultiFragmentation ( )
inline

Definition at line 173 of file G4ExcitationHandler.hh.

174 {
175  return theMultiFragmentation;
176 }
G4VEvaporationChannel * G4ExcitationHandler::GetPhotonEvaporation ( )
inline

Definition at line 183 of file G4ExcitationHandler.hh.

184 {
185  return thePhotonEvaporation;
186 }
void G4ExcitationHandler::Initialise ( )

Definition at line 123 of file G4ExcitationHandler.cc.

124 {
125  if(isInitialised) { return; }
126  if(fVerbose > 0) {
127  G4cout << "G4ExcitationHandler::Initialise() started " << this << G4endl;
128  }
130  isInitialised = true;
131  SetParameters();
132  theMultiFragmentation = new G4StatMF();
133  theFermiModel->Initialise();
134  theEvaporation->InitialiseChannels();
136  G4cout << "Number of de-excitation channels "
137  << theEvaporation->GetNumberOfChannels();
138  if(fVerbose > 0) { G4cout << " " << this; }
139  G4cout << G4endl;
140  }
141 }
G4GLOB_DLL std::ostream G4cout
virtual void InitialiseChannels()
size_t GetNumberOfChannels() const
G4DeexPrecoParameters * GetParameters()
#define G4endl
Definition: G4ios.hh:61
G4bool IsMasterThread()
Definition: G4Threading.cc:146
virtual void Initialise()=0
static G4NuclearLevelData * GetInstance()

Here is the call graph for this function:

Here is the caller graph for this function:

void G4ExcitationHandler::ModelDescription ( std::ostream &  outFile) const

Definition at line 505 of file G4ExcitationHandler.cc.

506 {
507  outFile << "G4ExcitationHandler description\n"
508  << "This class samples de-excitation of excited nucleus using\n"
509  << "Fermi Break-up model for light fragments (Z < 9, A < 17), "
510  << "evaporation, fission, and photo-evaporation models. Evaporated\n"
511  << "particle may be proton, neutron, and other light fragment \n"
512  << "(Z < 13, A < 29). During photon evaporation produced gamma \n"
513  << "or electrons due to internal conversion \n";
514 }

Here is the caller graph for this function:

void G4ExcitationHandler::SetDeexChannelsType ( G4DeexChannelType  val)

Definition at line 181 of file G4ExcitationHandler.cc.

182 {
183  G4Evaporation* evap = static_cast<G4Evaporation*>(theEvaporation);
184  if(!evap) { return; }
185  if(val == fEvaporation) {
186  evap->SetDefaultChannel();
187  } else if(val == fCombined) {
188  evap->SetCombinedChannel();
189  } else if(val == fGEM) {
190  evap->SetGEMChannel();
191  }
192  evap->InitialiseChannels();
194  G4cout << "Number of de-excitation channels is changed to "
195  << theEvaporation->GetNumberOfChannels();
196  if(fVerbose > 0) { G4cout << " " << this; }
197  G4cout << G4endl;
198  }
199 }
void SetDefaultChannel()
void SetGEMChannel()
virtual void InitialiseChannels() final
G4GLOB_DLL std::ostream G4cout
size_t GetNumberOfChannels() const
void SetCombinedChannel()
#define G4endl
Definition: G4ios.hh:61
G4bool IsMasterThread()
Definition: G4Threading.cc:146

Here is the call graph for this function:

Here is the caller graph for this function:

void G4ExcitationHandler::SetEvaporation ( G4VEvaporation *  ptr,
G4bool  isLocal = false 
)

Definition at line 143 of file G4ExcitationHandler.cc.

144 {
145  if(ptr && ptr != theEvaporation) {
146  delete theEvaporation;
147  theEvaporation = ptr;
148  thePhotonEvaporation = ptr->GetPhotonEvaporation();
149  theEvaporation->SetFermiBreakUp(theFermiModel);
150  isEvapLocal = flag;
151  }
152 }
G4VEvaporationChannel * GetPhotonEvaporation()
void SetFermiBreakUp(G4VFermiBreakUp *ptr)

Here is the call graph for this function:

Here is the caller graph for this function:

void G4ExcitationHandler::SetFermiModel ( G4VFermiBreakUp *  ptr)

Definition at line 163 of file G4ExcitationHandler.cc.

164 {
165  if(ptr && ptr != theFermiModel) {
166  delete theFermiModel;
167  theFermiModel = ptr;
168  theEvaporation->SetFermiBreakUp(theFermiModel);
169  }
170 }
void SetFermiBreakUp(G4VFermiBreakUp *ptr)

Here is the call graph for this function:

Here is the caller graph for this function:

void G4ExcitationHandler::SetMaxAandZForFermiBreakUp ( G4int  anA,
G4int  aZ 
)
inline

Definition at line 157 of file G4ExcitationHandler.hh.

158 {
161 }
void SetMaxZForFermiBreakUp(G4int aZ)
void SetMaxAForFermiBreakUp(G4int anA)

Here is the call graph for this function:

Here is the caller graph for this function:

void G4ExcitationHandler::SetMaxAForFermiBreakUp ( G4int  anA)
inline

Definition at line 152 of file G4ExcitationHandler.hh.

153 {
154  maxAForFermiBreakUp = anA;
155 }

Here is the caller graph for this function:

void G4ExcitationHandler::SetMaxZForFermiBreakUp ( G4int  aZ)
inline

Definition at line 147 of file G4ExcitationHandler.hh.

148 {
149  maxZForFermiBreakUp = aZ;
150 }

Here is the caller graph for this function:

void G4ExcitationHandler::SetMinEForMultiFrag ( G4double  anE)
inline

Definition at line 163 of file G4ExcitationHandler.hh.

164 {
165  minEForMultiFrag = anE;
166 }

Here is the caller graph for this function:

void G4ExcitationHandler::SetMultiFragmentation ( G4VMultiFragmentation *  ptr)

Definition at line 155 of file G4ExcitationHandler.cc.

156 {
157  if(ptr && ptr != theMultiFragmentation) {
158  delete theMultiFragmentation;
159  theMultiFragmentation = ptr;
160  }
161 }

Here is the caller graph for this function:

void G4ExcitationHandler::SetOPTxs ( G4int  opt)
inline

Definition at line 188 of file G4ExcitationHandler.hh.

189 {}
void G4ExcitationHandler::SetPhotonEvaporation ( G4VEvaporationChannel *  ptr)

Definition at line 173 of file G4ExcitationHandler.cc.

174 {
175  if(ptr && ptr != thePhotonEvaporation) {
176  thePhotonEvaporation = ptr;
177  theEvaporation->SetPhotonEvaporation(ptr);
178  }
179 }
virtual void SetPhotonEvaporation(G4VEvaporationChannel *ptr)

Here is the call graph for this function:

void G4ExcitationHandler::UseSICB ( )
inline

Definition at line 191 of file G4ExcitationHandler.hh.

192 {}

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