function [behavior_stoptask, SSRT_SSD] = detectSSRT2(data_behavior,events)

     %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
     GO_trials_error = GO_trials(isnan(events.reward(GO_trials))); %with non-rewarded trials only
 
     %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
     GO_stoptrials_error = GO_stoptrials(isnan(events.reward(GO_stoptrials))); %with non-rewarded trials only 
     
     %Behavioral parameters-----------------------------------------  
     centreout_GOtrials = data_behavior.centreout(GO_trials);
     centreout_GOtrials = centreout_GOtrials(~isnan(centreout_GOtrials)); 
     
     centreout_GOtrials_success = data_behavior.centreout(GO_trials_success);
     centreout_GOtrials_success = centreout_GOtrials_success(~isnan(centreout_GOtrials_success));
     
     centreout_GOtrials_error = data_behavior.centreout(GO_trials_error);
     centreout_GOtrials_error = centreout_GOtrials_error(~isnan(centreout_GOtrials_error));

     centreout_stopfailure = events.error_nogo(GO_stoptrials_error) -  events.go_signal(GO_stoptrials_error)-5;
     centreout_stopfailure = centreout_stopfailure(~isnan(centreout_stopfailure));
     
     SSD_success =  events.change_signal(GO_stoptrials_success) - events.go_signal(GO_stoptrials_success);
     SSD_error =  events.change_signal(GO_stoptrials_error) - events.go_signal(GO_stoptrials_error);
     
     behavior_stoptask.SSD_success = SSD_success;
     behavior_stoptask.SSD_error = SSD_error;
     
     %remove trials out-of-boundaries
     MAD = mad(centreout_GOtrials,1);
     lim_inf = median(centreout_GOtrials) - (4.45 * MAD); %4.45 x median absolute deviations
     lim_sup = median(centreout_GOtrials) + (4.45 * MAD);
     centreout_GOtrials = centreout_GOtrials(centreout_GOtrials>lim_inf); 
     centreout_GOtrials = centreout_GOtrials(centreout_GOtrials<lim_sup); 
     
     behavior_stoptask.ResponseTime_GOtrials = centreout_GOtrials;
     behavior_stoptask.ResponseTime_stopfailure = centreout_stopfailure;

     %best time bins to estimate SSRT is 30-msec ----------------
     bin = 30;
    
     [centreout_ranked ranking] = sort(centreout_GOtrials);
     out_GOtrials = hist(centreout_GOtrials,[1:bin:900]);
     out_GOtrials = out_GOtrials/sum(out_GOtrials);
     success_SSDtrials = hist(SSD_success,[1:bin:900]);
     error_SSDtrials = hist(SSD_error,[1:bin:900]);
     rate_success_SSD = success_SSDtrials./(success_SSDtrials + error_SSDtrials);
     rate_error_SSD = error_SSDtrials./(success_SSDtrials + error_SSDtrials);

          for iii = 1:length(rate_error_SSD)
     
                if ~isnan(rate_error_SSD(iii))    
                    SSRT_index = length(centreout_ranked)*rate_error_SSD(iii);  
                    
                        if SSRT_index == 0;
                            SSRT(iii,1) = NaN;
                        else
                            SSRT(iii,1) = centreout_ranked(round(SSRT_index));
                        end
                else
                    SSRT(iii,1) = NaN;
                end
          end
 
        mean_SSD = [1-bin:bin:900-bin]'; 
        SSRT_values = round(SSRT - mean_SSD);
        SSRT_SSD = SSRT_values(~isnan(SSRT_values));
        SSRT_SSD(:,2) = mean_SSD(~isnan(SSRT_values));
        behavior_stoptask.SSRT = round(nanmean(SSRT_SSD(:,1)));
   
end