function [User, Total_Ant,Per_BS_Coop,Per_BS_ServAnt,Total_Scd_User,Per_BS_ServUsr] = ...
    Compute_LP_Projection_Para(Num_Cell,User,Cells,Num_TxAnt_Macro,Num_TxAnt_Pico,L_Macro,L_Pico)

%%
Total_BS = L_Macro+L_Pico;
Total_Ant = 0;
Total_Scd_User = 0;

for m = 1:Num_Cell
    for l = 1:Total_BS
        Per_BS_Coop(m,l).Coop_Matrix = [];
        Per_BS_ServAnt(m,l).index = [];
        Per_BS_ServUsr(m,l).index = [];
    end
end

usr_idx = 0;

for l = 1:Num_Cell
    
    Total_Scd_User = Total_Scd_User + length(Cells(l).Scheduled_User);
    
    for ik = 1:length(Cells(l).Scheduled_User)
        
        usr_idx = usr_idx + 1;
        
        k = Cells(l).Scheduled_User(ik);
        
       % ant_head = 1;
        
       % Ant_idx = [Total_Ant+1 : Total_Ant+User(l,k).ServingAnt]; %ant index serving user (l,k)
        
       % User(l,k).ServingAntIdx = Ant_idx;
        
        for iBS = 1:size(User(l,k).ServingCluster,1)
            curr_cell = User(l,k).ServingCluster(iBS,1);
            curr_BS = User(l,k).ServingCluster(iBS,2);
            
            flag = Check_Data_Sharing_BS(curr_cell, curr_BS, l, k, User);
            
            if flag == 1
                
                Per_BS_ServUsr(curr_cell,curr_BS).index = [Per_BS_ServUsr(curr_cell,curr_BS).index usr_idx];
                
            end
            
%             if curr_BS <= L_Macro %Macro BS
%                 Per_BS_ServAnt(curr_cell,curr_BS).index = [Per_BS_ServAnt(curr_cell,curr_BS).index (Total_Ant+ant_head):(Total_Ant+ant_head+Num_TxAnt_Macro-1)];
%                 Per_BS_Coop(curr_cell,curr_BS).Coop_Matrix = blkdiag(Per_BS_Coop(curr_cell,curr_BS).Coop_Matrix, eye(Num_TxAnt_Macro));
%                 
%                 ant_head = ant_head + Num_TxAnt_Macro;
%             else    %Pico BS
%                 Per_BS_ServAnt(curr_cell,curr_BS).index = [Per_BS_ServAnt(curr_cell,curr_BS).index (Total_Ant+ant_head):(Total_Ant+ant_head+Num_TxAnt_Pico-1)];
%                 Per_BS_Coop(curr_cell,curr_BS).Coop_Matrix = blkdiag(Per_BS_Coop(curr_cell,curr_BS).Coop_Matrix, eye(Num_TxAnt_Pico));
%                 
%                 ant_head = ant_head + Num_TxAnt_Pico;
%             end
        end
        
        Total_Ant = Total_Ant + User(l,k).ServingAnt;
        
    end
end
