SICS-720 Add autofocussing on Taipan using the following energy relations,

Avfocus = 115 + 2.13 * Ef
Mvfocus = 102.2 + 1.78 * Ei

Ahfocus = 45.68 - (-105.7) * (0.945) ^ Ef
Mhfocus = 184.42 - (60.1) * (0.951) ^ Ei

NOTE: Parameters are set via tasub mono/ana  VB1/VB2/HB1/HB2/HB3
This commit is contained in:
Ferdi Franceschini
2014-03-10 14:05:46 +11:00
parent 879a573e05
commit 9b19ddf4e6
5 changed files with 96 additions and 32 deletions

View File

@@ -22,6 +22,9 @@
#define KICONST 1
#define KFCONST 2
#define ELASTIC 3
/*========================== defines for focusfn ====================*/
#define ENERGY_FN 1
#define THETA_FN 2
/*
* in elastic mode A5, A5 will be disregarded and ki = kf at all times
*/
@@ -42,8 +45,8 @@
typedef struct {
double dd; /* lattice spacing */
int ss; /* scattering sense */
double HB1, HB2; /* horizontal curvature parameters */
double VB1, VB2; /* vertical curvature parameters */
double HB1, HB2, HB3; /* horizontal curvature parameters */
double VB1, VB2; /* vertical curvature parameters */
} maCrystal, *pmaCrystal;
/**
* the machine parameters of a triple axis spectrometer
@@ -109,14 +112,14 @@ int maCalcTwoTheta(maCrystal data, double k, double *two_theta);
* @param two_theta The tow theta value for which to calculate the curvature.
* @return A new value for the curvature.
*/
double maCalcVerticalCurvature(maCrystal data, double two_theta);
double maCalcVerticalCurvature(maCrystal data, double two_theta, double energy, int focusfn);
/**
* calculate the value for the horizontal curvature
* @param data The input crystal parameters
* @param two_theta The tow theta value for which to calculate the curvature.
* @return A new value for the curvature.
*/
double maCalcHorizontalCurvature(maCrystal data, double two_theta);
double maCalcHorizontalCurvature(maCrystal data, double two_theta, double energy, int focusfn);
/**
* calculate the value of the K vector from the angle
* @param data The crystals constants