Geant4-11
Public Member Functions | Private Member Functions | Private Attributes
G4DNAPTBIonisationStructure Class Reference

#include <G4DNAPTBIonisationStructure.hh>

Public Member Functions

 G4DNAPTBIonisationStructure ()
 
G4double IonisationEnergy (G4int level, const G4String &materialName)
 
G4int NumberOfLevels (const G4String &materialName)
 
virtual ~G4DNAPTBIonisationStructure ()
 

Private Member Functions

G4String ReplaceMaterial (const G4String &materialName)
 

Private Attributes

std::map< G4String, std::vector< G4double > > energyConstant
 
std::map< G4String, G4intnLevels
 

Detailed Description

Definition at line 38 of file G4DNAPTBIonisationStructure.hh.

Constructor & Destructor Documentation

◆ G4DNAPTBIonisationStructure()

G4DNAPTBIonisationStructure::G4DNAPTBIonisationStructure ( )

Definition at line 32 of file G4DNAPTBIonisationStructure.cc.

33{
34 energyConstant["G4_WATER"].push_back(10.79*eV);
35 energyConstant["G4_WATER"].push_back(13.39*eV);
36 energyConstant["G4_WATER"].push_back(16.05*eV);
37 energyConstant["G4_WATER"].push_back(32.30*eV);
38 energyConstant["G4_WATER"].push_back(539.0*eV);
39
40 energyConstant["THF"].push_back(9.74*eV);
41 energyConstant["THF"].push_back(12.31*eV);
42 energyConstant["THF"].push_back(12.99*eV);
43 energyConstant["THF"].push_back(13.57*eV);
44 energyConstant["THF"].push_back(13.60*eV);
45 energyConstant["THF"].push_back(15.11*eV);
46 energyConstant["THF"].push_back(15.97*eV);
47 energyConstant["THF"].push_back(16.28*eV);
48 energyConstant["THF"].push_back(18.19*eV);
49 energyConstant["THF"].push_back(18.69*eV);
50 energyConstant["THF"].push_back(22.14*eV);
51 energyConstant["THF"].push_back(22.25*eV);
52 energyConstant["THF"].push_back(27.21*eV);
53 energyConstant["THF"].push_back(28.97*eV);
54 energyConstant["THF"].push_back(36.97*eV);
55 energyConstant["THF"].push_back(305.07*eV);
56 energyConstant["THF"].push_back(305.08*eV);
57 energyConstant["THF"].push_back(306.17*eV);
58 energyConstant["THF"].push_back(306.17*eV);
59 energyConstant["THF"].push_back(557.94*eV);
60
61 energyConstant["PY"].push_back(9.73*eV);
62 energyConstant["PY"].push_back(10.96*eV);
63 energyConstant["PY"].push_back(11.54*eV);
64 energyConstant["PY"].push_back(12.58*eV);
65 energyConstant["PY"].push_back(15.96*eV);
66 energyConstant["PY"].push_back(16.27*eV);
67 energyConstant["PY"].push_back(16.53*eV);
68 energyConstant["PY"].push_back(17.98*eV);
69 energyConstant["PY"].push_back(19.37*eV);
70 energyConstant["PY"].push_back(20.52*eV);
71 energyConstant["PY"].push_back(24.55*eV);
72 energyConstant["PY"].push_back(24.64*eV);
73 energyConstant["PY"].push_back(29.75*eV);
74 energyConstant["PY"].push_back(33.02*eV);
75 energyConstant["PY"].push_back(36.57*eV);
76 energyConstant["PY"].push_back(305.92*eV);
77 energyConstant["PY"].push_back(307.09*eV);
78 energyConstant["PY"].push_back(307.09*eV);
79 energyConstant["PY"].push_back(307.52*eV);
80 energyConstant["PY"].push_back(423.44*eV);
81 energyConstant["PY"].push_back(423.44*eV);
82
83 energyConstant["PU"].push_back(9.58*eV);
84 energyConstant["PU"].push_back(10.57*eV);
85 energyConstant["PU"].push_back(10.97*eV);
86 energyConstant["PU"].push_back(12.22*eV);
87 energyConstant["PU"].push_back(12.92*eV);
88 energyConstant["PU"].push_back(13.44*eV);
89 energyConstant["PU"].push_back(15.05*eV);
90 energyConstant["PU"].push_back(16.56*eV);
91 energyConstant["PU"].push_back(17.18*eV);
92 energyConstant["PU"].push_back(17.88*eV);
93 energyConstant["PU"].push_back(17.90*eV);
94 energyConstant["PU"].push_back(19.11*eV);
95 energyConstant["PU"].push_back(20.09*eV);
96 energyConstant["PU"].push_back(21.70*eV);
97 energyConstant["PU"].push_back(23.52*eV);
98 energyConstant["PU"].push_back(24.35*eV);
99 energyConstant["PU"].push_back(25.41*eV);
100 energyConstant["PU"].push_back(29.34*eV);
101 energyConstant["PU"].push_back(32.44*eV);
102 energyConstant["PU"].push_back(33.67*eV);
103 energyConstant["PU"].push_back(36.26*eV);
104 energyConstant["PU"].push_back(38.22*eV);
105 energyConstant["PU"].push_back(306.53*eV);
106 energyConstant["PU"].push_back(307.19*eV);
107 energyConstant["PU"].push_back(307.64*eV);
108 energyConstant["PU"].push_back(308.14*eV);
109 energyConstant["PU"].push_back(308.17*eV);
110 energyConstant["PU"].push_back(423.31*eV);
111 energyConstant["PU"].push_back(423.43*eV);
112 energyConstant["PU"].push_back(423.64*eV);
113 energyConstant["PU"].push_back(423.98*eV);
114
115 energyConstant["TMP"].push_back(10.81*eV);
116 energyConstant["TMP"].push_back(10.81*eV);
117 energyConstant["TMP"].push_back(12.90*eV);
118 energyConstant["TMP"].push_back(13.32*eV);
119 energyConstant["TMP"].push_back(13.32*eV);
120 energyConstant["TMP"].push_back(13.59*eV);
121 energyConstant["TMP"].push_back(14.33*eV);
122 energyConstant["TMP"].push_back(14.33*eV);
123 energyConstant["TMP"].push_back(15.90*eV);
124 energyConstant["TMP"].push_back(17.09*eV);
125 energyConstant["TMP"].push_back(17.09*eV);
126 energyConstant["TMP"].push_back(17.13*eV);
127 energyConstant["TMP"].push_back(17.85*eV);
128 energyConstant["TMP"].push_back(17.85*eV);
129 energyConstant["TMP"].push_back(18.44*eV);
130 energyConstant["TMP"].push_back(19.37*eV);
131 energyConstant["TMP"].push_back(19.37*eV);
132 energyConstant["TMP"].push_back(21.40*eV);
133 energyConstant["TMP"].push_back(26.20*eV);
134 energyConstant["TMP"].push_back(26.20*eV);
135 energyConstant["TMP"].push_back(27.43*eV);
136 energyConstant["TMP"].push_back(35.23*eV);
137 energyConstant["TMP"].push_back(37.67*eV);
138 energyConstant["TMP"].push_back(37.67*eV);
139 energyConstant["TMP"].push_back(39.64*eV);
140 energyConstant["TMP"].push_back(152.42*eV);
141 energyConstant["TMP"].push_back(152.42*eV);
142 energyConstant["TMP"].push_back(152.44*eV);
143 energyConstant["TMP"].push_back(209.59*eV);
144 energyConstant["TMP"].push_back(306.92*eV);
145 energyConstant["TMP"].push_back(306.92*eV);
146 energyConstant["TMP"].push_back(306.92*eV);
147 energyConstant["TMP"].push_back(557.34*eV);
148 energyConstant["TMP"].push_back(559.40*eV);
149 energyConstant["TMP"].push_back(559.40*eV);
150 energyConstant["TMP"].push_back(559.41*eV);
151 energyConstant["TMP"].push_back(2178.05*eV);
152
153 std::map<G4String, std::vector<G4double> >::iterator it;
154 for(it=energyConstant.begin();it!=energyConstant.end();it++)
155 {
156 nLevels[it->first] = (it->second).size();
157 }
158}
static constexpr double eV
Definition: G4SIunits.hh:201
std::map< G4String, G4int > nLevels
std::map< G4String, std::vector< G4double > > energyConstant

