-
Notifications
You must be signed in to change notification settings - Fork 1
/
fitemc_2006.f
84 lines (70 loc) · 5.07 KB
/
fitemc_2006.f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
REAL FUNCTION FITEMC_2006(X,A,GOODFIT)
!---------------------------------------------------------------------
! Fit to EMC effect. Steve Rock 8/3/94
! Funciton returns value of sigma(A)/sigma(d) for isoscaler nucleus
! with A/2 protons=neutrons.
! A= atomic number
! x = Bjorken x.
!
! Fit of sigma(A)/sigma(d) to form C*A**alpha where A is atomic number
! First data at each x was fit to form C*A**alpha. The point A=2(d)
! was included with a value of 1 and an error of about 2%.
! For x>=.125 Javier Gomez fit of 7/93 to E139 data was used.
! For .09 >=x>=.0085 NMC data from Amaudruz et al Z. Phys C. 51,387(91)
! Steve did the fit for alpha and C to the He/d. C/d and Ca/d NMC data.
! Alpha(x) was fit to a 9 term polynomial a0 +a1*x +a2*x**2 + a3*x**3 ..
! C(x) was fit to a 3 term polynomial in natural logs as
! Ln(C) = c0 + c1*Ln(x) + c2*[Ln(x)]**2.
! 6/2/98 ***** Bug (which set x= .00885 if x was out of range) fixed
! also gave value at x=.0085 if x>.88
! 11/05 PYB PEB modified to use value at x=0.7 if x>0.7, because
! beyond that assume Fermi motion is giving the rise, and we
! already are taking that into account with the y-smearing of
! the inelastic
!-----------------------------------------------------------------------
IMPLICIT NONE
INTEGER I
REAL*4 ALPHA, C,LN_C,X,A ,X_U
LOGICAL GOODFIT
!Chisq= 19. for 30 points
!Term Coeficient Error
REAL*8 ALPHA_COEF(2,0:8) /
> -6.98871401D-02, 6.965D-03,
> 2.18888887D+00, 3.792D-01,
> -2.46673765D+01, 6.302D+00,
> 1.45290967D+02, 4.763D+01,
> -4.97236711D+02, 1.920D+02,
> 1.01312929D+03, 4.401D+02,
> -1.20839250D+03, 5.753D+02,
> 7.75766802D+02, 3.991D+02,
> -2.05872410D+02, 1.140D+02 /
!Chisq= 22. for 30 points
!Term Coeficient Error
REAL*8 C_COEF(2,0:2) / ! Value and error for 6 term fit to
> 1.69029097D-02, 4.137D-03,
> 1.80889367D-02, 5.808D-03,
> 5.04268396D-03, 1.406D-03 /
fitemc_2006 = 1.
if(A .lt. 2.5) return
c IF( (X.GT.0.88).OR.(X.LT. 0.0085) ) THEN !Out of range of fit
IF( (X.GT.0.70).OR.(X.LT. 0.0085) ) THEN !Out of range of fit
IF(X.LT. 0.0085) X_U =.0085
c IF(X.GT. 0.88) X_U =.88
IF(X.GT. 0.70) X_U =.70
GOODFIT=.FALSE.
ELSE
X_U=X
GOODFIT=.TRUE.
ENDIF
LN_C = C_COEF(1,0)
DO I =1,2
LN_C = LN_C + C_COEF(1,I) * (ALOG(X_U))**I
ENDDO
C = EXP(LN_C)
ALPHA = ALPHA_COEF(1,0)
DO I=1,8
ALPHA = ALPHA + ALPHA_COEF(1,I) * X_U**I
ENDDO
FITEMC_2006 = C *A**ALPHA
RETURN
END