Geant4  10.02.p03
G4PhotonEvaporationOLD Class Reference

#include <G4PhotonEvaporationOLD.hh>

Inheritance diagram for G4PhotonEvaporationOLD:
Collaboration diagram for G4PhotonEvaporationOLD:

Public Member Functions

 G4PhotonEvaporationOLD (const G4String &aName="")
 
virtual ~G4PhotonEvaporationOLD ()
 
virtual G4FragmentEmittedFragment (G4Fragment *theNucleus)
 
virtual G4bool BreakUpChain (G4FragmentVector *theResult, G4Fragment *theNucleus)
 
virtual G4FragmentVectorBreakUpFragment (G4Fragment *theNucleus)
 
virtual G4FragmentVectorBreakItUp (const G4Fragment &nucleus)
 
virtual G4FragmentVectorBreakUp (const G4Fragment &nucleus)
 
virtual G4double GetEmissionProbability (G4Fragment *theNucleus)
 
virtual void SetEmissionStrategy (G4VEmissionProbability *probAlgorithm)
 
void SetVerboseLevel (G4int verbose)
 
virtual void SetICM (G4bool)
 
virtual void RDMForced (G4bool)
 
void SetMaxHalfLife (G4double)
 
void SetTimeLimit (G4double value)
 
void SetEOccupancy (G4ElectronOccupancy eOccupancy)
 
G4ElectronOccupancy GetEOccupancy ()
 
G4int GetVacantShellNumber ()
 
- Public Member Functions inherited from G4VEvaporationChannel
 G4VEvaporationChannel (const G4String &aName="")
 
virtual ~G4VEvaporationChannel ()
 
virtual void Initialise ()
 
virtual G4double GetLifeTime (G4Fragment *theNucleus)
 
virtual void Dump () const
 
virtual G4double GetFinalLevelEnergy (G4int Z, G4int A, G4double energy)
 
virtual G4double GetUpperLevelEnergy (G4int Z, G4int A)
 
G4double GetMaxLevelEnergy (G4int Z, G4int A)
 
G4double GetNearestLevelEnergy (G4int Z, G4int A, G4double energy)
 
void SetPhotonEvaporation (G4VEvaporationChannel *p)
 
void SetOPTxs (G4int opt)
 
void UseSICB (G4bool use)
 

Private Member Functions

 G4PhotonEvaporationOLD (const G4PhotonEvaporationOLD &right)
 
const G4PhotonEvaporationOLDoperator= (const G4PhotonEvaporationOLD &right)
 
G4bool operator== (const G4PhotonEvaporationOLD &right) const
 
G4bool operator!= (const G4PhotonEvaporationOLD &right) const
 

Private Attributes

G4int verbose
 
G4bool myOwnProbAlgorithm
 
G4VEmissionProbabilityprobAlgorithm
 
G4VGammaDeexcitationdiscrDeexcitation
 
G4VGammaDeexcitationcontDeexcitation
 
G4ElectronOccupancy eOccupancy
 
G4int vShellNumber
 
G4Fragmentnucleus
 
G4double gammaE
 

Additional Inherited Members

- Protected Attributes inherited from G4VEvaporationChannel
G4int OPTxs
 
G4bool useSICB
 

Detailed Description

Definition at line 76 of file G4PhotonEvaporationOLD.hh.

Constructor & Destructor Documentation

◆ G4PhotonEvaporationOLD() [1/2]

G4PhotonEvaporationOLD::G4PhotonEvaporationOLD ( const G4String aName = "")

Definition at line 77 of file G4PhotonEvaporationOLD.cc.

78  : G4VEvaporationChannel(aName),
79  verbose(0), myOwnProbAlgorithm(true),
80  eOccupancy(0), vShellNumber(-1), gammaE(0.)
81 {
86 
87  p->SetICM(false);
88 
89  // Time limits
90  G4double timeLimit = DBL_MAX;
91  char* env = getenv("G4AddTimeLimitToPhotonEvaporation");
92  if(env) { timeLimit = 1.e-16*second; }
93 
94  // Time for short-cut simulation of photon evaporationOLD
95  p->SetTimeLimit(timeLimit);
96 
97  // Default time limit for isomere production
99  // SetMaxHalfLife(1.e-6*second);
100 
101  nucleus = 0;
102 }
G4VEvaporationChannel(const G4String &aName="")
G4ElectronOccupancy eOccupancy
void SetTimeLimit(G4double value)
static const double second
Definition: G4SIunits.hh:156
G4VGammaDeexcitation * contDeexcitation
G4VGammaDeexcitation * discrDeexcitation
double G4double
Definition: G4Types.hh:76
#define DBL_MAX
Definition: templates.hh:83
G4VEmissionProbability * probAlgorithm
Here is the call graph for this function:

