- Fixed NB indexing
- Fixed an issue with setbin generated time binnings
This commit is contained in:
54
singlenb.c
54
singlenb.c
@ -213,6 +213,31 @@ static int getNBReflection(pSingleDiff self, char *id, reflection * r)
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
/*---------------------------------------------------------------------*/
|
||||
static int getNBNBReflection(pSingleDiff self, char *id, reflection * r)
|
||||
{
|
||||
pSICSOBJ refList;
|
||||
double hkl[3], angles[4], z1[3];
|
||||
double omnb, gamma, nu, stt, om, chi, phi;
|
||||
|
||||
|
||||
refList = SXGetReflectionList();
|
||||
if (!GetRefIndexID(refList, id, hkl)) {
|
||||
return 0;
|
||||
} else {
|
||||
r->h = hkl[0];
|
||||
r->k = hkl[1];
|
||||
r->l = hkl[2];
|
||||
GetRefAnglesID(refList, id, angles);
|
||||
gamma = angles[0];
|
||||
omnb = angles[1];
|
||||
nu = angles[2];
|
||||
r->gamma = gamma;
|
||||
r->omnb = omnb;
|
||||
r->nu = nu;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------*/
|
||||
MATRIX calcNBUBFromTwo(pSingleDiff self,
|
||||
@ -229,16 +254,16 @@ MATRIX calcNBUBFromTwo(pSingleDiff self,
|
||||
direct.beta = self->cell[4];
|
||||
direct.gamma = self->cell[5];
|
||||
|
||||
if (!getNBReflection(self, refid1, &r1)) {
|
||||
if (!getNBNBReflection(self, refid1, &r1)) {
|
||||
*err = REFERR;
|
||||
return NULL;
|
||||
}
|
||||
if (!getNBReflection(self, refid2, &r2)) {
|
||||
if (!getNBNBReflection(self, refid2, &r2)) {
|
||||
*err = REFERR;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
newUB = calcUBFromCellAndReflections(direct, r1, r2, err);
|
||||
newUB = calcNBUBFromCellAndReflections(direct, r1, r2, err);
|
||||
|
||||
return newUB;
|
||||
}
|
||||
@ -250,20 +275,20 @@ MATRIX calcNBFromThree(pSingleDiff self,
|
||||
MATRIX newUB;
|
||||
reflection r1, r2, r3;
|
||||
|
||||
if (!getNBReflection(self, refid1, &r1)) {
|
||||
if (!getNBNBReflection(self, refid1, &r1)) {
|
||||
*err = REFERR;
|
||||
return NULL;
|
||||
}
|
||||
if (!getNBReflection(self, refid2, &r2)) {
|
||||
if (!getNBNBReflection(self, refid2, &r2)) {
|
||||
*err = REFERR;
|
||||
return NULL;
|
||||
}
|
||||
if (!getNBReflection(self, refid3, &r3)) {
|
||||
if (!getNBNBReflection(self, refid3, &r3)) {
|
||||
*err = REFERR;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
newUB = calcUBFromThreeReflections(r1, r2, r3, self->lambda, err);
|
||||
newUB = calcNBUBFromThreeReflections(r1, r2, r3, self->lambda, err);
|
||||
return newUB;
|
||||
}
|
||||
|
||||
@ -271,12 +296,27 @@ MATRIX calcNBFromThree(pSingleDiff self,
|
||||
static int calcNBZ1(pSingleDiff self, char *refid, double z1[3])
|
||||
{
|
||||
reflection r1;
|
||||
pSICSOBJ refList;
|
||||
double angles[4];
|
||||
double omnb, gamma, nu;
|
||||
|
||||
refList = SXGetReflectionList();
|
||||
if (!GetRefAnglesID(refList, refid, angles)) {
|
||||
return 0;
|
||||
} else {
|
||||
gamma = angles[0];
|
||||
omnb = angles[1];
|
||||
nu = angles[2];
|
||||
z1FromNormalBeam(self->lambda, omnb, gamma, nu, z1);
|
||||
return 1;
|
||||
}
|
||||
/*
|
||||
if (!getNBReflection(self, refid, &r1)) {
|
||||
return 0;
|
||||
}
|
||||
z1FromAngles(self->lambda, r1.s2t, r1.om, r1.chi, r1.chi, z1);
|
||||
return 1;
|
||||
*/
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------*/
|
||||
|
Reference in New Issue
Block a user