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
G4IonStoppingData.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// GEANT4 class header file
30//
31// Class: G4IonStoppingData
32//
33// Base class: G4VIonDEDXTable
34//
35// Author: Anton Lechner (Anton.Lechner@cern.ch)
36//
37// First implementation: 03. 11. 2009
38//
39// Modifications:
40//
41//
42// Class description: Class which can read ion stopping power data from
43// $G4LEDATA/ion_stopping_data
44//
45// Comments:
46//
47// ===========================================================================
48//
49
50#ifndef G4IONSTOPPINGDATA_HH
51#define G4IONSTOPPINGDATA_HH
52
53#include "globals.hh"
54#include "G4VIonDEDXTable.hh"
55#include <utility>
56#include <vector>
57#include <map>
58
59
61
62 public:
63 G4IonStoppingData(const G4String& leDirectory);
64 virtual ~G4IonStoppingData();
65
66 // Function for checking the availability of stopping power tables
67 // for a given ion-material couple, where the material consists of
68 // a single element only.
70 G4int atomicNumberIon, // Atomic number of ion
71 G4int atomicNumberElem // Atomic number of elemental material
72 );
73
74 // Function for checking the availability of stopping power tables
75 // for given ion-material couples.
77 G4int atomicNumberIon, // Atomic number of ion
78 const G4String& matIdentifier // Name or chemical formula of material
79 );
80
81 // Function which invokes the read/build process of physics vectors from
82 // files in G4LEDATA
84 const G4String& matName);
85
86 // Function which invokes the read/build process of physics vectors from
87 // files in G4LEDATA
89 G4int matZ);
90
91 // Function returning the stopping power vector for given ion-material
92 // couples, where the material consists of a single element only.
94 G4int atomicNumberIon, // Atomic number of ion
95 G4int atomicNumberElem // Atomic number of elemental material
96 );
97
98 // Function returning the stopping power vector for given ion-material
99 // couples.
101 G4int atomicNumberIon, // Atomic number of ion
102 const G4String& matIdenfier // Name or chemical formula of material
103 );
104
105 // Function returning the stopping power value for given ion-material
106 // couples, where the material consists of a single element only, and
107 // given energy.
109 G4double kinEnergyPerNucleon, // Kinetic energy per nucleon
110 G4int atomicNumberIon, // Atomic number of ion
111 G4int atomicNumberElem // Atomic number of elemental material
112 );
113
114 // Function returning the stopping power value for given ion-material
115 // couples and given energy.
117 G4double kinEnergyPerNucleon, // Kinetic energy per nucleon
118 G4int atomicNumberIon, // Atomic number of ion
119 const G4String& matIdentifier // Name or chemical formula of material
120 );
121
122 // Function for adding dE/dx vector for an elemental materials. The last
123 // argument only applies to elemental materials.
125 G4PhysicsVector* physicsVector, // Physics vector
126 G4int atomicNumberIon, // Atomic number of ion
127 const G4String& matIdentifier // Name or chemical formula of material
128 );
129
130 // Function for adding dE/dx vector for an elemental materials. The last
131 // argument only applies to elemental materials.
133 G4PhysicsVector* physicsVector, // Physics vector
134 G4int atomicNumberIon, // Atomic number of ion
135 G4int atomicNumberElem // Atomic number of elemental material
136 );
137
138 // Function for removing dE/dx vector for a compound materials
140 G4int atomicNumberIon, // Atomic number of ion
141 const G4String& matIdentifier // Name or chemical formula of material
142 );
143 // Function for removing dE/dx vector for a compound materials
145 G4int atomicNumberIon, // Atomic number of ion
146 G4int atomicNumberElem // Atomic number of elemental material
147 );
148 // Function deleting all physics vectors and clearing the maps
149 void ClearTable();
150
151 // Function printing the ion-material pairs of available vectors to stdout
152 void DumpMap();
153
154 private:
155 // Subdirectory of G4LEDATA
156 G4String subDir;
157
158 typedef std::pair<G4int, G4int> G4IonDEDXKeyElem;
159 typedef std::pair<G4int, G4String> G4IonDEDXKeyMat;
160
161 typedef std::map<G4IonDEDXKeyElem, G4PhysicsVector*> G4IonDEDXMapElem;
162 typedef std::map<G4IonDEDXKeyMat, G4PhysicsVector*> G4IonDEDXMapMat;
163
164 G4IonDEDXMapElem dedxMapElements;
165 G4IonDEDXMapMat dedxMapMaterials;
166};
167
168#endif // G4IONSTOPPINGDATA_HH
double G4double
Definition: G4Types.hh:64
int G4int
Definition: G4Types.hh:66
bool G4bool
Definition: G4Types.hh:67
G4PhysicsVector * GetPhysicsVector(G4int atomicNumberIon, G4int atomicNumberElem)
G4bool IsApplicable(G4int atomicNumberIon, G4int atomicNumberElem)
G4bool RemovePhysicsVector(G4int atomicNumberIon, const G4String &matIdentifier)
G4double GetDEDX(G4double kinEnergyPerNucleon, G4int atomicNumberIon, G4int atomicNumberElem)
G4bool AddPhysicsVector(G4PhysicsVector *physicsVector, G4int atomicNumberIon, const G4String &matIdentifier)
G4bool BuildPhysicsVector(G4int ionZ, const G4String &matName)
virtual ~G4IonStoppingData()