References energyConstant, eV, and nLevels.

◆ ~G4DNAPTBIonisationStructure()

G4DNAPTBIonisationStructure::~G4DNAPTBIonisationStructure ( )
virtual

Definition at line 161 of file G4DNAPTBIonisationStructure.cc.

162{ }

Member Function Documentation

◆ IonisationEnergy()

G4double G4DNAPTBIonisationStructure::IonisationEnergy ( G4int  level,
const G4String materialName 
)

Definition at line 165 of file G4DNAPTBIonisationStructure.cc.

166{
167 G4String matNameModif = ReplaceMaterial(materialName);
168
169 // check if the material exist in the map
170 if(energyConstant.find(matNameModif)==energyConstant.end())
171 {
172 std::ostringstream oss;
173 oss << "Material name was not found in energyConstantMap. Problematic material is: "<<matNameModif;
174 G4Exception("G4DNAPTBIonisationStructure::IonisationEnergy","em0002",
175 FatalException, oss.str().c_str());
176 }
177
178 G4double ionisation = 0.;
179
180 if (level >=0 && level < nLevels[matNameModif]) ionisation = energyConstant[matNameModif][level];
181
182 return ionisation;
183}
@ FatalException
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:35
double G4double
Definition: G4Types.hh:83
G4String ReplaceMaterial(const G4String &materialName)

