Geant4  10.02.p03
G4EvaporationChannel Class Reference

#include <G4EvaporationChannel.hh>

Inheritance diagram for G4EvaporationChannel:
Collaboration diagram for G4EvaporationChannel:

Public Member Functions

 G4EvaporationChannel (G4int theA, G4int theZ, const G4String &aName, G4EvaporationProbability *aEmissionStrategy, G4VCoulombBarrier *aCoulombBarrier)
 
virtual ~G4EvaporationChannel ()
 
void Initialise ()
 
virtual G4double GetEmissionProbability (G4Fragment *fragment)
 
virtual G4FragmentEmittedFragment (G4Fragment *theNucleus)
 
virtual G4FragmentVectorBreakUp (const G4Fragment &theNucleus)
 
- Public Member Functions inherited from G4VEvaporationChannel
 G4VEvaporationChannel (const G4String &aName="")
 
virtual ~G4VEvaporationChannel ()
 
virtual G4double GetLifeTime (G4Fragment *theNucleus)
 
virtual G4FragmentVectorBreakUpFragment (G4Fragment *theNucleus)
 
virtual G4bool BreakUpChain (G4FragmentVector *theResult, G4Fragment *theNucleus)
 
virtual void Dump () const
 
virtual void SetICM (G4bool)
 
virtual void RDMForced (G4bool)
 
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

G4ThreeVector IsotropicVector (G4double Magnitude=1.0)
 
 G4EvaporationChannel (const G4EvaporationChannel &right)
 
const G4EvaporationChanneloperator= (const G4EvaporationChannel &right)
 
G4bool operator== (const G4EvaporationChannel &right) const
 
G4bool operator!= (const G4EvaporationChannel &right) const
 

Private Attributes

G4int theA
 
G4int theZ
 
G4double EvaporatedMass
 
G4double ResidualMass
 
G4EvaporationProbabilitytheProbability
 
G4VLevelDensityParametertheLevelDensityPtr
 
G4VCoulombBarriertheCoulombBarrier
 
G4double CoulombBarrier
 
G4PairingCorrectionpairingCorrection
 
G4int ResidualA
 
G4int ResidualZ
 
G4double EmissionProbability
 
G4double MaximalKineticEnergy
 

Additional Inherited Members

- Protected Attributes inherited from G4VEvaporationChannel
G4int OPTxs
 
G4bool useSICB
 

Detailed Description

Definition at line 48 of file G4EvaporationChannel.hh.

Constructor & Destructor Documentation

◆ G4EvaporationChannel() [1/2]

G4EvaporationChannel::G4EvaporationChannel ( G4int  theA,
G4int  theZ,
const G4String aName,
G4EvaporationProbability aEmissionStrategy,
G4VCoulombBarrier aCoulombBarrier 
)

Definition at line 53 of file G4EvaporationChannel.cc.

56  :
57  G4VEvaporationChannel(aName),
58  theA(anA),
59  theZ(aZ),
60  theProbability(aprob),
61  theCoulombBarrier(barrier),
63  MaximalKineticEnergy(-1000.0)
64 {
65  ResidualA = 0;
66  ResidualZ = 0;
71 }
static G4double GetNuclearMass(const G4double A, const G4double Z)
G4VEvaporationChannel(const G4String &aName="")
G4VLevelDensityParameter * theLevelDensityPtr
G4PairingCorrection * pairingCorrection
G4VCoulombBarrier * theCoulombBarrier
static G4PairingCorrection * GetInstance()
G4EvaporationProbability * theProbability
Here is the call graph for this function:

◆ ~G4EvaporationChannel()

G4EvaporationChannel::~G4EvaporationChannel ( )
virtual

Definition at line 73 of file G4EvaporationChannel.cc.

74 {
75  delete theLevelDensityPtr;
76 }
G4VLevelDensityParameter * theLevelDensityPtr

◆ G4EvaporationChannel() [2/2]

G4EvaporationChannel::G4EvaporationChannel ( const G4EvaporationChannel right)
private

Member Function Documentation

◆ BreakUp()

G4FragmentVector * G4EvaporationChannel::BreakUp ( const G4Fragment theNucleus)
virtual

Implements G4VEvaporationChannel.

