diff --git a/Tracking/TrkVertexFitter/TrkVertexFitterInterfaces/TrkVertexFitterInterfaces/IVertexCollectionSortingTool.h b/Tracking/TrkVertexFitter/TrkVertexFitterInterfaces/TrkVertexFitterInterfaces/IVertexCollectionSortingTool.h index 8e69611e493b8512b6a6087afa2686be42a737aa..365688fc9729e5a27a1415ac00c87d11aba25f48 100644 --- a/Tracking/TrkVertexFitter/TrkVertexFitterInterfaces/TrkVertexFitterInterfaces/IVertexCollectionSortingTool.h +++ b/Tracking/TrkVertexFitter/TrkVertexFitterInterfaces/TrkVertexFitterInterfaces/IVertexCollectionSortingTool.h @@ -54,9 +54,8 @@ namespace Trk /** Interface for xAOD::VertexContainer. * A new container and auxiliary store is returned. */ - virtual std::pair<xAOD::VertexContainer*,xAOD::VertexAuxContainer*> sortVertexContainer(const xAOD::VertexContainer& MyVxCont) = 0; - - + virtual std::pair<xAOD::VertexContainer*, xAOD::VertexAuxContainer*> + sortVertexContainer(const xAOD::VertexContainer& MyVxCont) const = 0; }; } diff --git a/Tracking/TrkVertexFitter/TrkVertexFitterInterfaces/TrkVertexFitterInterfaces/IVertexMergingTool.h b/Tracking/TrkVertexFitter/TrkVertexFitterInterfaces/TrkVertexFitterInterfaces/IVertexMergingTool.h index 83004776a9cdfa29d8a448c3028008f2d834feaa..9a03236d78ae49fafcc557a88536f8c5ce18437e 100644 --- a/Tracking/TrkVertexFitter/TrkVertexFitterInterfaces/TrkVertexFitterInterfaces/IVertexMergingTool.h +++ b/Tracking/TrkVertexFitter/TrkVertexFitterInterfaces/TrkVertexFitterInterfaces/IVertexMergingTool.h @@ -49,7 +49,8 @@ namespace Trk static const InterfaceID& interfaceID() { return IID_IVertexMergingTool; }; /** Interface for xAOD vertices **/ - virtual std::pair<xAOD::VertexContainer*,xAOD::VertexAuxContainer*> mergeVertexContainer(const xAOD::VertexContainer& MyVxCont) = 0; + virtual std::pair<xAOD::VertexContainer*, xAOD::VertexAuxContainer*> + mergeVertexContainer(const xAOD::VertexContainer& MyVxCont) const = 0; }; } diff --git a/Tracking/TrkVertexFitter/TrkVertexTools/TrkVertexTools/ATLAS_CHECK_THREAD_SAFETY b/Tracking/TrkVertexFitter/TrkVertexTools/TrkVertexTools/ATLAS_CHECK_THREAD_SAFETY new file mode 100644 index 0000000000000000000000000000000000000000..d296da173ccfac524f70484468194b6395501975 --- /dev/null +++ b/Tracking/TrkVertexFitter/TrkVertexTools/TrkVertexTools/ATLAS_CHECK_THREAD_SAFETY @@ -0,0 +1 @@ +Tracking/TrkVertexFitter/TrkVertexTools diff --git a/Tracking/TrkVertexFitter/TrkVertexTools/TrkVertexTools/SecVertexMergingTool.h b/Tracking/TrkVertexFitter/TrkVertexTools/TrkVertexTools/SecVertexMergingTool.h index 3ca3411000d9e9be6cc7f00df57637fe79612185..6e90192a06bb55bc47d6c02171761f53b133fc18 100644 --- a/Tracking/TrkVertexFitter/TrkVertexTools/TrkVertexTools/SecVertexMergingTool.h +++ b/Tracking/TrkVertexFitter/TrkVertexTools/TrkVertexTools/SecVertexMergingTool.h @@ -41,8 +41,8 @@ class SecVertexMergingTool : public AthAlgTool, virtual public IVertexMergingTool { public: - StatusCode initialize(); - StatusCode finalize(); + virtual StatusCode initialize() override; + virtual StatusCode finalize() override; /** * constructor @@ -57,16 +57,16 @@ /** *Merging */ - virtual std::pair<xAOD::VertexContainer*,xAOD::VertexAuxContainer*> mergeVertexContainer(const xAOD::VertexContainer& MyVxCont); + virtual std::pair<xAOD::VertexContainer*, xAOD::VertexAuxContainer*> + mergeVertexContainer(const xAOD::VertexContainer& MyVxCont) const override; - private: int m_Compatidime ; // Lianyou added float m_minDist ; ToolHandle< Trk::IVertexFitter > m_iVertexFitter; - bool checkCompatibility( const xAOD::Vertex * vx1, const xAOD::Vertex * vx2 ); + bool checkCompatibility( const xAOD::Vertex * vx1, const xAOD::Vertex * vx2 ) const; }; //end of class description }//end of namespace definition diff --git a/Tracking/TrkVertexFitter/TrkVertexTools/TrkVertexTools/VertexCollectionSortingTool.h b/Tracking/TrkVertexFitter/TrkVertexTools/TrkVertexTools/VertexCollectionSortingTool.h index 5138e41a9059a96c297c54dd15155faae892a964..7be4f7d5535d4ffa10d9e4b64f48b39dbb330146 100644 --- a/Tracking/TrkVertexFitter/TrkVertexTools/TrkVertexTools/VertexCollectionSortingTool.h +++ b/Tracking/TrkVertexFitter/TrkVertexTools/TrkVertexTools/VertexCollectionSortingTool.h @@ -38,8 +38,8 @@ class VertexCollectionSortingTool : public AthAlgTool, virtual public IVertexCollectionSortingTool { public: - StatusCode initialize(); - StatusCode finalize(); + virtual StatusCode initialize() override; + virtual StatusCode finalize() override; /** * constructor @@ -54,8 +54,9 @@ virtual ~VertexCollectionSortingTool(); /** Sort **/ - virtual std::pair<xAOD::VertexContainer*,xAOD::VertexAuxContainer*> sortVertexContainer(const xAOD::VertexContainer& MyVxCont); - + virtual std::pair<xAOD::VertexContainer*, xAOD::VertexAuxContainer*> + sortVertexContainer(const xAOD::VertexContainer& MyVxCont) const override; + private: ToolHandle < Trk::IVertexWeightCalculator> m_iVertexWeightCalculator; diff --git a/Tracking/TrkVertexFitter/TrkVertexTools/TrkVertexTools/VertexMergingTool.h b/Tracking/TrkVertexFitter/TrkVertexTools/TrkVertexTools/VertexMergingTool.h index 858b88410467e9418de2075c6d4b926e6067a8c6..f616ec8811c39a72313cf49c2c85ad435774196f 100644 --- a/Tracking/TrkVertexFitter/TrkVertexTools/TrkVertexTools/VertexMergingTool.h +++ b/Tracking/TrkVertexFitter/TrkVertexTools/TrkVertexTools/VertexMergingTool.h @@ -56,16 +56,16 @@ /** *Merging */ - virtual std::pair<xAOD::VertexContainer*,xAOD::VertexAuxContainer*> mergeVertexContainer(const xAOD::VertexContainer& MyVxCont) override; + virtual std::pair<xAOD::VertexContainer*, xAOD::VertexAuxContainer*> + mergeVertexContainer(const xAOD::VertexContainer& MyVxCont) const override; - private: SG::ReadCondHandleKey<InDet::BeamSpotData> m_beamSpotKey { this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot" }; ToolHandle< Trk::IVertexFitter > m_iVertexFitter; bool m_useBeamConstraint; - bool checkCompatibility( const xAOD::Vertex * vx1, const xAOD::Vertex * vx2 ); + bool checkCompatibility( const xAOD::Vertex * vx1, const xAOD::Vertex * vx2 ) const; }; //end of class description }//end of namespace definition diff --git a/Tracking/TrkVertexFitter/TrkVertexTools/src/SecVertexMergingTool.cxx b/Tracking/TrkVertexFitter/TrkVertexTools/src/SecVertexMergingTool.cxx index 2ab40fc082d1d45ad767abf3bea179e8c2afea99..59c79e2bf00db08d75ae380c3adf7b965451994e 100644 --- a/Tracking/TrkVertexFitter/TrkVertexTools/src/SecVertexMergingTool.cxx +++ b/Tracking/TrkVertexFitter/TrkVertexTools/src/SecVertexMergingTool.cxx @@ -44,178 +44,193 @@ namespace Trk{ return StatusCode::SUCCESS; } - std::pair<xAOD::VertexContainer*,xAOD::VertexAuxContainer*> SecVertexMergingTool::mergeVertexContainer(const xAOD::VertexContainer& MyVxCont) { + std::pair<xAOD::VertexContainer*, xAOD::VertexAuxContainer*> + SecVertexMergingTool::mergeVertexContainer( + const xAOD::VertexContainer& MyVxCont) const - ATH_MSG_DEBUG("Run vertex remerging"); - - //new output containers to be filled - xAOD::VertexContainer *NewContainer = new xAOD::VertexContainer(); - xAOD::VertexAuxContainer* auxNewContainer = new xAOD::VertexAuxContainer(); - NewContainer->setStore( auxNewContainer ); - - bool moreDeco = ( MyVxCont.front() )->isAvailable<float>( "MomentaDirection" ) ; - - if ( ! moreDeco ) ATH_MSG_DEBUG( "Missing decoration !!! " ) ; - -/** - SG::AuxElement::Decorator<std::vector<float> > mDecor_trkWght( "trkWeight" ) ; - SG::AuxElement::Decorator<float> mDecor_trkDOE( "trkDistOverError" ) ; - SG::AuxElement::Decorator<float> mDecor_direction( "MomentaDirection" ); - SG::AuxElement::Decorator< float > mDecor_HitsFilter( "radiiPattern" ); -**/ - - SG::AuxElement::Decorator<float> mDecor_sumPt2( "sumPt2" ); - SG::AuxElement::Decorator<float> mDecor_mass( "mass" ); - SG::AuxElement::Decorator<float> mDecor_energy( "ee" ); - SG::AuxElement::Decorator<int> mDecor_nrobbed( "nrobbed" ); - SG::AuxElement::Decorator<int> mDecor_intrk( "NumInputTrk" ); - - //add remerged flags to all - std::vector<bool> remerged( MyVxCont.size(), false ); - - xAOD::VertexContainer::const_iterator beginIter = MyVxCont.begin(); - xAOD::VertexContainer::const_iterator endIter = MyVxCont.end(); - unsigned int Ni=0; - for(xAOD::VertexContainer::const_iterator i = beginIter; i!=endIter; ++i, Ni++ ) { - xAOD::Vertex * vx = new xAOD::Vertex( **i ); - - if( remerged[Ni] ) continue ; //skip vertices already merged into another - - std::vector<const xAOD::TrackParticle*> combinedTracks; - std::vector< ElementLink< xAOD::TrackParticleContainer > > tpLinks1 = vx->trackParticleLinks(); - if ( tpLinks1.size() >= 1 ) - { - for(const auto & tp_EL : tpLinks1 ) - { - const xAOD::TrackParticle* trk = *tp_EL ; - combinedTracks.push_back( trk ) ; - } - - unsigned int Nj = Ni+1; - bool newmerge = false ; - for(xAOD::VertexContainer::const_iterator j=i+1; j!=endIter; ++j, Nj++ ) - { - const xAOD::Vertex * mergeCand = (*j); - if ( remerged[Nj] ) continue ; - - if ( newmerge ) - { - combinedTracks.clear() ; - tpLinks1 = vx->trackParticleLinks(); - if ( tpLinks1.size() < 1 ) break ; - for(const auto & tp_EL : tpLinks1 ) - { - const xAOD::TrackParticle* trk = *tp_EL ; - combinedTracks.push_back( trk ) ; - } - newmerge = false ; - } - - //not dummy and not already merged into earlier vertex, so consider it as merging candidate - if( ! checkCompatibility( vx, mergeCand ) ) continue ; - - ATH_MSG_DEBUG("To merge vertices " << Ni << " and " << Nj); - //get all the track particles to fit - - const std::vector< ElementLink< xAOD::TrackParticleContainer > > - tpLinks2 = mergeCand->trackParticleLinks(); - if ( tpLinks2.size() < 1 ) continue ; - - for(const auto & tp_EL : tpLinks2 ) - { - const xAOD::TrackParticle* trk = *tp_EL ; - combinedTracks.push_back( trk ) ; - } - - ATH_MSG_DEBUG("Tracks input : " << tpLinks1.size() << " + " << tpLinks2.size() ); - - //call the fitter -> using xAOD::TrackParticle it should set the track links for us - xAOD::Vertex * mergedVtx = 0; - //no interface for no constraint and no starting point, so use starting point of original vertex - Amg::Vector3D start( 0.5*( vx->position() + mergeCand->position() )); - mergedVtx = m_iVertexFitter->fit( combinedTracks, start ); - - ATH_MSG_DEBUG("Merged vertices " << mergedVtx->nTrackParticles() ); - - remerged[Nj] = true; - remerged[Ni] = true; - newmerge = true ; - - // update the decors - float pt1 = sqrt( vx->auxdata<float>( "sumPt2" ) ); - float pt2 = sqrt( mergeCand->auxdata<float>( "sumPt2" ) ) ; - float ntrk1 = 1.0*( ( vx->trackParticleLinks() ).size() ) ; - float ntrk2 = 1.0*( ( mergeCand->trackParticleLinks() ).size() ) ; - float wght1 = 0.6*pt1/( pt1 + pt2 ) + 0.4*ntrk1/( ntrk1 + ntrk2 ) ; - float wght2 = 0.6*pt2/( pt1 + pt2 ) + 0.4*ntrk2/( ntrk1 + ntrk2 ) ; - - xAOD::VxType::VertexType typ1 = vx->vertexType() ; - xAOD::VxType::VertexType typ2 = mergeCand->vertexType() ; - float mas1 = vx->auxdata<float>( "mass" ) ; - float mas2 = mergeCand->auxdata<float>( "mass" ) ; - float e1 = vx->auxdata<float>( "ee" ) ; - float e2 = mergeCand->auxdata<float>( "ee" ) ; - int inNtrk1 = vx->auxdata<int>( "NumInputTrk" ) ; - int inNtrk2 = mergeCand->auxdata<int>( "NumInputTrk" ) ; - - int ntrks = 0 ; - float md1=0., md2=0., hf1=0., hf2=0. ; - std::vector<float> trkW1, trkW2, doe1, doe2 ; - if ( moreDeco ) - { - doe1 = vx->auxdataConst<std::vector<float>> ( "trkDistOverError") ; - doe2 = mergeCand->auxdataConst<std::vector<float>> ( "trkDistOverError") ; - doe2.insert( doe2.end(), doe1.begin(), doe1.end() ) ; - md1 = vx->auxdata<float>( "MomentaDirection" ); - md2 = mergeCand->auxdata<float>( "MomentaDirection" ); - hf1 = vx->auxdataConst<float>( "radiiPattern" ); - hf2 = mergeCand->auxdataConst<float>( "radiiPattern" ); - trkW1 = vx->auxdata< std::vector<float> >( "trkWeight" ) ; - trkW2 = mergeCand->auxdata< std::vector<float> >( "trkWeight" ) ; - trkW2.insert( trkW2.end(), trkW1.begin(), trkW1.end() ) ; - ntrks = vx->auxdata<int>( "NumTrkAtVtx" ) + mergeCand->auxdata<int>( "NumTrkAtVtx" ) ; - } - - //delete copy of first vertex and then overwrite with merged vertex - delete vx; - vx = mergedVtx; - - if ( wght1 >= wght2 ) - vx->setVertexType( typ1 ) ; - else - vx->setVertexType( typ2 ) ; - - if ( moreDeco ) - { - vx->auxdata<std::vector<float> >( "trkDistOverError" ) = doe2 ; - vx->auxdata<float>( "MomentaDirection" ) = wght1*md1 + wght2*md2 ; - vx->auxdata<float>( "radiiPattern" ) = wght1*hf1 + wght2*hf2 ; - vx->auxdata< std::vector<float> >( "trkWeight" ) = trkW2 ; - vx->auxdata< int >( "NumTrkAtVtx" ) = ntrks ; - } - - mDecor_sumPt2( *vx ) = pt1*pt1 + pt2*pt2 ; - mDecor_mass( *vx ) = wght1*mas1 + wght2*mas2 ; - mDecor_energy( *vx ) = wght1*e1 + wght2*e2 ; - mDecor_nrobbed( *vx ) = 0 ; - mDecor_intrk( *vx ) = (int)(wght1*inNtrk1 + wght1*inNtrk2) ; - - - } //loop over j - } // if vx found partner in compatibility - - ATH_MSG_DEBUG( "Merged sumPt2 " << vx->auxdataConst<float>( "sumPt2" ) ) ; - - //whether we merged or not, can add vx to the container - if ( vx != NULL ) NewContainer->push_back( vx ); - - } + { - return std::make_pair( NewContainer, auxNewContainer ); + ATH_MSG_DEBUG("Run vertex remerging"); + + // new output containers to be filled + xAOD::VertexContainer* NewContainer = new xAOD::VertexContainer(); + xAOD::VertexAuxContainer* auxNewContainer = new xAOD::VertexAuxContainer(); + NewContainer->setStore(auxNewContainer); + + bool moreDeco = (MyVxCont.front())->isAvailable<float>("MomentaDirection"); + + if (!moreDeco) + ATH_MSG_DEBUG("Missing decoration !!! "); + + /** + SG::AuxElement::Decorator<std::vector<float> > mDecor_trkWght( + "trkWeight" ) ; SG::AuxElement::Decorator<float> mDecor_trkDOE( + "trkDistOverError" ) ; SG::AuxElement::Decorator<float> mDecor_direction( + "MomentaDirection" ); SG::AuxElement::Decorator< float > mDecor_HitsFilter( + "radiiPattern" ); + **/ + + SG::AuxElement::Decorator<float> mDecor_sumPt2("sumPt2"); + SG::AuxElement::Decorator<float> mDecor_mass("mass"); + SG::AuxElement::Decorator<float> mDecor_energy("ee"); + SG::AuxElement::Decorator<int> mDecor_nrobbed("nrobbed"); + SG::AuxElement::Decorator<int> mDecor_intrk("NumInputTrk"); + + // add remerged flags to all + std::vector<bool> remerged(MyVxCont.size(), false); + + xAOD::VertexContainer::const_iterator beginIter = MyVxCont.begin(); + xAOD::VertexContainer::const_iterator endIter = MyVxCont.end(); + unsigned int Ni = 0; + for (xAOD::VertexContainer::const_iterator i = beginIter; i != endIter; + ++i, Ni++) { + xAOD::Vertex* vx = new xAOD::Vertex(**i); + + if (remerged[Ni]) + continue; // skip vertices already merged into another + + std::vector<const xAOD::TrackParticle*> combinedTracks; + std::vector<ElementLink<xAOD::TrackParticleContainer>> tpLinks1 = + vx->trackParticleLinks(); + if (tpLinks1.size() >= 1) { + for (const auto& tp_EL : tpLinks1) { + const xAOD::TrackParticle* trk = *tp_EL; + combinedTracks.push_back(trk); + } + + unsigned int Nj = Ni + 1; + bool newmerge = false; + for (xAOD::VertexContainer::const_iterator j = i + 1; j != endIter; + ++j, Nj++) { + const xAOD::Vertex* mergeCand = (*j); + if (remerged[Nj]) + continue; + + if (newmerge) { + combinedTracks.clear(); + tpLinks1 = vx->trackParticleLinks(); + if (tpLinks1.size() < 1) + break; + for (const auto& tp_EL : tpLinks1) { + const xAOD::TrackParticle* trk = *tp_EL; + combinedTracks.push_back(trk); + } + newmerge = false; + } + + // not dummy and not already merged into earlier vertex, so consider + // it as merging candidate + if (!checkCompatibility(vx, mergeCand)) + continue; + + ATH_MSG_DEBUG("To merge vertices " << Ni << " and " << Nj); + // get all the track particles to fit + + const std::vector<ElementLink<xAOD::TrackParticleContainer>> + tpLinks2 = mergeCand->trackParticleLinks(); + if (tpLinks2.size() < 1) + continue; + + for (const auto& tp_EL : tpLinks2) { + const xAOD::TrackParticle* trk = *tp_EL; + combinedTracks.push_back(trk); + } + + ATH_MSG_DEBUG("Tracks input : " << tpLinks1.size() << " + " + << tpLinks2.size()); + + // call the fitter -> using xAOD::TrackParticle it should set the + // track links for us + xAOD::Vertex* mergedVtx = 0; + // no interface for no constraint and no starting point, so use + // starting point of original vertex + Amg::Vector3D start(0.5 * (vx->position() + mergeCand->position())); + mergedVtx = m_iVertexFitter->fit(combinedTracks, start); + + ATH_MSG_DEBUG("Merged vertices " << mergedVtx->nTrackParticles()); + + remerged[Nj] = true; + remerged[Ni] = true; + newmerge = true; + + // update the decors + float pt1 = sqrt(vx->auxdata<float>("sumPt2")); + float pt2 = sqrt(mergeCand->auxdata<float>("sumPt2")); + float ntrk1 = 1.0 * ((vx->trackParticleLinks()).size()); + float ntrk2 = 1.0 * ((mergeCand->trackParticleLinks()).size()); + float wght1 = + 0.6 * pt1 / (pt1 + pt2) + 0.4 * ntrk1 / (ntrk1 + ntrk2); + float wght2 = + 0.6 * pt2 / (pt1 + pt2) + 0.4 * ntrk2 / (ntrk1 + ntrk2); + + xAOD::VxType::VertexType typ1 = vx->vertexType(); + xAOD::VxType::VertexType typ2 = mergeCand->vertexType(); + float mas1 = vx->auxdata<float>("mass"); + float mas2 = mergeCand->auxdata<float>("mass"); + float e1 = vx->auxdata<float>("ee"); + float e2 = mergeCand->auxdata<float>("ee"); + int inNtrk1 = vx->auxdata<int>("NumInputTrk"); + int inNtrk2 = mergeCand->auxdata<int>("NumInputTrk"); + + int ntrks = 0; + float md1 = 0., md2 = 0., hf1 = 0., hf2 = 0.; + std::vector<float> trkW1, trkW2, doe1, doe2; + if (moreDeco) { + doe1 = vx->auxdataConst<std::vector<float>>("trkDistOverError"); + doe2 = + mergeCand->auxdataConst<std::vector<float>>("trkDistOverError"); + doe2.insert(doe2.end(), doe1.begin(), doe1.end()); + md1 = vx->auxdata<float>("MomentaDirection"); + md2 = mergeCand->auxdata<float>("MomentaDirection"); + hf1 = vx->auxdataConst<float>("radiiPattern"); + hf2 = mergeCand->auxdataConst<float>("radiiPattern"); + trkW1 = vx->auxdata<std::vector<float>>("trkWeight"); + trkW2 = mergeCand->auxdata<std::vector<float>>("trkWeight"); + trkW2.insert(trkW2.end(), trkW1.begin(), trkW1.end()); + ntrks = vx->auxdata<int>("NumTrkAtVtx") + + mergeCand->auxdata<int>("NumTrkAtVtx"); + } + + // delete copy of first vertex and then overwrite with merged vertex + delete vx; + vx = mergedVtx; + + if (wght1 >= wght2) + vx->setVertexType(typ1); + else + vx->setVertexType(typ2); + + if (moreDeco) { + vx->auxdata<std::vector<float>>("trkDistOverError") = doe2; + vx->auxdata<float>("MomentaDirection") = wght1 * md1 + wght2 * md2; + vx->auxdata<float>("radiiPattern") = wght1 * hf1 + wght2 * hf2; + vx->auxdata<std::vector<float>>("trkWeight") = trkW2; + vx->auxdata<int>("NumTrkAtVtx") = ntrks; + } + + mDecor_sumPt2(*vx) = pt1 * pt1 + pt2 * pt2; + mDecor_mass(*vx) = wght1 * mas1 + wght2 * mas2; + mDecor_energy(*vx) = wght1 * e1 + wght2 * e2; + mDecor_nrobbed(*vx) = 0; + mDecor_intrk(*vx) = (int)(wght1 * inNtrk1 + wght1 * inNtrk2); + + } // loop over j + } // if vx found partner in compatibility + + ATH_MSG_DEBUG("Merged sumPt2 " << vx->auxdataConst<float>("sumPt2")); + + // whether we merged or not, can add vx to the container + if (vx != NULL) + NewContainer->push_back(vx); + } + + return std::make_pair(NewContainer, auxNewContainer); } - bool SecVertexMergingTool::checkCompatibility( const xAOD::Vertex * v1, const xAOD::Vertex * v2 ) + bool + SecVertexMergingTool::checkCompatibility(const xAOD::Vertex* v1, + const xAOD::Vertex* v2) const { float sigma = 100 ; diff --git a/Tracking/TrkVertexFitter/TrkVertexTools/src/VertexCollectionSortingTool.cxx b/Tracking/TrkVertexFitter/TrkVertexTools/src/VertexCollectionSortingTool.cxx index f0e2a3970c532f7147832b73579e4126da3bd116..17f9d66ad642962707cc8db5ced66933b10e91cb 100644 --- a/Tracking/TrkVertexFitter/TrkVertexTools/src/VertexCollectionSortingTool.cxx +++ b/Tracking/TrkVertexFitter/TrkVertexTools/src/VertexCollectionSortingTool.cxx @@ -56,7 +56,9 @@ namespace Trk{ return StatusCode::SUCCESS; } - std::pair<xAOD::VertexContainer*,xAOD::VertexAuxContainer*> VertexCollectionSortingTool::sortVertexContainer( const xAOD::VertexContainer& MyVxCont) + std::pair<xAOD::VertexContainer*, xAOD::VertexAuxContainer*> + VertexCollectionSortingTool::sortVertexContainer( + const xAOD::VertexContainer& MyVxCont) const { std::vector<Vertex_pair> MyVertex_pairs; diff --git a/Tracking/TrkVertexFitter/TrkVertexTools/src/VertexMergingTool.cxx b/Tracking/TrkVertexFitter/TrkVertexTools/src/VertexMergingTool.cxx index a8559366139be97a835b2acbb10493f9407fc07c..e5d70ddbd017baf1aa2d7b5241552424500ecf9f 100644 --- a/Tracking/TrkVertexFitter/TrkVertexTools/src/VertexMergingTool.cxx +++ b/Tracking/TrkVertexFitter/TrkVertexTools/src/VertexMergingTool.cxx @@ -39,7 +39,8 @@ namespace Trk{ }///EndOfInitialize - std::pair<xAOD::VertexContainer*,xAOD::VertexAuxContainer*> VertexMergingTool::mergeVertexContainer(const xAOD::VertexContainer& MyVxCont) { + std::pair<xAOD::VertexContainer*,xAOD::VertexAuxContainer*> VertexMergingTool::mergeVertexContainer(const xAOD::VertexContainer& MyVxCont) const + { ATH_MSG_DEBUG("Run vertex remerging"); @@ -123,7 +124,7 @@ namespace Trk{ } - bool VertexMergingTool::checkCompatibility( const xAOD::Vertex * vx1, const xAOD::Vertex * vx2 ) { + bool VertexMergingTool::checkCompatibility( const xAOD::Vertex * vx1, const xAOD::Vertex * vx2 ) const { double z1 = vx1->z(); double z2 = vx2->z();