Changeset 25204
- Timestamp:
- Aug 26, 2009, 7:49:18 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/20090715/psphot/src/psphotPetrosianStats.c
r25178 r25204 18 18 19 19 psVector *fluxSum = psVectorAllocEmpty(binSB->n, PS_TYPE_F32); 20 psVector *fluxSumErr2 = psVectorAllocEmpty(binSB->n, PS_TYPE_F32); 20 21 psVector *refRadius = psVectorAllocEmpty(binSB->n, PS_TYPE_F32); 21 22 psVector *petRatio = psVectorAllocEmpty(binSB->n, PS_TYPE_F32); … … 27 28 bool manyPetro = false; 28 29 bool above = true; 30 float Asum = 0.0; 29 31 float Fsum = 0.0; 30 float Asum= 0.0;32 float dFsum2 = 0.0; 31 33 32 34 int nOut = 0; … … 36 38 37 39 float Area = area->data.F32[i]; 40 Asum += Area; 38 41 Fsum += binSB->data.F32[i] * Area; 39 Asum += Area;42 dFsum2 += PS_SQR(binSBstdev->data.F32[i] * Area); 40 43 44 float areaInner = 0.5 * Area; 41 45 float fluxInner = 0.5 * Area * binSB->data.F32[i]; 42 float areaInner = 0.5 * Area;46 float fluxInnerErr2 = PS_SQR(binSBstdev->data.F32[i] * 0.5 * Area); 43 47 if (nOut > 0) { 48 areaInner += areaSum->data.F32[nOut-1]; 44 49 fluxInner += fluxSum->data.F32[nOut-1]; 45 areaInner += areaSum->data.F32[nOut-1];50 fluxInnerErr2 = PS_SQR(fluxSumErr2->data.F32[nOut-1] * areaSum->data.F32[nOut-1]); 46 51 } 47 52 53 // ratio = binSB / meanSB 54 // meanSB = flux / area 55 // flux = sum(binSB(i) * area(i) 56 // fluxErr^2 = sum(binSBerr(i)^2 area(i)^2) 57 // meanSBerr^2 = fluxErr^2 / area^2 58 // (ratioErr/ratio)^2 = (binSBerr/binSB)^2 + (meanSBerr/meanSB)^2 59 48 60 psVectorAppend(meanSB, (fluxInner / areaInner)); 49 psVectorAppend(petRatio, binSB->data.F32[i] / meanSB->data.F32[nOut]); 50 psVectorAppend(petRatioErr, binSBstdev->data.F32[i] / meanSB->data.F32[nOut]); 61 62 float ratio = binSB->data.F32[i] / meanSB->data.F32[nOut]; 63 psVectorAppend(petRatio, ratio); 64 65 float meanSBerr = sqrt(fluxInnerErr2) / areaInner; 66 float ratioErr = ratio * sqrt(PS_SQR(binSBstdev->data.F32[i]/binSB->data.F32[i]) + PS_SQR(meanSBerr/meanSB->data.F32[nOut])); 67 68 psVectorAppend(petRatioErr, ratioErr); 69 70 psVectorAppend(areaSum, Asum); 51 71 psVectorAppend(fluxSum, Fsum); 52 psVectorAppend( areaSum, Asum);72 psVectorAppend(fluxSumErr2, dFsum2); 53 73 psVectorAppend(refRadius, binRad->data.F32[i]); 54 74
Note:
See TracChangeset
for help on using the changeset viewer.
