Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
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 ([email protected])
36//
37// Creation date: 23 October 1998
38//
39// Modifications:
40//
41// 15 April 1999, Alessandro Brunengo ([email protected])
42// Added creation time evaluation for products of evaporation
43//
44// 21 Nov 2001, Fan Lei ([email protected])
45// Modified GenerateGamma() and UpdateUncleus() for implementation
46// of Internal Conversion processs
47//
48// 8 March 2002, Fan Lei ([email protected])
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