*-- Author : J. V. Morris 17/04/93
FUNCTION FPLT2D(TICK,SGN,IWCH)
**********************************************************************
* *
* Planar Time-to-Distance model. *
* TICK is drift time in ticks with Tzero already subtracted *
* SGN is +1.0 for "near" wires -1.0 for "far" wires *
* if SGN = 0.0, then then no near/far asymmetry adjustment is made *
* IWCH is the planar channel number (0 to 1151) *
* FPLT2D is the computed drift distance in cm. *
* *
* The function uses microns and nsecs internally *
* JVM 04/01/93 *
* *
* Include 6% velocity asymmetry beta *
* JVM 21/01/93 *
* *
* The velocity asymmetry is disabled until it can be tested! *
* Include different T-2-D for "inner" and "outer" wires. *
* JVM 08/04/93 *
* *
* Change interface to calibration constants. *
* Add SGN = 0.0 option. *
* SJM 17/04/93 *
**********************************************************************
*>>>>>>>>>>>>> interface to calibration constants
* Common for time-to-distance relation
COMMON/T2DISP/ VEL(24), XPT(18)
*SJM VEL(1:4) = Vout. VEL(5:8) = Vin. far wires
*SJM VEL(9:12) = Vout. VEL(13:16) = Vin. symmetric case
*SJM VEL(17:20) = Vout. VEL(21:24) = Vin. near wires
*SJM XPT(1:3) = Xout. XPT(4:6) = Xin. far wires
*SJM XPT(7:9) = Xout. XPT(10:12) = Xin. symmetric case
*SJM XPT(13:15) = Xout. XPT(16:18) = Xin. near wires
*JVM VIN = 44.93, 32.93, 33.12, 28.92 for run 34469
*JVM VOUT = 46.55, 31.80, 32.99, 29.17 for run 34469
*JVM X0IN = 5025., 16360., 28100. for all runs
*JVM X0OUT= 5025., 17080., 28100. for all runs
*>>>>>>>>>>>>> end of calibration constants
* The parameters V(1) to V(4) (local drift velocities in micron/nsec),
* X(1) and X(2) have been determined by a fit to the drift time
* distribution from run 34469 with the constraint that the resulting
* drift distance distribution be flat. X(3) is the nominal Planar cell
* depth in microns.
* channel outer, inner => IOFF = 0, 1
IWW = MOD(IWCH,4)
IF( IWW.EQ.0 .OR. IWW.EQ.3 )THEN ! outer
IOFF = 0
ELSE ! inner
IOFF = 1
ENDIF
* Far, symmetric, near => ISGN = -1,0,+1
IF(SGN .EQ. 0.0) THEN
ISGN = 0
ELSE
ISGN = INT(SIGN(1.1,SGN))
ENDIF
IV = (ISGN + 1)*8 + IOFF*4
IX = (ISGN + 1)*6 + IOFF*3
* Write(6,'('' Vel'',4F10.6)')(VEL(IV+LL), LL = 1,4)
* Write(6,'('' Xpt'',4F10.2)')(XPT(IX+LL), LL = 1,3)
* T in nsecs
T = TICK * 0.1923077
FPLT2D = 0.0
IF( T.LE.0.) THEN
FPLT2D = VEL(IV+1)*T
GOTO 1000
ENDIF
* Drift time to X(1)
TL1 = XPT(IX+1)*ALOG(VEL(IV+2)/VEL(IV+1))/(VEL(IV+2)-VEL(IV+1))
IF( T.LE.TL1 ) THEN
D = XPT(IX+1)
DV = VEL(IV+2)-VEL(IV+1)
FPLT2D = D*VEL(IV+1)*( EXP(DV*T/D)-1.0 )/DV
GOTO 1000
ENDIF
D = XPT(IX+2)-XPT(IX+1)
DV= VEL(IV+3)-VEL(IV+2)
* Drift time to X(2)
TL2 = TL1 + D*ALOG(VEL(IV+3)/VEL(IV+2))/DV
IF( T.LE.TL2 ) THEN
FPLT2D = XPT(IX+1)+D*VEL(IV+2)*( EXP(DV*(T-TL1)/D)-1.0 )/DV
GOTO 1000
ENDIF
D = XPT(IX+3)-XPT(IX+2)
DV= VEL(IV+4)-VEL(IV+3)
* Drift time to X(3)
TL3 = TL2 + D*ALOG(VEL(IV+4)/VEL(IV+3))/DV
IF( T.LE.TL3 ) THEN
FPLT2D = XPT(IX+2)+D*VEL(IV+3)*( EXP(DV*(T-TL2)/D)-1.0 )/DV
GOTO 1000
ENDIF
FPLT2D = XPT(IX+3) + VEL(IV+4)*(T-TL3)
* Microns to cm
1000 FPLT2D = FPLT2D * 1.0E-4
RETURN
END
*