Definition at line 160 of file G4EvaporationChannel.cc.

161 {
162  G4FragmentVector * theResult = new G4FragmentVector();
163  G4Fragment* frag0 = new G4Fragment(theNucleus);
164  G4Fragment* frag1 = EmittedFragment(frag0);
165  if(frag1) { theResult->push_back(frag1); }
166  theResult->push_back(frag0);
167  return theResult;
168 }
virtual G4Fragment * EmittedFragment(G4Fragment *theNucleus)
std::vector< G4Fragment * > G4FragmentVector
Definition: G4Fragment.hh:63
Here is the call graph for this function:

◆ EmittedFragment()

G4Fragment * G4EvaporationChannel::EmittedFragment ( G4Fragment theNucleus)
virtual

Reimplemented from G4VEvaporationChannel.

Definition at line 138 of file G4EvaporationChannel.cc.

139 {
140  G4Fragment* evFragment = 0;
141  G4double evEnergy = EvaporatedMass +
144 
146  (std::sqrt((evEnergy - EvaporatedMass)*(evEnergy + EvaporatedMass))));
147 
148  G4LorentzVector EvaporatedMomentum(momentum, evEnergy);
149  G4LorentzVector ResidualMomentum = theNucleus->GetMomentum();
150  EvaporatedMomentum.boost(ResidualMomentum.boostVector());
151 
152  evFragment = new G4Fragment(theA,theZ,EvaporatedMomentum);
153  ResidualMomentum -= EvaporatedMomentum;
154  theNucleus->SetZandA_asInt(ResidualZ, ResidualA);
155  theNucleus->SetMomentum(ResidualMomentum);
156 
157  return evFragment;
158 }
G4double SampleKineticEnergy(G4double minKineticEnergy, G4double maxKineticEnergy)
HepLorentzVector & boost(double, double, double)
void SetMomentum(const G4LorentzVector &value)
Definition: G4Fragment.hh:294
G4EvaporationProbability * theProbability
const G4LorentzVector & GetMomentum() const
Definition: G4Fragment.hh:289
Hep3Vector boostVector() const
void SetZandA_asInt(G4int Znew, G4int Anew)
Definition: G4Fragment.hh:266
G4ThreeVector IsotropicVector(G4double Magnitude=1.0)
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetEmissionProbability()

G4double G4EvaporationChannel::GetEmissionProbability ( G4Fragment fragment)
virtual

Implements G4VEvaporationChannel.

Definition at line 88 of file G4EvaporationChannel.cc.

89 {
90  G4int FragA = fragment->GetA_asInt();
91  G4int FragZ = fragment->GetZ_asInt();
92  ResidualA = FragA - theA;
93  ResidualZ = FragZ - theZ;
94  //G4cout << "G4EvaporationChannel::Initialize Z= " << theZ << " A= " << theA
95  // << " FragZ= " << FragZ << " FragA= " << FragA << G4endl;
96  EmissionProbability = 0.0;
97 
98  // Only channels which are physically allowed are taken into account
99  if (ResidualA >= ResidualZ && ResidualZ > 0 && ResidualA >= theA) {
100 
101  //Effective excitation energy
102  G4double ExEnergy = fragment->GetExcitationEnergy();
103  G4double delta0 =
105  G4double delta1 =
108  G4double FragmentMass = fragment->GetGroundStateMass();
109  G4double Etot = FragmentMass + ExEnergy;
110  G4double ResMass = ResidualMass + delta1;
111 
112  if(ExEnergy >= delta0 && Etot > ResMass + EvaporatedMass) {
113 
114  // Maximal Kinetic Energy
115  MaximalKineticEnergy = ((Etot-ResMass)*(Etot+ResMass)
117 
118  // The threshold for charged particle emission must be set to
119  // 0 if Coulomb cutoff is included in the cross sections
120  // Of course for OPTxs=0 we have the Coulomb barrier
121 
122  CoulombBarrier = 0.0;
123  if (OPTxs==0 || useSICB) {
124  CoulombBarrier =
126  }
129  TotalProbability(*fragment, CoulombBarrier, MaximalKineticEnergy);
130  }
131  }
132  }
133  //G4cout << "G4EvaporationChannel:: probability= "
134  // << EmissionProbability << G4endl;
135  return EmissionProbability;
136 }
G4double GetExcitationEnergy() const
Definition: G4Fragment.hh:273
G4double GetPairingCorrection(G4int A, G4int Z) const
static G4double GetNuclearMass(const G4double A, const G4double Z)
G4int GetA_asInt() const
Definition: G4Fragment.hh:256
G4double GetGroundStateMass() const
Definition: G4Fragment.hh:278
int G4int
Definition: G4Types.hh:78
G4int GetZ_asInt() const
Definition: G4Fragment.hh:261
G4PairingCorrection * pairingCorrection
G4VCoulombBarrier * theCoulombBarrier
G4EvaporationProbability * theProbability
virtual G4double GetCoulombBarrier(G4int ARes, G4int ZRes, G4double U) const =0
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:

