Package dics :: Module detmech :: Class detmech
[hide private]
[frames] | no frames]

Class detmech
source code

Object representing the DAZLE/CIRPASS camera's detector focus/tilt mechanism which consists of a three point kinematic mount.

Instance Methods [hide private]
  __init__(self, det1, det2, det3, offset1, offset2, offset3, name)
Arguments:
  updateConfig(self, config)
Should be called by the parent instrument object's destructor to enable status information to be saved to file on exit.
  setupDetmech(self)
Calls the setupLinear() methods of each of the three mechanism motors to establish the centre of the range of movement, limit switch positions and software limits.
  getPosition(self)
Returns the current focus position (in microns) and the tilts along the two diagonals of the detector (as rotator.angle objects).
  printPosition(self)
Similar to getPosition(), but instead prints a human readable string decribing the focus position (microns) and the tiles (degrees).
  zeroTilts(self)
Call this function after manually zeroing the tilt of the detector by imaging a test target screen.
  moveTo(self, focus, tilt1=0, tilt2=0)
Arguments:
  moveBy(dfocus, dtilt1=0, dtilt2=0)
Arguments: dfocus: The amount that the focus position should change by, in microns.
  getLimits(self)
Returns a tuple containing the upper and lower focus position limits for zero tilts.

Method Details [hide private]

__init__(self, det1, det2, det3, offset1, offset2, offset3, name)
(Constructor)

source code 

Arguments:

det1: A linear.linear object corresponding to detector motor 1. det2: A linear.linear object corresponding to detector motor 2. det3: A linear.linear object corresponding to detector motor 3. offset1: Offset from the nominal zero position to zero the tilt. offset2: Offset from the nominal zero position to zero the tilt. offset3: Offset from the nominal zero position to zero the tilt. name: An identifier used for logging purposes.

updateConfig(self, config)

source code 

Should be called by the parent instrument object's destructor to enable status information to be saved to file on exit.

Takes a ConfigParserRT.SafeConfigParser object as argument.

setupDetmech(self)

source code 

Calls the setupLinear() methods of each of the three mechanism motors to establish the centre of the range of movement, limit switch positions and software limits.

Due to slight variations in limit switch positions this will not properly zero the tilts of the detector, in order to do this a target screen should be used together with manual tilt adjustments, and then zeroTilts() called to set the required offsets for each motor.

Care should be taken in using this routine, and it should not be run unless necessary. As each of the motors is exercised over its full range in turn large tilts will occur and there are some combinations of motor positions where this can result in the detector box contacting the LN2 can. Attempting to ensure that the motors, and in particular motor 3, are near the middle of their range before beginning this process will minimise risk.

getPosition(self)

source code 
Returns the current focus position (in microns) and the tilts along the two diagonals of the detector (as rotator.angle objects).

printPosition(self)

source code 
Similar to getPosition(), but instead prints a human readable string decribing the focus position (microns) and the tiles (degrees).

zeroTilts(self)

source code 
Call this function after manually zeroing the tilt of the detector by imaging a test target screen. This adjusts the 3 offsets used in calculating the detector position so that afterwards the tilt calculations will be correct.

moveTo(self, focus, tilt1=0, tilt2=0)

source code 

Arguments:

focus: new focus position, in microns. tilt1: new tilt along the 1-3 diagonal, in degrees, default 0 tilt2: new tilt along the 3 diagonal, in degrees, default 0.

moveBy(dfocus, dtilt1=0, dtilt2=0)

source code 

Arguments:

dfocus: The amount that the focus position should change by, in
       microns.
dtilt1: The amount that tilt about the first diagonal should change by
       in degrees
dtilt2: The amount that tilt about the second diagonal should change by
       in degrees.

getLimits(self)

source code 
Returns a tuple containing the upper and lower focus position limits for zero tilts. If tilts are non-zero this range will be reduced, and likewise the focus position will determine the range of available tilts. This function doesn't try to work those effects out.