diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkFlavourTag/python/FTAG1.py b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkFlavourTag/python/FTAG1.py
index 6c44384867b5e10888454a21eeb65d938696306c..9194c5e18fb93c36e8b3793da1305cd330464df9 100644
--- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkFlavourTag/python/FTAG1.py
+++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkFlavourTag/python/FTAG1.py
@@ -30,7 +30,7 @@ def FTAG1KernelCfg(flags, name='FTAG1Kernel', **kwargs):
 
     from GNNVertexConstructor.GNNVertexConstructorToolConfig import GNNVertexConstructorAlgCfg
     import AthenaCommon.Constants as Lvl
-    acc.merge(GNNVertexConstructorAlgCfg(flags, name="FTAG1GNNVertexConstructorAlg", OutputLevel=Lvl.DEBUG))
+    acc.merge(GNNVertexConstructorAlgCfg(flags, name="GNNVertexFitterAlg", OutputLevel=Lvl.DEBUG))
 
     # thinning tools
     thinningTools = []
diff --git a/Reconstruction/VKalVrt/GNNVertexConstructor/Root/GNNVertexConstructorTool.cxx b/Reconstruction/VKalVrt/GNNVertexConstructor/Root/GNNVertexConstructorTool.cxx
index efa373fd09fcc95c1fe85c8754a89dde2ce27e15..9b546f1de0b6b701e5bcb2a3297b7906d0a18cea 100644
--- a/Reconstruction/VKalVrt/GNNVertexConstructor/Root/GNNVertexConstructorTool.cxx
+++ b/Reconstruction/VKalVrt/GNNVertexConstructor/Root/GNNVertexConstructorTool.cxx
@@ -34,7 +34,7 @@ GNNVertexConstructorTool::GNNVertexConstructorTool(const std::string &type, cons
       m_maxChi2(20),
       m_minPerp(0.5),
       m_SingleHFTrack(false),
-      m_HFTrackRatio(false),
+      m_HFTrackRatio(true),
       m_HFRatioThres(0.3)            
       {
   declareInterface<IGNNVertexConstructorInterface>(this);
@@ -215,60 +215,63 @@ StatusCode GNNVertexConstructorTool::performVertexFit(const xAOD::JetContainer *
        
     indexList iList(vertexCollection.size());
         
-    vertexHFMap   v2HFMap;
-    trackCountMap v2TLMap;
-    trackCountMap v2NHFTLMap;
-    trackCountMap FittingMap;
+    vertexHFMap   HeavyFlavourTracksMap;   //Map with does a vertex contain at least 1 heavy flavour track
+    trackCountMap AllTracksMap;            //All the vertices and the corresponding track links
+    trackCountMap HeavyFlavourVertexMap;   //All HEavy Flavour Tracks associated with a vertex
+    trackCountMap FittingMap;              //Map filled with vertices to be fitted
     
     FittingMap.clear();
     
     std::for_each(boost::make_zip_iterator(boost::make_tuple(vertexCollection.cbegin(), trackOriginCollection.cbegin(), trackCollection.cbegin())),
 		boost::make_zip_iterator(boost::make_tuple(vertexCollection.cend(), trackOriginCollection.cend(), trackCollection.cend())),
-		[&v2HFMap, &v2NHFTLMap, &v2TLMap, &FittingMap](const boost::tuple<const char &, const char &, const TL &> &e)
+		[&HeavyFlavourTracksMap, &HeavyFlavourVertexMap, &AllTracksMap, &FittingMap](const boost::tuple<const char &, const char &, const TL &> &e)
 		{
-		  auto v  = e.get<0>();
-		  auto to = e.get<1>();
-      auto tl = e.get<2>();    
+      //0,1,2 correspond to the first, second and third tuple/collection inserted into the boost iterator function
+		  auto vertex  = e.get<0>();
+		  auto trackOrigin = e.get<1>();
+      auto trackLink = e.get<2>();    
       
-      v2TLMap[v].insert(tl);
+      AllTracksMap[vertex].insert(trackLink);
       
-      if (InDet::ExclusiveOrigin::FromB==to||InDet::ExclusiveOrigin::FromBC==to|| InDet::ExclusiveOrigin::FromC==to){    //Checking if vertex has a heavy flavour track
-        v2HFMap[v]=(true);
-        v2NHFTLMap[v].insert(tl);
+      //Checking if vertex has a heavy flavour track
+      if (InDet::ExclusiveOrigin::FromB==trackOrigin||InDet::ExclusiveOrigin::FromBC==trackOrigin|| InDet::ExclusiveOrigin::FromC==trackOrigin){ 
+        HeavyFlavourTracksMap[vertex]=(true);
+        HeavyFlavourVertexMap[vertex].insert(trackLink);
       }
     });
     
     auto InclusiveFunc =[&FittingMap](const auto &c){
-      const auto&[v,tcm] =c;
-        FittingMap.insert(std::pair<char, std::set<TL>>(v, tcm));
+      const auto&[vertex,tcm] =c;
+        FittingMap.insert(std::pair<char, std::set<TL>>(vertex, tcm));
     };
     
-    auto HFRatioFunc =[&v2NHFTLMap, &HFRatio=m_HFRatioThres, &FittingMap](const auto &d){
-      const auto&[v,tcm] =d;
-      if(v2NHFTLMap.find(v)!=v2NHFTLMap.end() && (static_cast<float>(v2NHFTLMap[v].size())/tcm.size())>=HFRatio){
-        FittingMap.insert(std::pair<char, std::set<TL>>(v, tcm));
+    auto HFRatioFunc =[&HeavyFlavourVertexMap, &HFRatio=m_HFRatioThres, &FittingMap](const auto &d){
+      const auto&[vertex,tcm] =d;
+      if(HeavyFlavourVertexMap.find(vertex)!=HeavyFlavourVertexMap.end() && (static_cast<float>(HeavyFlavourVertexMap[vertex].size())/tcm.size())>=HFRatio){
+      std::cout<< (static_cast<float>(HeavyFlavourVertexMap[vertex].size())/tcm.size()) << "RATIO " <<"\n" ;
+        FittingMap.insert(std::pair<char, std::set<TL>>(vertex, tcm));
       };    
     };
 
-    auto vertex2trackOrigin = [&v2HFMap, &FittingMap](const auto &e){
-      const auto &[v, tcm] = e;
-      if (v2HFMap.find(v) !=v2HFMap.end() && v2HFMap[v]==true)  //if exists and is true
+    auto vertex2trackOrigin = [&HeavyFlavourTracksMap, &FittingMap](const auto &e){
+      const auto &[vertex, tcm] = e;
+      if (HeavyFlavourTracksMap.find(vertex) !=HeavyFlavourTracksMap.end() && HeavyFlavourTracksMap[vertex]==true)  //if exists and is true
       {
-        FittingMap.insert(std::pair<char, std::set<TL>>(v, tcm));  //check if copies set or just takes a reference - 
+        FittingMap.insert(std::pair<char, std::set<TL>>(vertex, tcm));  //check if copies set or just takes a reference - 
       };
     };    
     
     if(m_SingleHFTrack==true){
       ATH_MSG_INFO("At least ONE HF Track vertex");
-      std::for_each(v2TLMap.cbegin(), v2TLMap.cend(), vertex2trackOrigin);    
+      std::for_each(AllTracksMap.cbegin(), AllTracksMap.cend(), vertex2trackOrigin);    
     }
     else if(m_HFTrackRatio==true){
       ATH_MSG_INFO("Vertex with HF Ratio ");
-      std::for_each(v2TLMap.cbegin(), v2TLMap.cend(), HFRatioFunc);    
+      std::for_each(AllTracksMap.cbegin(), AllTracksMap.cend(), HFRatioFunc);    
     }
     else if (m_SingleHFTrack==false && m_HFTrackRatio==false){
       ATH_MSG_INFO("No Requirement on Track Origins");
-      std::for_each(v2TLMap.cbegin(), v2TLMap.cend(), InclusiveFunc);    
+      std::for_each(AllTracksMap.cbegin(), AllTracksMap.cend(), InclusiveFunc);    
     }
     //Working xAOD
     workVectorArrxAOD *xAODwrk = new workVectorArrxAOD();
@@ -288,8 +291,8 @@ StatusCode GNNVertexConstructorTool::performVertexFit(const xAOD::JetContainer *
     std::vector<const xAOD::NeutralParticle *> neutralPartDummy(0);
     Amg::Vector3D IniVrt(0.,0.,0.);
 
-    float vertexN=1;
-    float TrackE=0;
+    float vertexN=1;     //Number of vertices within a Jet
+    float TrackE=0;      //Energy Fraction of all vertices within a Jet
       
     for(const auto& pair : FittingMap){
           
@@ -314,7 +317,7 @@ StatusCode GNNVertexConstructorTool::performVertexFit(const xAOD::JetContainer *
        ATH_MSG_DEBUG("#Tracks test " << xAODwrk->listSelTracks.size());
         
        Amg::Vector3D FitVertex, vDist;
-       TLorentzVector jetDir(jet->p4().Px(),jet->p4().Py(),jet->p4().Pz(), jet->p4().E()); //Jet Direction
+       TLorentzVector jetDir(jet->p4()); //Jet Direction
         
        //Get Estimate
        StatusCode sc=m_vertexFitterTool->VKalVrtFitFast(xAODwrk->listSelTracks, FitVertex, *state);
diff --git a/Reconstruction/VKalVrt/GNNVertexConstructor/python/GNNVertexConstructorToolConfig.py b/Reconstruction/VKalVrt/GNNVertexConstructor/python/GNNVertexConstructorToolConfig.py
index 8fc11e8becccc9b08be60556147ecf4946475449..5ad648c20cb223a21914dea4efce593471674b79 100644
--- a/Reconstruction/VKalVrt/GNNVertexConstructor/python/GNNVertexConstructorToolConfig.py
+++ b/Reconstruction/VKalVrt/GNNVertexConstructor/python/GNNVertexConstructorToolConfig.py
@@ -6,7 +6,7 @@ from FlavorTagDiscriminants.FlavorTagNNConfig import GNNToolCfg
 from TrkConfig.TrkVKalVrtFitterConfig import TrkVKalVrtFitterCfg
 from BeamSpotConditions.BeamSpotConditionsConfig import BeamSpotCondAlgCfg
 
-def GNNVertexConstructorToolCfg(flags, name="FTAG1GNNVertexConstructorTool", outfile="HIST.pool.root", **kwargs):
+def GNNVertexConstructorToolCfg(flags, name="GNNVertexFitterTool", outfile="HIST.pool.root", **kwargs):
     acc = ComponentAccumulator()
     acc.merge(BeamSpotCondAlgCfg(flags))
     gnnTool = acc.getPrimaryAndMerge(
@@ -26,11 +26,11 @@ def GNNVertexConstructorToolCfg(flags, name="FTAG1GNNVertexConstructorTool", out
     return acc
     
 
-def GNNVertexConstructorAlgCfg(flags, name="FTAG1GNNVertexConstructorAlg", jetkey="AntiKt4EMPFlowJets",  **kwargs):
+def GNNVertexConstructorAlgCfg(flags, jet_col="AntiKt4EMPFlowJets",  **kwargs):
     acc = ComponentAccumulator()
     
     tool = acc.popToolsAndMerge(GNNVertexConstructorToolCfg(flags)) 
-    acc.addEventAlgo(CompFactory.Rec.GNNVertexConstructorAlg(name, VtxTool=tool, inputJetContainer=jetkey, **kwargs))
+    acc.addEventAlgo(CompFactory.Rec.GNNVertexConstructorAlg(VtxTool=tool, inputJetContainer=jet_col, **kwargs))
         
     return acc
 
diff --git a/Reconstruction/VKalVrt/GNNVertexConstructor/src/GNNVertexConstructorAlg.h b/Reconstruction/VKalVrt/GNNVertexConstructor/src/GNNVertexConstructorAlg.h
index 2469f74d2392b5f1e16b49f570dbf0457d536c72..ab0043ce2e5541a18b5a7c7c0f2cc683bcdc5b09 100644
--- a/Reconstruction/VKalVrt/GNNVertexConstructor/src/GNNVertexConstructorAlg.h
+++ b/Reconstruction/VKalVrt/GNNVertexConstructor/src/GNNVertexConstructorAlg.h
@@ -20,7 +20,7 @@ private:
   ToolHandle<Rec::GNNVertexConstructorTool>   m_VtxTool;
   // Input jets
   SG::ReadHandleKey<xAOD::JetContainer>       m_inJetsKey{
-      this, "inputJetContainer", "AntiKt4EMPFlowJets", "Input jet container"};
+      this, "inputJetContainer", "", "Input jet container"};
   // Output vertices
   SG::WriteHandleKey<xAOD::VertexContainer>   m_outVertexKey{
       this, "outputVertexContainer", "GNNVertices", "Output vertex container"};