*-- Author : Stephen J. Maxfield
SUBROUTINE FPOKEM(NRUN0)
**----------------------------------------------------------------------
*
*--------------------------------------------------------------------
* Get number of events...
CALL SAREA('FTREC', 0)
CALL GHSTAT('HS', 1, 0, NENT, SUMW, RNEFF, XST, YST)
CALL SAREA('FPOKE', 0)
* Book histograms...
CALL BVEC(100, 0, 6)
CALL STEXT(100, 4,'D-time (scaled) vs. Dist(predicted)')
* Lorentz Angle stuff...
CALL BVEC(7500, 0, 6)
CALL BHD(7501, 0, 100, -25., 25., 100, -25., 25.)
CALL STEXT(7501, 4,' Delta R-perp vs. Pred drift')
* Analyse the data.
* ------- --- ----
* Analysis of histogram results.
* Write(6,*) ' Fpkanl >> Begin peaks analysis...'
* Do peakparm analysis of the pred drift histograms...
* Get average predicted drift distance in the slice...
CALL GHSTAT('HS', JHIS2, 0, NENT, SUMW, RNEFF, XST, YST)
CALL HPEAK('HS',JHIS1, 0, NPK, PDAT)
* peak position and error on...
* comment out next line for 'full width errors'
* Hence Drift distance vs. drift time:-
CALL SVEC(100, 0, CVEC)
* Now purge figures - no longer needed.
CALL PURGEF(JHIS1)
CALL PURGEF(JHIS2)
* Lorentz Angle stuff...
* Get average predicted drift distance in the slice...
CALL GHSTAT('HS', JHIS2, 0, NENT, SUMW, RNEFF, XST, YST)
* Write(6,*) KBIN, NENT, DMAV
CALL HPEAK('HS',JHIS1, 0, NPK, PDAT)
* peak position and error on...
* comment out next line for 'full width errors'
* Hence Delta R vs. predicted drift...
CALL SVEC(7500, 0, CVEC)
* Extraction of calibration data. Not for online at moment...
* Now fit the drift stuff to two straight lines...
* Set x-ranges.
CALL SAREA('FPOKE', 0)
CALL LKFPAR (2,PAR,PMIN,PMAX,IERR)
CALL LKFITY(KKHIS, 0, 1, XMI, XMA, 'P1', IERRP)
CALL LKFGET(IFLAG,CHIS,NPT,NPAR,PAR,EPAR,COV)
CALL LKFPAR (2,PAR,PMIN,PMAX,IERR)
CALL LKFITY(KKHIS, 0, 2, -XMA, -XMI, 'P1', IERRM)
CALL LKFGET(IFLAG,CHIS,NPT,NPAR,PAR,EPAR,COV)
* Compute mean of +/- sides and F0R8 value...
* ( entry in f0r8 bank is 10**-4 times this)
* Fit the Lorentz Angle data...
*
* Set x-ranges...
CALL LKFPAR (2,PAR,PMIN,PMAX,IERR)
CALL LKFITY(7500, 0, 1, XMI, XMA, 'P1', IERRL)
CALL LKFGET(IFLAG,CHIS,NPT,NPAR,PAR,EPAR,COV)
* Set some attributes...
* CALL SATTR('VEC',7500,0,'full curv')
* Output to history n-tuple.
CALL SAREA('FPOKER',0)
* Fill Ntuples...
CALL SVEC(1, 0, AVEC)
CALL SVEC(2, 0, AVEC)
CALL SVEC(3, 0, AVEC)
CALL SVEC(4, 0, AVEC)
*-------------------------------------------------------------
*
* Normalised Wiebull Function
* P(1) = area
* P(2) = x-position of the maximum [1050.0]
* P(3) = decay parameter [2.5]
* P(4) = x-threshold [1000.0]
* The values in [square] brackets are for typical Planar back-edge DOS.
* JVM 24/4/95