The routine corrects the raw count rate for CCD deadtime and detector non-linearity.
The detector non-linearity correction (coincidence loss correction) is not applied when the source extent flag is set. The count rates are corrected for deadtime after the coincidence loss correction was applied.
It is possible to select between two different versions of the linearity
(=coincidence loss) correction.
The user can select between a theoretical coincidence loss correction
and an empirical linearity correction using the optional input parameter
linearity_type. The empirical linearity correction is derived by
While the theoretical linearity correction is a hard coded formula (see pseudo code below), the empirical linearity applies an additional parameterized correction function to the theoretical formula. The coefficients of the empirical linearity correction function are stored in the extension COINCIDENCE of the tt PHOTTONAT CCF constituent.
The empirical coincidence correction multiplies the theoretical
coincidence correction formula with an additional parameterized function f(x),
where x is the count to framerate ratio:
|x||is the count to framerate ratio, i.e. cts_detected * frametime|
|a||parameters stored in column PLINFUNC of extension COINCIDENCE of|
|PhotToNat CCF file|
|n||number of elements stored in column PLINFUNC of extension COINCIDENCE|
; function f_omraw2nat,eflag,frametime,deadfrac,cts_detected,$ linearity_type=linearity_type ; ; apply deadtime and coincidence correction to the raw OM count rates ; 16/12/97 initial version ; 24/02/98 rename variables to make code more intuitive ; 03/02/00 swap coincidence loss and deadtime correction ; set eflag to excluded extended sources from coincidence loss ; correction
; 19/01/01 prepare for empirical linearity correction ; 12/02/01 include empirical linearity correction ;
;INPUT: ; eflag logical to flag extended sources ; cts_detected measured photon rate per second ; deadfrac frametransfer time expressed as fraction of frametime ; frametime CCD frametime in units of seconds
; optional INPUT: ; linearity_type optional integer parameter selecting type of ; linearity correction (0=Igor's empirical, 1=theoretical)
;OUTPUT: ; photons_in in-falling photon rate (not corrected for phd-fraction) if eflag then cts=cts_detected $ else begin ; correct for coincidence losses if cts_detected lt 1./frametime then begin
; calculate theoretical correction, which is needed anyhow cts=alog(1.-cts_detected*frametime)/frametime*(-1.) if linearity_type eq '0' then begin ; use empirical correction!!! ; apply additional correction term: Igor's parameterized function ; parameters are stored in column PLINFUNC of extension COINCIDENCE ; in PhotToNat CCF file x=cts_detected*frametime f_x=0.D0 idim=n_elements(a_i) for i=0,idim-1 do f_x= f_x + a_i[i]* x^i cts=cts*f_x endif else if linearity_type eq '1' then begin ; no further correction for theoretical curve required cts=cts endelse endif else begin ; more counts than frames, either source is extended or very very bright cts=infinity ; (i.e. largest possible number*(1-deadfrac) ) print,'warning: count rate gt frametime, rate set to largest possible number'
endelse endelse ;correct for frametransfer time photons_in=cts/(1.-deadfrac) return,photons_in end
A correction for the global loss of detector efficiency is applied
optionally using the value of the PHDFRAC keyword in the
PhotToNat CCF file. The value stored in PHDFRAC describes the
fraction of detected events as measured at the time
of the most recent photometric calibration update.
The correction for the average detector ageing or change
in the threshold setting is achieved by: