41 lines
		
	
	
		
			731 B
		
	
	
	
		
			Fortran
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			731 B
		
	
	
	
		
			Fortran
		
	
	
	
	
	
| subroutine slope(y,npts,xpk)
 | |
| 
 | |
| ! Remove best-fit slope from data in y(i).  When fitting the straight line,
 | |
| ! ignore the peak around xpk +/- 4 bins
 | |
| 
 | |
|   real y(npts)
 | |
| 
 | |
|   sumw=0.
 | |
|   sumx=0.
 | |
|   sumy=0.
 | |
|   sumx2=0.
 | |
|   sumxy=0.
 | |
|   sumy2=0.
 | |
|   do i=1,npts
 | |
|      if(abs(i-xpk).gt.4.0) then
 | |
|         sumw=sumw + 1.0
 | |
|         x=i
 | |
|         sumx=sumx + x
 | |
|         sumy=sumy + y(i)
 | |
|         sumx2=sumx2 + x*x
 | |
|         sumxy=sumxy + x*y(i)
 | |
|         sumy2=sumy2 + y(i)**2
 | |
|      endif
 | |
|   enddo
 | |
| 
 | |
|   delta=sumw*sumx2 - sumx**2
 | |
|   a=(sumx2*sumy - sumx*sumxy) / delta
 | |
|   b=(sumw*sumxy - sumx*sumy) / delta
 | |
| 
 | |
|   sq=0.
 | |
|   do i=1,npts
 | |
|      y(i)=y(i)-(a + b*i)
 | |
|      if(abs(i-xpk).gt.4.0) sq=sq + y(i)**2
 | |
|   enddo
 | |
|   rms=sqrt(sq/(sumw-4.0))
 | |
|   y=y/rms
 | |
| 
 | |
|   return
 | |
| end subroutine slope
 | |
| 
 | 
