function [reward_response] = RunNeuronRewardAnalysis(data_behavior,events,plxdata,filename)

  plot_onset = -1;
  plot_offset = 1;
  bin = 60;   %bin = 60 msec for stat analysis
  slide = 1;  %sliding procedure shift = 1-msec

  %TRIAL TYPES-----------------------------------------
  %go trials without stop signal
  GO_trials = find(6 >= data_behavior.TP & data_behavior.TP >= 1 | 18 >= data_behavior.TP & data_behavior.TP >= 13);
  GO_trials = GO_trials(isnan(events.change_signal(GO_trials)));
  GO_trials_success = GO_trials(~isnan(events.reward(GO_trials))); %with rewarded trials only and mvt onset well-detected
  GO_trials_success = GO_trials_success(~isnan(events.mvt_onset(GO_trials_success)));

  %go trials with stop signal
  GO_stoptrials = find(6 >= data_behavior.TP & data_behavior.TP >= 1 | 18 >= data_behavior.TP & data_behavior.TP >= 13);
  GO_stoptrials = GO_stoptrials(~isnan(events.change_signal(GO_stoptrials)));
  GO_stoptrials_success = GO_stoptrials(~isnan(events.reward(GO_stoptrials))); %with rewarded trials only
  
  cue_evt = events.reward(GO_stoptrials_success);

    %--------------  NEURONAL DATA  ---------------------------
    timestamps = plxdata.sig001a.ts .*1000;  % Neural activity   
  
    [sdf_reward_trials] = sdf_neurons(timestamps,cue_evt,plot_onset,plot_offset);    
    
    tscale = [plot_onset:0.001:plot_offset];
    maxy = nanmax(sdf_reward_trials.mean_sdf) + 5;
    %------------------Plotting-------------------------------------
     [s_reward,mean_reward,thr_reward] = make_psth_figure(timestamps,cue_evt,filename,-0.5,1,maxy,1,'REWARD');   
    %------- ROC analysis ------------------------
        if ~isempty(s_reward.on_ind)
            if s_reward.on_ind<900

                  [m n] = size(sdf_reward_trials.delta);
                  Wind_on = [1:slide:n-bin];
                  Wind_off = [bin:slide:n-1];
                
                    for k = 1:length(Wind_on)
                        delta_reward(:,k) = sum(sdf_reward_trials.delta(:,Wind_on(k):Wind_off(k)),2);
                        
                        delta_ctl = shuffle(sdf_reward_trials.delta,1);
                        delta_ctl = shuffle(delta_ctl,2);
                        delta_ctl = shuffle(delta_ctl);
            
                        delta_shuffle(:,k) = sum(delta_ctl(:,Wind_on(k):Wind_off(k)),2);
                    end
                  
                    for k = 1:length(delta_reward)
      
                        val = [delta_shuffle(:,k); delta_reward(:,k)];
                        val2 = [ones(length(delta_shuffle(:,k)),1); zeros(length(delta_reward(:,k)),1)];
                        val = [val val2];
     
                            if sum(val(:,1))>3
                                    AUC_ROC(k)=colAUC(val(:,1),val(:,2), 'algorithm', 'Wilcoxon', 'plot', false, 'abs', false);  
                            else
                                    AUC_ROC(k) = NaN;
                            end
     
                    clear val val2 
                    end
                  
                   Xbinned = [plot_onset:0.001:plot_onset+((length(AUC_ROC)-1)/1000)];
                   Xbinned = Xbinned + (bin/2)/1000;

                   subplot(3,3,4)
                   plot(Xbinned,AUC_ROC)
                   xlim([-0.5 1])
                   ylim([0 1])
            end
        end
                        meta_name = ['REWARD_' filename(5:end) '.emf'];
                        print( '-dmeta','-r1200', meta_name);
                        close   

               reward_response.s_reward = s_reward; 
               reward_response.sdf_reward = sdf_reward_trials.mean_sdf;

end
