69 extern "C" {
void dlsqpm_ (
int*,
double*,
double*,
int*,
double*,
double*,
int*);}
83 for (
G4int ig=0; ig<maxigp; ig++) {
84 for (
G4int j=0; j<10; j++) {
121 for (
G4int i=0; i<maxArrayp; i++) {
123 lnib[i] = std::log(ib[i]);
124 if (bsite[i] < 1.0E-10) lnbsite[i] = -23.02585093;
125 else lnbsite[i] = std::log(bsite[i]);
127 if (bsite[i] >= limit1) pt1 = i;
129 else if (pt2 == -1) {
130 if (bsite[i] >= limit2) pt2 = i;
132 else if (pt3 == -1) {
133 if (bsite[i] >= limit3) pt3 = i;
135 else if (pt4 == -1) {
136 if (bsite[i] >= limit4) pt4 = i;
144 G4int deltan = pt2 - pt1;
149 dlsqpm_ (&deltan,&lnbsite[pt1],&lnib[pt1],&M,&a1[0],&sd,&ifail);
157 dlsqpm_ (&deltan,&lnbsite[1],&lnib[1],&M,&a1[0],&sd,&ifail);
166 if (std::abs(M2-M1) > 1.0E-10) {
167 p[4] = exp(-(c2-c1)/(M2-M1));
180 for (
G4int ig = 120; ig < 1000; ig++) {
184 for (
G4int i = pt2; i<pt3; i++) {
186 G4double B = p[2] * std::pow(f,p[3]) /
187 std::pow((1.0-std::pow(f,GAMMA)),EXPON);
188 G4double epsilon = std::abs((ib[i]-B)/ib[i]);
189 if (epsilon > DELTA) DELTA = epsilon;
204 for (
G4int i = pt3; i<pt4; i++) {
205 phi[i] = -std::log(1.0 - bsite[i]);
211 dlsqpm_ (&deltan,&phi[pt3],&ib[pt3],&M,&a2[0],&sd,&ifail);
233 ig =
G4int(2.0*std::log10(ppn)) - 2;
236 else if (ig > 23) ig = 23;
239 if (f <= paramn[ig][4]) {
240 v = paramn[ig][0] * std::pow(f,paramn[ig][1]);
242 else if (f <= limit3) {
243 v = paramn[ig][2] * std::pow(f,paramn[ig][3]) /
244 std::pow((1.0 - std::pow(f,paramn[ig][5])),paramn[ig][3]/paramn[ig][5]);
251 paramn[ig][9]*std::pow(l,3.0);
269 ig =
G4int(2.0*std::log10(ppn)) - 2;
272 else if (ig > 23) ig = 23;
275 if (f <= paramm[ig][4]) {
276 v = paramm[ig][0] * std::pow(f,paramm[ig][1]);
278 else if (f <= limit3) {
279 v = paramm[ig][2] * std::pow(f,paramm[ig][3]) /
280 std::pow((1.0 - std::pow(f,paramm[ig][5])),paramm[ig][3]/paramm[ig][5]);
287 paramn[ig][9]*std::pow(l,3.0);
G4double GetParameterisedValueN(const G4double f, const G4double ppn) const
G4double GetFitParameters(const G4double *bsite, G4double *p) const
~G4Type1GlauberParameterisation()
G4Type1GlauberParameterisation()
Definition of the G4Type1GlauberParameterisation class.
G4double GetParameterisedValueM(const G4double f, const G4double ppn) const