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
G4VGammaDeexcitation.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// -------------------------------------------------------------------
29// GEANT 4 class file
30//
31// CERN, Geneva, Switzerland
32//
33// File name: G4VGammaDeexcitation
34//
35// Author: Maria Grazia Pia (pia@genova.infn.it)
36//
37// Creation date: 23 October 1998
38//
39// Modifications:
40//
41// 15 April 1999, Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it)
42// Added creation time evaluation for products of evaporation
43//
44// 21 Nov 2001, Fan Lei (flei@space.qinetiq.com)
45// Modified GenerateGamma() and UpdateUncleus() for implementation
46// of Internal Conversion processs
47//
48// 8 March 2002, Fan Lei (flei@space.qinetiq.com)
49// Added SetEO () , GetEO(), UpdateElectrons() to allow the assignment
50// and modification of electron configuration.
51//
52// 18 October 2002, F. Lei
53// Added GetVaccantSN() and _vSN in order to link to ARM in low-e em
54// _vSN is updated in UpdateElectron()
55// Added SetVaccantSN(). It is need to to re-set _vSN after each
56// IC happened.
57//
58// 28 April 2010, V.Ivanchenko cleanup methods
59//
60// -------------------------------------------------------------------
61//
62
63#ifndef G4VGAMMADEEXCITATION_HH
64#define G4VGAMMADEEXCITATION_HH 1
65
66#include "globals.hh"
67#include "G4VGammaTransition.hh"
68#include "G4Fragment.hh"
69#include "G4FragmentVector.hh"
71
73
74public:
75
77
78 virtual ~G4VGammaDeexcitation();
79
81 virtual G4bool CanDoTransition() = 0;
82
83 // Single gamma transition
85
86 // Chain of gamma transitions
88
90
91 inline G4Fragment* GetNucleus();
92
93 inline void SetNucleus(G4Fragment* nucleus);
94
95 inline void SetVerboseLevel(G4int verbose);
96
97 inline void Initialize();
98
99 inline void SetEO(G4ElectronOccupancy eo) { _electronO = eo; };
100 inline void SetVaccantSN( G4int val ) { _vSN = val;};
101
102 inline G4ElectronOccupancy GetEO() { return _electronO; };
103 inline G4int GetVacantSN() {return _vSN;};
104
105 inline void SetTimeLimit(G4double value) { fTimeLimit = value; }
106
107protected:
108
109 void Update();
110
113
114private:
115
117 const G4VGammaDeexcitation & operator = (const G4VGammaDeexcitation & right);
118 G4bool operator == (const G4VGammaDeexcitation & right) const;
119 G4bool operator != (const G4VGammaDeexcitation & right) const;
120
121 G4Fragment* _nucleus;
122 G4ElectronOccupancy _electronO;
123 G4int _vSN;
124 G4double fTimeLimit;
125
126};
127
129{
130 return _nucleus;
131}
132
134{
135 _nucleus = nucleus;
136}
137
139{
140 _verbose = verbose;
141}
142
144{
145 if (_transition != 0) { delete _transition; }
147 if (_transition != 0) {
149 }
150}
151
152#endif
153
154
155
156
157
158
std::vector< G4Fragment * > G4FragmentVector
Definition: G4Fragment.hh:65
double G4double
Definition: G4Types.hh:64
int G4int
Definition: G4Types.hh:66
bool G4bool
Definition: G4Types.hh:67
G4double GetExcitationEnergy() const
Definition: G4Fragment.hh:235
void SetTimeLimit(G4double value)
void SetNucleus(G4Fragment *nucleus)
G4ElectronOccupancy GetEO()
G4FragmentVector * DoChain()
G4FragmentVector * DoTransition()
virtual G4VGammaTransition * CreateTransition()=0
G4VGammaTransition * _transition
void SetEO(G4ElectronOccupancy eo)
void SetVerboseLevel(G4int verbose)
virtual G4bool CanDoTransition()=0
virtual void SetEnergyFrom(G4double energy)=0