PDS_VERSION_ID = PDS3 RECORD_TYPE = STREAM OBJECT = TEXT PUBLICATION_DATE = 1999-03-11 NOTE = "This file contains CHANTOEN.PRO IDL code." END_OBJECT = TEXT END ; ; NAME: CHANTOEN ; ; PURPOSE: Channel to Energy conversion for EPAC EV-Matrix ; ; CATEGORY: Element Distr. & Energy calc. ; ; CALLING SEQUENCE: en=CHANTOEN(chan,xybit,hmodbit) ; ; INPUTS: chan y:0-255 (dE), x:0-511 (E) EV channel ; or array of these numbers ; xybit 0: Xaxis (E, B-Det) 1: Yaxis (dE, A-Det) ; hmodbit 0:IMOD 1:HMOD (value of column ER for E, 0 for dE) ; ; OUTPUTS: En FLT or FLTARR respective energies (in MeV) ; ; RESTRICTIONS: ; ; PROCEDURE: ; Factors from experiment description, p.4-26a ; (recalibrated values, oct. 91) ; ; MODIFICATION HISTORY: ; Written by: Markus Fraenz,MPAE jan 94. ; 14/12/94 2.0 MeV offset for B in the upper half ; generally desactivated MF ; 18/06/95 allows for dE > A2 threshold MF,MKR ;- FUNCTION CHANTOEN,chan,xybit,hmodbit ; channel-energy-conversion: E[MeV]=(channel+facB)/facA ; facA=[128.6,2.558,24.39,12.] ; ADC1 : Erange0,Erange1,dEimod,dEhmod facB=[8.005,0.7673,7.317,7.] ; ADC1 : Erange0,Erange1,dEimod,dEhmod ; IF xybit EQ 1 THEN en=(chan+1.0+facB(2+hmodbit))/facA(2+hmodbit) >0.43 $ ELSE BEGIN nel=n_elements(chan) IF nel EQ 1 THEN BEGIN IF chan LT 256 THEN $ en=(chan+1.0+facB(0))/facA(0) $ ELSE en=(chan-256+1+facB(1))/facA(1) ;+2.0 ; with doubtfull 2.0 offset ; upper energy range ought to start at 0 again ENDIF ELSE BEGIN er0idx=where(chan LT 256,er0count) er1idx=where(chan GE 256,er1count) en=FLTARR(nel) IF er0count GT 0 THEN en(er0idx)=(chan(er0idx)+1.0+facB(0))/facA(0) IF er1count GT 0 THEN en(er1idx)= $ (chan(er1idx)-256.0+1.0+facB(1))/facA(1);+2.0 ENDELSE ENDELSE return,en end