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);
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);
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);
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);
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);
153 std::map<G4String, std::vector<G4double> >::iterator it;
154 for(it=energyConstant.begin();it!=energyConstant.end();it++)
156 nLevels[it->first] = (it->second).size();
167 G4String matNameModif = ReplaceMaterial(materialName);
170 if(energyConstant.find(matNameModif)==energyConstant.end())
172 std::ostringstream oss;
173 oss <<
"Material name was not found in energyConstantMap. Problematic material is: "<<matNameModif;
174 G4Exception(
"G4DNAPTBIonisationStructure::IonisationEnergy",
"em0002",
180 if (level >=0 && level < nLevels[matNameModif]) ionisation = energyConstant[matNameModif][level];
187 G4String matNameModif = ReplaceMaterial(materialName);
190 if(nLevels.find(matNameModif)==nLevels.end())
192 std::ostringstream oss;
193 oss <<
"Material name was not found in energyConstantMap. Problematic material is: "<<matNameModif;
194 G4Exception(
"G4DNAPTBIonisationStructure::NumberOfLevels",
"em0002",
198 return nLevels[matNameModif];
201G4String G4DNAPTBIonisationStructure::ReplaceMaterial(
const G4String& materialName)
203 G4String materialNameModified (materialName);
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";
212 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()