References energyConstant, FatalException, G4Exception(), nLevels, and ReplaceMaterial().

Referenced by G4DNAPTBIonisationModel::DifferentialCrossSection(), G4DNAPTBIonisationModel::RandomizeEjectedElectronEnergy(), G4DNAPTBIonisationModel::RandomizeEjectedElectronEnergyFromCumulated(), and G4DNAPTBIonisationModel::SampleSecondaries().

◆ NumberOfLevels()

G4int G4DNAPTBIonisationStructure::NumberOfLevels ( const G4String materialName)

Definition at line 185 of file G4DNAPTBIonisationStructure.cc.

186{
187 G4String matNameModif = ReplaceMaterial(materialName);
188
189 // check if the material exist in the map
190 if(nLevels.find(matNameModif)==nLevels.end())
191 {
192 std::ostringstream oss;
193 oss << "Material name was not found in energyConstantMap. Problematic material is: "<<matNameModif;
194 G4Exception("G4DNAPTBIonisationStructure::NumberOfLevels","em0002",
195 FatalException, oss.str().c_str());
196 }
197
198 return nLevels[matNameModif];
199}

References FatalException, G4Exception(), nLevels, and ReplaceMaterial().

Referenced by G4DNAPTBIonisationModel::ReadDiffCSFile().

◆ ReplaceMaterial()

G4String G4DNAPTBIonisationStructure::ReplaceMaterial ( const G4String materialName)
private

Definition at line 201 of file G4DNAPTBIonisationStructure.cc.

202{
203 G4String materialNameModified (materialName);
204
205 if(materialName=="backbone_THF") materialNameModified = "THF";
206 else if(materialName=="backbone_TMP") materialNameModified = "TMP";
207 else if(materialName=="adenine_PU") materialNameModified = "PU";
208 else if(materialName=="guanine_PU") materialNameModified = "PU";
209 else if(materialName=="thymine_PY") materialNameModified = "PY";
210 else if(materialName=="cytosine_PY") materialNameModified = "PY";
211
212 return materialNameModified;
213}

Referenced by IonisationEnergy(), and NumberOfLevels().

Field Documentation

◆ energyConstant

std::map<G4String, std::vector<G4double> > G4DNAPTBIonisationStructure::energyConstant
private

Definition at line 57 of file G4DNAPTBIonisationStructure.hh.

Referenced by G4DNAPTBIonisationStructure(), and IonisationEnergy().

◆ nLevels

std::map<G4String, G4int> G4DNAPTBIonisationStructure::nLevels
private

The documentation for this class was generated from the following files: