How to create a specfic bins from single genric covergroup

There is a much easier way to do this using the new bin set_covergroup_expression construct introduced in 1800-2012. This allows you to create an array of values and use that array as the set of values for bins.

class BUS_coverage
Bus_trans  tr;  
Bus_conf conf;
bit [3:0] bin_set[$];
 
covergroup Bus_trans_coverage;
        Burst_Length  :  coverpoint tr.burst_len 
        { 
            bins burst_len[] = bin_set;
endgroup
 
function new (string _name = "", Bus_conf cf1);
        this.name = _name; 
        this.conf = cf1;
        foreach(conf.burst_len_en[i]) if (conf.burst_len_en[i]) bin_set.push_back(i);
        Bus_trans_coverage = new();       
endfunction

Sorry, I did not have time to compile this for typos.