◆ ~G4PhotonEvaporationOLD()

G4PhotonEvaporationOLD::~G4PhotonEvaporationOLD ( )
virtual

Definition at line 104 of file G4PhotonEvaporationOLD.cc.

105 {
107  delete discrDeexcitation;
108  delete contDeexcitation;
109 }
G4VGammaDeexcitation * contDeexcitation
G4VGammaDeexcitation * discrDeexcitation
G4VEmissionProbability * probAlgorithm

◆ G4PhotonEvaporationOLD() [2/2]

G4PhotonEvaporationOLD::G4PhotonEvaporationOLD ( const G4PhotonEvaporationOLD right)
private

Member Function Documentation

◆ BreakItUp()

G4FragmentVector * G4PhotonEvaporationOLD::BreakItUp ( const G4Fragment nucleus)
virtual

Definition at line 180 of file G4PhotonEvaporationOLD.cc.

181 {
182  //G4cout << "G4PhotonEvaporationOLD::BreakItUp" << G4endl;
183  G4Fragment* aNucleus = new G4Fragment(theNucleus);
184  G4FragmentVector* products = new G4FragmentVector();
185  BreakUpChain(products, aNucleus);
186  products->push_back(aNucleus);
187  return products;
188 }
std::vector< G4Fragment * > G4FragmentVector
Definition: G4Fragment.hh:63
virtual G4bool BreakUpChain(G4FragmentVector *theResult, G4Fragment *theNucleus)
Here is the call graph for this function:

◆ BreakUp()

G4FragmentVector * G4PhotonEvaporationOLD::BreakUp ( const G4Fragment nucleus)
virtual

Implements G4VEvaporationChannel.

Definition at line 169 of file G4PhotonEvaporationOLD.cc.

170 {
171  //G4cout << "G4PhotonEvaporationOLD::BreakUp" << G4endl;
172  G4Fragment* aNucleus = new G4Fragment(theNucleus);
173  G4FragmentVector* products = new G4FragmentVector();
174  //discrDeexcitation->DoChain(products, aNucleus);
175  BreakUpChain(products, aNucleus);
176  products->push_back(aNucleus);
177  return products;
178 }
std::vector< G4Fragment * > G4FragmentVector
Definition: G4Fragment.hh:63
virtual G4bool BreakUpChain(G4FragmentVector *theResult, G4Fragment *theNucleus)
Here is the call graph for this function:

◆ BreakUpChain()

G4bool G4PhotonEvaporationOLD::BreakUpChain ( G4FragmentVector theResult,
G4Fragment theNucleus 
)
virtual

Reimplemented from G4VEvaporationChannel.

Definition at line 139 of file G4PhotonEvaporationOLD.cc.

141 {
142  //G4cout << "G4PhotonEvaporationOLD::BreakUpChain" << G4endl;
143  G4Fragment* gamma = 0;
144  // one continues emission is not excluded
145  if(contDeexcitation->CanDoTransition(aNucleus)) {
146  gamma = contDeexcitation->GenerateGamma(aNucleus);
147  if(gamma) {
148  if (verbose > 1) {
149  G4cout << "G4PhotonEvaporationOLD::EmittedFragment continium deex: "
150  << gamma << G4endl;
151  G4cout << " Residual: " << aNucleus << G4endl;
152  }
153  products->push_back(gamma);
154  }
155  }
156  // main emissions are discrete
157  discrDeexcitation->DoChain(products, aNucleus);
158  return false;
159 }
virtual G4bool CanDoTransition(G4Fragment *aNucleus)=0
G4GLOB_DLL std::ostream G4cout
G4Fragment * GenerateGamma(G4Fragment *nucleus)
G4VGammaDeexcitation * contDeexcitation
G4VGammaDeexcitation * discrDeexcitation
#define G4endl
Definition: G4ios.hh:61
void DoChain(G4FragmentVector *, G4Fragment *nucleus)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ BreakUpFragment()

G4FragmentVector * G4PhotonEvaporationOLD::BreakUpFragment ( G4Fragment theNucleus)
virtual

