Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
G4VPreCompoundFragment.hh
Go to the documentation of this file.
1//
2// ********************************************************************
3// * License and Disclaimer *
4// * *
5// * The Geant4 software is copyright of the Copyright Holders of *
6// * the Geant4 Collaboration. It is provided under the terms and *
7// * conditions of the Geant4 Software License, included in the file *
8// * LICENSE and available at http://cern.ch/geant4/license . These *
9// * include a list of copyright holders. *
10// * *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work make any representation or warranty, express or implied, *
14// * regarding this software system or assume any liability for its *
15// * use. Please see the license in the file LICENSE and URL above *
16// * for the full disclaimer and the limitation of liability. *
17// * *
18// * This code implementation is the result of the scientific and *
19// * technical work of the GEANT4 collaboration. *
20// * By using, copying, modifying or distributing the software (or *
21// * any work based on the software) you agree to acknowledge its *
22// * use in resulting scientific publications, and indicate your *
23// * acceptance of all terms of the Geant4 Software license. *
24// ********************************************************************
25//
26// $Id$
27//
28// J. M. Quesada (August 2008).
29// Based on previous work by V. Lara
30//
31// Modif (03 September 2008) by J. M. Quesada for external choice of inverse
32// cross section option
33// JMQ (06 September 2008) Also external choice has been added for:
34// - superimposed Coulomb barrier (if useSICB=true)
35// 20.08.2010 V.Ivanchenko added int Z and A and cleanup; added
36// G4ParticleDefinition to constructor,
37// inline method to build G4ReactionProduct;
38// remove string name
39//
40
41#ifndef G4VPreCompoundFragment_h
42#define G4VPreCompoundFragment_h 1
43
44#include "G4ios.hh"
45#include <iomanip>
47#include "G4IonTable.hh"
48#include "G4Fragment.hh"
49#include "G4VCoulombBarrier.hh"
50#include "G4ReactionProduct.hh"
52#include "G4Pow.hh"
53
55{
56public:
57
58 // ============================
59 // Constructors and destructor
60 // ============================
61
63 G4VCoulombBarrier * aCoulombBarrier);
64
66
67 // ==========
68 // operators
69 // ==========
70
71 friend std::ostream&
72 operator<<(std::ostream&, const G4VPreCompoundFragment*);
73 friend std::ostream&
74 operator<<(std::ostream&, const G4VPreCompoundFragment&);
75
76 // =====================
77 // Pure Virtual methods
78 // =====================
79
80 // Initialization method
81 void Initialize(const G4Fragment & aFragment);
82
83 // Methods for calculating the emission probability
84 // ------------------------------------------------
85
86 // Calculates the total (integrated over kinetic energy) emission
87 // probability of a fragment
88 virtual G4double CalcEmissionProbability(const G4Fragment & aFragment) = 0;
89
90 virtual G4double GetKineticEnergy(const G4Fragment & aFragment) = 0;
91
93
94 inline G4int GetA() const;
95
96 inline G4int GetZ() const;
97
98 inline G4int GetRestA() const;
99
100 inline G4int GetRestZ() const;
101
102 inline G4double ResidualA13() const;
103
105
107
109
111
113
114 inline G4double GetNuclearMass() const;
115
117
118 inline G4double GetReducedMass() const;
119
120 inline const G4LorentzVector& GetMomentum() const;
121
122 inline void SetMomentum(const G4LorentzVector & value);
123
124 inline const G4String GetName() const;
125
126 //for inverse cross section choice
127 inline void SetOPTxs(G4int);
128 //for superimposed Coulomb Barrier for inverse cross sections
129 inline void UseSICB(G4bool);
130
131protected:
132
133 inline G4bool IsItPossible(const G4Fragment & aFragment) const;
134
135private:
136
137 // default constructor
139 // copy constructor
142 operator= (const G4VPreCompoundFragment &right);
143 G4int operator==(const G4VPreCompoundFragment &right) const;
144 G4int operator!=(const G4VPreCompoundFragment &right) const;
145
146 // =============
147 // Data members
148 // =============
149
150 const G4ParticleDefinition* particle;
151 G4VCoulombBarrier * theCoulombBarrierPtr;
152
153 G4int theA;
154 G4int theZ;
155 G4int theRestNucleusA;
156 G4int theRestNucleusZ;
157
158 G4double theRestNucleusA13;
159 G4double theBindingEnergy;
160 G4double theMaximalKineticEnergy;
161 G4double theRestNucleusMass;
162 G4double theReducedMass;
163 G4double theMass;
164
165 G4LorentzVector theMomentum;
166
167protected:
168
171
174
175 //for inverse cross section choice
177 //for superimposed Coulomb Barrier for inverse cross sections
179};
180
181#include "G4VPreCompoundFragment.icc"
182
183#endif
double G4double
Definition: G4Types.hh:64
int G4int
Definition: G4Types.hh:66
bool G4bool
Definition: G4Types.hh:67
Definition: G4Pow.hh:54
G4double GetEmissionProbability() const
G4double GetNuclearMass() const
friend std::ostream & operator<<(std::ostream &, const G4VPreCompoundFragment *)
virtual G4double CalcEmissionProbability(const G4Fragment &aFragment)=0
G4double ResidualA13() const
G4double GetReducedMass() const
G4bool IsItPossible(const G4Fragment &aFragment) const
G4double GetBindingEnergy() const
G4double GetCoulombBarrier() const
G4double GetEnergyThreshold() const
G4int GetRestZ() const
const G4String GetName() const
G4double GetRestNuclearMass() const
G4ReactionProduct * GetReactionProduct() const
void SetMomentum(const G4LorentzVector &value)
void Initialize(const G4Fragment &aFragment)
const G4LorentzVector & GetMomentum() const
G4PreCompoundParameters * theParameters
G4int GetRestA() const
G4double GetMaximalKineticEnergy() const
virtual G4double GetKineticEnergy(const G4Fragment &aFragment)=0