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

#include <G4GEMChannel.hh>

Inherits G4VEvaporationChannel.

Inherited by G4AlphaGEMChannel, G4B10GEMChannel, G4B11GEMChannel, G4B12GEMChannel, G4B13GEMChannel, G4B8GEMChannel, G4Be10GEMChannel, G4Be11GEMChannel, G4Be12GEMChannel, G4Be7GEMChannel, G4Be9GEMChannel, G4C10GEMChannel, G4C11GEMChannel, G4C12GEMChannel, G4C13GEMChannel, G4C14GEMChannel, G4C15GEMChannel, G4C16GEMChannel, G4DeuteronGEMChannel, G4F17GEMChannel, G4F18GEMChannel, G4F19GEMChannel, G4F20GEMChannel, G4F21GEMChannel, G4He3GEMChannel, G4He6GEMChannel, G4He8GEMChannel, G4Li6GEMChannel, G4Li7GEMChannel, G4Li8GEMChannel, G4Li9GEMChannel, G4Mg22GEMChannel, G4Mg23GEMChannel, G4Mg24GEMChannel, G4Mg25GEMChannel, G4Mg26GEMChannel, G4Mg27GEMChannel, G4Mg28GEMChannel, G4N12GEMChannel, G4N13GEMChannel, G4N14GEMChannel, G4N15GEMChannel, G4N16GEMChannel, G4N17GEMChannel, G4Na21GEMChannel, G4Na22GEMChannel, G4Na23GEMChannel, G4Na24GEMChannel, G4Na25GEMChannel, G4Ne18GEMChannel, G4Ne19GEMChannel, G4Ne20GEMChannel, G4Ne21GEMChannel, G4Ne22GEMChannel, G4Ne23GEMChannel, G4Ne24GEMChannel, G4NeutronGEMChannel, G4O14GEMChannel, G4O15GEMChannel, G4O16GEMChannel, G4O17GEMChannel, G4O18GEMChannel, G4O19GEMChannel, G4O20GEMChannel, G4ProtonGEMChannel, and G4TritonGEMChannel.

Collaboration diagram for G4GEMChannel:

Public Member Functions

 G4GEMChannel (G4int theA, G4int theZ, const G4String &aName, G4GEMProbability *aEmissionStrategy)
 
virtual ~G4GEMChannel ()
 
virtual G4double GetEmissionProbability (G4Fragment *theNucleus)
 
virtual G4FragmentEmittedFragment (G4Fragment *theNucleus)
 
virtual void Dump () const
 
void SetLevelDensityParameter (G4VLevelDensityParameter *aLevelDensity)
 
- Public Member Functions inherited from G4VEvaporationChannel
 G4VEvaporationChannel (const G4String &aName="")
 
virtual ~G4VEvaporationChannel ()
 
virtual void Initialise ()
 
virtual G4double GetLifeTime (G4Fragment *theNucleus)
 
virtual G4bool BreakUpChain (G4FragmentVector *theResult, G4Fragment *theNucleus)
 
G4FragmentVectorBreakUpFragment (G4Fragment *theNucleus)
 
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)
 

Additional Inherited Members

- Protected Attributes inherited from G4VEvaporationChannel
G4int OPTxs
 
G4bool useSICB
 

Detailed Description

Definition at line 47 of file G4GEMChannel.hh.

Constructor & Destructor Documentation

G4GEMChannel::G4GEMChannel ( G4int  theA,
G4int  theZ,
const G4String aName,
G4GEMProbability aEmissionStrategy 
)
explicit

Definition at line 48 of file G4GEMChannel.cc.

49  :
50  G4VEvaporationChannel(aName),
51  A(theA),
52  Z(theZ),
53  theEvaporationProbabilityPtr(aEmissionStrategy),
54  EmissionProbability(0.0),
55  MaximalKineticEnergy(-CLHEP::GeV)
56 {
57  theCoulombBarrierPtr = new G4GEMCoulombBarrier(theA, theZ);
58  theEvaporationProbabilityPtr->SetCoulomBarrier(theCoulombBarrierPtr);
59  theLevelDensityPtr = new G4EvaporationLevelDensityParameter;
60  MyOwnLevelDensity = true;
61  EvaporatedMass = G4NucleiProperties::GetNuclearMass(A, Z);
62  ResidualMass = CoulombBarrier = 0.0;
63  fG4pow = G4Pow::GetInstance();
64  ResidualZ = ResidualA = 0;
65  pairingCorrection = G4PairingCorrection::GetInstance();
66 }
static G4Pow * GetInstance()
Definition: G4Pow.cc:55
static G4double GetNuclearMass(const G4double A, const G4double Z)
G4VEvaporationChannel(const G4String &aName="")
void SetCoulomBarrier(const G4VCoulombBarrier *aCoulombBarrierStrategy)
double A(double temperature)
static G4PairingCorrection * GetInstance()
static constexpr double GeV

Here is the call graph for this function:

G4GEMChannel::~G4GEMChannel ( )
virtual

Definition at line 68 of file G4GEMChannel.cc.

69 {
70  if (MyOwnLevelDensity) { delete theLevelDensityPtr; }
71  delete theCoulombBarrierPtr;
72 }