Reimplemented from G4VEvaporationChannel.

Definition at line 161 of file G4PhotonEvaporationOLD.cc.

162 {
163  //G4cout << "G4PhotonEvaporationOLD::BreakUpFragment" << G4endl;
164  G4FragmentVector* products = new G4FragmentVector();
165  BreakUpChain(products, aNucleus);
166  return products;
167 }
std::vector< G4Fragment * > G4FragmentVector
Definition: G4Fragment.hh:63
virtual G4bool BreakUpChain(G4FragmentVector *theResult, G4Fragment *theNucleus)
Here is the call graph for this function:

◆ EmittedFragment()

G4Fragment * G4PhotonEvaporationOLD::EmittedFragment ( G4Fragment theNucleus)
virtual

Reimplemented from G4VEvaporationChannel.

Definition at line 111 of file G4PhotonEvaporationOLD.cc.

112 {
113  //G4cout << "G4PhotonEvaporationOLD::EmittedFragment" << G4endl;
114  vShellNumber = -1;
115  G4Fragment* gamma = 0;
116  if(contDeexcitation->CanDoTransition(aNucleus)) {
117  gamma = contDeexcitation->GenerateGamma(aNucleus);
118  if(gamma && verbose > 1) {
119  G4cout << "G4PhotonEvaporationOLD::EmittedFragment continium deex: "
120  << gamma << G4endl;
121  G4cout << " Residual: " << aNucleus << G4endl;
122  }
123  } else if(discrDeexcitation->CanDoTransition(aNucleus)) {
124 
125  // Do one photon emission by the discrete deexcitation
126  gamma = discrDeexcitation->GenerateGamma(aNucleus);
127  if(gamma) {
129  if (verbose > 1) {
130  G4cout << "G4PhotonEvaporationOLD::EmittedFragment discrete deex: "
131  << gamma << G4endl;
132  G4cout << " Residual: " << aNucleus << G4endl;
133  }
134  }
135  }
136  return gamma;
137 }
virtual G4bool CanDoTransition(G4Fragment *aNucleus)=0
G4GLOB_DLL std::ostream G4cout
G4Fragment * GenerateGamma(G4Fragment *nucleus)
G4VGammaDeexcitation * contDeexcitation
G4VGammaDeexcitation * discrDeexcitation
#define G4endl
Definition: G4ios.hh:61
Here is the call graph for this function:

◆ GetEmissionProbability()

G4double G4PhotonEvaporationOLD::GetEmissionProbability ( G4Fragment theNucleus)
virtual

Implements G4VEvaporationChannel.

Definition at line 191 of file G4PhotonEvaporationOLD.cc.

192 {
193  G4double prob = 0.0;
194  G4int Z = theNucleus->GetZ_asInt();
195  G4int A = theNucleus->GetA_asInt();
196  G4double eexc = theNucleus->GetExcitationEnergy();
197  if(0 < Z && Z < A && eexc > tolerance) {
198  prob = probAlgorithm->EmissionProbability(*theNucleus, eexc);
199  }
200  return prob;
201 }
G4double GetExcitationEnergy() const
Definition: G4Fragment.hh:273
G4int GetA_asInt() const
Definition: G4Fragment.hh:256
int G4int
Definition: G4Types.hh:78
double A(double temperature)
G4int GetZ_asInt() const
Definition: G4Fragment.hh:261
Float_t Z
static const G4double tolerance
double G4double
Definition: G4Types.hh:76
virtual G4double EmissionProbability(const G4Fragment &fragment, const G4double anEnergy)=0
G4VEmissionProbability * probAlgorithm
Here is the call graph for this function:

◆ GetEOccupancy()

G4ElectronOccupancy G4PhotonEvaporationOLD::GetEOccupancy ( )
inline

Definition at line 116 of file G4PhotonEvaporationOLD.hh.

116 { return eOccupancy;} ;
G4ElectronOccupancy eOccupancy

◆ GetVacantShellNumber()

G4int G4PhotonEvaporationOLD::GetVacantShellNumber ( )
inline

Definition at line 118 of file G4PhotonEvaporationOLD.hh.

◆ operator!=()

G4bool G4PhotonEvaporationOLD::operator!= ( const G4PhotonEvaporationOLD right) const
private

◆ operator=()

