72{
73
74 if ( zTarget < 41 )
75
76 {
77
78
79
80 return 0;
81 }
82
83
84
85
86
87
88
89
91
92
94
95 G4double normalizedEnergy = (energyIncident/keV)/(lamda*l1BindingEnergy);
96
97 G4double x = std::log(normalizedEnergy);
98
109
110
111 if ( (zTarget>=41 && zTarget<=50) && (normalizedEnergy>=0.013 && normalizedEnergy<=1) )
112 {
113
114 G4cout <<
"Energy1 (keV) = " << normalizedEnergy * lamda*l1BindingEnergy <<
G4endl;
115
116 a0=11.274881;
117 a1=-0.187401;
118 a2=-0.943341;
119 a3=-1.47817;
120 a4=-1.282343;
121 a5=-0.386544;
122 a6=-0.037932;
123 a7=0.;
124 a8=0.;
125 a9=0.;
126 }
127
128 else if ( (zTarget>=51 && zTarget<=60) && (normalizedEnergy>=0.012 && normalizedEnergy<=0.95))
129 {
130
131
132
133 a0=11.242637;
134 a1=-0.162515;
135 a2=1.035774;
136 a3=3.970908;
137 a4=3.968233;
138 a5=1.655714;
139 a6=0.058885;
140 a7=-0.155743;
141 a8=-0.042228;
142 a9=-0.003371;
143 }
144
145 else if ( (zTarget>=61 && zTarget<=70) && (normalizedEnergy>=0.01 && normalizedEnergy<=0.6) )
146 {
147
148
149
150 a0=6.476722;
151 a1=-25.804787;
152 a2=-54.061629;
153 a3=-56.684589;
154 a4=-33.223367;
155 a5=-11.034979;
156 a6=-2.042851;
157 a7=-0.194075;
158 a8=-0.007252;
159 a9=0.;
160 }
161 else if ( (zTarget>=71 && zTarget<=80) && (normalizedEnergy>=0.01 && normalizedEnergy<=0.45) )
162 {
163
164
165
166 a0=12.776794;
167 a1=6.562907;
168 a2=10.158703;
169 a3=7.432592;
170 a4=2.332036;
171 a5=0.317946;
172 a6=0.014479;
173 a7=0.;
174 a8=0.;
175 a9=0.;
176 }
177 else if ( (zTarget>=81 && zTarget<=92) && (normalizedEnergy>=0.008 && normalizedEnergy<=0.3) )
178 {
179
180
181
182 a0=28.243087;
183 a1=50.199585;
184 a2=58.281684;
185 a3=34.130538;
186 a4=10.268531;
187 a5=1.525302;
188 a6=0.08835;
189 a7=0.;
190 a8=0.;
191 a9=0.;
192 }
193 else {return 0;}
194
195
196G4double analyticalFunction = a0 + (a1*x)+(a2*x*x)+(a3*std::pow(x,3))+(a4*std::pow(x,4))+(a5*std::pow(x,5))+(a6*std::pow(x,6))+
197 (a7*std::pow(x,7))+(a8*std::pow(x,8))+(a9*std::pow(x,9));
198
199
200
201 G4double L1crossSection = std::exp(analyticalFunction)/(l1BindingEnergy*l1BindingEnergy);
202
203
204 if (L1crossSection >= 0) {
205 return L1crossSection * barn;
206 }
207 else {return 0;}
208
209}
G4DLLIMPORT std::ostream G4cout
G4double BindingEnergy() const
G4AtomicShell * Shell(G4int Z, size_t shellIndex) const