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.f

Their 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

Return to Hall A homepage