From ae04607305e29e18b2e4311f13f52265f45ee16b Mon Sep 17 00:00:00 2001
From: Arnaud Duperrin <duperrin@cppm.in2p3.fr>
Date: Tue, 9 Feb 2021 22:18:14 +0100
Subject: [PATCH 1/2] Fix b-tagging filling of SV1_NGTinSvx in
 BTagLightSecVertexing.cxx (AFT-526)

---
 .../BTagging/src/BTagLightSecVertexing.cxx           | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagLightSecVertexing.cxx b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagLightSecVertexing.cxx
index 348d906e1d92..f2c8b843cbdc 100644
--- a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagLightSecVertexing.cxx
+++ b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagLightSecVertexing.cxx
@@ -123,14 +123,14 @@ namespace Analysis {
       SVertexLinks = h_jetSVLinkName(myJet);
     }
 
-    std::vector<xAOD::Vertex*> vertices;
     std::vector<ElementLink<xAOD::TrackParticleContainer> > TrkList;
     float    mass = 0, energyfrc = NAN, energyTrk = 0, dsttomatlayer = NAN;
     int  n2trk = 0, npsec = 0;
 
-    if(basename.find("MSV") != 0){
-      for (std::vector<xAOD::Vertex*>::const_iterator verticesIter = vertices.begin();
-           verticesIter!=vertices.end();++verticesIter) {
+    if(basename.find("MSV") != 0 && myVertexInfoVKal){ 
+      std::vector<xAOD::Vertex*>::const_iterator verticesBegin = myVertexInfoVKal->vertices().begin(); 
+      std::vector<xAOD::Vertex*>::const_iterator verticesEnd   = myVertexInfoVKal->vertices().end(); 
+      for (std::vector<xAOD::Vertex*>::const_iterator verticesIter = verticesBegin; verticesIter!=verticesEnd;++verticesIter) { 
         std::vector<ElementLink<xAOD::TrackParticleContainer> > theseTracks = (*verticesIter)->trackParticleLinks();
         npsec += theseTracks.size();
         for (std::vector<ElementLink<xAOD::TrackParticleContainer> >::iterator itr=theseTracks.begin();itr!=theseTracks.end();itr++){
@@ -142,12 +142,12 @@ namespace Analysis {
       newBTag->setVariable<std::vector<ElementLink<xAOD::VertexContainer> > >(basename, "vertices", SVertexLinks);
       newBTag->setDynVxELName(basename, "vertices");
 
-      if(SVertexLinks.size()){
+      if(SVertexLinks.size() && myVertexInfoVKal){ 
         mass = myVertexInfoVKal->mass();
         energyfrc = myVertexInfoVKal->energyFraction();
         n2trk = myVertexInfoVKal->n2trackvertices();
         energyTrk =  myVertexInfoVKal->energyTrkInJet();
-	      dsttomatlayer= myVertexInfoVKal->dstToMatLay();
+	dsttomatlayer= myVertexInfoVKal->dstToMatLay();
       }
 
       newBTag->setVariable<float>(basename, "energyTrkInJet", energyTrk);
-- 
GitLab


From 3df056987a7aeba3f995a21b4774bc96a7a98eb6 Mon Sep 17 00:00:00 2001
From: Arnaud Duperrin <duperrin@cppm.in2p3.fr>
Date: Wed, 10 Feb 2021 22:31:57 +0100
Subject: [PATCH 2/2] small update to reduce the scope of the if statement for
 myVertexInfoVKal

---
 .../BTagging/src/BTagLightSecVertexing.cxx    | 20 ++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagLightSecVertexing.cxx b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagLightSecVertexing.cxx
index f2c8b843cbdc..e0190a1e17eb 100644
--- a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagLightSecVertexing.cxx
+++ b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagLightSecVertexing.cxx
@@ -127,15 +127,17 @@ namespace Analysis {
     float    mass = 0, energyfrc = NAN, energyTrk = 0, dsttomatlayer = NAN;
     int  n2trk = 0, npsec = 0;
 
-    if(basename.find("MSV") != 0 && myVertexInfoVKal){ 
-      std::vector<xAOD::Vertex*>::const_iterator verticesBegin = myVertexInfoVKal->vertices().begin(); 
-      std::vector<xAOD::Vertex*>::const_iterator verticesEnd   = myVertexInfoVKal->vertices().end(); 
-      for (std::vector<xAOD::Vertex*>::const_iterator verticesIter = verticesBegin; verticesIter!=verticesEnd;++verticesIter) { 
-        std::vector<ElementLink<xAOD::TrackParticleContainer> > theseTracks = (*verticesIter)->trackParticleLinks();
-        npsec += theseTracks.size();
-        for (std::vector<ElementLink<xAOD::TrackParticleContainer> >::iterator itr=theseTracks.begin();itr!=theseTracks.end();itr++){
-	        TrkList.push_back(*itr);
-        }
+    if(basename.find("MSV") != 0){ 
+      if (myVertexInfoVKal) {
+	std::vector<xAOD::Vertex*>::const_iterator verticesBegin = myVertexInfoVKal->vertices().begin(); 
+	std::vector<xAOD::Vertex*>::const_iterator verticesEnd   = myVertexInfoVKal->vertices().end(); 
+	for (std::vector<xAOD::Vertex*>::const_iterator verticesIter = verticesBegin; verticesIter!=verticesEnd;++verticesIter) { 
+	  std::vector<ElementLink<xAOD::TrackParticleContainer> > theseTracks = (*verticesIter)->trackParticleLinks();
+	  npsec += theseTracks.size();
+	  for (std::vector<ElementLink<xAOD::TrackParticleContainer> >::iterator itr=theseTracks.begin();itr!=theseTracks.end();itr++){
+	    TrkList.push_back(*itr);
+	  }
+	}
       }
 
       ATH_MSG_DEBUG("#BTAG# Size of the sec vertex linked to the BTagging: " << SVertexLinks.size());
-- 
GitLab