Event pool

I am using uvm_event to get control from sequence to test

This is what i am doing right now and it is happening correctly

class my_seq extends base_seq; 
  uvm_event ev1; //Declaring the event
  
 ev1 = uvm_event_pool::get_global("ev_ab"); 

//after write event should be triggered
ev1.trigger();//

endclass

but when i am trying to trigger for another event like this

class my_seq extends base_seq; 
  uvm_event ev1; //Declaring the event
  uvm_event ev2;
  
 ev1 = uvm_event_pool::get_global("ev_ab"); 
 ev2 = uvm_event_pool::get_global("ev_bc");

//after write event should be triggered
ev1.trigger();//

//after read event should be triggered
ev2.trigger();//

endclass

Now what is happening is that no event is getting triggered in this case
so, my question is what i am doing wrong here or is there some concept i am missing please suggest…

In reply to araj380:

You need the object of the global pool first before assigning the single events:
like this:

class driver1 extends uvm_driver #(my_tx);
  uvm_event_pool ev_pool = uvm_event_pool::get_global_pool();
  ...
  task run_phase(uvm_phase phase);
    uvm_event ev = ev_pool.get("driver1_ev");
    ev.trigger();

class driver2 extends uvm_driver #(my_tx);
  uvm_event_pool ev_pool = uvm_event_pool::get_global_pool();
  ...
  task run_phase(uvm_phase phase);
    uvm_event ev = ev_pool.get("driver1_ev");
    ev.wait_trigger();