diff --git a/Trigger/TrigT1/TrigT1CaloFexSim/TrigT1CaloFexSim/JwoJ.h b/Trigger/TrigT1/TrigT1CaloFexSim/TrigT1CaloFexSim/JwoJ.h
index a95a39275f8f5c10abf9b141d152b701d2ce0429..238f5385349e4c174545e461657b705eacae051f 100644
--- a/Trigger/TrigT1/TrigT1CaloFexSim/TrigT1CaloFexSim/JwoJ.h
+++ b/Trigger/TrigT1/TrigT1CaloFexSim/TrigT1CaloFexSim/JwoJ.h
@@ -26,7 +26,9 @@
  *@return @c std::vector<float>
  */
 std::vector<float> Run_JwoJ(const xAOD::JGTowerContainer* towers, const std::vector<TowerObject::Block> blocks, float rho, float pTcone_cut, bool useEtaBins, bool useNegTowers){
-  
+  /*
+    By this definition, if we set useNegTowers to true, then we will use all the towers. If we set it to false, then we veto them after pileup subtraction. 
+   */
   pTcone_cut*=Gaudi::Units::GeV;
   std::vector<float> Et_vals;
   float Ht = 0; float Htx = 0; float Hty = 0;
@@ -45,6 +47,10 @@ std::vector<float> Run_JwoJ(const xAOD::JGTowerContainer* towers, const std::vec
     
     if(useEtaBins){
       seed_Et -= rho;
+      if(!useNegTowers){
+	//If we set useNegTowers = False, then we would set all their ET = 0; This is set after pileup subtraction, which is a choice that could be studied, but seems reasonable. 
+	  if(seed_Et<0)seed_Et=0; 
+	}
       block_etx = seed_Et*TMath::Cos(block_phi);
       block_ety = seed_Et*TMath::Sin(block_phi);
 
@@ -60,6 +66,10 @@ std::vector<float> Run_JwoJ(const xAOD::JGTowerContainer* towers, const std::vec
     }else{
       if(TMath::Abs(blocks[b].Eta()) < 2.4){
 	seed_Et -= rho;
+	if(!useNegTowers){ 
+	  //If we set useNegTowers = False, then we would set all their ET = 0;
+	    if(seed_Et<0)seed_Et=0;
+	  }
 	block_etx = seed_Et*TMath::Cos(block_phi);
 	block_ety = seed_Et*TMath::Sin(block_phi);
 
diff --git a/Trigger/TrigT1/TrigT1CaloFexSim/src/JGTowerReader.cxx b/Trigger/TrigT1/TrigT1CaloFexSim/src/JGTowerReader.cxx
index e543d8124c815c74c07d9736528946da1b7c9679..0c35bfde7ae87e005dde95088ea3e7c641c6034e 100644
--- a/Trigger/TrigT1/TrigT1CaloFexSim/src/JGTowerReader.cxx
+++ b/Trigger/TrigT1/TrigT1CaloFexSim/src/JGTowerReader.cxx
@@ -677,7 +677,7 @@ StatusCode JGTowerReader::GFexAlg(const xAOD::JGTowerContainer* gTs){
     CHECK(METAlg::Baseline_MET(pu_sub, "gXERHO", noNoise, m_useNegTowers));
     CHECK(METAlg::Baseline_MET(gCaloTowers,"gXENOISECUT",gT_noise, m_useNegTowers));
     CHECK(METAlg::JwoJ_MET(pu_sub, puSub_gBlocks,"gXEJWOJRHO",m_pTcone_cut,false, false, m_useNegTowers));
-    CHECK(METAlg::JwoJ_MET(gTs, gBlocks, "gXEJWOJ",m_pTcone_cut,false, true, m_useNegTowers));
+    CHECK(METAlg::JwoJ_MET(gTs, gBlocks, "gXEJWOJ",m_pTcone_cut,false, true, /*m_useNegTowers*/ true));//by default, m_useNegTowers=false, but setting it = true here for consistency 
     CHECK(METAlg::Pufit_MET(gCaloTowers,"gXEPUFIT", m_useNegTowers) ); 
 
 
diff --git a/Trigger/TrigT1/TrigT1CaloFexSim/src/METAlg.cxx b/Trigger/TrigT1/TrigT1CaloFexSim/src/METAlg.cxx
index c745a2721e644b2a2365a90c6155b9d533ea3413..97acd8683210874998013c96ad43a694fa736bc2 100644
--- a/Trigger/TrigT1/TrigT1CaloFexSim/src/METAlg.cxx
+++ b/Trigger/TrigT1/TrigT1CaloFexSim/src/METAlg.cxx
@@ -310,7 +310,6 @@ StatusCode METAlg::JwoJ_MET(const xAOD::JGTowerContainer* towers, const std::vec
   float Ey = ay*(Et_values[2])+ by*Et_values[4] + cy;
 
   float EtMiss = TMath::Sqrt(Ex*Ex + Ey*Ey);
-  float phi = 0;
 
   float mht_phi = 0;
   if(Et_values[5]>0) mht_phi = TMath::ACos(Et_values[1]/Et_values[5]);