35 energyConstant[
"N2"].push_back(15.58*eV);
36 energyConstant[
"N2"].push_back(17.07*eV);
37 energyConstant[
"N2"].push_back(21.00*eV);
38 energyConstant[
"N2"].push_back(41.72*eV);
41 energyConstant[
"G4_WATER"].push_back(10.79*eV);
42 energyConstant[
"G4_WATER"].push_back(13.39*eV);
43 energyConstant[
"G4_WATER"].push_back(16.05*eV);
44 energyConstant[
"G4_WATER"].push_back(32.30*eV);
45 energyConstant[
"G4_WATER"].push_back(539.0*eV);
47 energyConstant[
"THF"].push_back(9.74*eV);
48 energyConstant[
"THF"].push_back(12.31*eV);
49 energyConstant[
"THF"].push_back(12.99*eV);
50 energyConstant[
"THF"].push_back(13.57*eV);
51 energyConstant[
"THF"].push_back(13.60*eV);
52 energyConstant[
"THF"].push_back(15.11*eV);
53 energyConstant[
"THF"].push_back(15.97*eV);
54 energyConstant[
"THF"].push_back(16.28*eV);
55 energyConstant[
"THF"].push_back(18.19*eV);
56 energyConstant[
"THF"].push_back(18.69*eV);
57 energyConstant[
"THF"].push_back(22.14*eV);
58 energyConstant[
"THF"].push_back(22.25*eV);
59 energyConstant[
"THF"].push_back(27.21*eV);
60 energyConstant[
"THF"].push_back(28.97*eV);
61 energyConstant[
"THF"].push_back(36.97*eV);
62 energyConstant[
"THF"].push_back(305.07*eV);
63 energyConstant[
"THF"].push_back(305.08*eV);
64 energyConstant[
"THF"].push_back(306.17*eV);
65 energyConstant[
"THF"].push_back(306.17*eV);
66 energyConstant[
"THF"].push_back(557.94*eV);
68 energyConstant[
"PY"].push_back(9.73*eV);
69 energyConstant[
"PY"].push_back(10.96*eV);
70 energyConstant[
"PY"].push_back(11.54*eV);
71 energyConstant[
"PY"].push_back(12.58*eV);
72 energyConstant[
"PY"].push_back(15.96*eV);
73 energyConstant[
"PY"].push_back(16.27*eV);
74 energyConstant[
"PY"].push_back(16.53*eV);
75 energyConstant[
"PY"].push_back(17.98*eV);
76 energyConstant[
"PY"].push_back(19.37*eV);
77 energyConstant[
"PY"].push_back(20.52*eV);
78 energyConstant[
"PY"].push_back(24.55*eV);
79 energyConstant[
"PY"].push_back(24.64*eV);
80 energyConstant[
"PY"].push_back(29.75*eV);
81 energyConstant[
"PY"].push_back(33.02*eV);
82 energyConstant[
"PY"].push_back(36.57*eV);
83 energyConstant[
"PY"].push_back(305.92*eV);
84 energyConstant[
"PY"].push_back(307.09*eV);
85 energyConstant[
"PY"].push_back(307.09*eV);
86 energyConstant[
"PY"].push_back(307.52*eV);
87 energyConstant[
"PY"].push_back(423.44*eV);
88 energyConstant[
"PY"].push_back(423.44*eV);
90 energyConstant[
"PU"].push_back(9.58*eV);
91 energyConstant[
"PU"].push_back(10.57*eV);
92 energyConstant[
"PU"].push_back(10.97*eV);
93 energyConstant[
"PU"].push_back(12.22*eV);
94 energyConstant[
"PU"].push_back(12.92*eV);
95 energyConstant[
"PU"].push_back(13.44*eV);
96 energyConstant[
"PU"].push_back(15.05*eV);
97 energyConstant[
"PU"].push_back(16.56*eV);
98 energyConstant[
"PU"].push_back(17.18*eV);
99 energyConstant[
"PU"].push_back(17.88*eV);
100 energyConstant[
"PU"].push_back(17.90*eV);
101 energyConstant[
"PU"].push_back(19.11*eV);
102 energyConstant[
"PU"].push_back(20.09*eV);
103 energyConstant[
"PU"].push_back(21.70*eV);
104 energyConstant[
"PU"].push_back(23.52*eV);
105 energyConstant[
"PU"].push_back(24.35*eV);
106 energyConstant[
"PU"].push_back(25.41*eV);
107 energyConstant[
"PU"].push_back(29.34*eV);
108 energyConstant[
"PU"].push_back(32.44*eV);
109 energyConstant[
"PU"].push_back(33.67*eV);
110 energyConstant[
"PU"].push_back(36.26*eV);
111 energyConstant[
"PU"].push_back(38.22*eV);
112 energyConstant[
"PU"].push_back(306.53*eV);
113 energyConstant[
"PU"].push_back(307.19*eV);
114 energyConstant[
"PU"].push_back(307.64*eV);
115 energyConstant[
"PU"].push_back(308.14*eV);
116 energyConstant[
"PU"].push_back(308.17*eV);
117 energyConstant[
"PU"].push_back(423.31*eV);
118 energyConstant[
"PU"].push_back(423.43*eV);
119 energyConstant[
"PU"].push_back(423.64*eV);
120 energyConstant[
"PU"].push_back(423.98*eV);
122 energyConstant[
"TMP"].push_back(10.81*eV);
123 energyConstant[
"TMP"].push_back(10.81*eV);
124 energyConstant[
"TMP"].push_back(12.90*eV);
125 energyConstant[
"TMP"].push_back(13.32*eV);
126 energyConstant[
"TMP"].push_back(13.32*eV);
127 energyConstant[
"TMP"].push_back(13.59*eV);
128 energyConstant[
"TMP"].push_back(14.33*eV);
129 energyConstant[
"TMP"].push_back(14.33*eV);
130 energyConstant[
"TMP"].push_back(15.90*eV);
131 energyConstant[
"TMP"].push_back(17.09*eV);
132 energyConstant[
"TMP"].push_back(17.09*eV);
133 energyConstant[
"TMP"].push_back(17.13*eV);
134 energyConstant[
"TMP"].push_back(17.85*eV);
135 energyConstant[
"TMP"].push_back(17.85*eV);
136 energyConstant[
"TMP"].push_back(18.44*eV);
137 energyConstant[
"TMP"].push_back(19.37*eV);
138 energyConstant[
"TMP"].push_back(19.37*eV);
139 energyConstant[
"TMP"].push_back(21.40*eV);
140 energyConstant[
"TMP"].push_back(26.20*eV);
141 energyConstant[
"TMP"].push_back(26.20*eV);
142 energyConstant[
"TMP"].push_back(27.43*eV);
143 energyConstant[
"TMP"].push_back(35.23*eV);
144 energyConstant[
"TMP"].push_back(37.67*eV);
145 energyConstant[
"TMP"].push_back(37.67*eV);
146 energyConstant[
"TMP"].push_back(39.64*eV);
147 energyConstant[
"TMP"].push_back(152.42*eV);
148 energyConstant[
"TMP"].push_back(152.42*eV);
149 energyConstant[
"TMP"].push_back(152.44*eV);
150 energyConstant[
"TMP"].push_back(209.59*eV);
151 energyConstant[
"TMP"].push_back(306.92*eV);
152 energyConstant[
"TMP"].push_back(306.92*eV);
153 energyConstant[
"TMP"].push_back(306.92*eV);
154 energyConstant[
"TMP"].push_back(557.34*eV);
155 energyConstant[
"TMP"].push_back(559.40*eV);
156 energyConstant[
"TMP"].push_back(559.40*eV);
157 energyConstant[
"TMP"].push_back(559.41*eV);
158 energyConstant[
"TMP"].push_back(2178.05*eV);
160 for(
auto it=energyConstant.cbegin();it!=energyConstant.cend();++it)
162 nLevels[it->first] = (
G4int)(it->second).size();
173 G4String matNameModif = ReplaceMaterial(materialName);
176 if(energyConstant.find(matNameModif)==energyConstant.end())
178 std::ostringstream oss;
179 oss <<
"Material name was not found in energyConstantMap. Problematic material is: "<<matNameModif;
180 G4Exception(
"G4DNAPTBIonisationStructure::IonisationEnergy",
"em0002",
186 if (level >=0 && level < nLevels[matNameModif]) ionisation = energyConstant[matNameModif][level];
193 G4String matNameModif = ReplaceMaterial(materialName);
196 if(nLevels.find(matNameModif)==nLevels.end())
198 std::ostringstream oss;
199 oss <<
"Material name was not found in energyConstantMap. Problematic material is: "<<matNameModif;
200 G4Exception(
"G4DNAPTBIonisationStructure::NumberOfLevels",
"em0002",
204 return nLevels[matNameModif];
207G4String G4DNAPTBIonisationStructure::ReplaceMaterial(
const G4String& materialName)
209 G4String materialNameModified (materialName);
211 if(materialName==
"backbone_THF") materialNameModified =
"THF";
212 else if(materialName==
"backbone_TMP") materialNameModified =
"TMP";
213 else if(materialName==
"adenine_PU") materialNameModified =
"PU";
214 else if(materialName==
"guanine_PU") materialNameModified =
"PU";
215 else if(materialName==
"thymine_PY") materialNameModified =
"PY";
216 else if(materialName==
"cytosine_PY") materialNameModified =
"PY";
218 return materialNameModified;
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
G4double IonisationEnergy(G4int level, const G4String &materialName)
G4int NumberOfLevels(const G4String &materialName)
G4DNAPTBIonisationStructure()
virtual ~G4DNAPTBIonisationStructure()