Geant4 11.1.1
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
G4VEvaporation.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//
27// Hadronic Process: Nuclear De-excitations interface
28//
29// by V. Lara (Oct 1998) written from G4Evaporation.hh (May 1998)
30//
31// Modifications:
32// 03 September 2008 by J. M. Quesada for external choice of inverse
33// cross section option
34// 06 September 2008 (JMQ) Also external choices have been added for
35// superimposed Coulomb barrier (if useSICBis set true, by default is false)
36// 23 January 2012 by V.Ivanchenko added pointer of G4VPhotonEvaporation to
37// the constructor
38//
39
40#ifndef G4VEvaporation_h
41#define G4VEvaporation_h 1
42
43#include "globals.hh"
44#include "G4Fragment.hh"
47#include <vector>
48
50class G4VFermiBreakUp;
51
53{
54public:
55
56 explicit G4VEvaporation();
57 virtual ~G4VEvaporation();
58
59 // vector of products is added to the provided vector
60 // primary fragment is deleted or is modified and added to the list
61 // of products
62 virtual void BreakFragment(G4FragmentVector*, G4Fragment* theNucleus);
63
64 // definition of options
65 virtual void InitialiseChannels();
66
68
69 inline void SetFermiBreakUp(G4VFermiBreakUp* ptr);
70
71 inline G4VFermiBreakUp* GetFermiBreakUp() const;
74 inline G4VEvaporationChannel* GetChannel(size_t idx);
75
76 // for inverse cross section choice
77 inline void SetOPTxs(G4int opt);
78 // for superimposed Coulomb Barrier for inverse cross sections
79 inline void UseSICB(G4bool use);
80
81 inline size_t GetNumberOfChannels() const;
82
83 G4VEvaporation(const G4VEvaporation &right) = delete;
84 const G4VEvaporation & operator=(const G4VEvaporation &right) = delete;
85 G4bool operator==(const G4VEvaporation &right) const = delete;
86 G4bool operator!=(const G4VEvaporation &right) const = delete;
87
88protected:
89
90 void CleanChannels();
91
94
97
98 std::vector<G4VEvaporationChannel*> * theChannels;
100};
101
103{
104 theFBU = ptr;
105}
106
108{
109 return theFBU;
110}
111
113{
115}
116
118{
119 return (nullptr != theChannels && theChannels->size() > 1) ?
120 (*theChannels)[1] : nullptr;
121}
122
124{
125 return (nullptr != theChannels && theChannels->size() > idx) ?
126 (*theChannels)[idx] : nullptr;
127}
128
130{
131 OPTxs = opt;
132}
133
135{
136 useSICB = use;
137}
138
140{
141 return theChannels ? theChannels->size() : 0;
142}
143
144#endif
std::vector< G4Fragment * > G4FragmentVector
Definition: G4Fragment.hh:65
bool G4bool
Definition: G4Types.hh:86
int G4int
Definition: G4Types.hh:85
virtual void BreakFragment(G4FragmentVector *, G4Fragment *theNucleus)
G4VEvaporationChannel * GetFissionChannel()
size_t GetNumberOfChannels() const
G4VEvaporationChannel * GetPhotonEvaporation()
G4bool operator==(const G4VEvaporation &right) const =delete
void SetOPTxs(G4int opt)
const G4VEvaporation & operator=(const G4VEvaporation &right)=delete
G4bool operator!=(const G4VEvaporation &right) const =delete
G4VEvaporationChannel * GetChannel(size_t idx)
G4VFermiBreakUp * theFBU
void UseSICB(G4bool use)
virtual ~G4VEvaporation()
G4VEvaporationChannel * thePhotonEvaporation
virtual void SetPhotonEvaporation(G4VEvaporationChannel *ptr)
void SetFermiBreakUp(G4VFermiBreakUp *ptr)
G4VEvaporationFactory * theChannelFactory
G4VFermiBreakUp * GetFermiBreakUp() const
std::vector< G4VEvaporationChannel * > * theChannels
virtual void InitialiseChannels()
G4VEvaporation(const G4VEvaporation &right)=delete