◆ Initialise()

void G4EvaporationChannel::Initialise ( )
virtual

Reimplemented from G4VEvaporationChannel.

Definition at line 78 of file G4EvaporationChannel.cc.

79 {
80  //for inverse cross section choice
82  // for superimposed Coulomb Barrier for inverse cross sections
84 
86 }
G4EvaporationProbability * theProbability
Here is the call graph for this function:

◆ IsotropicVector()

G4ThreeVector G4EvaporationChannel::IsotropicVector ( G4double  Magnitude = 1.0)
private

Definition at line 170 of file G4EvaporationChannel.cc.

173 {
174  G4double CosTheta = 1.0 - 2.0*G4UniformRand();
175  G4double SinTheta = std::sqrt(1.0 - CosTheta*CosTheta);
176  G4double Phi = twopi*G4UniformRand();
177  G4ThreeVector Vector(Magnitude*std::cos(Phi)*SinTheta,
178  Magnitude*std::sin(Phi)*SinTheta,
179  Magnitude*CosTheta);
180  return Vector;
181 }
#define G4UniformRand()
Definition: Randomize.hh:97
static const double twopi
Definition: G4SIunits.hh:75
double G4double
Definition: G4Types.hh:76
Here is the caller graph for this function:

◆ operator!=()

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

◆ operator=()

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

◆ operator==()

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

Member Data Documentation

◆ CoulombBarrier

G4double G4EvaporationChannel::CoulombBarrier
private

Definition at line 98 of file G4EvaporationChannel.hh.

◆ EmissionProbability

G4double G4EvaporationChannel::EmissionProbability
private

Definition at line 116 of file G4EvaporationChannel.hh.

◆ EvaporatedMass

G4double G4EvaporationChannel::EvaporatedMass
private

Definition at line 87 of file G4EvaporationChannel.hh.

◆ MaximalKineticEnergy

G4double G4EvaporationChannel::MaximalKineticEnergy
private

Definition at line 119 of file G4EvaporationChannel.hh.

◆ pairingCorrection

G4PairingCorrection* G4EvaporationChannel::pairingCorrection
private

Definition at line 100 of file G4EvaporationChannel.hh.

◆ ResidualA

G4int G4EvaporationChannel::ResidualA
private

Definition at line 110 of file G4EvaporationChannel.hh.

◆ ResidualMass

G4double G4EvaporationChannel::ResidualMass
private

Definition at line 88 of file G4EvaporationChannel.hh.

◆ ResidualZ

G4int G4EvaporationChannel::ResidualZ
private

Definition at line 113 of file G4EvaporationChannel.hh.

◆ theA

G4int G4EvaporationChannel::theA
private

Definition at line 82 of file G4EvaporationChannel.hh.

◆ theCoulombBarrier

G4VCoulombBarrier* G4EvaporationChannel::theCoulombBarrier
private

Definition at line 97 of file G4EvaporationChannel.hh.

◆ theLevelDensityPtr

G4VLevelDensityParameter* G4EvaporationChannel::theLevelDensityPtr
private

Definition at line 94 of file G4EvaporationChannel.hh.

◆ theProbability

G4EvaporationProbability* G4EvaporationChannel::theProbability
private

Definition at line 91 of file G4EvaporationChannel.hh.

◆ theZ

G4int G4EvaporationChannel::theZ
private

Definition at line 85 of file G4EvaporationChannel.hh.


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