========== stage one: "events" ========== FOR EACH specified exposure IF (!exists(atttsr)) atthkgen: create(atttsr) IF (calcoffsets && !exists(offset)) rgsoffsetcalc: create(offset,[offhst]) hkgtigen: create(hkgti_) attfilter: read(atttsr) create(attgti) rgssources: read(attgti) create(srcli_) FOR EACH ccd rgsframes: create(events) rgsenergy: read([offset]) modify(events) rgsbadpix: modify(events) rgsevents: modify(events) evlistcomb: read(EACH events) create(merged) ========== stage two: "angles" ========== if (!exists(merged) && exists(evenli)) clone: read(evenli) create(merged) rgsangles: read(srcli_) modify(merged) ========== stage three: "filter" ========== if (!exists(merged) && exists(evenli)) clone: read(evenli) create(merged) rgsfilter: read(merged,attgti,hkgti_,auxgtitables) create(evenli,[expmap]) ========== stage four: "spectra" ========== rgsregions: read(evenli) modify(srcli_) FOR EACH selected source FOR EACH specified order rgsspectrum: read(evenli,srcli_) create(srspec,[bgspec]) rgsbkgmodel: read(evenli) create([bkgmodelspec]) ========== stage five: "fluxing" ========== FOR EACH specified order FOR EACH specified exposure rgsrmfgen: read(evenli,srcli_,srspec,[angdist]) create(rspmat) IF (!mergeorders) rgsfluxer: read(EACH rspmat,EACH srspec) create(fluxed) IF (mergeorders) rgsfluxer: read(EACH rspmat,EACH srspec) create(fluxed)