function W_HISTOGRAM, DATA, WEIGHT,BINSIZE=BINSIZE,MAX=MAX,MIN=MIN,NBINS=NBINS, REVERSE_INDICES=REVERSE_INDICES,NAN=NAN,NORMALIZE=NORMALIZE
    on_error,2
    nweight=n_elements(weight)
    if nweight eq 0 then return,histogram(DATA,BINSIZE=BINSIZE,MAX=MAX,MIN=MIN,NBINS=NBINS, REVERSE_INDICES=REVERSE_INDICES,NAN=NAN)
    npoints=n_elements(data)
    if nweight ne npoints then weight=1.d*data/data else weight=weight*1.d
    result=histogram(DATA,BINSIZE=BINSIZE,MAX=MAX,MIN=MIN,NBINS=NBINS, REVERSE_INDICES=R,/NAN)
    REVERSE_INDECES=R
    for i=0, n_elements(result)-1 do begin
     IF R[i] NE R[i+1] THEN result[i]=Total(weight[R[R[i] : R[i+1]-1]])*1.d
    end
    if keyword_set(normalize) then begin
     result=result/total(result)
     if normalize ne 1 then result=result*npoints
    end
    return,result
end
;****************************************************************************************************************