function [ f, p, F, P, B ] = run1sim1( Smell, MC_ordA, MC_ordB, Ng, Np, Nt, dt, tau, thU, thL, ANoise, t_chr2, chr2, t_sm, WPP, WePB, cMult, cAdd, display )
%UNTITLED Summary of this function goes here
%   Detailed explanation goes here


% [ f, p, F, P, B ] = run1sim1( 'B', [1:Ng]', [8, 6, 1, 5, 3, 7, 4, 2, 9:Ng]', Ng, Np, Nt, dt, .05, thU, thL, 0, 2, chr2, t_sm, PBExFwd, WPP*0.6, WePB*0.025, cMult, 1000, 1 );


if display
        figure
end



if 0


    if Smell == 'A'
        MC_ord = MC_ordA;
    else
        MC_ord = MC_ordB;
    end

else
    
    MC_ord = [MC_ordA; MC_ordB];
    ttt = [1:(length(MC_ordA))]';
    
    if Smell == 'A'
        TTT = [ttt; ttt*cMult+cAdd];
    else
        TTT = [ttt*cMult+cAdd; ttt];
    end
    
    [sTTT, ind] = sort(TTT, 'ascend');
    
    MC_ord = MC_ord(ind);
    
    % Remove duplicates
    
    mmm = zeros(size(MC_ordA));
    
    n_inc = 1;
    
    if display
        MC_ord(1:20)'
    end
    
    for i=1:length(MC_ord)
        if MC_ord(i) == 0
            continue
        end
        
        ind = find(MC_ord == MC_ord(i));
        mmm(n_inc) = MC_ord(i);
        n_inc = n_inc + 1;
        MC_ord(ind)=0;
        
    end
    
    MC_ord = mmm;
    
    
end

B = zeros(Ng,Nt);

%dn_bulb = Nt/Ng*1.2;
%dn_bulb = Nt/Ng*2.1;       % this was used in simulation on the night of
%5/22-23/2016


dn_bulb = round(0.2/10/dt);      % 10 primary glomeruli in 0.2 sec


%dn_pulse = round(0.16/dt);
dn_pulse = round(0.5/dt);
n0_pulse = round(t_sm/dt);

if display
    Mitral_cell_order = MC_ord(1:20)'
end

for i=1:Ng
   n_glom = MC_ord(i);
   
   dd=round(randn*0/dt);                      % jitter 
   t1 = round(dn_bulb*i+n0_pulse+dd);
   t2 = round(dn_bulb*i+n0_pulse+dn_pulse+dd);
   t2 = min(t2,Nt);
   
   if t1<Nt
       
        B(n_glom,t1:t2)=1;
       
   end
    
end

NN = ANoise*randn(size(B));
B = B+NN;



I0 = 0*ones(Np,1);


% begin sim...............................................................

act = 0;

p = zeros(Np,1);
f = p;
f_prev = 0;
b = zeros(Ng,1);
p_prev = p;

P = zeros(Np,Nt);
F = P;



step=1;
t=0;


% add chr stim

%for i=round(t_chr2/dt):size(B,2)

for i=round(t_chr2/dt):min(round((t_chr2+0.1)/dt),size(B,2))

    B(:,i) = B(:,i)+chr2;

end

B = sparse(B);
f = sparse(f);
b0 = sparse(B(:,1)*0);

dN = round(0.2/dt);

for i=(-dN):Nt

    if i>0
        b = B(:,i);
    else
        b = ANoise*randn(size(B(:,1)));
    end
    p_prev = p;
    f_prev = f;
        
    t=t+dt;
    step = step+1;
        
    I = I0 + WPP*f + WePB*b;
        
    p = p_prev + dt/tau * (-p_prev + I);
        
    ind = find(p>=thU);
    f(ind)=1;
        
    ind = find(p<=thL);
    f(ind)=0;

    ind = find((thL < p).*(p < thU));
    f(ind) = f_prev(ind);
    
    if display
        
        
        subplot(1,2,1)
    
        image(64*reshape(b,15,20)), axis equal, axis off, colormap winter

        subplot(1,2,2)
    
        image(64*reshape(f,25,40)), axis equal, axis off, colormap winter
        
        title(sprintf('t=%g',i/Nt))
        drawnow
    
        pause(0.02)
    
    end
    
    if i>0
    P(:,i)=p;
    F(:,i)=f;
    end
    
end







end