HRS Transfer Functions:
(based on the John LeRose's SNAKE models of the spectrometers as of 7/20/99, updated 10/13/99, updated again 4/11/00)n.b. Electron Arm reverse functions before 10/13/99 were slightly incorrect. The new ones will agree better with the forward going functions.
4/11/00: Forward functions have been updated to give improved x0 dependence. The old functions can still be found in the file monte_trans.f the new ones are in new_monte_trans.f (see below)
4/11/00: Preliminary forward functions for HRS with septum attached are now also available.
Units:
all functions use meters, tangents of angles, and delta expressed as a dimensionless fraction.Language: fortran
The Forward Going Transfer functions
(target toward detectors) can be found in:~lerose/magnets/SNAKE/MUDIFI/monte-carlo/
new_monte_trans.f (formerly monte_trans.f)For spectrometer with septum attached see:
~lerose/magnets/SNAKE/MUDIFI/monte-carlo/
septum_monte_trans.fTheir use is explained in the comments with the code. (domega.f in the same subdirectory is an example of how they are used.)
The Apertures:
Q1 exit is a circle of radius 0.1492 m (as measured by Makis)
Q3 entrance and exit are circles of radius 0.300 m
The dipole entrance and exit are trapezoids:
-0.40 m<x<0.40 m (+x is down) (this is a "soft" aperture in that it indicates the approximate end of the good field region but not necessarily any real physical object)
y=+-(0.125*(1-(1.25*x/8.40)) (smallest gap at positive x, x in m)
Remember the functions give you meters.
The Reverse Functions
(detector to target) are in the following:For the electron arm the file is:
~lerose/magnets/SNAKE/MUDIFI/comm8_funcs.f
For the hadron arm:
~lerose/magnets/SNAKE/MUDIFI/hcomm8_f.f
Now a few words about reverse function usage.
In each file there are 5 fortran functions:
TXFIT(x,m)
delta(x,m)
theta(x,m)
phi(x,m)
y00(x,m)
Calling convention is as follows. x is an array in which x(1->4) are xf, thetaf, yf, phif (the detector coordinates in the transport coordinate system). For TXFIT m=1 for all others m=4.
Procedure:
Convert theta to a new orthogonalized theta' as follows:
theta'=theta-TXFIT(x,1)
Put the new theta' into your x array (or x(2)=x(2)-TXFIT(x,1) should work)
Then I think it's self-explanitory:
delta0 = delta(x,4)
theta0= theta(x,4)
phi0=phi(x,4)
y0=y00(x,4)
Please send comments or questions to John LeRose: lerose@jlab.org