Member Function Documentation

void G4GEMChannel::Dump ( ) const
virtual

Reimplemented from G4VEvaporationChannel.

Definition at line 263 of file G4GEMChannel.cc.

264 {
265  theEvaporationProbabilityPtr->Dump();
266 }
void Dump() const

Here is the call graph for this function:

G4Fragment * G4GEMChannel::EmittedFragment ( G4Fragment theNucleus)
virtual

Reimplemented from G4VEvaporationChannel.

Definition at line 127 of file G4GEMChannel.cc.

128 {
129  G4Fragment* evFragment = 0;
130  G4double evEnergy = SampleKineticEnergy(*theNucleus) + EvaporatedMass;
131 
132  G4ThreeVector momentum(IsotropicVector
133  (std::sqrt((evEnergy - EvaporatedMass)*(evEnergy + EvaporatedMass))));
134 
135  G4LorentzVector EvaporatedMomentum(momentum, evEnergy);
136  G4LorentzVector ResidualMomentum = theNucleus->GetMomentum();
137  EvaporatedMomentum.boost(ResidualMomentum.boostVector());
138 
139  evFragment = new G4Fragment(A, Z, EvaporatedMomentum);
140  ResidualMomentum -= EvaporatedMomentum;
141  theNucleus->SetZandA_asInt(ResidualZ, ResidualA);
142  theNucleus->SetMomentum(ResidualMomentum);
143 
144  return evFragment;
145 }
Hep3Vector boostVector() const
double A(double temperature)
const G4LorentzVector & GetMomentum() const
Definition: G4Fragment.hh:307
HepLorentzVector & boost(double, double, double)
void SetMomentum(const G4LorentzVector &value)
Definition: G4Fragment.hh:312
void SetZandA_asInt(G4int Znew, G4int Anew)
Definition: G4Fragment.hh:276
double G4double
Definition: G4Types.hh:76

Here is the call graph for this function:

G4double G4GEMChannel::GetEmissionProbability ( G4Fragment theNucleus)
virtual

Implements G4VEvaporationChannel.

Definition at line 74 of file G4GEMChannel.cc.

75 {
76  G4int anA = fragment->GetA_asInt();
77  G4int aZ = fragment->GetZ_asInt();
78  ResidualA = anA - A;
79  ResidualZ = aZ - Z;
80  /*
81  G4cout << "G4GEMChannel: Z= " << Z << " A= " << A
82  << " FragmentZ= " << aZ << " FragmentA= " << anA
83  << " Zres= " << ResidualZ << " Ares= " << ResidualA
84  << G4endl;
85  */
86  // We only take into account channels which are physically allowed
87  EmissionProbability = 0.0;
88 
89  // Only channels which are physically allowed are taken into account
90  if (ResidualA >= ResidualZ && ResidualZ > 0 && ResidualA >= A) {
91 
92  //Effective excitation energy
93  G4double ExEnergy = fragment->GetExcitationEnergy()
94  - pairingCorrection->GetPairingCorrection(anA, aZ);
95  if(ExEnergy > 0.0) {
96  ResidualMass = G4NucleiProperties::GetNuclearMass(ResidualA, ResidualZ);
97  G4double FragmentMass = fragment->GetGroundStateMass();
98  G4double Etot = FragmentMass + ExEnergy;
99  // Coulomb Barrier calculation
100  CoulombBarrier =
101  theCoulombBarrierPtr->GetCoulombBarrier(ResidualA,ResidualZ,ExEnergy);
102  /*
103  G4cout << "Eexc(MeV)= " << ExEnergy/MeV
104  << " CoulBarrier(MeV)= " << CoulombBarrier/MeV << G4endl;
105  */
106  if(Etot > ResidualMass + EvaporatedMass + CoulombBarrier) {
107 
108  // Maximal Kinetic Energy
109  MaximalKineticEnergy = ((Etot-ResidualMass)*(Etot+ResidualMass)
110  + EvaporatedMass*EvaporatedMass)/(2.0*Etot)
111  - EvaporatedMass - CoulombBarrier;
112 
113  //G4cout << "CBarrier(MeV)= " << CoulombBarrier/MeV << G4endl;
114 
115  if (MaximalKineticEnergy > 0.0) {
116  // Total emission probability for this channel
117  EmissionProbability = theEvaporationProbabilityPtr->
118  EmissionProbability(*fragment, MaximalKineticEnergy);
119  }
120  }
121  }
122  }
123  //G4cout << "Prob= " << EmissionProbability << G4endl;
124  return EmissionProbability;
125 }
static G4double GetNuclearMass(const G4double A, const G4double Z)
int G4int
Definition: G4Types.hh:78
double A(double temperature)
G4double GetPairingCorrection(G4int A, G4int Z) const
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:

void G4GEMChannel::SetLevelDensityParameter ( G4VLevelDensityParameter aLevelDensity)
inline

Definition at line 63 of file G4GEMChannel.hh.

64  {
65  if (MyOwnLevelDensity) { delete theLevelDensityPtr; }
66  theLevelDensityPtr = aLevelDensity;
67  MyOwnLevelDensity = false;
68  }

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