Geant4
9.6.p02
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
geant4_9_6_p02
source
processes
electromagnetic
dna
molecules
management
include
G4MoleculeDefinition.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
// Contact: Mathieu Karamitros (kara (AT) cenbg . in2p3 . fr)
27
//
28
// WARNING : This class is released as a prototype.
29
// It might strongly evolve or even disapear in the next releases.
30
//
31
// ----------------------------------------------------------------------
32
// GEANT 4 class implementation file
33
//
34
// 21 Oct 2009 first implementation by A. Mantero and M.Karamitros
35
// Based on prototype of A.Mantero
36
// **********************************************************************
37
//
38
39
40
#ifndef G4MoleculeDefinition_h
41
#define G4MoleculeDefinition_h 1
42
43
#include "
globals.hh
"
44
#include "
G4ParticleDefinition.hh
"
45
#include "
G4ios.hh
"
46
#include "
G4ElectronOccupancy.hh
"
47
#include "
G4MolecularDecayTable.hh
"
48
#include "
G4MolecularDecayChannel.hh
"
49
#include "
G4MoleculeID.hh
"
50
51
// ######################################################################
52
// ### Molecule ###
53
// ######################################################################
54
55
class
G4MolecularDecayChannel
;
56
class
G4MolecularDecayTable
;
57
class
G4MolecularConfiguration
;
58
59
class
G4MoleculeDefinition
:
public
G4ParticleDefinition
60
{
61
// Class Description
62
// This is the base class for all molecules
63
// All molecules created are objects of this class.
64
65
public
:
//With Description
66
G4MoleculeDefinition
(
const
G4String
&
name
,
67
G4double
mass,
68
G4int
electronsNumber,
69
G4int
electronicLevels,
70
G4double
diffCoeff,
71
G4int
atomsNumber = -1,
72
G4double
radius = -1,
73
G4double
lifetime = -1,
74
G4String
aType =
""
,
75
G4MoleculeID
ID =
G4MoleculeID::Create
()
76
);
77
78
virtual
~G4MoleculeDefinition
();
79
80
// Set the electronic configuration at ground level
81
void
SetLevelOccupation
(
G4int
,
G4int
eNb=2);
82
// set the occupation(0(def), 1 or 2) of the level specified
83
//(levels numbering starts from 0)
84
85
//methods to set/get diffusion properties
86
inline
void
SetDiffusionCoefficient
(
G4double
);
87
inline
G4double
GetDiffusionCoefficient
()
const
;
88
89
inline
void
SetAtomsNumber
(
G4int
);
90
inline
G4int
GetAtomsNumber
()
const
;
91
92
inline
void
SetVanDerVaalsRadius
(
G4double
);
93
inline
G4double
GetVanDerVaalsRadius
()
const
;
94
95
//°°°°°°°°°°°°°°°°°°°°°°°°
96
// Build the decay table
97
void
AddExcitedState
(
const
G4String
&) ;
98
const
G4String
&
GetExcitedState
(
const
G4ElectronOccupancy
*)
const
;
99
void
AddDecayChannel
(
const
G4String
&,
const
G4MolecularDecayChannel
*) ;
100
void
AddeConfToExcitedState
(
const
G4String
&,
const
G4ElectronOccupancy
&,
double
decayTime = 0.);
101
102
//°°°°°°°°°°°°°°°°°°°°°°°°
103
// "Get" methods related to decay
104
const
std::vector<const G4MolecularDecayChannel*>*
GetDecayChannels
(
const
G4ElectronOccupancy
*)
const
;
105
const
std::vector<const G4MolecularDecayChannel*>*
GetDecayChannels
(
const
G4String
&)
const
;
106
107
//°°°°°°°°°°°°°°°°°°°°°°°°
108
// General "Get" methods
109
inline
const
G4ElectronOccupancy
*
GetGroundStateElectronOccupancy
()
const
;
110
inline
const
G4String
&
GetName
()
const
;
111
inline
G4double
GetMass
()
const
;
112
inline
const
G4String
&
GetType
()
const
;
113
inline
G4int
GetNbElectrons
()
const
;
114
inline
G4int
GetNbMolecularShells
()
const
;
115
inline
const
G4MolecularDecayTable
*
GetDecayTable
()
const
;
116
inline
G4MolecularDecayTable
*
GetDecayTable
() ;
117
inline
G4double
GetDecayTime
()
const
;
118
119
protected
:
120
G4MoleculeDefinition
();
121
G4MoleculeDefinition
(
const
G4MoleculeDefinition
&);
122
123
private
:
124
const
G4MoleculeDefinition
& operator=(
const
G4MoleculeDefinition
&
right
);
125
126
private
:
127
G4double
fMass;
128
G4String
fType;
129
130
G4int
fNbOfElectrons;
131
G4int
fNbOfMolecularShells;
132
133
// Diffusion Coefficient in one medium only
134
// Note : For the time being, we will consider only one diffusion
135
// coefficient for the all simulation => diffusion in one medium only
136
// If the user needs to use the diffusion in different medium,
137
// he should contact the developpers/mainteners of this package
138
G4double
fDiffusionCoefficient;
139
140
G4int
fAtomsNb;
141
G4double
fVanDerVaalsRadius;
142
143
G4ElectronOccupancy
* fElectronOccupancy;
144
G4MolecularDecayTable
* fDecayTable;
145
};
146
147
148
inline
void
G4MoleculeDefinition::SetDiffusionCoefficient
(
G4double
value
)
149
{
150
fDiffusionCoefficient =
value
;
151
}
152
153
inline
G4double
G4MoleculeDefinition::GetDiffusionCoefficient
()
const
154
{
155
return
fDiffusionCoefficient;
156
}
157
158
inline
G4double
G4MoleculeDefinition::GetDecayTime
()
const
159
{
160
return
GetPDGLifeTime
();
161
}
162
163
inline
void
G4MoleculeDefinition::SetAtomsNumber
(
G4int
val)
164
{
165
fAtomsNb = val;
166
}
167
168
inline
G4int
G4MoleculeDefinition::GetAtomsNumber
()
const
169
{
170
return
fAtomsNb;
171
}
172
173
inline
void
G4MoleculeDefinition::SetVanDerVaalsRadius
(
G4double
val)
174
{
175
fVanDerVaalsRadius = val;
176
}
177
178
inline
G4double
G4MoleculeDefinition::GetVanDerVaalsRadius
()
const
179
{
180
return
fVanDerVaalsRadius;
181
}
182
183
inline
const
G4ElectronOccupancy
*
G4MoleculeDefinition::GetGroundStateElectronOccupancy
()
const
184
{
185
return
fElectronOccupancy;
186
}
187
188
inline
const
G4String
&
G4MoleculeDefinition::GetName
()
const
189
{
190
191
return
GetParticleName
();
192
}
193
194
inline
G4double
G4MoleculeDefinition::GetMass
()
const
195
{
196
return
fMass;
197
}
198
199
inline
const
G4String
&
G4MoleculeDefinition::GetType
()
const
200
{
201
202
return
GetParticleSubType
();
203
}
204
205
inline
G4int
G4MoleculeDefinition::GetNbElectrons
()
const
206
{
207
208
return
fNbOfElectrons;
209
}
210
211
inline
G4int
G4MoleculeDefinition::GetNbMolecularShells
()
const
212
{
213
214
return
fNbOfMolecularShells;
215
}
216
217
inline
const
G4MolecularDecayTable
*
G4MoleculeDefinition::GetDecayTable
()
const
218
{
219
return
fDecayTable;
220
}
221
222
inline
G4MolecularDecayTable
*
G4MoleculeDefinition::GetDecayTable
()
223
{
224
return
fDecayTable;
225
}
226
#endif
227
228
229
230
231
232
233
234
Generated on Sat May 25 2013 14:33:31 for Geant4 by
1.8.4