const G4PhotonEvaporationOLD& G4PhotonEvaporationOLD::operator= ( const G4PhotonEvaporationOLD right)
private

◆ operator==()

G4bool G4PhotonEvaporationOLD::operator== ( const G4PhotonEvaporationOLD right) const
private

◆ RDMForced()

void G4PhotonEvaporationOLD::RDMForced ( G4bool  fromRDM)
virtual

Reimplemented from G4VEvaporationChannel.

Definition at line 233 of file G4PhotonEvaporationOLD.cc.

234 {
235  static_cast<G4DiscreteGammaDeexcitation*>(discrDeexcitation)->SetRDM(fromRDM);
236 }
G4VGammaDeexcitation * discrDeexcitation

◆ SetEmissionStrategy()

void G4PhotonEvaporationOLD::SetEmissionStrategy ( G4VEmissionProbability probAlgorithm)
virtual

Definition at line 204 of file G4PhotonEvaporationOLD.cc.

205 {
206  if(myOwnProbAlgorithm) { delete probAlgorithm; }
207  probAlgorithm = alg;
208  myOwnProbAlgorithm = false;
209 }
G4VEmissionProbability * probAlgorithm

◆ SetEOccupancy()

void G4PhotonEvaporationOLD::SetEOccupancy ( G4ElectronOccupancy  eOccupancy)

Definition at line 238 of file G4PhotonEvaporationOLD.cc.

239 {
241 }
void SetEO(G4ElectronOccupancy eo)
G4VGammaDeexcitation * discrDeexcitation
Here is the call graph for this function:

◆ SetICM()

void G4PhotonEvaporationOLD::SetICM ( G4bool  ic)
virtual

Reimplemented from G4VEvaporationChannel.

Definition at line 218 of file G4PhotonEvaporationOLD.cc.

◆ SetMaxHalfLife()

void G4PhotonEvaporationOLD::SetMaxHalfLife ( G4double  hl)

Definition at line 223 of file G4PhotonEvaporationOLD.cc.

Here is the caller graph for this function:

◆ SetTimeLimit()

void G4PhotonEvaporationOLD::SetTimeLimit ( G4double  value)

Definition at line 228 of file G4PhotonEvaporationOLD.cc.

229 {
231 }
void SetTimeLimit(G4double value)
G4VGammaDeexcitation * discrDeexcitation
Here is the call graph for this function:

◆ SetVerboseLevel()

void G4PhotonEvaporationOLD::SetVerboseLevel ( G4int  verbose)

Definition at line 211 of file G4PhotonEvaporationOLD.cc.

212 {
213  verbose = verb;
216 }
void SetVerboseLevel(G4int verbose)
G4VGammaDeexcitation * contDeexcitation
G4VGammaDeexcitation * discrDeexcitation
Here is the call graph for this function:

Member Data Documentation

◆ contDeexcitation

G4VGammaDeexcitation* G4PhotonEvaporationOLD::contDeexcitation
private

Definition at line 126 of file G4PhotonEvaporationOLD.hh.

◆ discrDeexcitation

G4VGammaDeexcitation* G4PhotonEvaporationOLD::discrDeexcitation
private

Definition at line 125 of file G4PhotonEvaporationOLD.hh.

◆ eOccupancy

G4ElectronOccupancy G4PhotonEvaporationOLD::eOccupancy
private

Definition at line 128 of file G4PhotonEvaporationOLD.hh.

◆ gammaE

G4double G4PhotonEvaporationOLD::gammaE
private

Definition at line 132 of file G4PhotonEvaporationOLD.hh.

◆ myOwnProbAlgorithm

G4bool G4PhotonEvaporationOLD::myOwnProbAlgorithm
private

Definition at line 123 of file G4PhotonEvaporationOLD.hh.

◆ nucleus

G4Fragment* G4PhotonEvaporationOLD::nucleus
private

Definition at line 131 of file G4PhotonEvaporationOLD.hh.

◆ probAlgorithm

G4VEmissionProbability* G4PhotonEvaporationOLD::probAlgorithm
private

Definition at line 124 of file G4PhotonEvaporationOLD.hh.

◆ verbose

G4int G4PhotonEvaporationOLD::verbose
private

Definition at line 118 of file G4PhotonEvaporationOLD.hh.

◆ vShellNumber

G4int G4PhotonEvaporationOLD::vShellNumber
private

Definition at line 129 of file G4PhotonEvaporationOLD.hh.


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