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