diff --git a/Trigger/TrigT1/TrigT1CaloFexSim/TrigT1CaloFexSim/JGTowerReader.h b/Trigger/TrigT1/TrigT1CaloFexSim/TrigT1CaloFexSim/JGTowerReader.h
index 5f866a88803d66715323b61dc991a6009460ffff..2b7cb03e442bc6830f6e7399f91dae765859a892 100644
--- a/Trigger/TrigT1/TrigT1CaloFexSim/TrigT1CaloFexSim/JGTowerReader.h
+++ b/Trigger/TrigT1/TrigT1CaloFexSim/TrigT1CaloFexSim/JGTowerReader.h
@@ -181,7 +181,15 @@ class JGTowerReader: public ::AthAlgorithm {
   std::shared_ptr<TowerHelper> gT_helper;
 
   unsigned int m_eventCount = 0;
-  SG::AuxElement::Accessor<float>* acc_rho = new SG::AuxElement::Accessor<float>("Rho_avg");
+  SG::AuxElement::Accessor<float>* acc_rho_barrel = new SG::AuxElement::Accessor<float>("Rho_barrel");
+  SG::AuxElement::Accessor<float>* acc_rhoA = new SG::AuxElement::Accessor<float>("RhoA");
+  SG::AuxElement::Accessor<float>* acc_rhoB = new SG::AuxElement::Accessor<float>("RhoB"); 
+  SG::AuxElement::Accessor<float>* acc_rhoC = new SG::AuxElement::Accessor<float>("RhoC");
+  
+  SG::AuxElement::Accessor<float>* acc_threshA = new SG::AuxElement::Accessor<float>("ThreshA");
+  SG::AuxElement::Accessor<float>* acc_threshB = new SG::AuxElement::Accessor<float>("ThreshB");  
+  SG::AuxElement::Accessor<float>* acc_threshC = new SG::AuxElement::Accessor<float>("ThreshC");
+  
   SG::AuxElement::Accessor<float>* acc_mht = new SG::AuxElement::Accessor<float>("MHT");
   SG::AuxElement::Accessor<float>* acc_mst = new SG::AuxElement::Accessor<float>("MST");
 }; 
diff --git a/Trigger/TrigT1/TrigT1CaloFexSim/src/JGTowerReader.cxx b/Trigger/TrigT1/TrigT1CaloFexSim/src/JGTowerReader.cxx
index b1be62ac16342f7a25306ea7209f3650ebea19f8..e543d8124c815c74c07d9736528946da1b7c9679 100644
--- a/Trigger/TrigT1/TrigT1CaloFexSim/src/JGTowerReader.cxx
+++ b/Trigger/TrigT1/TrigT1CaloFexSim/src/JGTowerReader.cxx
@@ -115,7 +115,14 @@ JGTowerReader::~JGTowerReader() {
   delete jSeeds;
   delete jJetSeeds;
   delete gSeeds;
-  delete acc_rho;
+  delete acc_rhoA; 
+  delete acc_rhoB;
+  delete acc_rhoC;
+  delete acc_rho_barrel; 
+  delete acc_threshA;
+  delete acc_threshB;
+  delete acc_threshC;
+  
   delete acc_mht;
   delete acc_mst;
 
@@ -155,7 +162,15 @@ StatusCode JGTowerReader::initialize() {
     CHECK( ReadTowerMap() );
   }
 
-  acc_rho = new SG::AuxElement::Accessor<float>("Rho");
+  acc_rhoA = new SG::AuxElement::Accessor<float>("RhoA");
+  acc_rhoB = new SG::AuxElement::Accessor<float>("RhoB");
+  acc_rhoC = new SG::AuxElement::Accessor<float>("RhoC");
+  acc_rho_barrel = new SG::AuxElement::Accessor<float>("Rho_barrel");
+  
+  acc_threshA = new SG::AuxElement::Accessor<float>("ThreshA");
+  acc_threshB = new SG::AuxElement::Accessor<float>("ThreshB");
+  acc_threshC = new SG::AuxElement::Accessor<float>("ThreshC");
+
   acc_mht = new SG::AuxElement::Accessor<float>("MHT");
   acc_mst = new SG::AuxElement::Accessor<float>("MST");
 
@@ -454,6 +469,11 @@ StatusCode JGTowerReader::GFexAlg(const xAOD::JGTowerContainer* gTs){
   xAOD::JGTowerContainer* gCaloTowers = new xAOD::JGTowerContainer();
   gCaloTowers->setStore(gCaloTowersAux);
 
+  //add container for rhoA,B,C using Run2 EnergySumRoIAux container 
+  xAOD::EnergySumRoIAuxInfo* RhoContAux = new xAOD::EnergySumRoIAuxInfo();
+  xAOD::EnergySumRoI* RhoCont = new xAOD::EnergySumRoI();
+  RhoCont->setStore(RhoContAux);
+
   for(unsigned int t = 0; t < gTs->size(); t++){
     const xAOD::JGTower* gt_em = gTs->at(t);
     const float eta = gt_em->eta();
@@ -535,6 +555,15 @@ StatusCode JGTowerReader::GFexAlg(const xAOD::JGTowerContainer* gTs){
   
   float rho_barrel = METAlg::Rho_avg(gCaloTowers, false);
 
+  (*acc_rhoA)(*RhoCont) = rhoA; 
+  (*acc_rhoB)(*RhoCont) = rhoB;
+  (*acc_rhoC)(*RhoCont) = rhoC;
+  (*acc_rho_barrel)(*RhoCont) = rho_barrel;
+  
+  (*acc_threshA)(*RhoCont) = thresh_a;
+  (*acc_threshB)(*RhoCont) = thresh_b;
+  (*acc_threshC)(*RhoCont) = thresh_c;
+
   for(unsigned int t = 0; t < gCaloTowers->size(); t++){
     const xAOD::JGTower* tower = gCaloTowers->at(t);
     const float eta = tower->eta();
@@ -662,6 +691,9 @@ StatusCode JGTowerReader::GFexAlg(const xAOD::JGTowerContainer* gTs){
   CHECK(evtStore()->record(gBs, "gBlocks"));
   CHECK(evtStore()->record(gBAux, "gBlocksAux."));
 
+  CHECK(evtStore()->record(RhoCont,"EventVariables"));
+  CHECK(evtStore()->record(RhoContAux,"EventVariablesAux."));
+
   delete h_fpga_a;
   delete h_fpga_b;
   delete h_fpga_c;
@@ -722,7 +754,6 @@ StatusCode JGTowerReader::ProcessObjects(){
     METCont->setEnergyX(met->ex); 
     METCont->setEnergyY(met->ey); 
     METCont->setEnergyT(met->et);
-    (*acc_rho)(*METCont) = met->rho;
     (*acc_mht)(*METCont) = met->mht;
     (*acc_mst)(*METCont) = met->mst;
     CHECK(evtStore()->record(METCont,Form("%s_MET",it->first.Data())));