Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
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"
45#include "G4ios.hh"
49#include "G4MoleculeID.hh"
50
51// ######################################################################
52// ### Molecule ###
53// ######################################################################
54
58
60{
61// Class Description
62// This is the base class for all molecules
63// All molecules created are objects of this class.
64
65public: //With Description
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 = "",
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
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;
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
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 ;
117 inline G4double GetDecayTime() const;
118
119protected :
122
123private :
124 const G4MoleculeDefinition & operator=(const G4MoleculeDefinition &right);
125
126private:
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
149{
150 fDiffusionCoefficient = value;
151}
152
154{
155 return fDiffusionCoefficient;
156}
157
159{
160 return GetPDGLifeTime();
161}
162
164{
165 fAtomsNb = val;
166}
167
169{
170 return fAtomsNb;
171}
172
174{
175 fVanDerVaalsRadius = val;
176}
177
179{
180 return fVanDerVaalsRadius;
181}
182
184{
185 return fElectronOccupancy;
186}
187
189{
190
191 return GetParticleName();
192}
193
195{
196 return fMass;
197}
198
200{
201
202 return GetParticleSubType();
203}
204
206{
207
208 return fNbOfElectrons;
209}
210
212{
213
214 return fNbOfMolecularShells;
215}
216
218{
219 return fDecayTable;
220}
221
223{
224 return fDecayTable;
225}
226#endif
227
228
229
230
231
232
233
234
double G4double
Definition: G4Types.hh:64
int G4int
Definition: G4Types.hh:66
const G4ElectronOccupancy * GetGroundStateElectronOccupancy() const
const G4String & GetName() const
const G4String & GetExcitedState(const G4ElectronOccupancy *) const
void SetVanDerVaalsRadius(G4double)
const std::vector< const G4MolecularDecayChannel * > * GetDecayChannels(const G4ElectronOccupancy *) const
void AddExcitedState(const G4String &)
const G4String & GetType() const
G4double GetVanDerVaalsRadius() const
G4int GetNbMolecularShells() const
void SetLevelOccupation(G4int, G4int eNb=2)
G4double GetDecayTime() const
void AddeConfToExcitedState(const G4String &, const G4ElectronOccupancy &, double decayTime=0.)
void SetDiffusionCoefficient(G4double)
const G4MolecularDecayTable * GetDecayTable() const
G4double GetDiffusionCoefficient() const
void AddDecayChannel(const G4String &, const G4MolecularDecayChannel *)
static G4MoleculeID Create()
Definition: G4MoleculeID.hh:57
G4double GetPDGLifeTime() const
const G4String & GetParticleName() const
const G4String & GetParticleSubType() const