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
G4MolecularDecayChannel.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 header file
33//
34// History: first implementation, Alfonso Mantero 6 Mar 2009
35// ----------------------------------------------------------------
36//
37
38
39#ifndef G4MolecularDecayChannel_h
40#define G4MolecularDecayChannel_h 1
41
42#include <vector>
43#include <map>
46
47// ######################################################################
48// ### MolecularDecayChannel ###
49// ######################################################################
50
51class G4Molecule;
52
54
56{
57 // Class Description
58 // This is where are stored and can be retrieved data of one decay channel
59 // of excited or ionized molecules: products. energy and probability.
60
61public: //With Description
62
68
69public:
70
71 //Root Mean Square radial distance thermalisation of a product
73
74 // methods to construct decay channels "interactively"
75
76 void AddProduct(const G4Molecule*,G4double = 0);
77 inline void SetName(const G4String&);
78 inline void SetEnergy(G4double);
79 inline void SetProbability(G4double);
80 inline void SetDecayTime(G4double);
83
84 // get methods to retrieve data
85
86 inline const G4String& GetName() const;
87 G4int GetNbProducts() const;
88 const G4Molecule* GetProduct(int) const;
89 inline const std::vector<G4double>& GetRMSProductsDisplacement() const;
90 inline G4double GetEnergy() const;
91 inline G4double GetProbability() const;
92 inline G4double GetDecayTime() const;
95
96private:
97
98 DisplacementType fDisplacementType;
99 G4String fName;
100 std::vector<G4MoleculeHandle>* fProductsVector;
101 G4double fReleasedEnergy;
102 G4double fProbability;
103 G4double fDecayTime; // To be taken into account in the next releases
104
105 //Root Mean Square radial distance jump of a excited/ionised MotherMolecule molecule
106 G4double fRMSMotherMoleculeDisplacement;
107 std::vector<G4double> fRMSProductsDisplacementVector;
108};
109
111{
112 fName = value;
113}
114
116{
117 fReleasedEnergy = value;
118}
119
120
122{
123 fProbability = value;
124}
125
127{
128
129 fDecayTime = value;
130}
131
133{
134 fRMSMotherMoleculeDisplacement = value;
135}
136
138{
139 return fName;
140}
141
142inline const std::vector<G4double>& G4MolecularDecayChannel::GetRMSProductsDisplacement() const
143{
144 return fRMSProductsDisplacementVector;
145}
146
148{
149
150 return fReleasedEnergy;
151}
152
154{
155 return fProbability;
156}
157
159{
160 return fDecayTime;
161}
162
164{
165 return fRMSMotherMoleculeDisplacement;
166}
167
169{
170 fDisplacementType = aDisplacementType;
171}
172
174{
175 return fDisplacementType;
176}
177#endif
178
179
180
181
182
183
184
185
double G4double
Definition: G4Types.hh:64
int G4int
Definition: G4Types.hh:66
int DisplacementType
void SetName(const G4String &)
const G4String & GetName() const
const std::vector< G4double > & GetRMSProductsDisplacement() const
void SetRMSMotherMoleculeDisplacement(G4double)
G4double GetRMSRadialDisplacementOfProduct(const G4Molecule *)
void SetDisplacementType(DisplacementType)
const G4Molecule * GetProduct(int) const
void AddProduct(const G4Molecule *, G4double=0)
DisplacementType GetDisplacementType() const
G4MolecularDecayChannel & operator=(const G4MolecularDecayChannel &right)
G4double GetRMSMotherMoleculeDisplacement() const