Geant4 10.7.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4MolecularDissociationChannel.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// The code is developed in the framework of the ESA AO7146
32//
33// We would be very happy hearing from you, send us your feedback! :)
34//
35// In order for Geant4-DNA to be maintained and still open-source,
36// article citations are crucial.
37// If you use Geant4-DNA chemistry and you publish papers about your software,
38// in addition to the general paper on Geant4-DNA:
39//
40// Int. J. Model. Simul. Sci. Comput. 1 (2010) 157–178
41//
42// we ask that you please cite the following reference papers on chemistry:
43//
44// J. Comput. Phys. 274 (2014) 841-882
45// Prog. Nucl. Sci. Tec. 2 (2011) 503-508
46//
47// ----------------------------------------------------------------
48// GEANT 4 class header file
49//
50// History: first implementation, Alfonso Mantero 6 Mar 2009
51// ----------------------------------------------------------------
52//
53
54#pragma once
55
56#include <vector>
57#include <map>
59
60class G4Molecule;
62
64{
65public:
70
73
75 using ProductList = std::vector<Product*>;
76
77public:
78
79 void AddProduct(Product*, G4double displacement = 0.);
80
81 inline void SetName(const G4String&);
82 inline void SetEnergy(G4double);
83 inline void SetProbability(G4double);
84 inline void SetDecayTime(G4double);
87
88
89 inline const G4String& GetName() const;
90 G4int GetNbProducts() const;
91 Product* GetProduct(int) const;
92 inline const std::vector<G4double>& GetRMSProductsDisplacement() const;
93 inline G4double GetEnergy() const;
94 inline G4double GetProbability() const;
95 inline G4double GetDecayTime() const;
98
100
101private:
102 DisplacementType fDisplacementType;
103 G4String fName;
104 ProductList fProductsVector;
105 G4double fReleasedEnergy;
106 G4double fProbability;
107 G4double fDecayTime;
108 // Root Mean Square radial distance jump of the mother molecule
109 G4double fRMSMotherMoleculeDisplacement;
110 std::vector<G4double> fRMSProductsDisplacementVector;
111};
112
113//______________________________________________________________________________
114
116{
117 fName = value;
118}
119
120//______________________________________________________________________________
121
123{
124 fReleasedEnergy = value;
125}
126
127//______________________________________________________________________________
128
130{
131 fProbability = value;
132}
133
134//______________________________________________________________________________
135
137{
138
139 fDecayTime = value;
140}
141
142//______________________________________________________________________________
143
146{
147 fRMSMotherMoleculeDisplacement = value;
148}
149
150//______________________________________________________________________________
151
153{
154 return fName;
155}
156
157//______________________________________________________________________________
158
159inline const std::vector<G4double>&
161{
162 return fRMSProductsDisplacementVector;
163}
164
165//______________________________________________________________________________
166
168{
169 return fReleasedEnergy;
170}
171
172//______________________________________________________________________________
173
175{
176 return fProbability;
177}
178
179//______________________________________________________________________________
180
182{
183 return fDecayTime;
184}
185
186//______________________________________________________________________________
187
190{
191 return fRMSMotherMoleculeDisplacement;
192}
193
194//______________________________________________________________________________
195
197SetDisplacementType(DisplacementType aDisplacementType)
198{
199 fDisplacementType = aDisplacementType;
200}
201
202//______________________________________________________________________________
203
206{
207 return fDisplacementType;
208}
double G4double
Definition: G4Types.hh:83
int G4int
Definition: G4Types.hh:85
G4MolecularDissociationChannel & operator=(const G4MolecularDissociationChannel &right)=default
G4MolecularDissociationChannel(const G4MolecularDissociationChannel &)=default
void AddProduct(Product *, G4double displacement=0.)
const std::vector< G4double > & GetRMSProductsDisplacement() const