IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Jun 4, 2007, 2:30:45 PM (19 years ago)
Author:
eugene
Message:

adding binned_stats, sat_pixel_frac, user stats, fringe stats

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ippdb/src/ippdb.c

    r12568 r13621  
    35263526static void rawExpRowFree(rawExpRow *object);
    35273527
    3528 rawExpRow *rawExpRowAlloc(const char *exp_tag, const char *exp_id, const char *camera, const char *telescope, psTime* dateobs, const char *exp_type, psS32 imfiles, const char *filelevel, const char *workdir, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang, const char *object, psF32 solang, psS16 fault)
     3528rawExpRow *rawExpRowAlloc(const char *exp_tag, const char *exp_id, const char *camera, const char *telescope, psTime* dateobs, const char *exp_type, psS32 imfiles, const char *filelevel, const char *workdir, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF32 sat_pixel_frac, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *object, psF32 solang, psS16 fault)
    35293529{
    35303530    rawExpRow       *_object;
     
    35473547    _object->decl = decl;
    35483548    _object->exp_time = exp_time;
     3549    _object->sat_pixel_frac = sat_pixel_frac;
    35493550    _object->bg = bg;
    35503551    _object->bg_stdev = bg_stdev;
     
    35543555    _object->ccd_temp = ccd_temp;
    35553556    _object->posang = posang;
     3557    _object->user_1 = user_1;
     3558    _object->user_2 = user_2;
     3559    _object->user_3 = user_3;
     3560    _object->user_4 = user_4;
     3561    _object->user_5 = user_5;
    35563562    _object->object = psStringCopy(object);
    35573563    _object->solang = solang;
     
    36483654        return false;
    36493655    }
     3656    if (!psMetadataAdd(md, PS_LIST_TAIL, "sat_pixel_frac", PS_DATA_F32, NULL, 0.0)) {
     3657        psError(PS_ERR_UNKNOWN, false, "failed to add item sat_pixel_frac");
     3658        psFree(md);
     3659        return false;
     3660    }
    36503661    if (!psMetadataAdd(md, PS_LIST_TAIL, "bg", PS_DATA_F64, NULL, 0.0)) {
    36513662        psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
     
    36833694        return false;
    36843695    }
     3696    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_1", PS_DATA_F64, NULL, 0.0)) {
     3697        psError(PS_ERR_UNKNOWN, false, "failed to add item user_1");
     3698        psFree(md);
     3699        return false;
     3700    }
     3701    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_2", PS_DATA_F64, NULL, 0.0)) {
     3702        psError(PS_ERR_UNKNOWN, false, "failed to add item user_2");
     3703        psFree(md);
     3704        return false;
     3705    }
     3706    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_3", PS_DATA_F64, NULL, 0.0)) {
     3707        psError(PS_ERR_UNKNOWN, false, "failed to add item user_3");
     3708        psFree(md);
     3709        return false;
     3710    }
     3711    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_4", PS_DATA_F64, NULL, 0.0)) {
     3712        psError(PS_ERR_UNKNOWN, false, "failed to add item user_4");
     3713        psFree(md);
     3714        return false;
     3715    }
     3716    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_5", PS_DATA_F64, NULL, 0.0)) {
     3717        psError(PS_ERR_UNKNOWN, false, "failed to add item user_5");
     3718        psFree(md);
     3719        return false;
     3720    }
    36853721    if (!psMetadataAdd(md, PS_LIST_TAIL, "object", PS_DATA_STRING, NULL, "64")) {
    36863722        psError(PS_ERR_UNKNOWN, false, "failed to add item object");
     
    37113747}
    37123748
    3713 bool rawExpInsert(psDB * dbh, const char *exp_tag, const char *exp_id, const char *camera, const char *telescope, psTime* dateobs, const char *exp_type, psS32 imfiles, const char *filelevel, const char *workdir, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang, const char *object, psF32 solang, psS16 fault)
     3749bool rawExpInsert(psDB * dbh, const char *exp_tag, const char *exp_id, const char *camera, const char *telescope, psTime* dateobs, const char *exp_type, psS32 imfiles, const char *filelevel, const char *workdir, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF32 sat_pixel_frac, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *object, psF32 solang, psS16 fault)
    37143750{
    37153751    psMetadata *md = psMetadataAlloc();
     
    37843820        return false;
    37853821    }
     3822    if (!psMetadataAdd(md, PS_LIST_TAIL, "sat_pixel_frac", PS_DATA_F32, NULL, sat_pixel_frac)) {
     3823        psError(PS_ERR_UNKNOWN, false, "failed to add item sat_pixel_frac");
     3824        psFree(md);
     3825        return false;
     3826    }
    37863827    if (!psMetadataAdd(md, PS_LIST_TAIL, "bg", PS_DATA_F64, NULL, bg)) {
    37873828        psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
     
    38163857    if (!psMetadataAdd(md, PS_LIST_TAIL, "posang", PS_DATA_F64, NULL, posang)) {
    38173858        psError(PS_ERR_UNKNOWN, false, "failed to add item posang");
     3859        psFree(md);
     3860        return false;
     3861    }
     3862    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_1", PS_DATA_F64, NULL, user_1)) {
     3863        psError(PS_ERR_UNKNOWN, false, "failed to add item user_1");
     3864        psFree(md);
     3865        return false;
     3866    }
     3867    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_2", PS_DATA_F64, NULL, user_2)) {
     3868        psError(PS_ERR_UNKNOWN, false, "failed to add item user_2");
     3869        psFree(md);
     3870        return false;
     3871    }
     3872    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_3", PS_DATA_F64, NULL, user_3)) {
     3873        psError(PS_ERR_UNKNOWN, false, "failed to add item user_3");
     3874        psFree(md);
     3875        return false;
     3876    }
     3877    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_4", PS_DATA_F64, NULL, user_4)) {
     3878        psError(PS_ERR_UNKNOWN, false, "failed to add item user_4");
     3879        psFree(md);
     3880        return false;
     3881    }
     3882    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_5", PS_DATA_F64, NULL, user_5)) {
     3883        psError(PS_ERR_UNKNOWN, false, "failed to add item user_5");
    38183884        psFree(md);
    38193885        return false;
     
    38573923bool rawExpInsertObject(psDB *dbh, rawExpRow *object)
    38583924{
    3859     return rawExpInsert(dbh, object->exp_tag, object->exp_id, object->camera, object->telescope, object->dateobs, object->exp_type, object->imfiles, object->filelevel, object->workdir, object->filter, object->airmass, object->ra, object->decl, object->exp_time, object->bg, object->bg_stdev, object->bg_mean_stdev, object->alt, object->az, object->ccd_temp, object->posang, object->object, object->solang, object->fault);
     3925    return rawExpInsert(dbh, object->exp_tag, object->exp_id, object->camera, object->telescope, object->dateobs, object->exp_type, object->imfiles, object->filelevel, object->workdir, object->filter, object->airmass, object->ra, object->decl, object->exp_time, object->sat_pixel_frac, object->bg, object->bg_stdev, object->bg_mean_stdev, object->alt, object->az, object->ccd_temp, object->posang, object->user_1, object->user_2, object->user_3, object->user_4, object->user_5, object->object, object->solang, object->fault);
    38603926}
    38613927
     
    40004066        return false;
    40014067    }
     4068    if (!psMetadataAdd(md, PS_LIST_TAIL, "sat_pixel_frac", PS_DATA_F32, NULL, object->sat_pixel_frac)) {
     4069        psError(PS_ERR_UNKNOWN, false, "failed to add item sat_pixel_frac");
     4070        psFree(md);
     4071        return false;
     4072    }
    40024073    if (!psMetadataAdd(md, PS_LIST_TAIL, "bg", PS_DATA_F64, NULL, object->bg)) {
    40034074        psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
     
    40354106        return false;
    40364107    }
     4108    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_1", PS_DATA_F64, NULL, object->user_1)) {
     4109        psError(PS_ERR_UNKNOWN, false, "failed to add item user_1");
     4110        psFree(md);
     4111        return false;
     4112    }
     4113    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_2", PS_DATA_F64, NULL, object->user_2)) {
     4114        psError(PS_ERR_UNKNOWN, false, "failed to add item user_2");
     4115        psFree(md);
     4116        return false;
     4117    }
     4118    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_3", PS_DATA_F64, NULL, object->user_3)) {
     4119        psError(PS_ERR_UNKNOWN, false, "failed to add item user_3");
     4120        psFree(md);
     4121        return false;
     4122    }
     4123    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_4", PS_DATA_F64, NULL, object->user_4)) {
     4124        psError(PS_ERR_UNKNOWN, false, "failed to add item user_4");
     4125        psFree(md);
     4126        return false;
     4127    }
     4128    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_5", PS_DATA_F64, NULL, object->user_5)) {
     4129        psError(PS_ERR_UNKNOWN, false, "failed to add item user_5");
     4130        psFree(md);
     4131        return false;
     4132    }
    40374133    if (!psMetadataAdd(md, PS_LIST_TAIL, "object", PS_DATA_STRING, NULL, object->object)) {
    40384134        psError(PS_ERR_UNKNOWN, false, "failed to add item object");
     
    41294225        return false;
    41304226    }
     4227    psF32 sat_pixel_frac = psMetadataLookupF32(&status, md, "sat_pixel_frac");
     4228    if (!status) {
     4229        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item sat_pixel_frac");
     4230        return false;
     4231    }
    41314232    psF64 bg = psMetadataLookupF64(&status, md, "bg");
    41324233    if (!status) {
     
    41644265        return false;
    41654266    }
     4267    psF64 user_1 = psMetadataLookupF64(&status, md, "user_1");
     4268    if (!status) {
     4269        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_1");
     4270        return false;
     4271    }
     4272    psF64 user_2 = psMetadataLookupF64(&status, md, "user_2");
     4273    if (!status) {
     4274        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_2");
     4275        return false;
     4276    }
     4277    psF64 user_3 = psMetadataLookupF64(&status, md, "user_3");
     4278    if (!status) {
     4279        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_3");
     4280        return false;
     4281    }
     4282    psF64 user_4 = psMetadataLookupF64(&status, md, "user_4");
     4283    if (!status) {
     4284        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_4");
     4285        return false;
     4286    }
     4287    psF64 user_5 = psMetadataLookupF64(&status, md, "user_5");
     4288    if (!status) {
     4289        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_5");
     4290        return false;
     4291    }
    41664292    char* object = psMetadataLookupPtr(&status, md, "object");
    41674293    if (!status) {
     
    41804306    }
    41814307
    4182     return rawExpRowAlloc(exp_tag, exp_id, camera, telescope, dateobs, exp_type, imfiles, filelevel, workdir, filter, airmass, ra, decl, exp_time, bg, bg_stdev, bg_mean_stdev, alt, az, ccd_temp, posang, object, solang, fault);
     4308    return rawExpRowAlloc(exp_tag, exp_id, camera, telescope, dateobs, exp_type, imfiles, filelevel, workdir, filter, airmass, ra, decl, exp_time, sat_pixel_frac, bg, bg_stdev, bg_mean_stdev, alt, az, ccd_temp, posang, user_1, user_2, user_3, user_4, user_5, object, solang, fault);
    41834309}
    41844310psArray *rawExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    42924418static void rawImfileRowFree(rawImfileRow *object);
    42934419
    4294 rawImfileRow *rawImfileRowAlloc(const char *exp_tag, const char *class_id, const char *uri, const char *exp_type, const char *filelevel, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang, const char *object, psTime* dateobs, psS16 fault)
     4420rawImfileRow *rawImfileRowAlloc(const char *exp_tag, const char *class_id, const char *uri, const char *exp_type, const char *filelevel, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF32 sat_pixel_frac, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *object, psTime* dateobs, psS16 fault)
    42954421{
    42964422    rawImfileRow    *_object;
     
    43094435    _object->decl = decl;
    43104436    _object->exp_time = exp_time;
     4437    _object->sat_pixel_frac = sat_pixel_frac;
    43114438    _object->bg = bg;
    43124439    _object->bg_stdev = bg_stdev;
     
    43164443    _object->ccd_temp = ccd_temp;
    43174444    _object->posang = posang;
     4445    _object->user_1 = user_1;
     4446    _object->user_2 = user_2;
     4447    _object->user_3 = user_3;
     4448    _object->user_4 = user_4;
     4449    _object->user_5 = user_5;
    43184450    _object->object = psStringCopy(object);
    43194451    _object->dateobs = psTimeCopy(dateobs);
     
    43884520        return false;
    43894521    }
     4522    if (!psMetadataAdd(md, PS_LIST_TAIL, "sat_pixel_frac", PS_DATA_F32, NULL, 0.0)) {
     4523        psError(PS_ERR_UNKNOWN, false, "failed to add item sat_pixel_frac");
     4524        psFree(md);
     4525        return false;
     4526    }
    43904527    if (!psMetadataAdd(md, PS_LIST_TAIL, "bg", PS_DATA_F64, NULL, 0.0)) {
    43914528        psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
     
    44234560        return false;
    44244561    }
     4562    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_1", PS_DATA_F64, NULL, 0.0)) {
     4563        psError(PS_ERR_UNKNOWN, false, "failed to add item user_1");
     4564        psFree(md);
     4565        return false;
     4566    }
     4567    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_2", PS_DATA_F64, NULL, 0.0)) {
     4568        psError(PS_ERR_UNKNOWN, false, "failed to add item user_2");
     4569        psFree(md);
     4570        return false;
     4571    }
     4572    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_3", PS_DATA_F64, NULL, 0.0)) {
     4573        psError(PS_ERR_UNKNOWN, false, "failed to add item user_3");
     4574        psFree(md);
     4575        return false;
     4576    }
     4577    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_4", PS_DATA_F64, NULL, 0.0)) {
     4578        psError(PS_ERR_UNKNOWN, false, "failed to add item user_4");
     4579        psFree(md);
     4580        return false;
     4581    }
     4582    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_5", PS_DATA_F64, NULL, 0.0)) {
     4583        psError(PS_ERR_UNKNOWN, false, "failed to add item user_5");
     4584        psFree(md);
     4585        return false;
     4586    }
    44254587    if (!psMetadataAdd(md, PS_LIST_TAIL, "object", PS_DATA_STRING, NULL, "64")) {
    44264588        psError(PS_ERR_UNKNOWN, false, "failed to add item object");
     
    44514613}
    44524614
    4453 bool rawImfileInsert(psDB * dbh, const char *exp_tag, const char *class_id, const char *uri, const char *exp_type, const char *filelevel, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang, const char *object, psTime* dateobs, psS16 fault)
     4615bool rawImfileInsert(psDB * dbh, const char *exp_tag, const char *class_id, const char *uri, const char *exp_type, const char *filelevel, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF32 sat_pixel_frac, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *object, psTime* dateobs, psS16 fault)
    44544616{
    44554617    psMetadata *md = psMetadataAlloc();
     
    45044666        return false;
    45054667    }
     4668    if (!psMetadataAdd(md, PS_LIST_TAIL, "sat_pixel_frac", PS_DATA_F32, NULL, sat_pixel_frac)) {
     4669        psError(PS_ERR_UNKNOWN, false, "failed to add item sat_pixel_frac");
     4670        psFree(md);
     4671        return false;
     4672    }
    45064673    if (!psMetadataAdd(md, PS_LIST_TAIL, "bg", PS_DATA_F64, NULL, bg)) {
    45074674        psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
     
    45364703    if (!psMetadataAdd(md, PS_LIST_TAIL, "posang", PS_DATA_F64, NULL, posang)) {
    45374704        psError(PS_ERR_UNKNOWN, false, "failed to add item posang");
     4705        psFree(md);
     4706        return false;
     4707    }
     4708    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_1", PS_DATA_F64, NULL, user_1)) {
     4709        psError(PS_ERR_UNKNOWN, false, "failed to add item user_1");
     4710        psFree(md);
     4711        return false;
     4712    }
     4713    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_2", PS_DATA_F64, NULL, user_2)) {
     4714        psError(PS_ERR_UNKNOWN, false, "failed to add item user_2");
     4715        psFree(md);
     4716        return false;
     4717    }
     4718    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_3", PS_DATA_F64, NULL, user_3)) {
     4719        psError(PS_ERR_UNKNOWN, false, "failed to add item user_3");
     4720        psFree(md);
     4721        return false;
     4722    }
     4723    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_4", PS_DATA_F64, NULL, user_4)) {
     4724        psError(PS_ERR_UNKNOWN, false, "failed to add item user_4");
     4725        psFree(md);
     4726        return false;
     4727    }
     4728    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_5", PS_DATA_F64, NULL, user_5)) {
     4729        psError(PS_ERR_UNKNOWN, false, "failed to add item user_5");
    45384730        psFree(md);
    45394731        return false;
     
    45774769bool rawImfileInsertObject(psDB *dbh, rawImfileRow *object)
    45784770{
    4579     return rawImfileInsert(dbh, object->exp_tag, object->class_id, object->uri, object->exp_type, object->filelevel, object->filter, object->airmass, object->ra, object->decl, object->exp_time, object->bg, object->bg_stdev, object->bg_mean_stdev, object->alt, object->az, object->ccd_temp, object->posang, object->object, object->dateobs, object->fault);
     4771    return rawImfileInsert(dbh, object->exp_tag, object->class_id, object->uri, object->exp_type, object->filelevel, object->filter, object->airmass, object->ra, object->decl, object->exp_time, object->sat_pixel_frac, object->bg, object->bg_stdev, object->bg_mean_stdev, object->alt, object->az, object->ccd_temp, object->posang, object->user_1, object->user_2, object->user_3, object->user_4, object->user_5, object->object, object->dateobs, object->fault);
    45804772}
    45814773
     
    47004892        return false;
    47014893    }
     4894    if (!psMetadataAdd(md, PS_LIST_TAIL, "sat_pixel_frac", PS_DATA_F32, NULL, object->sat_pixel_frac)) {
     4895        psError(PS_ERR_UNKNOWN, false, "failed to add item sat_pixel_frac");
     4896        psFree(md);
     4897        return false;
     4898    }
    47024899    if (!psMetadataAdd(md, PS_LIST_TAIL, "bg", PS_DATA_F64, NULL, object->bg)) {
    47034900        psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
     
    47354932        return false;
    47364933    }
     4934    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_1", PS_DATA_F64, NULL, object->user_1)) {
     4935        psError(PS_ERR_UNKNOWN, false, "failed to add item user_1");
     4936        psFree(md);
     4937        return false;
     4938    }
     4939    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_2", PS_DATA_F64, NULL, object->user_2)) {
     4940        psError(PS_ERR_UNKNOWN, false, "failed to add item user_2");
     4941        psFree(md);
     4942        return false;
     4943    }
     4944    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_3", PS_DATA_F64, NULL, object->user_3)) {
     4945        psError(PS_ERR_UNKNOWN, false, "failed to add item user_3");
     4946        psFree(md);
     4947        return false;
     4948    }
     4949    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_4", PS_DATA_F64, NULL, object->user_4)) {
     4950        psError(PS_ERR_UNKNOWN, false, "failed to add item user_4");
     4951        psFree(md);
     4952        return false;
     4953    }
     4954    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_5", PS_DATA_F64, NULL, object->user_5)) {
     4955        psError(PS_ERR_UNKNOWN, false, "failed to add item user_5");
     4956        psFree(md);
     4957        return false;
     4958    }
    47374959    if (!psMetadataAdd(md, PS_LIST_TAIL, "object", PS_DATA_STRING, NULL, object->object)) {
    47384960        psError(PS_ERR_UNKNOWN, false, "failed to add item object");
     
    48095031        return false;
    48105032    }
     5033    psF32 sat_pixel_frac = psMetadataLookupF32(&status, md, "sat_pixel_frac");
     5034    if (!status) {
     5035        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item sat_pixel_frac");
     5036        return false;
     5037    }
    48115038    psF64 bg = psMetadataLookupF64(&status, md, "bg");
    48125039    if (!status) {
     
    48445071        return false;
    48455072    }
     5073    psF64 user_1 = psMetadataLookupF64(&status, md, "user_1");
     5074    if (!status) {
     5075        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_1");
     5076        return false;
     5077    }
     5078    psF64 user_2 = psMetadataLookupF64(&status, md, "user_2");
     5079    if (!status) {
     5080        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_2");
     5081        return false;
     5082    }
     5083    psF64 user_3 = psMetadataLookupF64(&status, md, "user_3");
     5084    if (!status) {
     5085        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_3");
     5086        return false;
     5087    }
     5088    psF64 user_4 = psMetadataLookupF64(&status, md, "user_4");
     5089    if (!status) {
     5090        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_4");
     5091        return false;
     5092    }
     5093    psF64 user_5 = psMetadataLookupF64(&status, md, "user_5");
     5094    if (!status) {
     5095        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_5");
     5096        return false;
     5097    }
    48465098    char* object = psMetadataLookupPtr(&status, md, "object");
    48475099    if (!status) {
     
    48605112    }
    48615113
    4862     return rawImfileRowAlloc(exp_tag, class_id, uri, exp_type, filelevel, filter, airmass, ra, decl, exp_time, bg, bg_stdev, bg_mean_stdev, alt, az, ccd_temp, posang, object, dateobs, fault);
     5114    return rawImfileRowAlloc(exp_tag, class_id, uri, exp_type, filelevel, filter, airmass, ra, decl, exp_time, sat_pixel_frac, bg, bg_stdev, bg_mean_stdev, alt, az, ccd_temp, posang, user_1, user_2, user_3, user_4, user_5, object, dateobs, fault);
    48635115}
    48645116psArray *rawImfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    1328113533static void detProcessedImfileRowFree(detProcessedImfileRow *object);
    1328213534
    13283 detProcessedImfileRow *detProcessedImfileRowAlloc(psS64 det_id, const char *exp_tag, const char *class_id, const char *uri, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, const char *path_base, psS16 fault)
     13535detProcessedImfileRow *detProcessedImfileRowAlloc(psS64 det_id, const char *exp_tag, const char *class_id, const char *uri, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 fringe_0, psF64 fringe_1, psF64 fringe_2, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, psS16 fault)
    1328413536{
    1328513537    detProcessedImfileRow *_object;
     
    1329613548    _object->bg_stdev = bg_stdev;
    1329713549    _object->bg_mean_stdev = bg_mean_stdev;
     13550    _object->fringe_0 = fringe_0;
     13551    _object->fringe_1 = fringe_1;
     13552    _object->fringe_2 = fringe_2;
     13553    _object->user_1 = user_1;
     13554    _object->user_2 = user_2;
     13555    _object->user_3 = user_3;
     13556    _object->user_4 = user_4;
     13557    _object->user_5 = user_5;
    1329813558    _object->path_base = psStringCopy(path_base);
    1329913559    _object->fault = fault;
     
    1335413614        return false;
    1335513615    }
     13616    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_0", PS_DATA_F64, NULL, 0.0)) {
     13617        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_0");
     13618        psFree(md);
     13619        return false;
     13620    }
     13621    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_1", PS_DATA_F64, NULL, 0.0)) {
     13622        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_1");
     13623        psFree(md);
     13624        return false;
     13625    }
     13626    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_2", PS_DATA_F64, NULL, 0.0)) {
     13627        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_2");
     13628        psFree(md);
     13629        return false;
     13630    }
     13631    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_1", PS_DATA_F64, NULL, 0.0)) {
     13632        psError(PS_ERR_UNKNOWN, false, "failed to add item user_1");
     13633        psFree(md);
     13634        return false;
     13635    }
     13636    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_2", PS_DATA_F64, NULL, 0.0)) {
     13637        psError(PS_ERR_UNKNOWN, false, "failed to add item user_2");
     13638        psFree(md);
     13639        return false;
     13640    }
     13641    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_3", PS_DATA_F64, NULL, 0.0)) {
     13642        psError(PS_ERR_UNKNOWN, false, "failed to add item user_3");
     13643        psFree(md);
     13644        return false;
     13645    }
     13646    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_4", PS_DATA_F64, NULL, 0.0)) {
     13647        psError(PS_ERR_UNKNOWN, false, "failed to add item user_4");
     13648        psFree(md);
     13649        return false;
     13650    }
     13651    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_5", PS_DATA_F64, NULL, 0.0)) {
     13652        psError(PS_ERR_UNKNOWN, false, "failed to add item user_5");
     13653        psFree(md);
     13654        return false;
     13655    }
    1335613656    if (!psMetadataAdd(md, PS_LIST_TAIL, "path_base", PS_DATA_STRING, NULL, "255")) {
    1335713657        psError(PS_ERR_UNKNOWN, false, "failed to add item path_base");
     
    1337713677}
    1337813678
    13379 bool detProcessedImfileInsert(psDB * dbh, psS64 det_id, const char *exp_tag, const char *class_id, const char *uri, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, const char *path_base, psS16 fault)
     13679bool detProcessedImfileInsert(psDB * dbh, psS64 det_id, const char *exp_tag, const char *class_id, const char *uri, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 fringe_0, psF64 fringe_1, psF64 fringe_2, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, psS16 fault)
    1338013680{
    1338113681    psMetadata *md = psMetadataAlloc();
     
    1341713717    if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_mean_stdev", PS_DATA_F64, NULL, bg_mean_stdev)) {
    1341813718        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev");
     13719        psFree(md);
     13720        return false;
     13721    }
     13722    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_0", PS_DATA_F64, NULL, fringe_0)) {
     13723        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_0");
     13724        psFree(md);
     13725        return false;
     13726    }
     13727    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_1", PS_DATA_F64, NULL, fringe_1)) {
     13728        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_1");
     13729        psFree(md);
     13730        return false;
     13731    }
     13732    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_2", PS_DATA_F64, NULL, fringe_2)) {
     13733        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_2");
     13734        psFree(md);
     13735        return false;
     13736    }
     13737    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_1", PS_DATA_F64, NULL, user_1)) {
     13738        psError(PS_ERR_UNKNOWN, false, "failed to add item user_1");
     13739        psFree(md);
     13740        return false;
     13741    }
     13742    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_2", PS_DATA_F64, NULL, user_2)) {
     13743        psError(PS_ERR_UNKNOWN, false, "failed to add item user_2");
     13744        psFree(md);
     13745        return false;
     13746    }
     13747    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_3", PS_DATA_F64, NULL, user_3)) {
     13748        psError(PS_ERR_UNKNOWN, false, "failed to add item user_3");
     13749        psFree(md);
     13750        return false;
     13751    }
     13752    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_4", PS_DATA_F64, NULL, user_4)) {
     13753        psError(PS_ERR_UNKNOWN, false, "failed to add item user_4");
     13754        psFree(md);
     13755        return false;
     13756    }
     13757    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_5", PS_DATA_F64, NULL, user_5)) {
     13758        psError(PS_ERR_UNKNOWN, false, "failed to add item user_5");
    1341913759        psFree(md);
    1342013760        return false;
     
    1345313793bool detProcessedImfileInsertObject(psDB *dbh, detProcessedImfileRow *object)
    1345413794{
    13455     return detProcessedImfileInsert(dbh, object->det_id, object->exp_tag, object->class_id, object->uri, object->recipe, object->bg, object->bg_stdev, object->bg_mean_stdev, object->path_base, object->fault);
     13795    return detProcessedImfileInsert(dbh, object->det_id, object->exp_tag, object->class_id, object->uri, object->recipe, object->bg, object->bg_stdev, object->bg_mean_stdev, object->fringe_0, object->fringe_1, object->fringe_2, object->user_1, object->user_2, object->user_3, object->user_4, object->user_5, object->path_base, object->fault);
    1345613796}
    1345713797
     
    1356613906        return false;
    1356713907    }
     13908    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_0", PS_DATA_F64, NULL, object->fringe_0)) {
     13909        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_0");
     13910        psFree(md);
     13911        return false;
     13912    }
     13913    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_1", PS_DATA_F64, NULL, object->fringe_1)) {
     13914        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_1");
     13915        psFree(md);
     13916        return false;
     13917    }
     13918    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_2", PS_DATA_F64, NULL, object->fringe_2)) {
     13919        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_2");
     13920        psFree(md);
     13921        return false;
     13922    }
     13923    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_1", PS_DATA_F64, NULL, object->user_1)) {
     13924        psError(PS_ERR_UNKNOWN, false, "failed to add item user_1");
     13925        psFree(md);
     13926        return false;
     13927    }
     13928    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_2", PS_DATA_F64, NULL, object->user_2)) {
     13929        psError(PS_ERR_UNKNOWN, false, "failed to add item user_2");
     13930        psFree(md);
     13931        return false;
     13932    }
     13933    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_3", PS_DATA_F64, NULL, object->user_3)) {
     13934        psError(PS_ERR_UNKNOWN, false, "failed to add item user_3");
     13935        psFree(md);
     13936        return false;
     13937    }
     13938    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_4", PS_DATA_F64, NULL, object->user_4)) {
     13939        psError(PS_ERR_UNKNOWN, false, "failed to add item user_4");
     13940        psFree(md);
     13941        return false;
     13942    }
     13943    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_5", PS_DATA_F64, NULL, object->user_5)) {
     13944        psError(PS_ERR_UNKNOWN, false, "failed to add item user_5");
     13945        psFree(md);
     13946        return false;
     13947    }
    1356813948    if (!psMetadataAdd(md, PS_LIST_TAIL, "path_base", PS_DATA_STRING, NULL, object->path_base)) {
    1356913949        psError(PS_ERR_UNKNOWN, false, "failed to add item path_base");
     
    1362514005        return false;
    1362614006    }
     14007    psF64 fringe_0 = psMetadataLookupF64(&status, md, "fringe_0");
     14008    if (!status) {
     14009        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item fringe_0");
     14010        return false;
     14011    }
     14012    psF64 fringe_1 = psMetadataLookupF64(&status, md, "fringe_1");
     14013    if (!status) {
     14014        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item fringe_1");
     14015        return false;
     14016    }
     14017    psF64 fringe_2 = psMetadataLookupF64(&status, md, "fringe_2");
     14018    if (!status) {
     14019        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item fringe_2");
     14020        return false;
     14021    }
     14022    psF64 user_1 = psMetadataLookupF64(&status, md, "user_1");
     14023    if (!status) {
     14024        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_1");
     14025        return false;
     14026    }
     14027    psF64 user_2 = psMetadataLookupF64(&status, md, "user_2");
     14028    if (!status) {
     14029        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_2");
     14030        return false;
     14031    }
     14032    psF64 user_3 = psMetadataLookupF64(&status, md, "user_3");
     14033    if (!status) {
     14034        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_3");
     14035        return false;
     14036    }
     14037    psF64 user_4 = psMetadataLookupF64(&status, md, "user_4");
     14038    if (!status) {
     14039        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_4");
     14040        return false;
     14041    }
     14042    psF64 user_5 = psMetadataLookupF64(&status, md, "user_5");
     14043    if (!status) {
     14044        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_5");
     14045        return false;
     14046    }
    1362714047    char* path_base = psMetadataLookupPtr(&status, md, "path_base");
    1362814048    if (!status) {
     
    1363614056    }
    1363714057
    13638     return detProcessedImfileRowAlloc(det_id, exp_tag, class_id, uri, recipe, bg, bg_stdev, bg_mean_stdev, path_base, fault);
     14058    return detProcessedImfileRowAlloc(det_id, exp_tag, class_id, uri, recipe, bg, bg_stdev, bg_mean_stdev, fringe_0, fringe_1, fringe_2, user_1, user_2, user_3, user_4, user_5, path_base, fault);
    1363914059}
    1364014060psArray *detProcessedImfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    1374814168static void detProcessedExpRowFree(detProcessedExpRow *object);
    1374914169
    13750 detProcessedExpRow *detProcessedExpRowAlloc(psS64 det_id, const char *exp_tag, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, const char *path_base, psS16 fault)
     14170detProcessedExpRow *detProcessedExpRowAlloc(psS64 det_id, const char *exp_tag, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 fringe_0, psF64 fringe_1, psF64 fringe_2, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, psS16 fault)
    1375114171{
    1375214172    detProcessedExpRow *_object;
     
    1376114181    _object->bg_stdev = bg_stdev;
    1376214182    _object->bg_mean_stdev = bg_mean_stdev;
     14183    _object->fringe_0 = fringe_0;
     14184    _object->fringe_1 = fringe_1;
     14185    _object->fringe_2 = fringe_2;
     14186    _object->user_1 = user_1;
     14187    _object->user_2 = user_2;
     14188    _object->user_3 = user_3;
     14189    _object->user_4 = user_4;
     14190    _object->user_5 = user_5;
    1376314191    _object->path_base = psStringCopy(path_base);
    1376414192    _object->fault = fault;
     
    1380714235        return false;
    1380814236    }
     14237    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_0", PS_DATA_F64, NULL, 0.0)) {
     14238        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_0");
     14239        psFree(md);
     14240        return false;
     14241    }
     14242    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_1", PS_DATA_F64, NULL, 0.0)) {
     14243        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_1");
     14244        psFree(md);
     14245        return false;
     14246    }
     14247    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_2", PS_DATA_F64, NULL, 0.0)) {
     14248        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_2");
     14249        psFree(md);
     14250        return false;
     14251    }
     14252    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_1", PS_DATA_F64, NULL, 0.0)) {
     14253        psError(PS_ERR_UNKNOWN, false, "failed to add item user_1");
     14254        psFree(md);
     14255        return false;
     14256    }
     14257    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_2", PS_DATA_F64, NULL, 0.0)) {
     14258        psError(PS_ERR_UNKNOWN, false, "failed to add item user_2");
     14259        psFree(md);
     14260        return false;
     14261    }
     14262    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_3", PS_DATA_F64, NULL, 0.0)) {
     14263        psError(PS_ERR_UNKNOWN, false, "failed to add item user_3");
     14264        psFree(md);
     14265        return false;
     14266    }
     14267    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_4", PS_DATA_F64, NULL, 0.0)) {
     14268        psError(PS_ERR_UNKNOWN, false, "failed to add item user_4");
     14269        psFree(md);
     14270        return false;
     14271    }
     14272    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_5", PS_DATA_F64, NULL, 0.0)) {
     14273        psError(PS_ERR_UNKNOWN, false, "failed to add item user_5");
     14274        psFree(md);
     14275        return false;
     14276    }
    1380914277    if (!psMetadataAdd(md, PS_LIST_TAIL, "path_base", PS_DATA_STRING, NULL, "255")) {
    1381014278        psError(PS_ERR_UNKNOWN, false, "failed to add item path_base");
     
    1383014298}
    1383114299
    13832 bool detProcessedExpInsert(psDB * dbh, psS64 det_id, const char *exp_tag, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, const char *path_base, psS16 fault)
     14300bool detProcessedExpInsert(psDB * dbh, psS64 det_id, const char *exp_tag, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 fringe_0, psF64 fringe_1, psF64 fringe_2, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, psS16 fault)
    1383314301{
    1383414302    psMetadata *md = psMetadataAlloc();
     
    1386014328    if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_mean_stdev", PS_DATA_F64, NULL, bg_mean_stdev)) {
    1386114329        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev");
     14330        psFree(md);
     14331        return false;
     14332    }
     14333    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_0", PS_DATA_F64, NULL, fringe_0)) {
     14334        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_0");
     14335        psFree(md);
     14336        return false;
     14337    }
     14338    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_1", PS_DATA_F64, NULL, fringe_1)) {
     14339        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_1");
     14340        psFree(md);
     14341        return false;
     14342    }
     14343    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_2", PS_DATA_F64, NULL, fringe_2)) {
     14344        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_2");
     14345        psFree(md);
     14346        return false;
     14347    }
     14348    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_1", PS_DATA_F64, NULL, user_1)) {
     14349        psError(PS_ERR_UNKNOWN, false, "failed to add item user_1");
     14350        psFree(md);
     14351        return false;
     14352    }
     14353    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_2", PS_DATA_F64, NULL, user_2)) {
     14354        psError(PS_ERR_UNKNOWN, false, "failed to add item user_2");
     14355        psFree(md);
     14356        return false;
     14357    }
     14358    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_3", PS_DATA_F64, NULL, user_3)) {
     14359        psError(PS_ERR_UNKNOWN, false, "failed to add item user_3");
     14360        psFree(md);
     14361        return false;
     14362    }
     14363    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_4", PS_DATA_F64, NULL, user_4)) {
     14364        psError(PS_ERR_UNKNOWN, false, "failed to add item user_4");
     14365        psFree(md);
     14366        return false;
     14367    }
     14368    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_5", PS_DATA_F64, NULL, user_5)) {
     14369        psError(PS_ERR_UNKNOWN, false, "failed to add item user_5");
    1386214370        psFree(md);
    1386314371        return false;
     
    1389614404bool detProcessedExpInsertObject(psDB *dbh, detProcessedExpRow *object)
    1389714405{
    13898     return detProcessedExpInsert(dbh, object->det_id, object->exp_tag, object->recipe, object->bg, object->bg_stdev, object->bg_mean_stdev, object->path_base, object->fault);
     14406    return detProcessedExpInsert(dbh, object->det_id, object->exp_tag, object->recipe, object->bg, object->bg_stdev, object->bg_mean_stdev, object->fringe_0, object->fringe_1, object->fringe_2, object->user_1, object->user_2, object->user_3, object->user_4, object->user_5, object->path_base, object->fault);
    1389914407}
    1390014408
     
    1399914507        return false;
    1400014508    }
     14509    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_0", PS_DATA_F64, NULL, object->fringe_0)) {
     14510        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_0");
     14511        psFree(md);
     14512        return false;
     14513    }
     14514    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_1", PS_DATA_F64, NULL, object->fringe_1)) {
     14515        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_1");
     14516        psFree(md);
     14517        return false;
     14518    }
     14519    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_2", PS_DATA_F64, NULL, object->fringe_2)) {
     14520        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_2");
     14521        psFree(md);
     14522        return false;
     14523    }
     14524    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_1", PS_DATA_F64, NULL, object->user_1)) {
     14525        psError(PS_ERR_UNKNOWN, false, "failed to add item user_1");
     14526        psFree(md);
     14527        return false;
     14528    }
     14529    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_2", PS_DATA_F64, NULL, object->user_2)) {
     14530        psError(PS_ERR_UNKNOWN, false, "failed to add item user_2");
     14531        psFree(md);
     14532        return false;
     14533    }
     14534    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_3", PS_DATA_F64, NULL, object->user_3)) {
     14535        psError(PS_ERR_UNKNOWN, false, "failed to add item user_3");
     14536        psFree(md);
     14537        return false;
     14538    }
     14539    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_4", PS_DATA_F64, NULL, object->user_4)) {
     14540        psError(PS_ERR_UNKNOWN, false, "failed to add item user_4");
     14541        psFree(md);
     14542        return false;
     14543    }
     14544    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_5", PS_DATA_F64, NULL, object->user_5)) {
     14545        psError(PS_ERR_UNKNOWN, false, "failed to add item user_5");
     14546        psFree(md);
     14547        return false;
     14548    }
    1400114549    if (!psMetadataAdd(md, PS_LIST_TAIL, "path_base", PS_DATA_STRING, NULL, object->path_base)) {
    1400214550        psError(PS_ERR_UNKNOWN, false, "failed to add item path_base");
     
    1404814596        return false;
    1404914597    }
     14598    psF64 fringe_0 = psMetadataLookupF64(&status, md, "fringe_0");
     14599    if (!status) {
     14600        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item fringe_0");
     14601        return false;
     14602    }
     14603    psF64 fringe_1 = psMetadataLookupF64(&status, md, "fringe_1");
     14604    if (!status) {
     14605        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item fringe_1");
     14606        return false;
     14607    }
     14608    psF64 fringe_2 = psMetadataLookupF64(&status, md, "fringe_2");
     14609    if (!status) {
     14610        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item fringe_2");
     14611        return false;
     14612    }
     14613    psF64 user_1 = psMetadataLookupF64(&status, md, "user_1");
     14614    if (!status) {
     14615        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_1");
     14616        return false;
     14617    }
     14618    psF64 user_2 = psMetadataLookupF64(&status, md, "user_2");
     14619    if (!status) {
     14620        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_2");
     14621        return false;
     14622    }
     14623    psF64 user_3 = psMetadataLookupF64(&status, md, "user_3");
     14624    if (!status) {
     14625        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_3");
     14626        return false;
     14627    }
     14628    psF64 user_4 = psMetadataLookupF64(&status, md, "user_4");
     14629    if (!status) {
     14630        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_4");
     14631        return false;
     14632    }
     14633    psF64 user_5 = psMetadataLookupF64(&status, md, "user_5");
     14634    if (!status) {
     14635        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_5");
     14636        return false;
     14637    }
    1405014638    char* path_base = psMetadataLookupPtr(&status, md, "path_base");
    1405114639    if (!status) {
     
    1405914647    }
    1406014648
    14061     return detProcessedExpRowAlloc(det_id, exp_tag, recipe, bg, bg_stdev, bg_mean_stdev, path_base, fault);
     14649    return detProcessedExpRowAlloc(det_id, exp_tag, recipe, bg, bg_stdev, bg_mean_stdev, fringe_0, fringe_1, fringe_2, user_1, user_2, user_3, user_4, user_5, path_base, fault);
    1406214650}
    1406314651psArray *detProcessedExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    1417114759static void detStackedImfileRowFree(detStackedImfileRow *object);
    1417214760
    14173 detStackedImfileRow *detStackedImfileRowAlloc(psS64 det_id, psS32 iteration, const char *class_id, const char *uri, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psS16 fault)
     14761detStackedImfileRow *detStackedImfileRowAlloc(psS64 det_id, psS32 iteration, const char *class_id, const char *uri, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, psS16 fault)
    1417414762{
    1417514763    detStackedImfileRow *_object;
     
    1418614774    _object->bg_stdev = bg_stdev;
    1418714775    _object->bg_mean_stdev = bg_mean_stdev;
     14776    _object->user_1 = user_1;
     14777    _object->user_2 = user_2;
     14778    _object->user_3 = user_3;
     14779    _object->user_4 = user_4;
     14780    _object->user_5 = user_5;
    1418814781    _object->fault = fault;
    1418914782
     
    1424114834        return false;
    1424214835    }
     14836    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_1", PS_DATA_F64, NULL, 0.0)) {
     14837        psError(PS_ERR_UNKNOWN, false, "failed to add item user_1");
     14838        psFree(md);
     14839        return false;
     14840    }
     14841    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_2", PS_DATA_F64, NULL, 0.0)) {
     14842        psError(PS_ERR_UNKNOWN, false, "failed to add item user_2");
     14843        psFree(md);
     14844        return false;
     14845    }
     14846    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_3", PS_DATA_F64, NULL, 0.0)) {
     14847        psError(PS_ERR_UNKNOWN, false, "failed to add item user_3");
     14848        psFree(md);
     14849        return false;
     14850    }
     14851    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_4", PS_DATA_F64, NULL, 0.0)) {
     14852        psError(PS_ERR_UNKNOWN, false, "failed to add item user_4");
     14853        psFree(md);
     14854        return false;
     14855    }
     14856    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_5", PS_DATA_F64, NULL, 0.0)) {
     14857        psError(PS_ERR_UNKNOWN, false, "failed to add item user_5");
     14858        psFree(md);
     14859        return false;
     14860    }
    1424314861    if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, "Key NOT NULL", 0)) {
    1424414862        psError(PS_ERR_UNKNOWN, false, "failed to add item fault");
     
    1425914877}
    1426014878
    14261 bool detStackedImfileInsert(psDB * dbh, psS64 det_id, psS32 iteration, const char *class_id, const char *uri, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psS16 fault)
     14879bool detStackedImfileInsert(psDB * dbh, psS64 det_id, psS32 iteration, const char *class_id, const char *uri, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, psS16 fault)
    1426214880{
    1426314881    psMetadata *md = psMetadataAlloc();
     
    1429914917    if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_mean_stdev", PS_DATA_F64, NULL, bg_mean_stdev)) {
    1430014918        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev");
     14919        psFree(md);
     14920        return false;
     14921    }
     14922    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_1", PS_DATA_F64, NULL, user_1)) {
     14923        psError(PS_ERR_UNKNOWN, false, "failed to add item user_1");
     14924        psFree(md);
     14925        return false;
     14926    }
     14927    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_2", PS_DATA_F64, NULL, user_2)) {
     14928        psError(PS_ERR_UNKNOWN, false, "failed to add item user_2");
     14929        psFree(md);
     14930        return false;
     14931    }
     14932    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_3", PS_DATA_F64, NULL, user_3)) {
     14933        psError(PS_ERR_UNKNOWN, false, "failed to add item user_3");
     14934        psFree(md);
     14935        return false;
     14936    }
     14937    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_4", PS_DATA_F64, NULL, user_4)) {
     14938        psError(PS_ERR_UNKNOWN, false, "failed to add item user_4");
     14939        psFree(md);
     14940        return false;
     14941    }
     14942    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_5", PS_DATA_F64, NULL, user_5)) {
     14943        psError(PS_ERR_UNKNOWN, false, "failed to add item user_5");
    1430114944        psFree(md);
    1430214945        return false;
     
    1433014973bool detStackedImfileInsertObject(psDB *dbh, detStackedImfileRow *object)
    1433114974{
    14332     return detStackedImfileInsert(dbh, object->det_id, object->iteration, object->class_id, object->uri, object->recipe, object->bg, object->bg_stdev, object->bg_mean_stdev, object->fault);
     14975    return detStackedImfileInsert(dbh, object->det_id, object->iteration, object->class_id, object->uri, object->recipe, object->bg, object->bg_stdev, object->bg_mean_stdev, object->user_1, object->user_2, object->user_3, object->user_4, object->user_5, object->fault);
    1433314976}
    1433414977
     
    1444315086        return false;
    1444415087    }
     15088    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_1", PS_DATA_F64, NULL, object->user_1)) {
     15089        psError(PS_ERR_UNKNOWN, false, "failed to add item user_1");
     15090        psFree(md);
     15091        return false;
     15092    }
     15093    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_2", PS_DATA_F64, NULL, object->user_2)) {
     15094        psError(PS_ERR_UNKNOWN, false, "failed to add item user_2");
     15095        psFree(md);
     15096        return false;
     15097    }
     15098    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_3", PS_DATA_F64, NULL, object->user_3)) {
     15099        psError(PS_ERR_UNKNOWN, false, "failed to add item user_3");
     15100        psFree(md);
     15101        return false;
     15102    }
     15103    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_4", PS_DATA_F64, NULL, object->user_4)) {
     15104        psError(PS_ERR_UNKNOWN, false, "failed to add item user_4");
     15105        psFree(md);
     15106        return false;
     15107    }
     15108    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_5", PS_DATA_F64, NULL, object->user_5)) {
     15109        psError(PS_ERR_UNKNOWN, false, "failed to add item user_5");
     15110        psFree(md);
     15111        return false;
     15112    }
    1444515113    if (!psMetadataAdd(md, PS_LIST_TAIL, "fault", PS_DATA_S16, NULL, object->fault)) {
    1444615114        psError(PS_ERR_UNKNOWN, false, "failed to add item fault");
     
    1449715165        return false;
    1449815166    }
     15167    psF64 user_1 = psMetadataLookupF64(&status, md, "user_1");
     15168    if (!status) {
     15169        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_1");
     15170        return false;
     15171    }
     15172    psF64 user_2 = psMetadataLookupF64(&status, md, "user_2");
     15173    if (!status) {
     15174        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_2");
     15175        return false;
     15176    }
     15177    psF64 user_3 = psMetadataLookupF64(&status, md, "user_3");
     15178    if (!status) {
     15179        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_3");
     15180        return false;
     15181    }
     15182    psF64 user_4 = psMetadataLookupF64(&status, md, "user_4");
     15183    if (!status) {
     15184        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_4");
     15185        return false;
     15186    }
     15187    psF64 user_5 = psMetadataLookupF64(&status, md, "user_5");
     15188    if (!status) {
     15189        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_5");
     15190        return false;
     15191    }
    1449915192    psS16 fault = psMetadataLookupS16(&status, md, "fault");
    1450015193    if (!status) {
     
    1450315196    }
    1450415197
    14505     return detStackedImfileRowAlloc(det_id, iteration, class_id, uri, recipe, bg, bg_stdev, bg_mean_stdev, fault);
     15198    return detStackedImfileRowAlloc(det_id, iteration, class_id, uri, recipe, bg, bg_stdev, bg_mean_stdev, user_1, user_2, user_3, user_4, user_5, fault);
    1450615199}
    1450715200psArray *detStackedImfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    1497315666static void detNormalizedImfileRowFree(detNormalizedImfileRow *object);
    1497415667
    14975 detNormalizedImfileRow *detNormalizedImfileRowAlloc(psS64 det_id, psS32 iteration, const char *class_id, const char *uri, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, const char *path_base, psS16 fault)
     15668detNormalizedImfileRow *detNormalizedImfileRowAlloc(psS64 det_id, psS32 iteration, const char *class_id, const char *uri, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, psS16 fault)
    1497615669{
    1497715670    detNormalizedImfileRow *_object;
     
    1498715680    _object->bg_stdev = bg_stdev;
    1498815681    _object->bg_mean_stdev = bg_mean_stdev;
     15682    _object->user_1 = user_1;
     15683    _object->user_2 = user_2;
     15684    _object->user_3 = user_3;
     15685    _object->user_4 = user_4;
     15686    _object->user_5 = user_5;
    1498915687    _object->path_base = psStringCopy(path_base);
    1499015688    _object->fault = fault;
     
    1503815736        return false;
    1503915737    }
     15738    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_1", PS_DATA_F64, NULL, 0.0)) {
     15739        psError(PS_ERR_UNKNOWN, false, "failed to add item user_1");
     15740        psFree(md);
     15741        return false;
     15742    }
     15743    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_2", PS_DATA_F64, NULL, 0.0)) {
     15744        psError(PS_ERR_UNKNOWN, false, "failed to add item user_2");
     15745        psFree(md);
     15746        return false;
     15747    }
     15748    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_3", PS_DATA_F64, NULL, 0.0)) {
     15749        psError(PS_ERR_UNKNOWN, false, "failed to add item user_3");
     15750        psFree(md);
     15751        return false;
     15752    }
     15753    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_4", PS_DATA_F64, NULL, 0.0)) {
     15754        psError(PS_ERR_UNKNOWN, false, "failed to add item user_4");
     15755        psFree(md);
     15756        return false;
     15757    }
     15758    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_5", PS_DATA_F64, NULL, 0.0)) {
     15759        psError(PS_ERR_UNKNOWN, false, "failed to add item user_5");
     15760        psFree(md);
     15761        return false;
     15762    }
    1504015763    if (!psMetadataAdd(md, PS_LIST_TAIL, "path_base", PS_DATA_STRING, NULL, "255")) {
    1504115764        psError(PS_ERR_UNKNOWN, false, "failed to add item path_base");
     
    1506115784}
    1506215785
    15063 bool detNormalizedImfileInsert(psDB * dbh, psS64 det_id, psS32 iteration, const char *class_id, const char *uri, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, const char *path_base, psS16 fault)
     15786bool detNormalizedImfileInsert(psDB * dbh, psS64 det_id, psS32 iteration, const char *class_id, const char *uri, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, psS16 fault)
    1506415787{
    1506515788    psMetadata *md = psMetadataAlloc();
     
    1509615819    if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_mean_stdev", PS_DATA_F64, NULL, bg_mean_stdev)) {
    1509715820        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev");
     15821        psFree(md);
     15822        return false;
     15823    }
     15824    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_1", PS_DATA_F64, NULL, user_1)) {
     15825        psError(PS_ERR_UNKNOWN, false, "failed to add item user_1");
     15826        psFree(md);
     15827        return false;
     15828    }
     15829    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_2", PS_DATA_F64, NULL, user_2)) {
     15830        psError(PS_ERR_UNKNOWN, false, "failed to add item user_2");
     15831        psFree(md);
     15832        return false;
     15833    }
     15834    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_3", PS_DATA_F64, NULL, user_3)) {
     15835        psError(PS_ERR_UNKNOWN, false, "failed to add item user_3");
     15836        psFree(md);
     15837        return false;
     15838    }
     15839    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_4", PS_DATA_F64, NULL, user_4)) {
     15840        psError(PS_ERR_UNKNOWN, false, "failed to add item user_4");
     15841        psFree(md);
     15842        return false;
     15843    }
     15844    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_5", PS_DATA_F64, NULL, user_5)) {
     15845        psError(PS_ERR_UNKNOWN, false, "failed to add item user_5");
    1509815846        psFree(md);
    1509915847        return false;
     
    1513215880bool detNormalizedImfileInsertObject(psDB *dbh, detNormalizedImfileRow *object)
    1513315881{
    15134     return detNormalizedImfileInsert(dbh, object->det_id, object->iteration, object->class_id, object->uri, object->bg, object->bg_stdev, object->bg_mean_stdev, object->path_base, object->fault);
     15882    return detNormalizedImfileInsert(dbh, object->det_id, object->iteration, object->class_id, object->uri, object->bg, object->bg_stdev, object->bg_mean_stdev, object->user_1, object->user_2, object->user_3, object->user_4, object->user_5, object->path_base, object->fault);
    1513515883}
    1513615884
     
    1524015988        return false;
    1524115989    }
     15990    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_1", PS_DATA_F64, NULL, object->user_1)) {
     15991        psError(PS_ERR_UNKNOWN, false, "failed to add item user_1");
     15992        psFree(md);
     15993        return false;
     15994    }
     15995    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_2", PS_DATA_F64, NULL, object->user_2)) {
     15996        psError(PS_ERR_UNKNOWN, false, "failed to add item user_2");
     15997        psFree(md);
     15998        return false;
     15999    }
     16000    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_3", PS_DATA_F64, NULL, object->user_3)) {
     16001        psError(PS_ERR_UNKNOWN, false, "failed to add item user_3");
     16002        psFree(md);
     16003        return false;
     16004    }
     16005    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_4", PS_DATA_F64, NULL, object->user_4)) {
     16006        psError(PS_ERR_UNKNOWN, false, "failed to add item user_4");
     16007        psFree(md);
     16008        return false;
     16009    }
     16010    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_5", PS_DATA_F64, NULL, object->user_5)) {
     16011        psError(PS_ERR_UNKNOWN, false, "failed to add item user_5");
     16012        psFree(md);
     16013        return false;
     16014    }
    1524216015    if (!psMetadataAdd(md, PS_LIST_TAIL, "path_base", PS_DATA_STRING, NULL, object->path_base)) {
    1524316016        psError(PS_ERR_UNKNOWN, false, "failed to add item path_base");
     
    1529416067        return false;
    1529516068    }
     16069    psF64 user_1 = psMetadataLookupF64(&status, md, "user_1");
     16070    if (!status) {
     16071        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_1");
     16072        return false;
     16073    }
     16074    psF64 user_2 = psMetadataLookupF64(&status, md, "user_2");
     16075    if (!status) {
     16076        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_2");
     16077        return false;
     16078    }
     16079    psF64 user_3 = psMetadataLookupF64(&status, md, "user_3");
     16080    if (!status) {
     16081        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_3");
     16082        return false;
     16083    }
     16084    psF64 user_4 = psMetadataLookupF64(&status, md, "user_4");
     16085    if (!status) {
     16086        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_4");
     16087        return false;
     16088    }
     16089    psF64 user_5 = psMetadataLookupF64(&status, md, "user_5");
     16090    if (!status) {
     16091        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_5");
     16092        return false;
     16093    }
    1529616094    char* path_base = psMetadataLookupPtr(&status, md, "path_base");
    1529716095    if (!status) {
     
    1530516103    }
    1530616104
    15307     return detNormalizedImfileRowAlloc(det_id, iteration, class_id, uri, bg, bg_stdev, bg_mean_stdev, path_base, fault);
     16105    return detNormalizedImfileRowAlloc(det_id, iteration, class_id, uri, bg, bg_stdev, bg_mean_stdev, user_1, user_2, user_3, user_4, user_5, path_base, fault);
    1530816106}
    1530916107psArray *detNormalizedImfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    1541716215static void detNormalizedExpRowFree(detNormalizedExpRow *object);
    1541816216
    15419 detNormalizedExpRow *detNormalizedExpRowAlloc(psS64 det_id, psS32 iteration, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, const char *path_base, psS16 fault)
     16217detNormalizedExpRow *detNormalizedExpRowAlloc(psS64 det_id, psS32 iteration, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, psS16 fault)
    1542016218{
    1542116219    detNormalizedExpRow *_object;
     
    1543016228    _object->bg_stdev = bg_stdev;
    1543116229    _object->bg_mean_stdev = bg_mean_stdev;
     16230    _object->user_1 = user_1;
     16231    _object->user_2 = user_2;
     16232    _object->user_3 = user_3;
     16233    _object->user_4 = user_4;
     16234    _object->user_5 = user_5;
    1543216235    _object->path_base = psStringCopy(path_base);
    1543316236    _object->fault = fault;
     
    1547516278        return false;
    1547616279    }
     16280    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_1", PS_DATA_F64, NULL, 0.0)) {
     16281        psError(PS_ERR_UNKNOWN, false, "failed to add item user_1");
     16282        psFree(md);
     16283        return false;
     16284    }
     16285    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_2", PS_DATA_F64, NULL, 0.0)) {
     16286        psError(PS_ERR_UNKNOWN, false, "failed to add item user_2");
     16287        psFree(md);
     16288        return false;
     16289    }
     16290    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_3", PS_DATA_F64, NULL, 0.0)) {
     16291        psError(PS_ERR_UNKNOWN, false, "failed to add item user_3");
     16292        psFree(md);
     16293        return false;
     16294    }
     16295    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_4", PS_DATA_F64, NULL, 0.0)) {
     16296        psError(PS_ERR_UNKNOWN, false, "failed to add item user_4");
     16297        psFree(md);
     16298        return false;
     16299    }
     16300    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_5", PS_DATA_F64, NULL, 0.0)) {
     16301        psError(PS_ERR_UNKNOWN, false, "failed to add item user_5");
     16302        psFree(md);
     16303        return false;
     16304    }
    1547716305    if (!psMetadataAdd(md, PS_LIST_TAIL, "path_base", PS_DATA_STRING, NULL, "255")) {
    1547816306        psError(PS_ERR_UNKNOWN, false, "failed to add item path_base");
     
    1549816326}
    1549916327
    15500 bool detNormalizedExpInsert(psDB * dbh, psS64 det_id, psS32 iteration, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, const char *path_base, psS16 fault)
     16328bool detNormalizedExpInsert(psDB * dbh, psS64 det_id, psS32 iteration, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, psS16 fault)
    1550116329{
    1550216330    psMetadata *md = psMetadataAlloc();
     
    1552816356    if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_mean_stdev", PS_DATA_F64, NULL, bg_mean_stdev)) {
    1552916357        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev");
     16358        psFree(md);
     16359        return false;
     16360    }
     16361    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_1", PS_DATA_F64, NULL, user_1)) {
     16362        psError(PS_ERR_UNKNOWN, false, "failed to add item user_1");
     16363        psFree(md);
     16364        return false;
     16365    }
     16366    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_2", PS_DATA_F64, NULL, user_2)) {
     16367        psError(PS_ERR_UNKNOWN, false, "failed to add item user_2");
     16368        psFree(md);
     16369        return false;
     16370    }
     16371    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_3", PS_DATA_F64, NULL, user_3)) {
     16372        psError(PS_ERR_UNKNOWN, false, "failed to add item user_3");
     16373        psFree(md);
     16374        return false;
     16375    }
     16376    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_4", PS_DATA_F64, NULL, user_4)) {
     16377        psError(PS_ERR_UNKNOWN, false, "failed to add item user_4");
     16378        psFree(md);
     16379        return false;
     16380    }
     16381    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_5", PS_DATA_F64, NULL, user_5)) {
     16382        psError(PS_ERR_UNKNOWN, false, "failed to add item user_5");
    1553016383        psFree(md);
    1553116384        return false;
     
    1556416417bool detNormalizedExpInsertObject(psDB *dbh, detNormalizedExpRow *object)
    1556516418{
    15566     return detNormalizedExpInsert(dbh, object->det_id, object->iteration, object->recipe, object->bg, object->bg_stdev, object->bg_mean_stdev, object->path_base, object->fault);
     16419    return detNormalizedExpInsert(dbh, object->det_id, object->iteration, object->recipe, object->bg, object->bg_stdev, object->bg_mean_stdev, object->user_1, object->user_2, object->user_3, object->user_4, object->user_5, object->path_base, object->fault);
    1556716420}
    1556816421
     
    1566716520        return false;
    1566816521    }
     16522    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_1", PS_DATA_F64, NULL, object->user_1)) {
     16523        psError(PS_ERR_UNKNOWN, false, "failed to add item user_1");
     16524        psFree(md);
     16525        return false;
     16526    }
     16527    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_2", PS_DATA_F64, NULL, object->user_2)) {
     16528        psError(PS_ERR_UNKNOWN, false, "failed to add item user_2");
     16529        psFree(md);
     16530        return false;
     16531    }
     16532    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_3", PS_DATA_F64, NULL, object->user_3)) {
     16533        psError(PS_ERR_UNKNOWN, false, "failed to add item user_3");
     16534        psFree(md);
     16535        return false;
     16536    }
     16537    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_4", PS_DATA_F64, NULL, object->user_4)) {
     16538        psError(PS_ERR_UNKNOWN, false, "failed to add item user_4");
     16539        psFree(md);
     16540        return false;
     16541    }
     16542    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_5", PS_DATA_F64, NULL, object->user_5)) {
     16543        psError(PS_ERR_UNKNOWN, false, "failed to add item user_5");
     16544        psFree(md);
     16545        return false;
     16546    }
    1566916547    if (!psMetadataAdd(md, PS_LIST_TAIL, "path_base", PS_DATA_STRING, NULL, object->path_base)) {
    1567016548        psError(PS_ERR_UNKNOWN, false, "failed to add item path_base");
     
    1571616594        return false;
    1571716595    }
     16596    psF64 user_1 = psMetadataLookupF64(&status, md, "user_1");
     16597    if (!status) {
     16598        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_1");
     16599        return false;
     16600    }
     16601    psF64 user_2 = psMetadataLookupF64(&status, md, "user_2");
     16602    if (!status) {
     16603        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_2");
     16604        return false;
     16605    }
     16606    psF64 user_3 = psMetadataLookupF64(&status, md, "user_3");
     16607    if (!status) {
     16608        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_3");
     16609        return false;
     16610    }
     16611    psF64 user_4 = psMetadataLookupF64(&status, md, "user_4");
     16612    if (!status) {
     16613        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_4");
     16614        return false;
     16615    }
     16616    psF64 user_5 = psMetadataLookupF64(&status, md, "user_5");
     16617    if (!status) {
     16618        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_5");
     16619        return false;
     16620    }
    1571816621    char* path_base = psMetadataLookupPtr(&status, md, "path_base");
    1571916622    if (!status) {
     
    1572716630    }
    1572816631
    15729     return detNormalizedExpRowAlloc(det_id, iteration, recipe, bg, bg_stdev, bg_mean_stdev, path_base, fault);
     16632    return detNormalizedExpRowAlloc(det_id, iteration, recipe, bg, bg_stdev, bg_mean_stdev, user_1, user_2, user_3, user_4, user_5, path_base, fault);
    1573016633}
    1573116634psArray *detNormalizedExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    1583916742static void detResidImfileRowFree(detResidImfileRow *object);
    1584016743
    15841 detResidImfileRow *detResidImfileRowAlloc(psS64 det_id, psS32 iteration, const char *exp_tag, const char *class_id, const char *uri, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, const char *path_base, psS16 fault)
     16744detResidImfileRow *detResidImfileRowAlloc(psS64 det_id, psS32 iteration, const char *exp_tag, const char *class_id, const char *uri, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 bin_stdev, psF64 fringe_0, psF64 fringe_1, psF64 fringe_2, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, psS16 fault)
    1584216745{
    1584316746    detResidImfileRow *_object;
     
    1585516758    _object->bg_stdev = bg_stdev;
    1585616759    _object->bg_mean_stdev = bg_mean_stdev;
     16760    _object->bin_stdev = bin_stdev;
     16761    _object->fringe_0 = fringe_0;
     16762    _object->fringe_1 = fringe_1;
     16763    _object->fringe_2 = fringe_2;
     16764    _object->user_1 = user_1;
     16765    _object->user_2 = user_2;
     16766    _object->user_3 = user_3;
     16767    _object->user_4 = user_4;
     16768    _object->user_5 = user_5;
    1585716769    _object->path_base = psStringCopy(path_base);
    1585816770    _object->fault = fault;
     
    1591816830        return false;
    1591916831    }
     16832    if (!psMetadataAdd(md, PS_LIST_TAIL, "bin_stdev", PS_DATA_F64, NULL, 0.0)) {
     16833        psError(PS_ERR_UNKNOWN, false, "failed to add item bin_stdev");
     16834        psFree(md);
     16835        return false;
     16836    }
     16837    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_0", PS_DATA_F64, NULL, 0.0)) {
     16838        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_0");
     16839        psFree(md);
     16840        return false;
     16841    }
     16842    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_1", PS_DATA_F64, NULL, 0.0)) {
     16843        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_1");
     16844        psFree(md);
     16845        return false;
     16846    }
     16847    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_2", PS_DATA_F64, NULL, 0.0)) {
     16848        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_2");
     16849        psFree(md);
     16850        return false;
     16851    }
     16852    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_1", PS_DATA_F64, NULL, 0.0)) {
     16853        psError(PS_ERR_UNKNOWN, false, "failed to add item user_1");
     16854        psFree(md);
     16855        return false;
     16856    }
     16857    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_2", PS_DATA_F64, NULL, 0.0)) {
     16858        psError(PS_ERR_UNKNOWN, false, "failed to add item user_2");
     16859        psFree(md);
     16860        return false;
     16861    }
     16862    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_3", PS_DATA_F64, NULL, 0.0)) {
     16863        psError(PS_ERR_UNKNOWN, false, "failed to add item user_3");
     16864        psFree(md);
     16865        return false;
     16866    }
     16867    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_4", PS_DATA_F64, NULL, 0.0)) {
     16868        psError(PS_ERR_UNKNOWN, false, "failed to add item user_4");
     16869        psFree(md);
     16870        return false;
     16871    }
     16872    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_5", PS_DATA_F64, NULL, 0.0)) {
     16873        psError(PS_ERR_UNKNOWN, false, "failed to add item user_5");
     16874        psFree(md);
     16875        return false;
     16876    }
    1592016877    if (!psMetadataAdd(md, PS_LIST_TAIL, "path_base", PS_DATA_STRING, NULL, "255")) {
    1592116878        psError(PS_ERR_UNKNOWN, false, "failed to add item path_base");
     
    1594116898}
    1594216899
    15943 bool detResidImfileInsert(psDB * dbh, psS64 det_id, psS32 iteration, const char *exp_tag, const char *class_id, const char *uri, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, const char *path_base, psS16 fault)
     16900bool detResidImfileInsert(psDB * dbh, psS64 det_id, psS32 iteration, const char *exp_tag, const char *class_id, const char *uri, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 bin_stdev, psF64 fringe_0, psF64 fringe_1, psF64 fringe_2, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, psS16 fault)
    1594416901{
    1594516902    psMetadata *md = psMetadataAlloc();
     
    1598616943    if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_mean_stdev", PS_DATA_F64, NULL, bg_mean_stdev)) {
    1598716944        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev");
     16945        psFree(md);
     16946        return false;
     16947    }
     16948    if (!psMetadataAdd(md, PS_LIST_TAIL, "bin_stdev", PS_DATA_F64, NULL, bin_stdev)) {
     16949        psError(PS_ERR_UNKNOWN, false, "failed to add item bin_stdev");
     16950        psFree(md);
     16951        return false;
     16952    }
     16953    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_0", PS_DATA_F64, NULL, fringe_0)) {
     16954        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_0");
     16955        psFree(md);
     16956        return false;
     16957    }
     16958    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_1", PS_DATA_F64, NULL, fringe_1)) {
     16959        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_1");
     16960        psFree(md);
     16961        return false;
     16962    }
     16963    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_2", PS_DATA_F64, NULL, fringe_2)) {
     16964        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_2");
     16965        psFree(md);
     16966        return false;
     16967    }
     16968    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_1", PS_DATA_F64, NULL, user_1)) {
     16969        psError(PS_ERR_UNKNOWN, false, "failed to add item user_1");
     16970        psFree(md);
     16971        return false;
     16972    }
     16973    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_2", PS_DATA_F64, NULL, user_2)) {
     16974        psError(PS_ERR_UNKNOWN, false, "failed to add item user_2");
     16975        psFree(md);
     16976        return false;
     16977    }
     16978    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_3", PS_DATA_F64, NULL, user_3)) {
     16979        psError(PS_ERR_UNKNOWN, false, "failed to add item user_3");
     16980        psFree(md);
     16981        return false;
     16982    }
     16983    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_4", PS_DATA_F64, NULL, user_4)) {
     16984        psError(PS_ERR_UNKNOWN, false, "failed to add item user_4");
     16985        psFree(md);
     16986        return false;
     16987    }
     16988    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_5", PS_DATA_F64, NULL, user_5)) {
     16989        psError(PS_ERR_UNKNOWN, false, "failed to add item user_5");
    1598816990        psFree(md);
    1598916991        return false;
     
    1602217024bool detResidImfileInsertObject(psDB *dbh, detResidImfileRow *object)
    1602317025{
    16024     return detResidImfileInsert(dbh, object->det_id, object->iteration, object->exp_tag, object->class_id, object->uri, object->recipe, object->bg, object->bg_stdev, object->bg_mean_stdev, object->path_base, object->fault);
     17026    return detResidImfileInsert(dbh, object->det_id, object->iteration, object->exp_tag, object->class_id, object->uri, object->recipe, object->bg, object->bg_stdev, object->bg_mean_stdev, object->bin_stdev, object->fringe_0, object->fringe_1, object->fringe_2, object->user_1, object->user_2, object->user_3, object->user_4, object->user_5, object->path_base, object->fault);
    1602517027}
    1602617028
     
    1614017142        return false;
    1614117143    }
     17144    if (!psMetadataAdd(md, PS_LIST_TAIL, "bin_stdev", PS_DATA_F64, NULL, object->bin_stdev)) {
     17145        psError(PS_ERR_UNKNOWN, false, "failed to add item bin_stdev");
     17146        psFree(md);
     17147        return false;
     17148    }
     17149    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_0", PS_DATA_F64, NULL, object->fringe_0)) {
     17150        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_0");
     17151        psFree(md);
     17152        return false;
     17153    }
     17154    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_1", PS_DATA_F64, NULL, object->fringe_1)) {
     17155        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_1");
     17156        psFree(md);
     17157        return false;
     17158    }
     17159    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_2", PS_DATA_F64, NULL, object->fringe_2)) {
     17160        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_2");
     17161        psFree(md);
     17162        return false;
     17163    }
     17164    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_1", PS_DATA_F64, NULL, object->user_1)) {
     17165        psError(PS_ERR_UNKNOWN, false, "failed to add item user_1");
     17166        psFree(md);
     17167        return false;
     17168    }
     17169    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_2", PS_DATA_F64, NULL, object->user_2)) {
     17170        psError(PS_ERR_UNKNOWN, false, "failed to add item user_2");
     17171        psFree(md);
     17172        return false;
     17173    }
     17174    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_3", PS_DATA_F64, NULL, object->user_3)) {
     17175        psError(PS_ERR_UNKNOWN, false, "failed to add item user_3");
     17176        psFree(md);
     17177        return false;
     17178    }
     17179    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_4", PS_DATA_F64, NULL, object->user_4)) {
     17180        psError(PS_ERR_UNKNOWN, false, "failed to add item user_4");
     17181        psFree(md);
     17182        return false;
     17183    }
     17184    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_5", PS_DATA_F64, NULL, object->user_5)) {
     17185        psError(PS_ERR_UNKNOWN, false, "failed to add item user_5");
     17186        psFree(md);
     17187        return false;
     17188    }
    1614217189    if (!psMetadataAdd(md, PS_LIST_TAIL, "path_base", PS_DATA_STRING, NULL, object->path_base)) {
    1614317190        psError(PS_ERR_UNKNOWN, false, "failed to add item path_base");
     
    1620417251        return false;
    1620517252    }
     17253    psF64 bin_stdev = psMetadataLookupF64(&status, md, "bin_stdev");
     17254    if (!status) {
     17255        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bin_stdev");
     17256        return false;
     17257    }
     17258    psF64 fringe_0 = psMetadataLookupF64(&status, md, "fringe_0");
     17259    if (!status) {
     17260        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item fringe_0");
     17261        return false;
     17262    }
     17263    psF64 fringe_1 = psMetadataLookupF64(&status, md, "fringe_1");
     17264    if (!status) {
     17265        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item fringe_1");
     17266        return false;
     17267    }
     17268    psF64 fringe_2 = psMetadataLookupF64(&status, md, "fringe_2");
     17269    if (!status) {
     17270        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item fringe_2");
     17271        return false;
     17272    }
     17273    psF64 user_1 = psMetadataLookupF64(&status, md, "user_1");
     17274    if (!status) {
     17275        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_1");
     17276        return false;
     17277    }
     17278    psF64 user_2 = psMetadataLookupF64(&status, md, "user_2");
     17279    if (!status) {
     17280        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_2");
     17281        return false;
     17282    }
     17283    psF64 user_3 = psMetadataLookupF64(&status, md, "user_3");
     17284    if (!status) {
     17285        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_3");
     17286        return false;
     17287    }
     17288    psF64 user_4 = psMetadataLookupF64(&status, md, "user_4");
     17289    if (!status) {
     17290        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_4");
     17291        return false;
     17292    }
     17293    psF64 user_5 = psMetadataLookupF64(&status, md, "user_5");
     17294    if (!status) {
     17295        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_5");
     17296        return false;
     17297    }
    1620617298    char* path_base = psMetadataLookupPtr(&status, md, "path_base");
    1620717299    if (!status) {
     
    1621517307    }
    1621617308
    16217     return detResidImfileRowAlloc(det_id, iteration, exp_tag, class_id, uri, recipe, bg, bg_stdev, bg_mean_stdev, path_base, fault);
     17309    return detResidImfileRowAlloc(det_id, iteration, exp_tag, class_id, uri, recipe, bg, bg_stdev, bg_mean_stdev, bin_stdev, fringe_0, fringe_1, fringe_2, user_1, user_2, user_3, user_4, user_5, path_base, fault);
    1621817310}
    1621917311psArray *detResidImfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
     
    1632717419static void detResidExpRowFree(detResidExpRow *object);
    1632817420
    16329 detResidExpRow *detResidExpRowAlloc(psS64 det_id, psS32 iteration, const char *exp_tag, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, const char *path_base, bool accept, psS16 fault)
     17421detResidExpRow *detResidExpRowAlloc(psS64 det_id, psS32 iteration, const char *exp_tag, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 bin_stdev, psF64 fringe_0, psF64 fringe_1, psF64 fringe_2, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, bool accept, psS16 fault)
    1633017422{
    1633117423    detResidExpRow  *_object;
     
    1634117433    _object->bg_stdev = bg_stdev;
    1634217434    _object->bg_mean_stdev = bg_mean_stdev;
     17435    _object->bin_stdev = bin_stdev;
     17436    _object->fringe_0 = fringe_0;
     17437    _object->fringe_1 = fringe_1;
     17438    _object->fringe_2 = fringe_2;
     17439    _object->user_1 = user_1;
     17440    _object->user_2 = user_2;
     17441    _object->user_3 = user_3;
     17442    _object->user_4 = user_4;
     17443    _object->user_5 = user_5;
    1634317444    _object->path_base = psStringCopy(path_base);
    1634417445    _object->accept = accept;
     
    1639317494        return false;
    1639417495    }
     17496    if (!psMetadataAdd(md, PS_LIST_TAIL, "bin_stdev", PS_DATA_F64, NULL, 0.0)) {
     17497        psError(PS_ERR_UNKNOWN, false, "failed to add item bin_stdev");
     17498        psFree(md);
     17499        return false;
     17500    }
     17501    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_0", PS_DATA_F64, NULL, 0.0)) {
     17502        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_0");
     17503        psFree(md);
     17504        return false;
     17505    }
     17506    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_1", PS_DATA_F64, NULL, 0.0)) {
     17507        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_1");
     17508        psFree(md);
     17509        return false;
     17510    }
     17511    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_2", PS_DATA_F64, NULL, 0.0)) {
     17512        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_2");
     17513        psFree(md);
     17514        return false;
     17515    }
     17516    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_1", PS_DATA_F64, NULL, 0.0)) {
     17517        psError(PS_ERR_UNKNOWN, false, "failed to add item user_1");
     17518        psFree(md);
     17519        return false;
     17520    }
     17521    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_2", PS_DATA_F64, NULL, 0.0)) {
     17522        psError(PS_ERR_UNKNOWN, false, "failed to add item user_2");
     17523        psFree(md);
     17524        return false;
     17525    }
     17526    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_3", PS_DATA_F64, NULL, 0.0)) {
     17527        psError(PS_ERR_UNKNOWN, false, "failed to add item user_3");
     17528        psFree(md);
     17529        return false;
     17530    }
     17531    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_4", PS_DATA_F64, NULL, 0.0)) {
     17532        psError(PS_ERR_UNKNOWN, false, "failed to add item user_4");
     17533        psFree(md);
     17534        return false;
     17535    }
     17536    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_5", PS_DATA_F64, NULL, 0.0)) {
     17537        psError(PS_ERR_UNKNOWN, false, "failed to add item user_5");
     17538        psFree(md);
     17539        return false;
     17540    }
    1639517541    if (!psMetadataAdd(md, PS_LIST_TAIL, "path_base", PS_DATA_STRING, NULL, "255")) {
    1639617542        psError(PS_ERR_UNKNOWN, false, "failed to add item path_base");
     
    1642117567}
    1642217568
    16423 bool detResidExpInsert(psDB * dbh, psS64 det_id, psS32 iteration, const char *exp_tag, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, const char *path_base, bool accept, psS16 fault)
     17569bool detResidExpInsert(psDB * dbh, psS64 det_id, psS32 iteration, const char *exp_tag, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 bin_stdev, psF64 fringe_0, psF64 fringe_1, psF64 fringe_2, psF64 user_1, psF64 user_2, psF64 user_3, psF64 user_4, psF64 user_5, const char *path_base, bool accept, psS16 fault)
    1642417570{
    1642517571    psMetadata *md = psMetadataAlloc();
     
    1645617602    if (!psMetadataAdd(md, PS_LIST_TAIL, "bg_mean_stdev", PS_DATA_F64, NULL, bg_mean_stdev)) {
    1645717603        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev");
     17604        psFree(md);
     17605        return false;
     17606    }
     17607    if (!psMetadataAdd(md, PS_LIST_TAIL, "bin_stdev", PS_DATA_F64, NULL, bin_stdev)) {
     17608        psError(PS_ERR_UNKNOWN, false, "failed to add item bin_stdev");
     17609        psFree(md);
     17610        return false;
     17611    }
     17612    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_0", PS_DATA_F64, NULL, fringe_0)) {
     17613        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_0");
     17614        psFree(md);
     17615        return false;
     17616    }
     17617    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_1", PS_DATA_F64, NULL, fringe_1)) {
     17618        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_1");
     17619        psFree(md);
     17620        return false;
     17621    }
     17622    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_2", PS_DATA_F64, NULL, fringe_2)) {
     17623        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_2");
     17624        psFree(md);
     17625        return false;
     17626    }
     17627    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_1", PS_DATA_F64, NULL, user_1)) {
     17628        psError(PS_ERR_UNKNOWN, false, "failed to add item user_1");
     17629        psFree(md);
     17630        return false;
     17631    }
     17632    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_2", PS_DATA_F64, NULL, user_2)) {
     17633        psError(PS_ERR_UNKNOWN, false, "failed to add item user_2");
     17634        psFree(md);
     17635        return false;
     17636    }
     17637    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_3", PS_DATA_F64, NULL, user_3)) {
     17638        psError(PS_ERR_UNKNOWN, false, "failed to add item user_3");
     17639        psFree(md);
     17640        return false;
     17641    }
     17642    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_4", PS_DATA_F64, NULL, user_4)) {
     17643        psError(PS_ERR_UNKNOWN, false, "failed to add item user_4");
     17644        psFree(md);
     17645        return false;
     17646    }
     17647    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_5", PS_DATA_F64, NULL, user_5)) {
     17648        psError(PS_ERR_UNKNOWN, false, "failed to add item user_5");
    1645817649        psFree(md);
    1645917650        return false;
     
    1649717688bool detResidExpInsertObject(psDB *dbh, detResidExpRow *object)
    1649817689{
    16499     return detResidExpInsert(dbh, object->det_id, object->iteration, object->exp_tag, object->recipe, object->bg, object->bg_stdev, object->bg_mean_stdev, object->path_base, object->accept, object->fault);
     17690    return detResidExpInsert(dbh, object->det_id, object->iteration, object->exp_tag, object->recipe, object->bg, object->bg_stdev, object->bg_mean_stdev, object->bin_stdev, object->fringe_0, object->fringe_1, object->fringe_2, object->user_1, object->user_2, object->user_3, object->user_4, object->user_5, object->path_base, object->accept, object->fault);
    1650017691}
    1650117692
     
    1660517796        return false;
    1660617797    }
     17798    if (!psMetadataAdd(md, PS_LIST_TAIL, "bin_stdev", PS_DATA_F64, NULL, object->bin_stdev)) {
     17799        psError(PS_ERR_UNKNOWN, false, "failed to add item bin_stdev");
     17800        psFree(md);
     17801        return false;
     17802    }
     17803    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_0", PS_DATA_F64, NULL, object->fringe_0)) {
     17804        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_0");
     17805        psFree(md);
     17806        return false;
     17807    }
     17808    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_1", PS_DATA_F64, NULL, object->fringe_1)) {
     17809        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_1");
     17810        psFree(md);
     17811        return false;
     17812    }
     17813    if (!psMetadataAdd(md, PS_LIST_TAIL, "fringe_2", PS_DATA_F64, NULL, object->fringe_2)) {
     17814        psError(PS_ERR_UNKNOWN, false, "failed to add item fringe_2");
     17815        psFree(md);
     17816        return false;
     17817    }
     17818    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_1", PS_DATA_F64, NULL, object->user_1)) {
     17819        psError(PS_ERR_UNKNOWN, false, "failed to add item user_1");
     17820        psFree(md);
     17821        return false;
     17822    }
     17823    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_2", PS_DATA_F64, NULL, object->user_2)) {
     17824        psError(PS_ERR_UNKNOWN, false, "failed to add item user_2");
     17825        psFree(md);
     17826        return false;
     17827    }
     17828    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_3", PS_DATA_F64, NULL, object->user_3)) {
     17829        psError(PS_ERR_UNKNOWN, false, "failed to add item user_3");
     17830        psFree(md);
     17831        return false;
     17832    }
     17833    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_4", PS_DATA_F64, NULL, object->user_4)) {
     17834        psError(PS_ERR_UNKNOWN, false, "failed to add item user_4");
     17835        psFree(md);
     17836        return false;
     17837    }
     17838    if (!psMetadataAdd(md, PS_LIST_TAIL, "user_5", PS_DATA_F64, NULL, object->user_5)) {
     17839        psError(PS_ERR_UNKNOWN, false, "failed to add item user_5");
     17840        psFree(md);
     17841        return false;
     17842    }
    1660717843    if (!psMetadataAdd(md, PS_LIST_TAIL, "path_base", PS_DATA_STRING, NULL, object->path_base)) {
    1660817844        psError(PS_ERR_UNKNOWN, false, "failed to add item path_base");
     
    1666417900        return false;
    1666517901    }
     17902    psF64 bin_stdev = psMetadataLookupF64(&status, md, "bin_stdev");
     17903    if (!status) {
     17904        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bin_stdev");
     17905        return false;
     17906    }
     17907    psF64 fringe_0 = psMetadataLookupF64(&status, md, "fringe_0");
     17908    if (!status) {
     17909        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item fringe_0");
     17910        return false;
     17911    }
     17912    psF64 fringe_1 = psMetadataLookupF64(&status, md, "fringe_1");
     17913    if (!status) {
     17914        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item fringe_1");
     17915        return false;
     17916    }
     17917    psF64 fringe_2 = psMetadataLookupF64(&status, md, "fringe_2");
     17918    if (!status) {
     17919        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item fringe_2");
     17920        return false;
     17921    }
     17922    psF64 user_1 = psMetadataLookupF64(&status, md, "user_1");
     17923    if (!status) {
     17924        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_1");
     17925        return false;
     17926    }
     17927    psF64 user_2 = psMetadataLookupF64(&status, md, "user_2");
     17928    if (!status) {
     17929        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_2");
     17930        return false;
     17931    }
     17932    psF64 user_3 = psMetadataLookupF64(&status, md, "user_3");
     17933    if (!status) {
     17934        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_3");
     17935        return false;
     17936    }
     17937    psF64 user_4 = psMetadataLookupF64(&status, md, "user_4");
     17938    if (!status) {
     17939        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_4");
     17940        return false;
     17941    }
     17942    psF64 user_5 = psMetadataLookupF64(&status, md, "user_5");
     17943    if (!status) {
     17944        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item user_5");
     17945        return false;
     17946    }
    1666617947    char* path_base = psMetadataLookupPtr(&status, md, "path_base");
    1666717948    if (!status) {
     
    1668017961    }
    1668117962
    16682     return detResidExpRowAlloc(det_id, iteration, exp_tag, recipe, bg, bg_stdev, bg_mean_stdev, path_base, accept, fault);
     17963    return detResidExpRowAlloc(det_id, iteration, exp_tag, recipe, bg, bg_stdev, bg_mean_stdev, bin_stdev, fringe_0, fringe_1, fringe_2, user_1, user_2, user_3, user_4, user_5, path_base, accept, fault);
    1668317964}
    1668417965psArray *detResidExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
Note: See TracChangeset for help on using the changeset viewer.